summaryrefslogtreecommitdiff
path: root/Build/source/libs/mpfr
diff options
context:
space:
mode:
authorDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
committerDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
commitc6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch)
tree1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/libs/mpfr
parent07ee7222e389b0777456b427a55c22d0e6ffd267 (diff)
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/mpfr')
-rw-r--r--Build/source/libs/mpfr/ChangeLog84
-rw-r--r--Build/source/libs/mpfr/Makefile.am306
-rw-r--r--Build/source/libs/mpfr/Makefile.in2344
-rw-r--r--Build/source/libs/mpfr/README14
-rw-r--r--Build/source/libs/mpfr/TLpatches/ChangeLog51
-rw-r--r--Build/source/libs/mpfr/TLpatches/TL-Changes25
-rw-r--r--Build/source/libs/mpfr/TLpatches/patch-01-TL12
-rw-r--r--Build/source/libs/mpfr/ac/mpfr.ac9
-rw-r--r--Build/source/libs/mpfr/ac/withenable.ac8
-rw-r--r--Build/source/libs/mpfr/aclocal.m41177
-rw-r--r--Build/source/libs/mpfr/config.h.in152
-rwxr-xr-xBuild/source/libs/mpfr/configure8574
-rw-r--r--Build/source/libs/mpfr/configure.ac131
-rw-r--r--Build/source/libs/mpfr/include/Makefile.am16
-rw-r--r--Build/source/libs/mpfr/include/Makefile.in448
-rw-r--r--Build/source/libs/mpfr/m4/mpfr-check-printf-spec.m472
-rw-r--r--Build/source/libs/mpfr/m4/mpfr-configs.m4264
-rw-r--r--Build/source/libs/mpfr/m4/mpfr-long-double-format.m4355
-rw-r--r--Build/source/libs/mpfr/mpfr-src/AUTHORS27
-rw-r--r--Build/source/libs/mpfr/mpfr-src/BUGS72
-rw-r--r--Build/source/libs/mpfr/mpfr-src/ChangeLog105496
-rw-r--r--Build/source/libs/mpfr/mpfr-src/INSTALL719
-rw-r--r--Build/source/libs/mpfr/mpfr-src/Makefile.am75
-rw-r--r--Build/source/libs/mpfr/mpfr-src/NEWS452
-rw-r--r--Build/source/libs/mpfr/mpfr-src/PATCHES0
-rw-r--r--Build/source/libs/mpfr/mpfr-src/README100
-rw-r--r--Build/source/libs/mpfr/mpfr-src/TODO725
-rw-r--r--Build/source/libs/mpfr/mpfr-src/VERSION1
-rw-r--r--Build/source/libs/mpfr/mpfr-src/acinclude.m41789
-rw-r--r--Build/source/libs/mpfr/mpfr-src/configure.ac846
-rw-r--r--Build/source/libs/mpfr/mpfr-src/mpfr.pc.in11
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/Makefile.am174
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/abort_prec_max.c31
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/acos.c146
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/acosh.c158
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/add.c122
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/add1.c580
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/add1sp.c1096
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/add1sp1_extracted.c363
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/add_d.c52
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/add_ui.c95
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/agm.c327
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ai.c690
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/amd/mparam.h233
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/arm/mparam.h233
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/asin.c125
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/asinh.c119
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/atan.c522
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/atan2.c280
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/atanh.c215
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/bernoulli.c255
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/beta.c345
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/buildopt.c80
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cache.c196
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cbrt.c177
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/check.c81
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/clear.c31
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/clears.c60
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmp.c104
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmp2.c342
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmp_d.c45
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmp_ld.c53
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmp_si.c118
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmp_ui.c118
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmpabs.c94
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cmpabs_ui.c35
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/comparisons.c78
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/const_catalan.c153
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/const_euler.c276
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/const_log2.c177
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/const_pi.c122
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/constant.c69
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/copysign.c38
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cos.c301
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cosh.c128
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/cot.c96
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/coth.c93
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/csc.c76
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/csch.c79
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/d_div.c50
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/d_sub.c50
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/digamma.c402
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/dim.c48
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/div.c1446
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/div_2exp.c33
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/div_2si.c61
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/div_2ui.c69
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/div_d.c51
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/div_ui.c316
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/dot.c59
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/dump.c132
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/eint.c382
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/eq.c141
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/erandom.c105
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/erf.c265
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/erfc.c277
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/exceptions.c498
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/exp.c187
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/exp10.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/exp2.c168
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/exp3.c339
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/exp_2.c456
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/expm1.c172
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/extract.c57
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/factorial.c112
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_intmax.c113
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_s.h98
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_sint.c28
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_slong.c28
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_sshort.c28
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_u.h79
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_uint.c27
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_uintmax.c41
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_ulong.c27
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fits_ushort.c27
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fma.c297
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fmma.c92
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fms.c38
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/fpif.c634
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/frac.c144
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/free_cache.c92
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/frexp.c87
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/gamma.c481
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/gamma_inc.c504
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/gammaonethird.c191
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/gen_inverse.h106
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/generic/coverage/mparam.h225
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/generic/mparam.h70
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_d.c182
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_d128.c441
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_d64.c612
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_exp.c31
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_f.c151
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_float128.c129
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_flt.c133
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_ld.c339
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_q.c63
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_si.c92
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_sj.c126
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_str.c2902
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_ui.c84
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_uj.c87
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_z.c71
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/get_z_exp.c96
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/gmp_op.c520
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/grandom.c202
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/hypot.c218
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ieee_floats.h77
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/init.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/init2.c64
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/inits.c61
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/inits2.c65
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/inp_str.c109
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/int_ceil_log2.c48
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/invert_limb.h234
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/invsqrt_limb.h366
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/isinf.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/isinteger.c59
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/isnan.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/isnum.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/isqrt.c84
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/isregular.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/iszero.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/jn.c334
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/jyn_asympt.c289
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/li2.c631
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/lngamma.c872
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/log.c191
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/log10.c150
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/log1p.c243
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/log2.c142
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/log_ui.c234
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/logging.c128
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/min_prec.c33
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/minmax.c92
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mips/mparam.h233
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/modf.c99
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mp_clz_tab.c40
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mparam_h.in89
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpf2mpfr.h188
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-cvers.h62
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.c368
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.h744
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-impl.h2727
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-intmax.h109
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-longlong.h2230
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.c315
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.h132
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-sassert.h73
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr-thread.h241
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpfr.h1173
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mpn_exp.c206
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mul.c1105
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mul_1_extracted.c325
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mul_2exp.c33
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mul_2si.c60
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mul_2ui.c52
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mul_d.c52
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mul_ui.c139
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/mulders.c297
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/nbits_ulong.c83
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/neg.c38
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/next.c159
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/nrandom.c183
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/odd_p.c73
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/out_str.c88
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/pool.c117
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/pow.c693
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/pow_si.c249
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/pow_ui.c164
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/pow_z.c373
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/powerof2.c50
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/powerpc64/mparam.h233
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/print_raw.c48
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/print_rnd_mode.c51
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/printf.c192
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/random_deviate.c383
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/random_deviate.h86
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/rec_sqrt.c575
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/reldiff.c73
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/rem1.c276
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/rint.c477
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/rndna.c199
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/root.c331
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/round_near_x.c236
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/round_p.c136
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/round_prec.c539
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/round_raw_generic.c278
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/scale2.c91
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sec.c34
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sech.c40
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set.c217
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_d.c326
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_d128.c495
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_d64.c497
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_dfl_prec.c41
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_exp.c39
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_f.c103
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_float128.c144
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_flt.c34
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_inf.c33
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_ld.c424
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_nan.c31
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_prc_raw.c31
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_prec.c58
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_q.c157
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_rnd.c40
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_si.c30
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_si_2exp.c93
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_sj.c48
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_str.c42
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_str_raw.c55
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_ui.c30
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_ui_2exp.c91
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_uj.c135
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_z.c30
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_z_exp.c180
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/set_zero.c31
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/setmax.c41
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/setmin.c38
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/setsign.c30
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sgn.c40
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/si_op.c160
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/signbit.c30
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sin.c201
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sin_cos.c671
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sinh.c184
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sinh_cosh.c158
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sparc64/mparam.h234
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sqr.c613
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sqrt.c719
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sqrt_ui.c65
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/stack_interface.c104
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/strtofr.c978
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sub.c134
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sub1.c749
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sub1sp.c1975
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sub1sp1_extracted.c530
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sub_d.c51
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sub_ui.c95
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/subnormal.c183
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/sum.c1395
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/swap.c54
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/tan.c89
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/tanh.c165
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/total_order.c42
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ubf.c252
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/uceil_exp2.c65
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/uceil_log2.c67
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ufloor_log2.c57
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ui_div.c111
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ui_pow.c41
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ui_pow_ui.c95
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/ui_sub.c96
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/urandom.c138
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/urandomb.c110
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/vasprintf.c2456
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/version.c29
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/volatile.c36
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/x86/mparam.h234
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/x86_64/core2/mparam.h232
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/x86_64/mparam.h233
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/yn.c426
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/zeta.c689
-rw-r--r--Build/source/libs/mpfr/mpfr-src/src/zeta_ui.c242
-rwxr-xr-xBuild/source/libs/mpfr/mpfr.test7
-rw-r--r--Build/source/libs/mpfr/mpfrtest.c19
-rw-r--r--Build/source/libs/mpfr/version.ac11
308 files changed, 0 insertions, 190706 deletions
diff --git a/Build/source/libs/mpfr/ChangeLog b/Build/source/libs/mpfr/ChangeLog
deleted file mode 100644
index c0487720393..00000000000
--- a/Build/source/libs/mpfr/ChangeLog
+++ /dev/null
@@ -1,84 +0,0 @@
-2020-07-12 Akira Kakuto <kakuto@w32tex.org>
-
- Import mpfr-4.1.0.
- * Makefile.am, version.ac: Adjust.
-
-2019-02-01 Akira Kakuto <kakuto@w32tex.org>
-
- Import mpfr-4.0.2.
- * Makefile.am, version.ac: Adjust.
-
-2018-02-10 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import mpfr-4.0.1.
- * version.ac: Adjust.
-
-2017-12-26 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import mpfr-4.0.0.
- * configure.ac, Makefile.am, version.ac: Adjust.
-
-2017-09-08 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import mpfr-3.1.6.
- * version.ac: Adjust.
-
-2016-09-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import mpfr-3.1.5.
- * version.ac: Adjust.
-
-2016-03-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import mpfr-3.1.4.
- * version.ac: Adjust.
-
-2016-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * Makefile.am, configure.ac: New convention.
-
-2015-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Better dependencies for 'make check'.
-
-2015-06-20 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import mpfr-3.1.3.
- * version.ac: Adjust.
-
-2015-03-10 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * m4/mpfr-configs.m4: Drop useless checks for memmove, memset,
- and strtol.
-
-2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Use the fragment ../../am/dist_hook.am.
-
-2014-12-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am [Sparc Solaris, armel]:
- Need to compile src/mp_clz_tab.c.
-
-2014-12-03 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * configure.ac: Added KPSE_COMPILER_VISIBILITY.
- * Makefile.am [AM_CFLAGS]: Added $(VISIBILITY_CFLAGS).
-
-2014-09-19 Taco Hoekwater <taco@elvenkind.com>
-
- * Makefile.am [Darwin]: Need to compile src/abort_prec_max.c.
-
-2014-05-23 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Converted wrapper => proxy build system.
-
- * Makefile.am (unused_sources): Compile only as needed by mpost.
-
-2014-05-07 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Integrated into TeX Live with wrapper build system.
-
-2014-03-31 Taco Hoekwater <taco@metatex.org>
-
- Imported mpfr-3.1.2.
diff --git a/Build/source/libs/mpfr/Makefile.am b/Build/source/libs/mpfr/Makefile.am
deleted file mode 100644
index 2b0f29ffad2..00000000000
--- a/Build/source/libs/mpfr/Makefile.am
+++ /dev/null
@@ -1,306 +0,0 @@
-## $Id$
-## Proxy Makefile.am to build MPFR for TeX Live.
-##
-## Copyright 2017 Karl Berry<tex-live@tug.org>
-## Copyright 2014-2015 Peter Breitenlohner <tex-live@tug.org>
-## Copyright 2014 Taco Hoekwater <taco@metatex.org>
-##
-## This file is free software; the copyright holder
-## gives unlimited permission to copy and/or distribute it,
-## with or without modifications, as long as this notice is preserved.
-##
-## We want to re-distribute the whole MPFR source tree.
-##
-EXTRA_DIST = $(MPFR_TREE)
-
-## Changes applied to the original source tree
-##
-EXTRA_DIST += TLpatches
-
-# Files not to be distributed
-include $(srcdir)/../../am/dist_hook.am
-NEVER_NAMES += $(NEVER_NAMES_SUB)
-
-SUBDIRS = . include
-
-AM_CPPFLAGS = -I$(srcdir)/$(MPFR_TREE)/src $(GMP_INCLUDES)
-AM_CFLAGS = $(VISIBILITY_CFLAGS) # $(WARNING_CFLAGS)
-
-noinst_LIBRARIES = libmpfr.a
-$(libmpfr_a_OBJECTS): $(GMP_DEPEND)
-nodist_libmpfr_a_SOURCES = \
- @MPFR_TREE@/src/abort_prec_max.c \
- @MPFR_TREE@/src/add.c \
- @MPFR_TREE@/src/add1.c \
- @MPFR_TREE@/src/add1sp.c \
- @MPFR_TREE@/src/add_d.c \
- @MPFR_TREE@/src/add_ui.c \
- @MPFR_TREE@/src/agm.c \
- @MPFR_TREE@/src/atan.c \
- @MPFR_TREE@/src/atan2.c \
- @MPFR_TREE@/src/cache.c \
- @MPFR_TREE@/src/clear.c \
- @MPFR_TREE@/src/clears.c \
- @MPFR_TREE@/src/cmp.c \
- @MPFR_TREE@/src/cmp2.c \
- @MPFR_TREE@/src/cmpabs.c \
- @MPFR_TREE@/src/cmp_si.c \
- @MPFR_TREE@/src/cmp_ui.c \
- @MPFR_TREE@/src/comparisons.c \
- @MPFR_TREE@/src/const_catalan.c \
- @MPFR_TREE@/src/const_euler.c \
- @MPFR_TREE@/src/const_log2.c \
- @MPFR_TREE@/src/const_pi.c \
- @MPFR_TREE@/src/constant.c \
- @MPFR_TREE@/src/cos.c \
- @MPFR_TREE@/src/div.c \
- @MPFR_TREE@/src/div_2si.c \
- @MPFR_TREE@/src/div_2ui.c \
- @MPFR_TREE@/src/div_ui.c \
- @MPFR_TREE@/src/exceptions.c \
- @MPFR_TREE@/src/exp.c \
- @MPFR_TREE@/src/exp2.c \
- @MPFR_TREE@/src/exp3.c \
- @MPFR_TREE@/src/exp_2.c \
- @MPFR_TREE@/src/extract.c \
- @MPFR_TREE@/src/fits_sint.c \
- @MPFR_TREE@/src/fits_slong.c \
- @MPFR_TREE@/src/fits_ulong.c \
- @MPFR_TREE@/src/free_cache.c \
- @MPFR_TREE@/src/get_d.c \
- @MPFR_TREE@/src/get_si.c \
- @MPFR_TREE@/src/get_str.c \
- @MPFR_TREE@/src/get_z.c \
- @MPFR_TREE@/src/get_z_exp.c \
- @MPFR_TREE@/src/get_ui.c \
- @MPFR_TREE@/src/gmp_op.c \
- @MPFR_TREE@/src/init.c \
- @MPFR_TREE@/src/init2.c \
- @MPFR_TREE@/src/inits2.c \
- @MPFR_TREE@/src/isinteger.c \
- @MPFR_TREE@/src/isnum.c \
- @MPFR_TREE@/src/isqrt.c \
- @MPFR_TREE@/src/log.c \
- @MPFR_TREE@/src/log2.c \
- @MPFR_TREE@/src/min_prec.c \
- @MPFR_TREE@/src/mpfr-gmp.c \
- @MPFR_TREE@/src/mpn_exp.c \
- @MPFR_TREE@/src/mp_clz_tab.c \
- @MPFR_TREE@/src/mul.c \
- @MPFR_TREE@/src/mul_2si.c \
- @MPFR_TREE@/src/mul_2ui.c \
- @MPFR_TREE@/src/mul_ui.c \
- @MPFR_TREE@/src/mulders.c \
- @MPFR_TREE@/src/nbits_ulong.c \
- @MPFR_TREE@/src/neg.c \
- @MPFR_TREE@/src/next.c \
- @MPFR_TREE@/src/pool.c \
- @MPFR_TREE@/src/powerof2.c \
- @MPFR_TREE@/src/rem1.c \
- @MPFR_TREE@/src/rint.c \
- @MPFR_TREE@/src/round_near_x.c \
- @MPFR_TREE@/src/round_p.c \
- @MPFR_TREE@/src/round_prec.c \
- @MPFR_TREE@/src/scale2.c \
- @MPFR_TREE@/src/set.c \
- @MPFR_TREE@/src/set_d.c \
- @MPFR_TREE@/src/set_dfl_prec.c \
- @MPFR_TREE@/src/set_f.c \
- @MPFR_TREE@/src/set_prec.c \
- @MPFR_TREE@/src/set_q.c \
- @MPFR_TREE@/src/set_rnd.c \
- @MPFR_TREE@/src/set_si_2exp.c \
- @MPFR_TREE@/src/set_str.c \
- @MPFR_TREE@/src/set_ui_2exp.c \
- @MPFR_TREE@/src/set_z.c \
- @MPFR_TREE@/src/set_z_exp.c \
- @MPFR_TREE@/src/set_zero.c \
- @MPFR_TREE@/src/setmax.c \
- @MPFR_TREE@/src/setmin.c \
- @MPFR_TREE@/src/sgn.c \
- @MPFR_TREE@/src/sin.c \
- @MPFR_TREE@/src/sin_cos.c \
- @MPFR_TREE@/src/si_op.c \
- @MPFR_TREE@/src/sqr.c \
- @MPFR_TREE@/src/sqrt.c \
- @MPFR_TREE@/src/sqrt_ui.c \
- @MPFR_TREE@/src/strtofr.c \
- @MPFR_TREE@/src/sub.c \
- @MPFR_TREE@/src/sub1.c \
- @MPFR_TREE@/src/sub1sp.c \
- @MPFR_TREE@/src/sub_ui.c \
- @MPFR_TREE@/src/swap.c \
- @MPFR_TREE@/src/ubf.c \
- @MPFR_TREE@/src/ui_div.c \
- @MPFR_TREE@/src/ui_sub.c \
- @MPFR_TREE@/src/version.c
-
-unused_sources = \
- @MPFR_TREE@/src/acos.c \
- @MPFR_TREE@/src/acosh.c \
- @MPFR_TREE@/src/ai.c \
- @MPFR_TREE@/src/asin.c \
- @MPFR_TREE@/src/asinh.c \
- @MPFR_TREE@/src/atanh.c \
- @MPFR_TREE@/src/bernoulli.c \
- @MPFR_TREE@/src/beta.c \
- @MPFR_TREE@/src/buildopt.c \
- @MPFR_TREE@/src/cbrt.c \
- @MPFR_TREE@/src/check.c \
- @MPFR_TREE@/src/cmp_d.c \
- @MPFR_TREE@/src/cmp_ld.c \
- @MPFR_TREE@/src/cmpabs_ui.c \
- @MPFR_TREE@/src/copysign.c \
- @MPFR_TREE@/src/cosh.c \
- @MPFR_TREE@/src/cot.c \
- @MPFR_TREE@/src/coth.c \
- @MPFR_TREE@/src/csc.c \
- @MPFR_TREE@/src/csch.c \
- @MPFR_TREE@/src/d_div.c \
- @MPFR_TREE@/src/d_sub.c \
- @MPFR_TREE@/src/digamma.c \
- @MPFR_TREE@/src/dim.c \
- @MPFR_TREE@/src/div_2exp.c \
- @MPFR_TREE@/src/div_d.c \
- @MPFR_TREE@/src/dot.c \
- @MPFR_TREE@/src/dump.c \
- @MPFR_TREE@/src/eint.c \
- @MPFR_TREE@/src/eq.c \
- @MPFR_TREE@/src/erandom.c \
- @MPFR_TREE@/src/erf.c \
- @MPFR_TREE@/src/erfc.c \
- @MPFR_TREE@/src/exp10.c \
- @MPFR_TREE@/src/expm1.c \
- @MPFR_TREE@/src/factorial.c \
- @MPFR_TREE@/src/fits_intmax.c \
- @MPFR_TREE@/src/fits_sshort.c \
- @MPFR_TREE@/src/fits_uint.c \
- @MPFR_TREE@/src/fits_uintmax.c \
- @MPFR_TREE@/src/fits_ushort.c \
- @MPFR_TREE@/src/fma.c \
- @MPFR_TREE@/src/fmma.c \
- @MPFR_TREE@/src/fms.c \
- @MPFR_TREE@/src/fpif.c \
- @MPFR_TREE@/src/frac.c \
- @MPFR_TREE@/src/frexp.c \
- @MPFR_TREE@/src/gamma.c \
- @MPFR_TREE@/src/gamma_inc.c \
- @MPFR_TREE@/src/gammaonethird.c \
- @MPFR_TREE@/src/get_d64.c \
- @MPFR_TREE@/src/get_d128.c \
- @MPFR_TREE@/src/get_exp.c \
- @MPFR_TREE@/src/get_f.c \
- @MPFR_TREE@/src/get_float128.c \
- @MPFR_TREE@/src/get_flt.c \
- @MPFR_TREE@/src/get_ld.c \
- @MPFR_TREE@/src/get_q.c \
- @MPFR_TREE@/src/get_sj.c \
- @MPFR_TREE@/src/get_uj.c \
- @MPFR_TREE@/src/grandom.c \
- @MPFR_TREE@/src/hypot.c \
- @MPFR_TREE@/src/inits.c \
- @MPFR_TREE@/src/inp_str.c \
- @MPFR_TREE@/src/int_ceil_log2.c \
- @MPFR_TREE@/src/isinf.c \
- @MPFR_TREE@/src/isnan.c \
- @MPFR_TREE@/src/isregular.c \
- @MPFR_TREE@/src/iszero.c \
- @MPFR_TREE@/src/jn.c \
- @MPFR_TREE@/src/li2.c \
- @MPFR_TREE@/src/lngamma.c \
- @MPFR_TREE@/src/log10.c \
- @MPFR_TREE@/src/log1p.c \
- @MPFR_TREE@/src/logging.c \
- @MPFR_TREE@/src/log_ui.c \
- @MPFR_TREE@/src/min_prec.c \
- @MPFR_TREE@/src/minmax.c \
- @MPFR_TREE@/src/modf.c \
- @MPFR_TREE@/src/mpfr-mini-gmp.c \
- @MPFR_TREE@/src/mul_2exp.c \
- @MPFR_TREE@/src/mul_d.c \
- @MPFR_TREE@/src/mul_1_extracted.c \
- @MPFR_TREE@/src/nrandom.c \
- @MPFR_TREE@/src/odd_p.c \
- @MPFR_TREE@/src/out_str.c \
- @MPFR_TREE@/src/pow.c \
- @MPFR_TREE@/src/pow_si.c \
- @MPFR_TREE@/src/pow_ui.c \
- @MPFR_TREE@/src/pow_z.c \
- @MPFR_TREE@/src/print_raw.c \
- @MPFR_TREE@/src/print_rnd_mode.c \
- @MPFR_TREE@/src/printf.c \
- @MPFR_TREE@/src/random_deviate.c \
- @MPFR_TREE@/src/rec_sqrt.c \
- @MPFR_TREE@/src/reldiff.c \
- @MPFR_TREE@/src/rndna.c \
- @MPFR_TREE@/src/root.c \
- @MPFR_TREE@/src/sec.c \
- @MPFR_TREE@/src/sech.c \
- @MPFR_TREE@/src/set_d64.c \
- @MPFR_TREE@/src/set_d128.c \
- @MPFR_TREE@/src/set_exp.c \
- @MPFR_TREE@/src/set_flt.c \
- @MPFR_TREE@/src/set_float128.c \
- @MPFR_TREE@/src/set_inf.c \
- @MPFR_TREE@/src/set_ld.c \
- @MPFR_TREE@/src/set_nan.c \
- @MPFR_TREE@/src/set_prc_raw.c \
- @MPFR_TREE@/src/set_si.c \
- @MPFR_TREE@/src/set_sj.c \
- @MPFR_TREE@/src/set_str_raw.c \
- @MPFR_TREE@/src/set_ui.c \
- @MPFR_TREE@/src/set_uj.c \
- @MPFR_TREE@/src/setsign.c \
- @MPFR_TREE@/src/signbit.c \
- @MPFR_TREE@/src/sinh.c \
- @MPFR_TREE@/src/sinh_cosh.c \
- @MPFR_TREE@/src/stack_interface.c \
- @MPFR_TREE@/src/sub_d.c \
- @MPFR_TREE@/src/sub1sp1_extracted.c \
- @MPFR_TREE@/src/subnormal.c \
- @MPFR_TREE@/src/sum.c \
- @MPFR_TREE@/src/tan.c \
- @MPFR_TREE@/src/tanh.c \
- @MPFR_TREE@/src/total_order.c \
- @MPFR_TREE@/src/uceil_exp2.c \
- @MPFR_TREE@/src/uceil_log2.c \
- @MPFR_TREE@/src/ufloor_log2.c \
- @MPFR_TREE@/src/ui_pow.c \
- @MPFR_TREE@/src/ui_pow_ui.c \
- @MPFR_TREE@/src/urandom.c \
- @MPFR_TREE@/src/urandomb.c \
- @MPFR_TREE@/src/vasprintf.c \
- @MPFR_TREE@/src/volatile.c \
- @MPFR_TREE@/src/yn.c \
- @MPFR_TREE@/src/zeta.c \
- @MPFR_TREE@/src/zeta_ui.c
-
-if build
-check_PROGRAMS = mpfrtest
-dist_check_SCRIPTS = mpfr.test
-TESTS = mpfr.test
-endif build
-mpfr.log: mpfrtest$(EXEEXT)
-
-mpfrtest_SOURCES = mpfrtest.c
-
-mpfrtest_CPPFLAGS = -Iinclude $(GMP_INCLUDES)
-
-LDADD = libmpfr.a $(GMP_LIBS)
-
-## Rebuild libgmp
-@GMP_RULE@
-
-# Reconfig
-reconfig_prereq = $(GMP_DEPEND)
-DISTCLEANFILES =
-
-include $(srcdir)/../../am/reconfig.am
-
-# Rebuild
-rebuild_prereq =
-rebuild_target = all
-CLEANFILES =
-
-include $(srcdir)/../../am/rebuild.am
-
diff --git a/Build/source/libs/mpfr/Makefile.in b/Build/source/libs/mpfr/Makefile.in
deleted file mode 100644
index db2831657dd..00000000000
--- a/Build/source/libs/mpfr/Makefile.in
+++ /dev/null
@@ -1,2344 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-@build_TRUE@check_PROGRAMS = mpfrtest$(EXEEXT)
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/mpfr-check-printf-spec.m4 \
- $(top_srcdir)/m4/mpfr-configs.m4 \
- $(top_srcdir)/m4/mpfr-long-double-format.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-gmp-flags.m4 \
- $(top_srcdir)/../../m4/kpse-search-libs.m4 \
- $(top_srcdir)/../../m4/kpse-size-max.m4 \
- $(top_srcdir)/../../m4/kpse-visibility.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/version.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(am__dist_check_SCRIPTS_DIST) \
- $(am__DIST_COMMON)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = mparam.h
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_@AM_V@)
-am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo " AR " $@;
-am__v_AR_1 =
-libmpfr_a_AR = $(AR) $(ARFLAGS)
-libmpfr_a_LIBADD =
-am__dirstamp = $(am__leading_dot)dirstamp
-nodist_libmpfr_a_OBJECTS = @MPFR_TREE@/src/abort_prec_max.$(OBJEXT) \
- @MPFR_TREE@/src/add.$(OBJEXT) @MPFR_TREE@/src/add1.$(OBJEXT) \
- @MPFR_TREE@/src/add1sp.$(OBJEXT) \
- @MPFR_TREE@/src/add_d.$(OBJEXT) \
- @MPFR_TREE@/src/add_ui.$(OBJEXT) @MPFR_TREE@/src/agm.$(OBJEXT) \
- @MPFR_TREE@/src/atan.$(OBJEXT) @MPFR_TREE@/src/atan2.$(OBJEXT) \
- @MPFR_TREE@/src/cache.$(OBJEXT) \
- @MPFR_TREE@/src/clear.$(OBJEXT) \
- @MPFR_TREE@/src/clears.$(OBJEXT) @MPFR_TREE@/src/cmp.$(OBJEXT) \
- @MPFR_TREE@/src/cmp2.$(OBJEXT) \
- @MPFR_TREE@/src/cmpabs.$(OBJEXT) \
- @MPFR_TREE@/src/cmp_si.$(OBJEXT) \
- @MPFR_TREE@/src/cmp_ui.$(OBJEXT) \
- @MPFR_TREE@/src/comparisons.$(OBJEXT) \
- @MPFR_TREE@/src/const_catalan.$(OBJEXT) \
- @MPFR_TREE@/src/const_euler.$(OBJEXT) \
- @MPFR_TREE@/src/const_log2.$(OBJEXT) \
- @MPFR_TREE@/src/const_pi.$(OBJEXT) \
- @MPFR_TREE@/src/constant.$(OBJEXT) \
- @MPFR_TREE@/src/cos.$(OBJEXT) @MPFR_TREE@/src/div.$(OBJEXT) \
- @MPFR_TREE@/src/div_2si.$(OBJEXT) \
- @MPFR_TREE@/src/div_2ui.$(OBJEXT) \
- @MPFR_TREE@/src/div_ui.$(OBJEXT) \
- @MPFR_TREE@/src/exceptions.$(OBJEXT) \
- @MPFR_TREE@/src/exp.$(OBJEXT) @MPFR_TREE@/src/exp2.$(OBJEXT) \
- @MPFR_TREE@/src/exp3.$(OBJEXT) @MPFR_TREE@/src/exp_2.$(OBJEXT) \
- @MPFR_TREE@/src/extract.$(OBJEXT) \
- @MPFR_TREE@/src/fits_sint.$(OBJEXT) \
- @MPFR_TREE@/src/fits_slong.$(OBJEXT) \
- @MPFR_TREE@/src/fits_ulong.$(OBJEXT) \
- @MPFR_TREE@/src/free_cache.$(OBJEXT) \
- @MPFR_TREE@/src/get_d.$(OBJEXT) \
- @MPFR_TREE@/src/get_si.$(OBJEXT) \
- @MPFR_TREE@/src/get_str.$(OBJEXT) \
- @MPFR_TREE@/src/get_z.$(OBJEXT) \
- @MPFR_TREE@/src/get_z_exp.$(OBJEXT) \
- @MPFR_TREE@/src/get_ui.$(OBJEXT) \
- @MPFR_TREE@/src/gmp_op.$(OBJEXT) \
- @MPFR_TREE@/src/init.$(OBJEXT) @MPFR_TREE@/src/init2.$(OBJEXT) \
- @MPFR_TREE@/src/inits2.$(OBJEXT) \
- @MPFR_TREE@/src/isinteger.$(OBJEXT) \
- @MPFR_TREE@/src/isnum.$(OBJEXT) \
- @MPFR_TREE@/src/isqrt.$(OBJEXT) @MPFR_TREE@/src/log.$(OBJEXT) \
- @MPFR_TREE@/src/log2.$(OBJEXT) \
- @MPFR_TREE@/src/min_prec.$(OBJEXT) \
- @MPFR_TREE@/src/mpfr-gmp.$(OBJEXT) \
- @MPFR_TREE@/src/mpn_exp.$(OBJEXT) \
- @MPFR_TREE@/src/mp_clz_tab.$(OBJEXT) \
- @MPFR_TREE@/src/mul.$(OBJEXT) \
- @MPFR_TREE@/src/mul_2si.$(OBJEXT) \
- @MPFR_TREE@/src/mul_2ui.$(OBJEXT) \
- @MPFR_TREE@/src/mul_ui.$(OBJEXT) \
- @MPFR_TREE@/src/mulders.$(OBJEXT) \
- @MPFR_TREE@/src/nbits_ulong.$(OBJEXT) \
- @MPFR_TREE@/src/neg.$(OBJEXT) @MPFR_TREE@/src/next.$(OBJEXT) \
- @MPFR_TREE@/src/pool.$(OBJEXT) \
- @MPFR_TREE@/src/powerof2.$(OBJEXT) \
- @MPFR_TREE@/src/rem1.$(OBJEXT) @MPFR_TREE@/src/rint.$(OBJEXT) \
- @MPFR_TREE@/src/round_near_x.$(OBJEXT) \
- @MPFR_TREE@/src/round_p.$(OBJEXT) \
- @MPFR_TREE@/src/round_prec.$(OBJEXT) \
- @MPFR_TREE@/src/scale2.$(OBJEXT) @MPFR_TREE@/src/set.$(OBJEXT) \
- @MPFR_TREE@/src/set_d.$(OBJEXT) \
- @MPFR_TREE@/src/set_dfl_prec.$(OBJEXT) \
- @MPFR_TREE@/src/set_f.$(OBJEXT) \
- @MPFR_TREE@/src/set_prec.$(OBJEXT) \
- @MPFR_TREE@/src/set_q.$(OBJEXT) \
- @MPFR_TREE@/src/set_rnd.$(OBJEXT) \
- @MPFR_TREE@/src/set_si_2exp.$(OBJEXT) \
- @MPFR_TREE@/src/set_str.$(OBJEXT) \
- @MPFR_TREE@/src/set_ui_2exp.$(OBJEXT) \
- @MPFR_TREE@/src/set_z.$(OBJEXT) \
- @MPFR_TREE@/src/set_z_exp.$(OBJEXT) \
- @MPFR_TREE@/src/set_zero.$(OBJEXT) \
- @MPFR_TREE@/src/setmax.$(OBJEXT) \
- @MPFR_TREE@/src/setmin.$(OBJEXT) @MPFR_TREE@/src/sgn.$(OBJEXT) \
- @MPFR_TREE@/src/sin.$(OBJEXT) \
- @MPFR_TREE@/src/sin_cos.$(OBJEXT) \
- @MPFR_TREE@/src/si_op.$(OBJEXT) @MPFR_TREE@/src/sqr.$(OBJEXT) \
- @MPFR_TREE@/src/sqrt.$(OBJEXT) \
- @MPFR_TREE@/src/sqrt_ui.$(OBJEXT) \
- @MPFR_TREE@/src/strtofr.$(OBJEXT) \
- @MPFR_TREE@/src/sub.$(OBJEXT) @MPFR_TREE@/src/sub1.$(OBJEXT) \
- @MPFR_TREE@/src/sub1sp.$(OBJEXT) \
- @MPFR_TREE@/src/sub_ui.$(OBJEXT) \
- @MPFR_TREE@/src/swap.$(OBJEXT) @MPFR_TREE@/src/ubf.$(OBJEXT) \
- @MPFR_TREE@/src/ui_div.$(OBJEXT) \
- @MPFR_TREE@/src/ui_sub.$(OBJEXT) \
- @MPFR_TREE@/src/version.$(OBJEXT)
-libmpfr_a_OBJECTS = $(nodist_libmpfr_a_OBJECTS)
-am_mpfrtest_OBJECTS = mpfrtest-mpfrtest.$(OBJEXT)
-mpfrtest_OBJECTS = $(am_mpfrtest_OBJECTS)
-mpfrtest_LDADD = $(LDADD)
-am__DEPENDENCIES_1 =
-mpfrtest_DEPENDENCIES = libmpfr.a $(am__DEPENDENCIES_1)
-am__dist_check_SCRIPTS_DIST = mpfr.test
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/mpfrtest-mpfrtest.Po \
- @MPFR_TREE@/src/$(DEPDIR)/abort_prec_max.Po \
- @MPFR_TREE@/src/$(DEPDIR)/add.Po \
- @MPFR_TREE@/src/$(DEPDIR)/add1.Po \
- @MPFR_TREE@/src/$(DEPDIR)/add1sp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/add_d.Po \
- @MPFR_TREE@/src/$(DEPDIR)/add_ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/agm.Po \
- @MPFR_TREE@/src/$(DEPDIR)/atan.Po \
- @MPFR_TREE@/src/$(DEPDIR)/atan2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/cache.Po \
- @MPFR_TREE@/src/$(DEPDIR)/clear.Po \
- @MPFR_TREE@/src/$(DEPDIR)/clears.Po \
- @MPFR_TREE@/src/$(DEPDIR)/cmp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/cmp2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/cmp_si.Po \
- @MPFR_TREE@/src/$(DEPDIR)/cmp_ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/cmpabs.Po \
- @MPFR_TREE@/src/$(DEPDIR)/comparisons.Po \
- @MPFR_TREE@/src/$(DEPDIR)/const_catalan.Po \
- @MPFR_TREE@/src/$(DEPDIR)/const_euler.Po \
- @MPFR_TREE@/src/$(DEPDIR)/const_log2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/const_pi.Po \
- @MPFR_TREE@/src/$(DEPDIR)/constant.Po \
- @MPFR_TREE@/src/$(DEPDIR)/cos.Po \
- @MPFR_TREE@/src/$(DEPDIR)/div.Po \
- @MPFR_TREE@/src/$(DEPDIR)/div_2si.Po \
- @MPFR_TREE@/src/$(DEPDIR)/div_2ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/div_ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/exceptions.Po \
- @MPFR_TREE@/src/$(DEPDIR)/exp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/exp2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/exp3.Po \
- @MPFR_TREE@/src/$(DEPDIR)/exp_2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/extract.Po \
- @MPFR_TREE@/src/$(DEPDIR)/fits_sint.Po \
- @MPFR_TREE@/src/$(DEPDIR)/fits_slong.Po \
- @MPFR_TREE@/src/$(DEPDIR)/fits_ulong.Po \
- @MPFR_TREE@/src/$(DEPDIR)/free_cache.Po \
- @MPFR_TREE@/src/$(DEPDIR)/get_d.Po \
- @MPFR_TREE@/src/$(DEPDIR)/get_si.Po \
- @MPFR_TREE@/src/$(DEPDIR)/get_str.Po \
- @MPFR_TREE@/src/$(DEPDIR)/get_ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/get_z.Po \
- @MPFR_TREE@/src/$(DEPDIR)/get_z_exp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/gmp_op.Po \
- @MPFR_TREE@/src/$(DEPDIR)/init.Po \
- @MPFR_TREE@/src/$(DEPDIR)/init2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/inits2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/isinteger.Po \
- @MPFR_TREE@/src/$(DEPDIR)/isnum.Po \
- @MPFR_TREE@/src/$(DEPDIR)/isqrt.Po \
- @MPFR_TREE@/src/$(DEPDIR)/log.Po \
- @MPFR_TREE@/src/$(DEPDIR)/log2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/min_prec.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mp_clz_tab.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mpfr-gmp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mpn_exp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mul.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mul_2si.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mul_2ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mul_ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/mulders.Po \
- @MPFR_TREE@/src/$(DEPDIR)/nbits_ulong.Po \
- @MPFR_TREE@/src/$(DEPDIR)/neg.Po \
- @MPFR_TREE@/src/$(DEPDIR)/next.Po \
- @MPFR_TREE@/src/$(DEPDIR)/pool.Po \
- @MPFR_TREE@/src/$(DEPDIR)/powerof2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/rem1.Po \
- @MPFR_TREE@/src/$(DEPDIR)/rint.Po \
- @MPFR_TREE@/src/$(DEPDIR)/round_near_x.Po \
- @MPFR_TREE@/src/$(DEPDIR)/round_p.Po \
- @MPFR_TREE@/src/$(DEPDIR)/round_prec.Po \
- @MPFR_TREE@/src/$(DEPDIR)/scale2.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_d.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_dfl_prec.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_f.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_prec.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_q.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_rnd.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_si_2exp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_str.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_ui_2exp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_z.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_z_exp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/set_zero.Po \
- @MPFR_TREE@/src/$(DEPDIR)/setmax.Po \
- @MPFR_TREE@/src/$(DEPDIR)/setmin.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sgn.Po \
- @MPFR_TREE@/src/$(DEPDIR)/si_op.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sin.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sin_cos.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sqr.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sqrt.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sqrt_ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/strtofr.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sub.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sub1.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sub1sp.Po \
- @MPFR_TREE@/src/$(DEPDIR)/sub_ui.Po \
- @MPFR_TREE@/src/$(DEPDIR)/swap.Po \
- @MPFR_TREE@/src/$(DEPDIR)/ubf.Po \
- @MPFR_TREE@/src/$(DEPDIR)/ui_div.Po \
- @MPFR_TREE@/src/$(DEPDIR)/ui_sub.Po \
- @MPFR_TREE@/src/$(DEPDIR)/version.Po
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(nodist_libmpfr_a_SOURCES) $(mpfrtest_SOURCES)
-DIST_SOURCES = $(mpfrtest_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope check recheck distdir distdir-am dist dist-all \
- distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
- config.h.in
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-am__tty_colors_dummy = \
- mgn= red= grn= lgn= blu= brg= std=; \
- am__color_tests=no
-am__tty_colors = { \
- $(am__tty_colors_dummy); \
- if test "X$(AM_COLOR_TESTS)" = Xno; then \
- am__color_tests=no; \
- elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
- am__color_tests=yes; \
- elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
- am__color_tests=yes; \
- fi; \
- if test $$am__color_tests = yes; then \
- red=''; \
- grn=''; \
- lgn=''; \
- blu=''; \
- mgn=''; \
- brg=''; \
- std=''; \
- fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__recheck_rx = ^[ ]*:recheck:[ ]*
-am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
-am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
- recheck = 1; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- { \
- if ((getline line2 < ($$0 ".log")) < 0) \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
- { \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
- { \
- break; \
- } \
- }; \
- if (recheck) \
- print $$0; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
- print "fatal: making $@: " msg | "cat >&2"; \
- exit 1; \
-} \
-function rst_section(header) \
-{ \
- print header; \
- len = length(header); \
- for (i = 1; i <= len; i = i + 1) \
- printf "="; \
- printf "\n\n"; \
-} \
-{ \
- copy_in_global_log = 1; \
- global_test_result = "RUN"; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".trs"); \
- if (line ~ /$(am__global_test_result_rx)/) \
- { \
- sub("$(am__global_test_result_rx)", "", line); \
- sub("[ ]*$$", "", line); \
- global_test_result = line; \
- } \
- else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
- copy_in_global_log = 0; \
- }; \
- if (copy_in_global_log) \
- { \
- rst_section(global_test_result ": " $$0); \
- while ((rc = (getline line < ($$0 ".log"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".log"); \
- print line; \
- }; \
- printf "\n"; \
- }; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
- --color-tests "$$am__color_tests" \
- --enable-hard-errors "$$am__enable_hard_errors" \
- --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test. Creates the
-# directory for the log if needed. Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log. Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup); \
-$(am__vpath_adj_setup) $(am__vpath_adj) \
-$(am__tty_colors); \
-srcdir=$(srcdir); export srcdir; \
-case "$@" in \
- */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
- *) am__odir=.;; \
-esac; \
-test "x$$am__odir" = x"." || test -d "$$am__odir" \
- || $(MKDIR_P) "$$am__odir" || exit $$?; \
-if test -f "./$$f"; then dir=./; \
-elif test -f "$$f"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-tst=$$dir$$f; log='$@'; \
-if test -n '$(DISABLE_HARD_ERRORS)'; then \
- am__enable_hard_errors=no; \
-else \
- am__enable_hard_errors=yes; \
-fi; \
-case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
- am__expect_failure=yes;; \
- *) \
- am__expect_failure=no;; \
-esac; \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed). The result is saved in the shell variable
-# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
- bases='$(TEST_LOGS)'; \
- bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
- bases=`echo $$bases`
-AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
-RECHECK_LOGS = $(TEST_LOGS)
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
- $(TEST_LOG_FLAGS)
-am__set_b = \
- case '$@' in \
- */*) \
- case '$*' in \
- */*) b='$*';; \
- *) b=`echo '$@' | sed 's/\.log$$//'`; \
- esac;; \
- *) \
- b='$*';; \
- esac
-DIST_SUBDIRS = $(SUBDIRS)
-am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
- $(srcdir)/../../am/rebuild.am $(srcdir)/../../am/reconfig.am \
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/../../build-aux/compile \
- $(top_srcdir)/../../build-aux/config.guess \
- $(top_srcdir)/../../build-aux/config.sub \
- $(top_srcdir)/../../build-aux/depcomp \
- $(top_srcdir)/../../build-aux/install-sh \
- $(top_srcdir)/../../build-aux/missing \
- $(top_srcdir)/../../build-aux/test-driver \
- $(top_srcdir)/mpfr-src/src/mparam_h.in ../../build-aux/ar-lib \
- ../../build-aux/compile ../../build-aux/config.guess \
- ../../build-aux/config.sub ../../build-aux/depcomp \
- ../../build-aux/install-sh ../../build-aux/ltmain.sh \
- ../../build-aux/missing ../../build-aux/texinfo.tex \
- ../../build-aux/ylwrap ChangeLog README
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-# Exists only to be overridden by the user if desired.
-AM_DISTCHECK_DVI_TARGET = dvi
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMP_DEPEND = @GMP_DEPEND@
-GMP_INCLUDES = @GMP_INCLUDES@
-GMP_LIBS = @GMP_LIBS@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MPFR_LIBM = @MPFR_LIBM@
-MPFR_TREE = @MPFR_TREE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = $(MPFR_TREE) TLpatches
-NEVER_DIST = `find . $(NEVER_NAMES)`
-
-# Files not to be distributed
-NEVER_NAMES = -name .svn $(NEVER_NAMES_SUB)
-NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'
-NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
-SUBDIRS = . include
-AM_CPPFLAGS = -I$(srcdir)/$(MPFR_TREE)/src $(GMP_INCLUDES)
-AM_CFLAGS = $(VISIBILITY_CFLAGS) # $(WARNING_CFLAGS)
-noinst_LIBRARIES = libmpfr.a
-nodist_libmpfr_a_SOURCES = \
- @MPFR_TREE@/src/abort_prec_max.c \
- @MPFR_TREE@/src/add.c \
- @MPFR_TREE@/src/add1.c \
- @MPFR_TREE@/src/add1sp.c \
- @MPFR_TREE@/src/add_d.c \
- @MPFR_TREE@/src/add_ui.c \
- @MPFR_TREE@/src/agm.c \
- @MPFR_TREE@/src/atan.c \
- @MPFR_TREE@/src/atan2.c \
- @MPFR_TREE@/src/cache.c \
- @MPFR_TREE@/src/clear.c \
- @MPFR_TREE@/src/clears.c \
- @MPFR_TREE@/src/cmp.c \
- @MPFR_TREE@/src/cmp2.c \
- @MPFR_TREE@/src/cmpabs.c \
- @MPFR_TREE@/src/cmp_si.c \
- @MPFR_TREE@/src/cmp_ui.c \
- @MPFR_TREE@/src/comparisons.c \
- @MPFR_TREE@/src/const_catalan.c \
- @MPFR_TREE@/src/const_euler.c \
- @MPFR_TREE@/src/const_log2.c \
- @MPFR_TREE@/src/const_pi.c \
- @MPFR_TREE@/src/constant.c \
- @MPFR_TREE@/src/cos.c \
- @MPFR_TREE@/src/div.c \
- @MPFR_TREE@/src/div_2si.c \
- @MPFR_TREE@/src/div_2ui.c \
- @MPFR_TREE@/src/div_ui.c \
- @MPFR_TREE@/src/exceptions.c \
- @MPFR_TREE@/src/exp.c \
- @MPFR_TREE@/src/exp2.c \
- @MPFR_TREE@/src/exp3.c \
- @MPFR_TREE@/src/exp_2.c \
- @MPFR_TREE@/src/extract.c \
- @MPFR_TREE@/src/fits_sint.c \
- @MPFR_TREE@/src/fits_slong.c \
- @MPFR_TREE@/src/fits_ulong.c \
- @MPFR_TREE@/src/free_cache.c \
- @MPFR_TREE@/src/get_d.c \
- @MPFR_TREE@/src/get_si.c \
- @MPFR_TREE@/src/get_str.c \
- @MPFR_TREE@/src/get_z.c \
- @MPFR_TREE@/src/get_z_exp.c \
- @MPFR_TREE@/src/get_ui.c \
- @MPFR_TREE@/src/gmp_op.c \
- @MPFR_TREE@/src/init.c \
- @MPFR_TREE@/src/init2.c \
- @MPFR_TREE@/src/inits2.c \
- @MPFR_TREE@/src/isinteger.c \
- @MPFR_TREE@/src/isnum.c \
- @MPFR_TREE@/src/isqrt.c \
- @MPFR_TREE@/src/log.c \
- @MPFR_TREE@/src/log2.c \
- @MPFR_TREE@/src/min_prec.c \
- @MPFR_TREE@/src/mpfr-gmp.c \
- @MPFR_TREE@/src/mpn_exp.c \
- @MPFR_TREE@/src/mp_clz_tab.c \
- @MPFR_TREE@/src/mul.c \
- @MPFR_TREE@/src/mul_2si.c \
- @MPFR_TREE@/src/mul_2ui.c \
- @MPFR_TREE@/src/mul_ui.c \
- @MPFR_TREE@/src/mulders.c \
- @MPFR_TREE@/src/nbits_ulong.c \
- @MPFR_TREE@/src/neg.c \
- @MPFR_TREE@/src/next.c \
- @MPFR_TREE@/src/pool.c \
- @MPFR_TREE@/src/powerof2.c \
- @MPFR_TREE@/src/rem1.c \
- @MPFR_TREE@/src/rint.c \
- @MPFR_TREE@/src/round_near_x.c \
- @MPFR_TREE@/src/round_p.c \
- @MPFR_TREE@/src/round_prec.c \
- @MPFR_TREE@/src/scale2.c \
- @MPFR_TREE@/src/set.c \
- @MPFR_TREE@/src/set_d.c \
- @MPFR_TREE@/src/set_dfl_prec.c \
- @MPFR_TREE@/src/set_f.c \
- @MPFR_TREE@/src/set_prec.c \
- @MPFR_TREE@/src/set_q.c \
- @MPFR_TREE@/src/set_rnd.c \
- @MPFR_TREE@/src/set_si_2exp.c \
- @MPFR_TREE@/src/set_str.c \
- @MPFR_TREE@/src/set_ui_2exp.c \
- @MPFR_TREE@/src/set_z.c \
- @MPFR_TREE@/src/set_z_exp.c \
- @MPFR_TREE@/src/set_zero.c \
- @MPFR_TREE@/src/setmax.c \
- @MPFR_TREE@/src/setmin.c \
- @MPFR_TREE@/src/sgn.c \
- @MPFR_TREE@/src/sin.c \
- @MPFR_TREE@/src/sin_cos.c \
- @MPFR_TREE@/src/si_op.c \
- @MPFR_TREE@/src/sqr.c \
- @MPFR_TREE@/src/sqrt.c \
- @MPFR_TREE@/src/sqrt_ui.c \
- @MPFR_TREE@/src/strtofr.c \
- @MPFR_TREE@/src/sub.c \
- @MPFR_TREE@/src/sub1.c \
- @MPFR_TREE@/src/sub1sp.c \
- @MPFR_TREE@/src/sub_ui.c \
- @MPFR_TREE@/src/swap.c \
- @MPFR_TREE@/src/ubf.c \
- @MPFR_TREE@/src/ui_div.c \
- @MPFR_TREE@/src/ui_sub.c \
- @MPFR_TREE@/src/version.c
-
-unused_sources = \
- @MPFR_TREE@/src/acos.c \
- @MPFR_TREE@/src/acosh.c \
- @MPFR_TREE@/src/ai.c \
- @MPFR_TREE@/src/asin.c \
- @MPFR_TREE@/src/asinh.c \
- @MPFR_TREE@/src/atanh.c \
- @MPFR_TREE@/src/bernoulli.c \
- @MPFR_TREE@/src/beta.c \
- @MPFR_TREE@/src/buildopt.c \
- @MPFR_TREE@/src/cbrt.c \
- @MPFR_TREE@/src/check.c \
- @MPFR_TREE@/src/cmp_d.c \
- @MPFR_TREE@/src/cmp_ld.c \
- @MPFR_TREE@/src/cmpabs_ui.c \
- @MPFR_TREE@/src/copysign.c \
- @MPFR_TREE@/src/cosh.c \
- @MPFR_TREE@/src/cot.c \
- @MPFR_TREE@/src/coth.c \
- @MPFR_TREE@/src/csc.c \
- @MPFR_TREE@/src/csch.c \
- @MPFR_TREE@/src/d_div.c \
- @MPFR_TREE@/src/d_sub.c \
- @MPFR_TREE@/src/digamma.c \
- @MPFR_TREE@/src/dim.c \
- @MPFR_TREE@/src/div_2exp.c \
- @MPFR_TREE@/src/div_d.c \
- @MPFR_TREE@/src/dot.c \
- @MPFR_TREE@/src/dump.c \
- @MPFR_TREE@/src/eint.c \
- @MPFR_TREE@/src/eq.c \
- @MPFR_TREE@/src/erandom.c \
- @MPFR_TREE@/src/erf.c \
- @MPFR_TREE@/src/erfc.c \
- @MPFR_TREE@/src/exp10.c \
- @MPFR_TREE@/src/expm1.c \
- @MPFR_TREE@/src/factorial.c \
- @MPFR_TREE@/src/fits_intmax.c \
- @MPFR_TREE@/src/fits_sshort.c \
- @MPFR_TREE@/src/fits_uint.c \
- @MPFR_TREE@/src/fits_uintmax.c \
- @MPFR_TREE@/src/fits_ushort.c \
- @MPFR_TREE@/src/fma.c \
- @MPFR_TREE@/src/fmma.c \
- @MPFR_TREE@/src/fms.c \
- @MPFR_TREE@/src/fpif.c \
- @MPFR_TREE@/src/frac.c \
- @MPFR_TREE@/src/frexp.c \
- @MPFR_TREE@/src/gamma.c \
- @MPFR_TREE@/src/gamma_inc.c \
- @MPFR_TREE@/src/gammaonethird.c \
- @MPFR_TREE@/src/get_d64.c \
- @MPFR_TREE@/src/get_d128.c \
- @MPFR_TREE@/src/get_exp.c \
- @MPFR_TREE@/src/get_f.c \
- @MPFR_TREE@/src/get_float128.c \
- @MPFR_TREE@/src/get_flt.c \
- @MPFR_TREE@/src/get_ld.c \
- @MPFR_TREE@/src/get_q.c \
- @MPFR_TREE@/src/get_sj.c \
- @MPFR_TREE@/src/get_uj.c \
- @MPFR_TREE@/src/grandom.c \
- @MPFR_TREE@/src/hypot.c \
- @MPFR_TREE@/src/inits.c \
- @MPFR_TREE@/src/inp_str.c \
- @MPFR_TREE@/src/int_ceil_log2.c \
- @MPFR_TREE@/src/isinf.c \
- @MPFR_TREE@/src/isnan.c \
- @MPFR_TREE@/src/isregular.c \
- @MPFR_TREE@/src/iszero.c \
- @MPFR_TREE@/src/jn.c \
- @MPFR_TREE@/src/li2.c \
- @MPFR_TREE@/src/lngamma.c \
- @MPFR_TREE@/src/log10.c \
- @MPFR_TREE@/src/log1p.c \
- @MPFR_TREE@/src/logging.c \
- @MPFR_TREE@/src/log_ui.c \
- @MPFR_TREE@/src/min_prec.c \
- @MPFR_TREE@/src/minmax.c \
- @MPFR_TREE@/src/modf.c \
- @MPFR_TREE@/src/mpfr-mini-gmp.c \
- @MPFR_TREE@/src/mul_2exp.c \
- @MPFR_TREE@/src/mul_d.c \
- @MPFR_TREE@/src/mul_1_extracted.c \
- @MPFR_TREE@/src/nrandom.c \
- @MPFR_TREE@/src/odd_p.c \
- @MPFR_TREE@/src/out_str.c \
- @MPFR_TREE@/src/pow.c \
- @MPFR_TREE@/src/pow_si.c \
- @MPFR_TREE@/src/pow_ui.c \
- @MPFR_TREE@/src/pow_z.c \
- @MPFR_TREE@/src/print_raw.c \
- @MPFR_TREE@/src/print_rnd_mode.c \
- @MPFR_TREE@/src/printf.c \
- @MPFR_TREE@/src/random_deviate.c \
- @MPFR_TREE@/src/rec_sqrt.c \
- @MPFR_TREE@/src/reldiff.c \
- @MPFR_TREE@/src/rndna.c \
- @MPFR_TREE@/src/root.c \
- @MPFR_TREE@/src/sec.c \
- @MPFR_TREE@/src/sech.c \
- @MPFR_TREE@/src/set_d64.c \
- @MPFR_TREE@/src/set_d128.c \
- @MPFR_TREE@/src/set_exp.c \
- @MPFR_TREE@/src/set_flt.c \
- @MPFR_TREE@/src/set_float128.c \
- @MPFR_TREE@/src/set_inf.c \
- @MPFR_TREE@/src/set_ld.c \
- @MPFR_TREE@/src/set_nan.c \
- @MPFR_TREE@/src/set_prc_raw.c \
- @MPFR_TREE@/src/set_si.c \
- @MPFR_TREE@/src/set_sj.c \
- @MPFR_TREE@/src/set_str_raw.c \
- @MPFR_TREE@/src/set_ui.c \
- @MPFR_TREE@/src/set_uj.c \
- @MPFR_TREE@/src/setsign.c \
- @MPFR_TREE@/src/signbit.c \
- @MPFR_TREE@/src/sinh.c \
- @MPFR_TREE@/src/sinh_cosh.c \
- @MPFR_TREE@/src/stack_interface.c \
- @MPFR_TREE@/src/sub_d.c \
- @MPFR_TREE@/src/sub1sp1_extracted.c \
- @MPFR_TREE@/src/subnormal.c \
- @MPFR_TREE@/src/sum.c \
- @MPFR_TREE@/src/tan.c \
- @MPFR_TREE@/src/tanh.c \
- @MPFR_TREE@/src/total_order.c \
- @MPFR_TREE@/src/uceil_exp2.c \
- @MPFR_TREE@/src/uceil_log2.c \
- @MPFR_TREE@/src/ufloor_log2.c \
- @MPFR_TREE@/src/ui_pow.c \
- @MPFR_TREE@/src/ui_pow_ui.c \
- @MPFR_TREE@/src/urandom.c \
- @MPFR_TREE@/src/urandomb.c \
- @MPFR_TREE@/src/vasprintf.c \
- @MPFR_TREE@/src/volatile.c \
- @MPFR_TREE@/src/yn.c \
- @MPFR_TREE@/src/zeta.c \
- @MPFR_TREE@/src/zeta_ui.c
-
-@build_TRUE@dist_check_SCRIPTS = mpfr.test
-@build_TRUE@TESTS = mpfr.test
-mpfrtest_SOURCES = mpfrtest.c
-mpfrtest_CPPFLAGS = -Iinclude $(GMP_INCLUDES)
-LDADD = libmpfr.a $(GMP_LIBS)
-
-# Reconfig
-reconfig_prereq = $(GMP_DEPEND)
-DISTCLEANFILES = config.force
-
-# Rebuild
-rebuild_prereq =
-rebuild_target = all
-CLEANFILES = rebuild.stamp
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/reconfig.am $(srcdir)/../../am/rebuild.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
- esac;
-$(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/reconfig.am $(srcdir)/../../am/rebuild.am $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-config.h: stamp-h1
- @test -f $@ || rm -f stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-
-clean-checkPROGRAMS:
- -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-@MPFR_TREE@/src/$(am__dirstamp):
- @$(MKDIR_P) @MPFR_TREE@/src
- @: > @MPFR_TREE@/src/$(am__dirstamp)
-@MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) @MPFR_TREE@/src/$(DEPDIR)
- @: > @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/abort_prec_max.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/add.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/add1.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/add1sp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/add_d.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/add_ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/agm.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/atan.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/atan2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/cache.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/clear.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/clears.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/cmp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/cmp2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/cmpabs.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/cmp_si.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/cmp_ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/comparisons.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/const_catalan.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/const_euler.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/const_log2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/const_pi.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/constant.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/cos.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/div.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/div_2si.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/div_2ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/div_ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/exceptions.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/exp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/exp2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/exp3.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/exp_2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/extract.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/fits_sint.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/fits_slong.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/fits_ulong.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/free_cache.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/get_d.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/get_si.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/get_str.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/get_z.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/get_z_exp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/get_ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/gmp_op.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/init.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/init2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/inits2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/isinteger.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/isnum.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/isqrt.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/log.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/log2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/min_prec.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mpfr-gmp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mpn_exp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mp_clz_tab.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mul.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mul_2si.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mul_2ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mul_ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/mulders.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/nbits_ulong.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/neg.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/next.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/pool.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/powerof2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/rem1.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/rint.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/round_near_x.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/round_p.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/round_prec.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/scale2.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_d.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_dfl_prec.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_f.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_prec.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_q.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_rnd.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_si_2exp.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_str.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_ui_2exp.$(OBJEXT): \
- @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_z.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_z_exp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/set_zero.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/setmax.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/setmin.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sgn.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sin.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sin_cos.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/si_op.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sqr.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sqrt.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sqrt_ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/strtofr.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sub.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sub1.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sub1sp.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/sub_ui.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/swap.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/ubf.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/ui_div.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/ui_sub.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@MPFR_TREE@/src/version.$(OBJEXT): @MPFR_TREE@/src/$(am__dirstamp) \
- @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-
-libmpfr.a: $(libmpfr_a_OBJECTS) $(libmpfr_a_DEPENDENCIES) $(EXTRA_libmpfr_a_DEPENDENCIES)
- $(AM_V_at)-rm -f libmpfr.a
- $(AM_V_AR)$(libmpfr_a_AR) libmpfr.a $(libmpfr_a_OBJECTS) $(libmpfr_a_LIBADD)
- $(AM_V_at)$(RANLIB) libmpfr.a
-
-mpfrtest$(EXEEXT): $(mpfrtest_OBJECTS) $(mpfrtest_DEPENDENCIES) $(EXTRA_mpfrtest_DEPENDENCIES)
- @rm -f mpfrtest$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(mpfrtest_OBJECTS) $(mpfrtest_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
- -rm -f @MPFR_TREE@/src/*.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpfrtest-mpfrtest.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/abort_prec_max.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/add.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/add1.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/add1sp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/add_d.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/add_ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/agm.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/atan.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/atan2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/cache.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/clear.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/clears.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/cmp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/cmp2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/cmp_si.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/cmp_ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/cmpabs.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/comparisons.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/const_catalan.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/const_euler.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/const_log2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/const_pi.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/constant.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/cos.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/div.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/div_2si.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/div_2ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/div_ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/exceptions.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/exp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/exp2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/exp3.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/exp_2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/extract.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/fits_sint.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/fits_slong.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/fits_ulong.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/free_cache.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/get_d.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/get_si.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/get_str.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/get_ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/get_z.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/get_z_exp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/gmp_op.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/init.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/init2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/inits2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/isinteger.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/isnum.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/isqrt.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/log.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/log2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/min_prec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mp_clz_tab.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mpfr-gmp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mpn_exp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mul.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mul_2si.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mul_2ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mul_ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/mulders.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/nbits_ulong.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/neg.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/next.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/pool.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/powerof2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/rem1.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/rint.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/round_near_x.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/round_p.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/round_prec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/scale2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_d.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_dfl_prec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_f.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_prec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_q.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_rnd.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_si_2exp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_str.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_ui_2exp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_z.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_z_exp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/set_zero.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/setmax.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/setmin.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sgn.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/si_op.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sin.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sin_cos.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sqr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sqrt.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sqrt_ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/strtofr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sub.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sub1.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sub1sp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/sub_ui.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/swap.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/ubf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/ui_div.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/ui_sub.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@MPFR_TREE@/src/$(DEPDIR)/version.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-mpfrtest-mpfrtest.o: mpfrtest.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mpfrtest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpfrtest-mpfrtest.o -MD -MP -MF $(DEPDIR)/mpfrtest-mpfrtest.Tpo -c -o mpfrtest-mpfrtest.o `test -f 'mpfrtest.c' || echo '$(srcdir)/'`mpfrtest.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpfrtest-mpfrtest.Tpo $(DEPDIR)/mpfrtest-mpfrtest.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpfrtest.c' object='mpfrtest-mpfrtest.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mpfrtest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpfrtest-mpfrtest.o `test -f 'mpfrtest.c' || echo '$(srcdir)/'`mpfrtest.c
-
-mpfrtest-mpfrtest.obj: mpfrtest.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mpfrtest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpfrtest-mpfrtest.obj -MD -MP -MF $(DEPDIR)/mpfrtest-mpfrtest.Tpo -c -o mpfrtest-mpfrtest.obj `if test -f 'mpfrtest.c'; then $(CYGPATH_W) 'mpfrtest.c'; else $(CYGPATH_W) '$(srcdir)/mpfrtest.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpfrtest-mpfrtest.Tpo $(DEPDIR)/mpfrtest-mpfrtest.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpfrtest.c' object='mpfrtest-mpfrtest.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mpfrtest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpfrtest-mpfrtest.obj `if test -f 'mpfrtest.c'; then $(CYGPATH_W) 'mpfrtest.c'; else $(CYGPATH_W) '$(srcdir)/mpfrtest.c'; fi`
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
- test ! -s cscope.files \
- || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
- -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
- rm -f $< $@
- $(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
- @:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(am__set_TESTS_bases); \
- am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
- redo_bases=`for i in $$bases; do \
- am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
- done`; \
- if test -n "$$redo_bases"; then \
- redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
- redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
- if $(am__make_dryrun); then :; else \
- rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
- fi; \
- fi; \
- if test -n "$$am__remaking_logs"; then \
- echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
- "recursion detected" >&2; \
- elif test -n "$$redo_logs"; then \
- am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
- fi; \
- if $(am__make_dryrun); then :; else \
- st=0; \
- errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
- for i in $$redo_bases; do \
- test -f $$i.trs && test -r $$i.trs \
- || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
- test -f $$i.log && test -r $$i.log \
- || { echo "$$errmsg $$i.log" >&2; st=1; }; \
- done; \
- test $$st -eq 0 || exit 1; \
- fi
- @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
- ws='[ ]'; \
- results=`for b in $$bases; do echo $$b.trs; done`; \
- test -n "$$results" || results=/dev/null; \
- all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
- pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
- fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
- skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
- xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
- xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
- error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
- if test `expr $$fail + $$xpass + $$error` -eq 0; then \
- success=true; \
- else \
- success=false; \
- fi; \
- br='==================='; br=$$br$$br$$br$$br; \
- result_count () \
- { \
- if test x"$$1" = x"--maybe-color"; then \
- maybe_colorize=yes; \
- elif test x"$$1" = x"--no-color"; then \
- maybe_colorize=no; \
- else \
- echo "$@: invalid 'result_count' usage" >&2; exit 4; \
- fi; \
- shift; \
- desc=$$1 count=$$2; \
- if test $$maybe_colorize = yes && test $$count -gt 0; then \
- color_start=$$3 color_end=$$std; \
- else \
- color_start= color_end=; \
- fi; \
- echo "$${color_start}# $$desc $$count$${color_end}"; \
- }; \
- create_testsuite_report () \
- { \
- result_count $$1 "TOTAL:" $$all "$$brg"; \
- result_count $$1 "PASS: " $$pass "$$grn"; \
- result_count $$1 "SKIP: " $$skip "$$blu"; \
- result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
- result_count $$1 "FAIL: " $$fail "$$red"; \
- result_count $$1 "XPASS:" $$xpass "$$red"; \
- result_count $$1 "ERROR:" $$error "$$mgn"; \
- }; \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- create_testsuite_report --no-color; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for b in $$bases; do echo $$b; done \
- | $(am__create_global_log); \
- } >$(TEST_SUITE_LOG).tmp || exit 1; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- if $$success; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
- fi; \
- echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
- echo "$${col}$$br$${std}"; \
- create_testsuite_report --maybe-color; \
- echo "$$col$$br$$std"; \
- if $$success; then :; else \
- echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
- fi; \
- echo "$$col$$br$$std"; \
- fi; \
- $$success || exit 1
-
-check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS)
- @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
- @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- trs_list=`for i in $$bases; do echo $$i.trs; done`; \
- log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
- exit $$?;
-recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS)
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- bases=`for i in $$bases; do echo $$i; done \
- | $(am__list_recheck_tests)` || exit 1; \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- log_list=`echo $$log_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
- am__force_recheck=am--force-recheck \
- TEST_LOGS="$$log_list"; \
- exit $$?
-.test.log:
- @p='$<'; \
- $(am__set_b); \
- $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
-@am__EXEEXT_TRUE@ @p='$<'; \
-@am__EXEEXT_TRUE@ $(am__set_b); \
-@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
- $(am__post_remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__post_remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__post_remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__post_remove_distdir)
-
-dist-zstd: distdir
- tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
- $(am__post_remove_distdir)
-
-dist-tarZ: distdir
- @echo WARNING: "Support for distribution archives compressed with" \
- "legacy program 'compress' is deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__post_remove_distdir)
-
-dist-shar: distdir
- @echo WARNING: "Support for shar distribution archives is" \
- "deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
- $(am__post_remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__post_remove_distdir)
-
-dist dist-all:
- $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
- $(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- *.tar.zst*) \
- zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
- esac
- chmod -R a-w $(distdir)
- chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build/sub \
- && ../../configure \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=../.. --prefix="$$dc_install_base" \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__post_remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \
- $(dist_check_SCRIPTS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-recursive
-all-am: Makefile $(LIBRARIES) config.h
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
- -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
- -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/$(am__dirstamp)
- -rm -f @MPFR_TREE@/src/$(am__dirstamp)
- -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f ./$(DEPDIR)/mpfrtest-mpfrtest.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/abort_prec_max.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add1.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add1sp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add_d.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/agm.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/atan.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/atan2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cache.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/clear.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/clears.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp_si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmpabs.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/comparisons.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_catalan.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_euler.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_log2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_pi.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/constant.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cos.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div_2si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div_2ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exceptions.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp3.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp_2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/extract.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/fits_sint.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/fits_slong.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/fits_ulong.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/free_cache.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_d.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_str.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_z.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_z_exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/gmp_op.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/init.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/init2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/inits2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/isinteger.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/isnum.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/isqrt.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/log.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/log2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/min_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mp_clz_tab.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mpfr-gmp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mpn_exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul_2si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul_2ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mulders.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/nbits_ulong.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/neg.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/next.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/pool.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/powerof2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/rem1.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/rint.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/round_near_x.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/round_p.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/round_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/scale2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_d.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_dfl_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_f.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_q.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_rnd.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_si_2exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_str.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_ui_2exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_z.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_z_exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_zero.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/setmax.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/setmin.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sgn.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/si_op.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sin.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sin_cos.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sqr.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sqrt.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sqrt_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/strtofr.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub1.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub1sp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/swap.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/ubf.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/ui_div.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/ui_sub.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/version.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-hdr distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f ./$(DEPDIR)/mpfrtest-mpfrtest.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/abort_prec_max.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add1.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add1sp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add_d.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/add_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/agm.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/atan.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/atan2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cache.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/clear.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/clears.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp_si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmp_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cmpabs.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/comparisons.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_catalan.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_euler.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_log2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/const_pi.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/constant.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/cos.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div_2si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div_2ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/div_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exceptions.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp3.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/exp_2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/extract.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/fits_sint.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/fits_slong.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/fits_ulong.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/free_cache.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_d.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_str.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_z.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/get_z_exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/gmp_op.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/init.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/init2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/inits2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/isinteger.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/isnum.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/isqrt.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/log.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/log2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/min_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mp_clz_tab.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mpfr-gmp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mpn_exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul_2si.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul_2ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mul_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/mulders.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/nbits_ulong.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/neg.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/next.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/pool.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/powerof2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/rem1.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/rint.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/round_near_x.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/round_p.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/round_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/scale2.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_d.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_dfl_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_f.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_prec.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_q.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_rnd.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_si_2exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_str.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_ui_2exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_z.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_z_exp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/set_zero.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/setmax.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/setmin.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sgn.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/si_op.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sin.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sin_cos.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sqr.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sqrt.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sqrt_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/strtofr.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub1.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub1sp.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/sub_ui.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/swap.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/ubf.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/ui_div.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/ui_sub.Po
- -rm -f @MPFR_TREE@/src/$(DEPDIR)/version.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) all check-am install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
- am--depfiles am--refresh check check-TESTS check-am clean \
- clean-checkPROGRAMS clean-cscope clean-generic \
- clean-noinstLIBRARIES cscope cscopelist-am ctags ctags-am dist \
- dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
- dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \
- distclean-compile distclean-generic distclean-hdr \
- distclean-tags distcleancheck distdir distuninstallcheck dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
- recheck tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-dist-hook:
- cd "$(distdir)" && rm -rf $(NEVER_DIST)
-$(libmpfr_a_OBJECTS): $(GMP_DEPEND)
-mpfr.log: mpfrtest$(EXEEXT)
-
-@GMP_RULE@
-config.force: $(reconfig_prereq)
- @if test -f $@; then :; else \
- trap 'rm -rf reconfig.lock' 1 2 13 15; \
- if mkdir reconfig.lock 2>/dev/null; then \
- echo timestamp >$@; \
- $(SHELL) ./config.status --recheck; \
- rmdir reconfig.lock; \
- else \
- while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \
- test -f $@; \
- fi; \
- fi
-rebuild.stamp: $(rebuild_target)
- echo timestamp >$@
-
-.PHONY: rebuild
-rebuild: $(rebuild_prereq)
- @dry=; for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=*|--*);; \
- *n*) dry=:;; \
- esac; \
- done; \
- if test -f rebuild.stamp; then :; else \
- $$dry trap 'rm -rf rebuild.lock' 1 2 13 15; \
- if $$dry mkdir rebuild.lock 2>/dev/null; then \
- $(MAKE) $(AM_MAKEFLAGS) rebuild.stamp; \
- $$dry rmdir rebuild.lock; \
- else \
- while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \
- fi; \
- $$dry test -f rebuild.stamp; exit $$?; \
- fi
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/libs/mpfr/README b/Build/source/libs/mpfr/README
deleted file mode 100644
index cec7e17441d..00000000000
--- a/Build/source/libs/mpfr/README
+++ /dev/null
@@ -1,14 +0,0 @@
- Building GNU MPFR as part of the TL tree
- ========================================
-
-This directory libs/mpfr/ uses a proxy Makefile.am to build the GNU MPFR
-library 'libmpfr' from the unmodified source tree in libs/mpfr/mpfr-src/,
-bypassing the original build system.
-
-As far as applicable, the tests in libs/mpfr/mpfr-src/configure have been
-translated into equivalent test in libs/mpfr/configure.ac.
-
-=============================
-
-2014-03-31 Taco Hoekwater <taco@metatex.org>
-2014-05-23 Peter Breitenlohner <peb@mppmu.mpg.de>
diff --git a/Build/source/libs/mpfr/TLpatches/ChangeLog b/Build/source/libs/mpfr/TLpatches/ChangeLog
deleted file mode 100644
index 40610a8ec82..00000000000
--- a/Build/source/libs/mpfr/TLpatches/ChangeLog
+++ /dev/null
@@ -1,51 +0,0 @@
-2020-07-12 Akira Kakuto <kakuto@w32tex.org>
-
- Imported mpfr-4.1.0 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2019-02-01 Akira Kakuto <kakuto@w32tex.org>
-
- Imported mpfr-4.0.2 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2018-02-10 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Imported mpfr-4.0.1 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2017-12-26 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Imported mpfr-4.0.0 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2017-09-08 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Imported mpfr-3.1.6 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2016-09-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Imported mpfr-3.1.5 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2016-03-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Imported mpfr-3.1.4 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2015-06-20 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Imported mpfr-3.1.3 source tree from:
- http://ftp.gnu.org/gnu/mpfr/
- * patch-01-TL: Adapted.
-
-2014-05-23 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-01-TL (new): Modifications for the TeX Live build system.
diff --git a/Build/source/libs/mpfr/TLpatches/TL-Changes b/Build/source/libs/mpfr/TLpatches/TL-Changes
deleted file mode 100644
index 88c1501ab1d..00000000000
--- a/Build/source/libs/mpfr/TLpatches/TL-Changes
+++ /dev/null
@@ -1,25 +0,0 @@
-Changes applied to the mpfr-4.1.0/ tree as obtained from:
- http://ftp.gnu.org/gnu/mpfr/
-
-Removed:
- COPYING
- COPYING.LESSER
- Makefile.in
- aclocal.m4
- ar-lib
- compile
- config.guess
- config.sub
- configure
- depcomp
- doc/
- examples/
- install-sh
- ltmain.sh
- m4/
- missing
- src/Makefile.in
- test-driver
- tests/
- tools/
- tune/
diff --git a/Build/source/libs/mpfr/TLpatches/patch-01-TL b/Build/source/libs/mpfr/TLpatches/patch-01-TL
deleted file mode 100644
index fe9a5c6a662..00000000000
--- a/Build/source/libs/mpfr/TLpatches/patch-01-TL
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur mpfr-4.1.0/src/mparam_h.in mpfr-src/src/mparam_h.in
---- mpfr-4.1.0/src/mparam_h.in Thu Jan 09 03:11:13 2020
-+++ mpfr-src/src/mparam_h.in Sun Jul 12 16:40:20 2020
-@@ -31,6 +31,8 @@
- /* Note: the different macros used here are those defined by gcc,
- for example with gcc -mtune=native -dM -E -xc /dev/null */
-
-+#elif 1 /* no processor specific optimization for TeX Live */
-+#define MPFR_TUNE_CASE "default"
- #elif (defined (__tune_core2__) || defined (__tune_nocona__)) && defined (__x86_64) /* 64-bit Core 2 or Xeon */
- #define MPFR_TUNE_CASE "src/x86_64/core2/mparam.h"
- #include "x86_64/core2/mparam.h"
diff --git a/Build/source/libs/mpfr/ac/mpfr.ac b/Build/source/libs/mpfr/ac/mpfr.ac
deleted file mode 100644
index b04205f7af3..00000000000
--- a/Build/source/libs/mpfr/ac/mpfr.ac
+++ /dev/null
@@ -1,9 +0,0 @@
-## libs/mpfr/ac/mpfr.ac: configure.ac fragment for the TeX Live subdirectory libs/mpfr/
-dnl
-dnl Copyright (C) 2014 Taco Hoekwater <taco@metatex.org>
-dnl You may freely use, modify and/or distribute this file.
-dnl
-## basic check of system mpfr
-KPSE_TRY_LIB([mpfr],
- [#include <mpfr.h>],
- [const char *s = mpfr_get_version();])
diff --git a/Build/source/libs/mpfr/ac/withenable.ac b/Build/source/libs/mpfr/ac/withenable.ac
deleted file mode 100644
index 8a9fd5b5934..00000000000
--- a/Build/source/libs/mpfr/ac/withenable.ac
+++ /dev/null
@@ -1,8 +0,0 @@
-## libs/mpfr/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/mpfr/
-dnl
-dnl Copyright (C) 2014 Taco Hoekwater <taco@metatex.org>
-dnl Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org>
-dnl You may freely use, modify and/or distribute this file.
-dnl
-## configure options and TL libraries required for mpfr
-KPSE_WITH_LIB([mpfr], [gmp])
diff --git a/Build/source/libs/mpfr/aclocal.m4 b/Build/source/libs/mpfr/aclocal.m4
deleted file mode 100644
index c97b3fe8d85..00000000000
--- a/Build/source/libs/mpfr/aclocal.m4
+++ /dev/null
@@ -1,1177 +0,0 @@
-# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.16'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.3], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.3])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
- [$1], [CXX], [depcc="$CXX" am_compiler_list=],
- [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
- [$1], [UPC], [depcc="$UPC" am_compiler_list=],
- [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
- [--enable-dependency-tracking],
- [do not reject slow dependency extractors])
-AS_HELP_STRING(
- [--disable-dependency-tracking],
- [speeds up one-time build])])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- # TODO: see whether this extra hack can be removed once we start
- # requiring Autoconf 2.70 or later.
- AS_CASE([$CONFIG_FILES],
- [*\'*], [eval set x "$CONFIG_FILES"],
- [*], [set x $CONFIG_FILES])
- shift
- # Used to flag and report bootstrapping failures.
- am_rc=0
- for am_mf
- do
- # Strip MF so we end up with the name of the file.
- am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile which includes
- # dependency-tracking related rules and includes.
- # Grep'ing the whole file directly is not great: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
- || continue
- am_dirpart=`AS_DIRNAME(["$am_mf"])`
- am_filepart=`AS_BASENAME(["$am_mf"])`
- AM_RUN_LOG([cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles]) || am_rc=$?
- done
- if test $am_rc -ne 0; then
- AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. If GNU make was not used, consider
- re-running the configure script with MAKE="gmake" (or whatever is
- necessary). You can also try re-running configure with the
- '--disable-dependency-tracking' option to at least be able to build
- the package (albeit without support for automatic dependency tracking).])
- fi
- AS_UNSET([am_dirpart])
- AS_UNSET([am_filepart])
- AS_UNSET([am_mf])
- AS_UNSET([am_rc])
- rm -f conftest-deps.mk
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking is enabled.
-# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
-# order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi
-dnl The trailing newline in this macro's definition is deliberate, for
-dnl backward compatibility and to allow trailing 'dnl'-style comments
-dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
-])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well. Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
- [enable], [m4_define([am_maintainer_other], [disable])],
- [disable], [m4_define([am_maintainer_other], [enable])],
- [m4_define([am_maintainer_other], [enable])
- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode's default is 'disable' unless 'enable' is passed
- AC_ARG_ENABLE([maintainer-mode],
- [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
- am_maintainer_other[ make rules and dependencies not useful
- (and sometimes confusing) to the casual installer])],
- [USE_MAINTAINER_MODE=$enableval],
- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST([MAINT])dnl
-]
-)
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check whether make has an 'include' directive that can support all
-# the idioms we need for our automatic dependency tracking code.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
-cat > confinc.mk << 'END'
-am__doit:
- @echo this is the am__doit target >confinc.out
-.PHONY: am__doit
-END
-am__include="#"
-am__quote=
-# BSD make does it like this.
-echo '.include "confinc.mk" # ignored' > confmf.BSD
-# Other make implementations (GNU, Solaris 10, AIX) do it like this.
-echo 'include confinc.mk # ignored' > confmf.GNU
-_am_result=no
-for s in GNU BSD; do
- AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
- AS_CASE([$?:`cat confinc.out 2>/dev/null`],
- ['0:this is the am__doit target'],
- [AS_CASE([$s],
- [BSD], [am__include='.include' am__quote='"'],
- [am__include='include' am__quote=''])])
- if test "$am__include" != "#"; then
- _am_result="yes ($s style)"
- break
- fi
-done
-rm -f confinc.* confmf.*
-AC_MSG_RESULT([${_am_result}])
-AC_SUBST([am__include])])
-AC_SUBST([am__quote])])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- MISSING="\${SHELL} '$am_aux_dir/missing'"
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/mpfr-check-printf-spec.m4])
-m4_include([m4/mpfr-configs.m4])
-m4_include([m4/mpfr-long-double-format.m4])
-m4_include([../../m4/kpse-common.m4])
-m4_include([../../m4/kpse-gmp-flags.m4])
-m4_include([../../m4/kpse-search-libs.m4])
-m4_include([../../m4/kpse-size-max.m4])
-m4_include([../../m4/kpse-visibility.m4])
-m4_include([../../m4/kpse-warnings.m4])
diff --git a/Build/source/libs/mpfr/config.h.in b/Build/source/libs/mpfr/config.h.in
deleted file mode 100644
index 71f81eceba8..00000000000
--- a/Build/source/libs/mpfr/config.h.in
+++ /dev/null
@@ -1,152 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
- systems. This function is required for `alloca.c' support on those systems.
- */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
- */
-#undef HAVE_ALLOCA_H
-
-/* Define if denormalized floats work. */
-#undef HAVE_DENORMS
-
-/* Define to 1 if the system has the type `intmax_t'. */
-#undef HAVE_INTMAX_T
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define one of the following to 1 for the format of a `long double'.
- If your format is not among these choices, or you don't know what it is,
- then leave all undefined.
- IEEE_EXT is the 10-byte IEEE extended precision format.
- IEEE_QUAD is the 16-byte IEEE quadruple precision format.
- LITTLE or BIG is the endianness. */
-#undef HAVE_LDOUBLE_IEEE_EXT_LITTLE
-#undef HAVE_LDOUBLE_IEEE_QUAD_LITTLE
-#undef HAVE_LDOUBLE_IEEE_QUAD_BIG
-
-/* Define if compiler supports long long */
-#undef HAVE_LONG_LONG
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define if stdarg */
-#undef HAVE_STDARG
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `va_copy' function. */
-#undef HAVE_VA_COPY
-
-/* Define to 1 if you have the <wchar.h> header file. */
-#undef HAVE_WCHAR_H
-
-/* Define to 1 if you have the `__va_copy' function. */
-#undef HAVE___VA_COPY
-
-/* Define if the FP division by 0 fails. */
-#undef MPFR_ERRDIVZERO
-
-/* Define if you have the `fesetround' function via the <fenv.h> header file.
- */
-#undef MPFR_HAVE_FESETROUND
-
-/* Define if you have a working INTMAX_MAX. */
-#undef MPFR_HAVE_INTMAX_MAX
-
-/* Define if NAN == NAN. */
-#undef MPFR_NANISNAN
-
-/* Charset is not consecutive */
-#undef MPFR_NO_CONSECUTIVE_CHARSET
-
-/* gmp_printf cannot use `hh' length modifier */
-#undef NPRINTF_HH
-
-/* gmp_printf cannot read intmax_t */
-#undef NPRINTF_J
-
-/* gmp_printf cannot read long double */
-#undef NPRINTF_L
-
-/* gmp_printf cannot read long long int */
-#undef NPRINTF_LL
-
-/* gmp_printf cannot read ptrdiff_t */
-#undef NPRINTF_T
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to `((size_t)-1)' if <stdint.h> does not define it. */
-#undef SIZE_MAX
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at runtime.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
diff --git a/Build/source/libs/mpfr/configure b/Build/source/libs/mpfr/configure
deleted file mode 100755
index 707319bfa11..00000000000
--- a/Build/source/libs/mpfr/configure
+++ /dev/null
@@ -1,8574 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mpfr (TeX Live) 4.1.0.
-#
-# Report bugs to <tex-k@tug.org>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org
-$0: about your system, including any error possibly output
-$0: before this message. Then install a modern shell, or
-$0: manually run the script under such a shell if you do
-$0: have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='mpfr (TeX Live)'
-PACKAGE_TARNAME='mpfr--tex-live-'
-PACKAGE_VERSION='4.1.0'
-PACKAGE_STRING='mpfr (TeX Live) 4.1.0'
-PACKAGE_BUGREPORT='tex-k@tug.org'
-PACKAGE_URL=''
-
-ac_unique_file="mpfr-src/src/mpfr.h"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-MPFR_TREE
-GMP_RULE
-GMP_DEPEND
-GMP_LIBS
-GMP_INCLUDES
-build_FALSE
-build_TRUE
-MPFR_LIBM
-ALLOCA
-EGREP
-GREP
-CPP
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-VISIBILITY_CFLAGS
-LN_S
-RANLIB
-WARNING_CFLAGS
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL
-am__quote'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_maintainer_mode
-enable_dependency_tracking
-enable_compiler_warnings
-with_system_gmp
-with_gmp_includes
-with_gmp_libdir
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures mpfr (TeX Live) 4.1.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/mpfr--tex-live-]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of mpfr (TeX Live) 4.1.0:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-maintainer-mode
- enable make rules and dependencies not useful (and
- sometimes confusing) to the casual installer
- --enable-dependency-tracking
- do not reject slow dependency extractors
- --disable-dependency-tracking
- speeds up one-time build
- --enable-compiler-warnings=[no|min|yes|max|all]
- Turn on compiler warnings [default: yes if
- maintainer-mode, min otherwise]
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-system-gmp use installed gmp headers and library
- --with-gmp-includes=DIR gmp headers installed in DIR
- --with-gmp-libdir=DIR gmp library installed in DIR
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <tex-k@tug.org>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-mpfr (TeX Live) configure 4.1.0
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------- ##
-## Report this to tex-k@tug.org ##
-## ---------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- as_decl_name=`echo $2|sed 's/ *(.*//'`
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
- (void) $as_decl_use;
-#else
- (void) $as_decl_name;
-#endif
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_decl
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by mpfr (TeX Live) $as_me 4.1.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-
-
-am__api_version='1.16'
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-
-if test x"${MISSING+set}" != xset; then
- MISSING="\${SHELL} '$am_aux_dir/missing'"
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
-$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
-cat > confinc.mk << 'END'
-am__doit:
- @echo this is the am__doit target >confinc.out
-.PHONY: am__doit
-END
-am__include="#"
-am__quote=
-# BSD make does it like this.
-echo '.include "confinc.mk" # ignored' > confmf.BSD
-# Other make implementations (GNU, Solaris 10, AIX) do it like this.
-echo 'include confinc.mk # ignored' > confmf.GNU
-_am_result=no
-for s in GNU BSD; do
- { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
- (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- case $?:`cat confinc.out 2>/dev/null` in #(
- '0:this is the am__doit target') :
- case $s in #(
- BSD) :
- am__include='.include' am__quote='"' ;; #(
- *) :
- am__include='include' am__quote='' ;;
-esac ;; #(
- *) :
- ;;
-esac
- if test "$am__include" != "#"; then
- _am_result="yes ($s style)"
- break
- fi
-done
-rm -f confinc.* confmf.*
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
-$as_echo "${_am_result}" >&6; }
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-# Check whether --enable-compiler-warnings was given.
-if test "${enable_compiler_warnings+set}" = set; then :
- enableval=$enable_compiler_warnings;
-fi
-case $enable_compiler_warnings in #(
- no | min | yes | max | all) :
- ;; #(
- *) :
- if test "x$enable_maintainer_mode" = xyes; then :
- enable_compiler_warnings=yes
-else
- enable_compiler_warnings=min
-fi ;;
-esac
-
-##tldbg KPSE_BASIC: Remember mpfr () as Kpse_Package (for future messages).
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='mpfr--tex-live-'
- VERSION='4.1.0'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
- # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
- if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5
-$as_echo_n "checking whether the compiler accepts prototypes... " >&6; }
-if ${kb_cv_c_prototypes+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-int
-main ()
-{
-extern void foo(int i,...);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- kb_cv_c_prototypes=yes
-else
- kb_cv_c_prototypes=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5
-$as_echo "$kb_cv_c_prototypes" >&6; }
-if test "x$kb_cv_c_prototypes" = xno; then
- as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
-$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
-if ${kpse_cv_warning_cflags+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$GCC" = xyes; then
- kpse_cv_warning_cflags=
-if test "x$enable_compiler_warnings" != xno; then
- kpse_cv_warning_cflags="-Wimplicit -Wreturn-type"
- case `$CC -dumpversion` in #(
- 3.4.* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #(
- *) :
- ;;
-esac
- case `$CC -dumpversion` in #(
- 3.[234].* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #(
- *) :
- ;;
-esac
- if test "x$enable_compiler_warnings" != xmin; then
- kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags"
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations"
- if test "x$enable_compiler_warnings" != xyes; then
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings"
- case `$CC -dumpversion` in #(
- 3.4.* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #(
- *) :
- ;;
-esac
- if test "x$enable_compiler_warnings" != xmax; then
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow"
- fi
- fi
- fi
-fi
-elif test "x$enable_compiler_warnings" = xno; then
- kpse_cv_warning_cflags=
-else
- kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5
-$as_echo "$kpse_cv_warning_cflags" >&6; }
-WARNING_CFLAGS=$kpse_cv_warning_cflags
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-
-echo 'tldbg:KPSE_COMPILER_VISIBILITY called.' >&5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for C to hide external symbols" >&5
-$as_echo_n "checking CFLAGS for C to hide external symbols... " >&6; }
-if ${kpse_cv_visibility_cflags+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-kpse_cv_visibility_cflags=unknown
-kpse_save_flags=$CFLAGS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
- extern void foo(void);
- void foo(void){printf("foo\n");}
-_ACEOF
-# FIXME: Add tests for non-GNU compilers
-for kpse_flag in '-fvisibility=hidden -fvisibility-inlines-hidden' '-fvisibility=hidden'; do
- CFLAGS="$kpse_save_flags -Werror $kpse_flag"
- if ac_fn_c_try_compile "$LINENO"; then :
- kpse_cv_visibility_cflags=$kpse_flag; break
-fi
-rm -f core conftest.err conftest.$ac_objext
-done
-CFLAGS=$kpse_save_flags
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_visibility_cflags" >&5
-$as_echo "$kpse_cv_visibility_cflags" >&6; }
-case $kpse_cv_visibility_cflags in #(
- unknown) :
- ;; #(
- *) :
- VISIBILITY_CFLAGS=$kpse_cv_visibility_cflags
- ;;
-esac
-
-
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-if test "x$host_alias" != x && test "x$build_alias" = x; then :
- as_fn_error $? "when cross-compiling you must specify both --host and --build." "$LINENO" 5
-fi
-eval kpse_build_alias=\${build_alias-$build}
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
-$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if ${ac_cv_header_time+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_time=yes
-else
- ac_cv_header_time=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
-$as_echo "$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-
-
-
-for ac_header in wchar.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default"
-if test "x$ac_cv_header_wchar_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_WCHAR_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-$as_echo "#define HAVE_STDARG 1" >>confdefs.h
-
-
-for ac_header in sys/time.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_time_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_TIME_H 1
-_ACEOF
-
-fi
-
-done
-
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments. Useless!
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
-$as_echo_n "checking for working alloca.h... " >&6; }
-if ${ac_cv_working_alloca_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <alloca.h>
-int
-main ()
-{
-char *p = (char *) alloca (2 * sizeof (int));
- if (p) return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_working_alloca_h=yes
-else
- ac_cv_working_alloca_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
-$as_echo "$ac_cv_working_alloca_h" >&6; }
-if test $ac_cv_working_alloca_h = yes; then
-
-$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
-$as_echo_n "checking for alloca... " >&6; }
-if ${ac_cv_func_alloca_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-# else
-# ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-void *alloca (size_t);
-# endif
-# endif
-# endif
-# endif
-#endif
-
-int
-main ()
-{
-char *p = (char *) alloca (1);
- if (p) return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_func_alloca_works=yes
-else
- ac_cv_func_alloca_works=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
-$as_echo "$ac_cv_func_alloca_works" >&6; }
-
-if test $ac_cv_func_alloca_works = yes; then
-
-$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
-
-else
- # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble. Some versions do not even contain alloca or
-# contain a buggy version. If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
-
-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-
-$as_echo "#define C_ALLOCA 1" >>confdefs.h
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
-$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if ${ac_cv_os_cray+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined CRAY && ! defined CRAY2
-webecray
-#else
-wenotbecray
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "webecray" >/dev/null 2>&1; then :
- ac_cv_os_cray=yes
-else
- ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
-$as_echo "$ac_cv_os_cray" >&6; }
-if test $ac_cv_os_cray = yes; then
- for ac_func in _getb67 GETB67 getb67; do
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
-_ACEOF
-
- break
-fi
-
- done
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
-$as_echo_n "checking stack direction for C alloca... " >&6; }
-if ${ac_cv_c_stack_direction+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_c_stack_direction=0
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-find_stack_direction (int *addr, int depth)
-{
- int dir, dummy = 0;
- if (! addr)
- addr = &dummy;
- *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
- dir = depth ? find_stack_direction (addr, depth - 1) : 0;
- return dir + dummy;
-}
-
-int
-main (int argc, char **argv)
-{
- return find_stack_direction (0, argc + !argv + 20) < 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_c_stack_direction=1
-else
- ac_cv_c_stack_direction=-1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
-$as_echo "$ac_cv_c_stack_direction" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
-
-
-fi
-
-
-ac_fn_c_check_decl "$LINENO" "SIZE_MAX" "ac_cv_have_decl_SIZE_MAX" "$ac_includes_default"
-if test "x$ac_cv_have_decl_SIZE_MAX" = xyes; then :
-
-else
-
-$as_echo "#define SIZE_MAX ((size_t)-1)" >>confdefs.h
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to copy va_list" >&5
-$as_echo_n "checking how to copy va_list... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdarg.h>
-
-int
-main ()
-{
-
- va_list ap1, ap2;
- va_copy(ap1, ap2);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: va_copy" >&5
-$as_echo "va_copy" >&6; }
-
-$as_echo "#define HAVE_VA_COPY 1" >>confdefs.h
-
-
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdarg.h>
-
-int
-main ()
-{
-
- va_list ap1, ap2;
- __va_copy(ap1, ap2);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-$as_echo "#define HAVE___VA_COPY 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: __va_copy" >&5
-$as_echo "__va_copy" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: memcpy" >&5
-$as_echo "memcpy" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-case $host in #(
- alpha*-*-*) :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IEEE-754 switches" >&5
-$as_echo_n "checking for IEEE-754 switches... " >&6; }
-if ${mpfr_cv_ieee_switches+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- saved_CFLAGS=$CFLAGS
- if test -n "$GCC"; then
- mpfr_cv_ieee_switches="-mfp-rounding-mode=d -mieee-with-inexact"
- else
- mpfr_cv_ieee_switches="-fprm d -ieee_with_inexact"
- fi
- CFLAGS="$CFLAGS $mpfr_cv_ieee_switches"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- mpfr_cv_ieee_switches=none
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$saved_CFLAGS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_ieee_switches" >&5
-$as_echo "$mpfr_cv_ieee_switches" >&6; }
- test "x$mpfr_cv_ieee_switches" = xnone || CFLAGS="$CFLAGS $mpfr_cv_ieee_switches"
- ;; #(
- *) :
- ;;
-esac
-
-ac_fn_c_check_type "$LINENO" "long long int" "ac_cv_type_long_long_int" "$ac_includes_default"
-if test "x$ac_cv_type_long_long_int" = xyes; then :
-
-$as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h
-
-fi
-
-
-ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default"
-if test "x$ac_cv_type_intmax_t" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INTMAX_T 1
-_ACEOF
-
-
-fi
-
-if test "x$ac_cv_type_intmax_t" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working INTMAX_MAX" >&5
-$as_echo_n "checking for working INTMAX_MAX... " >&6; }
-if ${mpfr_cv_have_intmax_max+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$srcdir/mpfr-src/src"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include "mpfr-intmax.h"
-int
-main ()
-{
-intmax_t x = INTMAX_MAX;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- mpfr_cv_have_intmax_max=yes
-else
- mpfr_cv_have_intmax_max=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS=$saved_CPPFLAGS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_have_intmax_max" >&5
-$as_echo "$mpfr_cv_have_intmax_max" >&6; }
- if test "x$mpfr_cv_have_intmax_max" = xyes; then
-
-$as_echo "#define MPFR_HAVE_INTMAX_MAX 1" >>confdefs.h
-
- fi
-fi
-
-kpse_search_save_LIBS=$LIBS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pow" >&5
-$as_echo_n "checking for library containing pow... " >&6; }
-if ${ac_cv_search_pow+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pow ();
-int
-main ()
-{
-return pow ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' m; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_pow=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_pow+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_pow+:} false; then :
-
-else
- ac_cv_search_pow=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pow" >&5
-$as_echo "$ac_cv_search_pow" >&6; }
-ac_res=$ac_cv_search_pow
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-LIBS=$kpse_search_save_LIBS
-case $ac_cv_search_pow in #(
- "none required") :
- ;; #(
- no) :
- as_fn_error $? "Sorry, did not find pow()" "$LINENO" 5 ;; #(
- *) :
- MPFR_LIBM=$ac_cv_search_pow ;;
-esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fesetround" >&5
-$as_echo_n "checking for fesetround... " >&6; }
-if ${mpfr_cv_have_fesetround+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-saved_LIBS=$LIBS
-LIBS="$LIBS $MPFR_LIBM"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <fenv.h>
-int
-main ()
-{
-fesetround(FE_TONEAREST);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- mpfr_cv_have_fesetround=yes
-else
- mpfr_cv_have_fesetround=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$saved_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_have_fesetround" >&5
-$as_echo "$mpfr_cv_have_fesetround" >&6; }
-if test "x$mpfr_cv_have_fesetround" = xyes; then
-
-$as_echo "#define MPFR_HAVE_FESETROUND 1" >>confdefs.h
-
-fi
-
-if test -n "$GCC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc float-conversion bug" >&5
-$as_echo_n "checking for gcc float-conversion bug... " >&6; }
-if ${mpfr_cv_gcc_floatconv_bug+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- saved_LIBS=$LIBS
- LIBS="$LIBS $MPFR_LIBM"
- if test "$cross_compiling" = yes; then :
- mpfr_cv_gcc_floatconv_bug="cannot test, use -ffloat-store"
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <float.h>
-#ifdef MPFR_HAVE_FESETROUND
-#include <fenv.h>
-#endif
-static double get_max (void);
-int main() {
- double x = 0.5;
- double y;
- int i;
- for (i = 1; i <= 11; i++)
- x *= x;
- if (x != 0)
- return 1;
-#ifdef MPFR_HAVE_FESETROUND
- /* Useful test for the G4 PowerPC */
- fesetround(FE_TOWARDZERO);
- x = y = get_max ();
- x *= 2.0;
- if (x != y)
- return 1;
-#endif
- return 0;
-}
-static double get_max (void) { static volatile double d = DBL_MAX; return d; }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- mpfr_cv_gcc_floatconv_bug="no"
-else
- mpfr_cv_gcc_floatconv_bug="yes, use -ffloat-store"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
- LIBS=$saved_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_gcc_floatconv_bug" >&5
-$as_echo "$mpfr_cv_gcc_floatconv_bug" >&6; }
- test "x$mpfr_cv_gcc_floatconv_bug" = xno || CFLAGS="$CFLAGS -ffloat-store"
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for denormalized numbers" >&5
-$as_echo_n "checking for denormalized numbers... " >&6; }
-if ${mpfr_cv_have_denorms+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-if test "$cross_compiling" = yes; then :
- mpfr_cv_have_denorms=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <math.h>
-#include <stdio.h>
-int main() {
- double x = 2.22507385850720138309e-308;
- fprintf (stderr, "%e\n", x / 2.0);
- return 2.0 * (x / 2.0) != x;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- mpfr_cv_have_denorms=yes
-else
- mpfr_cv_have_denorms=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_have_denorms" >&5
-$as_echo "$mpfr_cv_have_denorms" >&6; }
-if test "x$mpfr_cv_have_denorms" = xyes; then
-
-$as_echo "#define HAVE_DENORMS 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the FP division by 0 fails" >&5
-$as_echo_n "checking if the FP division by 0 fails... " >&6; }
-if ${mpfr_cv_errdivzero+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-if test "$cross_compiling" = yes; then :
- mpfr_cv_errdivzero="cannot test, assume no"
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int main() {
- volatile double d = 0.0, x;
- x = 0.0 / d;
- x = 1.0 / d;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- mpfr_cv_errdivzero="no"
-else
- mpfr_cv_errdivzero="yes"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_errdivzero" >&5
-$as_echo "$mpfr_cv_errdivzero" >&6; }
-if test "x$mpfr_cv_errdivzero" = xyes; then
-
-$as_echo "#define MPFR_ERRDIVZERO 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The floating-point division by 0 fails instead of" >&5
-$as_echo "$as_me: WARNING: The floating-point division by 0 fails instead of" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: returning a special value: NaN or infinity. Tests" >&5
-$as_echo "$as_me: WARNING: returning a special value: NaN or infinity. Tests" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: involving a FP division by 0 will be disabled." >&5
-$as_echo "$as_me: WARNING: involving a FP division by 0 will be disabled." >&2;}
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if NAN == NAN" >&5
-$as_echo_n "checking if NAN == NAN... " >&6; }
-if ${mpfr_cv_nanisnan+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-if test "$cross_compiling" = yes; then :
- mpfr_cv_nanisnan="cannot test, assume no"
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#include <math.h>
-#ifndef NAN
-# define NAN (0.0/0.0)
-#endif
-int main() {
- double d;
- d = NAN;
- return d != d;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- mpfr_cv_nanisnan="yes"
-else
- mpfr_cv_nanisnan="no"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_nanisnan" >&5
-$as_echo "$mpfr_cv_nanisnan" >&6; }
-if test "x$mpfr_cv_nanisnan" = xyes; then
-
-$as_echo "#define MPFR_NANISNAN 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The test NAN != NAN is false. The probable reason is that" >&5
-$as_echo "$as_me: WARNING: The test NAN != NAN is false. The probable reason is that" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: your compiler optimizes floating-point expressions in an" >&5
-$as_echo "$as_me: WARNING: your compiler optimizes floating-point expressions in an" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unsafe way because some option, such as -ffast-math or" >&5
-$as_echo "$as_me: WARNING: unsafe way because some option, such as -ffast-math or" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: -fast (depending on the compiler), has been used. You" >&5
-$as_echo "$as_me: WARNING: -fast (depending on the compiler), has been used. You" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: should NOT use such an option, otherwise MPFR functions" >&5
-$as_echo "$as_me: WARNING: should NOT use such an option, otherwise MPFR functions" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: such as mpfr_get_d and mpfr_set_d may return incorrect" >&5
-$as_echo "$as_me: WARNING: such as mpfr_get_d and mpfr_set_d may return incorrect" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: results on special FP numbers (e.g. NaN or signed zeros)." >&5
-$as_echo "$as_me: WARNING: results on special FP numbers (e.g. NaN or signed zeros)." >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If you did not use such an option, please send us a bug" >&5
-$as_echo "$as_me: WARNING: If you did not use such an option, please send us a bug" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: report so that we can try to find a workaround for your" >&5
-$as_echo "$as_me: WARNING: report so that we can try to find a workaround for your" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: platform and/or document the behavior." >&5
-$as_echo "$as_me: WARNING: platform and/or document the behavior." >&2;}
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if charset has consecutive values" >&5
-$as_echo_n "checking if charset has consecutive values... " >&6; }
-if test "$cross_compiling" = yes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test" >&5
-$as_echo "cannot test" >&6; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-char *number = "0123456789";
-char *lower = "abcdefghijklmnopqrstuvwxyz";
-char *upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-
-int
-main ()
-{
-
- int i;
- unsigned char *p;
- for (p = (unsigned char*) number, i = 0; i < 9; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) lower, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) upper, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define MPFR_NO_CONSECUTIVE_CHARSET 1" >>confdefs.h
-
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking format of \`long double' floating point" >&5
-$as_echo_n "checking format of \`long double' floating point... " >&6; }
-if ${mpfr_cv_c_long_double_format+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- mpfr_cv_c_long_double_format=unknown
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* "before" is 16 bytes to ensure there's no padding between it and "x".
- We're not expecting any "long double" bigger than 16 bytes or with
- alignment requirements stricter than 16 bytes. */
-struct {
- char before[16];
- long double x;
- char after[8];
-} foo = {
- { '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
- '\001', '\043', '\105', '\147', '\211', '\253', '\315', '\357' },
- -123456789.0,
- { '\376', '\334', '\272', '\230', '\166', '\124', '\062', '\020' }
-};
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat >conftest.awk <<\EOF
-
-BEGIN {
- found = 0
-}
-
-# got[] holds a sliding window of bytes read the input. got[0] is the most
-# recent byte read, and got[31] the oldest byte read, so when looking to
-# match some data the indices are "reversed".
-#
-{
- for (f = 2; f <= NF; f++)
- {
- # new byte, shift others up
- for (i = 31; i >= 0; i--)
- got[i+1] = got[i];
- got[0] = $f;
-
- # end sequence
- if (got[7] != "376") continue
- if (got[6] != "334") continue
- if (got[5] != "272") continue
- if (got[4] != "230") continue
- if (got[3] != "166") continue
- if (got[2] != "124") continue
- if (got[1] != "062") continue
- if (got[0] != "020") continue
-
- # start sequence, with 8-byte body
- if (got[23] == "001" && \
- got[22] == "043" && \
- got[21] == "105" && \
- got[20] == "147" && \
- got[19] == "211" && \
- got[18] == "253" && \
- got[17] == "315" && \
- got[16] == "357")
- {
- saw = " (" got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[15] == "301" && \
- got[14] == "235" && \
- got[13] == "157" && \
- got[12] == "064" && \
- got[11] == "124" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- print "IEEE double, big endian"
- found = 1
- exit
- }
-
- if (got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "124" && \
- got[11] == "064" && \
- got[10] == "157" && \
- got[9] == "235" && \
- got[8] == "301")
- {
- print "IEEE double, little endian"
- found = 1
- exit
- }
- }
-
- # start sequence, with 12-byte body
- if (got[27] == "001" && \
- got[26] == "043" && \
- got[25] == "105" && \
- got[24] == "147" && \
- got[23] == "211" && \
- got[22] == "253" && \
- got[21] == "315" && \
- got[20] == "357")
- {
- saw = " (" got[19] \
- " " got[18] \
- " " got[17] \
- " " got[16] \
- " " got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[19] == "000" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "240" && \
- got[14] == "242" && \
- got[13] == "171" && \
- got[12] == "353" && \
- got[11] == "031" && \
- got[10] == "300")
- {
- print "IEEE extended, little endian"
- found = 1
- exit
- }
-
- if (got[19] == "300" && \
- got[18] == "031" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "353" && \
- got[14] == "171" && \
- got[13] == "242" && \
- got[12] == "240" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[09] == "000" && \
- got[08] == "000")
- {
- # format found on m68k
- print "IEEE extended, big endian"
- found = 1
- exit
- }
- }
-
- # start sequence, with 16-byte body
- if (got[31] == "001" && \
- got[30] == "043" && \
- got[29] == "105" && \
- got[28] == "147" && \
- got[27] == "211" && \
- got[26] == "253" && \
- got[25] == "315" && \
- got[24] == "357")
- {
- saw = " (" got[23] \
- " " got[22] \
- " " got[21] \
- " " got[20] \
- " " got[19] \
- " " got[18] \
- " " got[17] \
- " " got[16] \
- " " got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[23] == "000" && \
- got[22] == "000" && \
- got[21] == "000" && \
- got[20] == "000" && \
- got[19] == "240" && \
- got[18] == "242" && \
- got[17] == "171" && \
- got[16] == "353" && \
- got[15] == "031" && \
- got[14] == "300")
- {
- print "IEEE extended, little endian"
- found = 1
- exit
- }
-
- if (got[23] == "300" && \
- got[22] == "031" && \
- got[21] == "326" && \
- got[20] == "363" && \
- got[19] == "105" && \
- got[18] == "100" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "000" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- # format used on HP 9000/785 under HP-UX
- print "IEEE quad, big endian"
- found = 1
- exit
- }
-
- if (got[23] == "000" && \
- got[22] == "000" && \
- got[21] == "000" && \
- got[20] == "000" && \
- got[19] == "000" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "100" && \
- got[12] == "105" && \
- got[11] == "363" && \
- got[10] == "326" && \
- got[9] == "031" && \
- got[8] == "300")
- {
- print "IEEE quad, little endian"
- found = 1
- exit
- }
-
- if (got[23] == "301" && \
- got[22] == "235" && \
- got[21] == "157" && \
- got[20] == "064" && \
- got[19] == "124" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "000" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- # format used on 32-bit PowerPC (Mac OS X and Debian GNU/Linux)
- print "possibly double-double, big endian"
- found = 1
- exit
- }
- }
- }
-}
-
-END {
- if (! found)
- print "unknown", saw
-}
-
-EOF
- mpfr_cv_c_long_double_format=`od -b conftest.$ac_objext | $AWK -f conftest.awk`
- case $mpfr_cv_c_long_double_format in #(
- unknown*) :
- echo "cannot match anything, conftest.$ac_objext contains" >&5
- od -b conftest.$ac_objext >&5 ;; #(
- *) :
- ;;
-esac
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: oops, cannot compile test program" >&5
-$as_echo "$as_me: WARNING: oops, cannot compile test program" >&2;}
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-rm -f conftest.awk
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mpfr_cv_c_long_double_format" >&5
-$as_echo "$mpfr_cv_c_long_double_format" >&6; }
-
-
-
-case $mpfr_cv_c_long_double_format in #(
- "IEEE extended, little endian") :
- $as_echo "#define HAVE_LDOUBLE_IEEE_EXT_LITTLE 1" >>confdefs.h
- ;; #(
- "IEEE quad, big endian") :
- $as_echo "#define HAVE_LDOUBLE_IEEE_QUAD_BIG 1" >>confdefs.h
- ;; #(
- "IEEE quad, little endian") :
- $as_echo "#define HAVE_LDOUBLE_IEEE_QUAD_LITTLE 1" >>confdefs.h
- ;; #(
- "possibly double-double, big endian") :
- # Since we are not sure, we do not want to define a macro.
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This format is known on GCC/PowerPC platforms," >&5
-$as_echo "$as_me: WARNING: This format is known on GCC/PowerPC platforms," >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but due to GCC PR26374, we can't test further." >&5
-$as_echo "$as_me: WARNING: but due to GCC PR26374, we can't test further." >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You can safely ignore this warning, though." >&5
-$as_echo "$as_me: WARNING: You can safely ignore this warning, though." >&2;} ;; #(
- unknown* | "not available") :
- ;; #(
- *) :
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: oops, unrecognised float format: $mpfr_cv_c_long_double_format" >&5
-$as_echo "$as_me: WARNING: oops, unrecognised float format: $mpfr_cv_c_long_double_format" >&2;} ;;
-esac
-
-
-
-
- if test "x$enable_build" != xno; then
- build_TRUE=
- build_FALSE='#'
-else
- build_TRUE='#'
- build_FALSE=
-fi
-
-
-##tldbg _KPSE_INIT: Initialize TL infrastructure.
-kpse_BLD=`(cd "./../../." && pwd)`
-kpse_SRC=`(cd "$srcdir/../../." && pwd)`
-
-##tldbg _KPSE_LIB_FLAGS: Setup gmp (-lgmp) flags.
-echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=gmp, libname=gmp, options=, tlincl=-IBLD/libs/gmp/include, tllib=BLD/libs/gmp/libgmp.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/gmp/include/gmp.h.' >&5
-##tldbg _KPSE_LIB_FLAGS_TL: gmp (gmp) .
-
-# Check whether --with-system-gmp was given.
-if test "${with_system_gmp+set}" = set; then :
- withval=$with_system_gmp;
-fi
-
-# Check whether --with-gmp-includes was given.
-if test "${with_gmp_includes+set}" = set; then :
- withval=$with_gmp_includes;
-fi
-
-# Check whether --with-gmp-libdir was given.
-if test "${with_gmp_libdir+set}" = set; then :
- withval=$with_gmp_libdir;
-fi
-if test "x$with_system_gmp" = xyes; then
- ##tldbg _KPSE_LIB_FLAGS_SYSTEM: gmp (gmp).
-if test "x$with_gmp_includes" != x && test "x$with_gmp_includes" != xyes; then
- GMP_INCLUDES="-I$with_gmp_includes"
-fi
-GMP_LIBS="-lgmp"
-if test "x$with_gmp_libdir" != x && test "x$with_gmp_libdir" != xyes; then
- GMP_LIBS="-L$with_gmp_libdir $GMP_LIBS"
-fi
-else
- GMP_INCLUDES="-I$kpse_BLD/libs/gmp/include"
- GMP_LIBS="$kpse_BLD/libs/gmp/libgmp.a"
- GMP_DEPEND='${top_builddir}/../../libs/gmp/libgmp.a'
- GMP_RULE='# Rebuild libgmp
-$(GMP_DEPEND): ${top_builddir}/../../libs/gmp/include/gmp.h
- cd ${top_builddir}/../../libs/gmp && $(MAKE) $(AM_MAKEFLAGS) rebuild
-${top_builddir}/../../libs/gmp/include/gmp.h:
- cd ${top_builddir}/../../libs/gmp && $(MAKE) $(AM_MAKEFLAGS) rebuild'
-fi
-
-
-if test "x$enable_build" != xno || test -f config.force; then
-
-ac_fn_c_check_header_mongrel "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default"
-if test "x$ac_cv_header_limits_h" = xyes; then :
-
-else
- as_fn_error $? "limits.h not found" "$LINENO" 5
-fi
-
-
-ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default"
-if test "x$ac_cv_header_float_h" = xyes; then :
-
-else
- as_fn_error $? "float.h not found" "$LINENO" 5
-fi
-
-
-ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default"
-if test "x$ac_cv_header_string_h" = xyes; then :
-
-else
- as_fn_error $? "string.h not found" "$LINENO" 5
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ICC" >&5
-$as_echo_n "checking for ICC... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#if !defined __ICC
-# error "ICC Not Found"
-error
-#endif
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="-fp_port -mp -wd1572 -wd265 -wd186 -wd239 $CFLAGS"
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-case $host in #(
- *-apple-darwin*) :
- case $LDFLAGS in #(
- *-Wl,-search_paths_first*) :
- ;; #(
- *) :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler understands -Wl,-search_paths_first" >&5
-$as_echo_n "checking if the compiler understands -Wl,-search_paths_first... " >&6; }
- saved_LDFLAGS=$LDFLAGS
- LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- LDFLAGS=$saved_LDFLAGS
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext ;;
-esac
- ;; #(
- *) :
- ;;
-esac
-
-kpse_save_CPPFLAGS=$CPPFLAGS
-kpse_save_LIBS=$LIBS
-
-eval CPPFLAGS=\"$GMP_INCLUDES \$CPPFLAGS\"
-eval LIBS=\"$GMP_LIBS \$LIBS\"
-
-
-ac_fn_c_check_header_mongrel "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default"
-if test "x$ac_cv_header_gmp_h" = xyes; then :
-
-else
- as_fn_error $? "gmp.h not found" "$LINENO" 5
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent GMP" >&5
-$as_echo_n "checking for recent GMP... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include "gmp.h"
-#if (__GNU_MP_VERSION*100+__GNU_MP_VERSION_MINOR*10 < 500)
-# error "min GMP version is 5.0.0"
-error
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- as_fn_error $? "GMP 4.1.0 min required" "$LINENO" 5
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-ac_fn_c_check_func "$LINENO" "__gmpz_init" "ac_cv_func___gmpz_init"
-if test "x$ac_cv_func___gmpz_init" = xyes; then :
-
-else
- as_fn_error $? "Sorry, cannot find/use libgmp" "$LINENO" 5
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmp.h version and libgmp version are the same" >&5
-$as_echo_n "checking if gmp.h version and libgmp version are the same... " >&6; }
-if test "$cross_compiling" = yes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: can not test" >&5
-$as_echo "can not test" >&6; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#include <string.h>
-#include "gmp.h"
-
-int
-main ()
-{
-
- char buffer[100];
- sprintf (buffer, "%d.%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR,
- __GNU_MP_VERSION_PATCHLEVEL);
- printf ("(%s/%s) ", buffer, gmp_version);
- if (strcmp (buffer, gmp_version) == 0)
- return 0;
- if (__GNU_MP_VERSION_PATCHLEVEL != 0)
- return 1;
- sprintf (buffer, "%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR);
- return (strcmp (buffer, gmp_version) != 0) ? 1 : 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-if test "x$ac_cv_type_intmax_t" = xyes; then
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmp_printf supports \"%jd\"" >&5
-$as_echo_n "checking if gmp_printf supports \"%jd\"... " >&6; }
-if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-
-#include <gmp.h>
-
-int
-main ()
-{
-
- char s[256];
- intmax_t a = 17;
-
- if (gmp_sprintf (s, "(%0.0jd)(%d)", a, 42) == -1) return 1;
- return (strcmp (s, "(17)(42)") != 0);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NPRINTF_J 1" >>confdefs.h
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmp_printf supports \"%hhd\"" >&5
-$as_echo_n "checking if gmp_printf supports \"%hhd\"... " >&6; }
-if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-
-#include <gmp.h>
-
-int
-main ()
-{
-
- char s[256];
- char a = 17;
-
- if (gmp_sprintf (s, "(%0.0hhd)(%d)", a, 42) == -1) return 1;
- return (strcmp (s, "(17)(42)") != 0);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NPRINTF_HH 1" >>confdefs.h
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmp_printf supports \"%lld\"" >&5
-$as_echo_n "checking if gmp_printf supports \"%lld\"... " >&6; }
-if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-
-#include <gmp.h>
-
-int
-main ()
-{
-
- char s[256];
- long long int a = 17;
-
- if (gmp_sprintf (s, "(%0.0lld)(%d)", a, 42) == -1) return 1;
- return (strcmp (s, "(17)(42)") != 0);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NPRINTF_LL 1" >>confdefs.h
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmp_printf supports \"%Lf\"" >&5
-$as_echo_n "checking if gmp_printf supports \"%Lf\"... " >&6; }
-if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-
-#include <gmp.h>
-
-int
-main ()
-{
-
- char s[256];
- long double a = 17;
-
- if (gmp_sprintf (s, "(%0.0Lf)(%d)", a, 42) == -1) return 1;
- return (strcmp (s, "(17)(42)") != 0);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NPRINTF_L 1" >>confdefs.h
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmp_printf supports \"%td\"" >&5
-$as_echo_n "checking if gmp_printf supports \"%td\"... " >&6; }
-if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-
-#if defined (__cplusplus)
-#include <cstddef>
-#else
-#include <stddef.h>
-#endif
-
-#include <gmp.h>
-
-int
-main ()
-{
-
- char s[256];
- ptrdiff_t a = 17;
-
- if (gmp_sprintf (s, "(%0.0td)(%d)", a, 42) == -1) return 1;
- return (strcmp (s, "(17)(42)") != 0);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NPRINTF_T 1" >>confdefs.h
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ==========================================================" >&5
-$as_echo "$as_me: WARNING: ==========================================================" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'gmp.h' and 'libgmp' seem to have different versions or" >&5
-$as_echo "$as_me: WARNING: 'gmp.h' and 'libgmp' seem to have different versions or" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: we cannot run a program linked with GMP (if you cannot" >&5
-$as_echo "$as_me: WARNING: we cannot run a program linked with GMP (if you cannot" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: see the version numbers above). A cause may be incompatible" >&5
-$as_echo "$as_me: WARNING: see the version numbers above). A cause may be incompatible" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GMP versions See 'config.log' for details.." >&5
-$as_echo "$as_me: WARNING: GMP versions See 'config.log' for details.." >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ==========================================================" >&5
-$as_echo "$as_me: WARNING: ==========================================================" >&2;}
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-
-CPPFLAGS=$kpse_save_CPPFLAGS
-LIBS=$kpse_save_LIBS
-
-
-echo timestamp >config.force
-fi
-
-MPFR_TREE=mpfr-src
-
-
-ac_config_links="$ac_config_links mparam.h:mpfr-src/src/mparam_h.in"
-
-
-ac_config_files="$ac_config_files Makefile include/Makefile"
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then
- as_fn_error $? "conditional \"build\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by mpfr (TeX Live) $as_me 4.1.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_links="$ac_config_links"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration links:
-$config_links
-
-Configuration commands:
-$config_commands
-
-Report bugs to <tex-k@tug.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-mpfr (TeX Live) config.status 4.1.0
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "mparam.h") CONFIG_LINKS="$CONFIG_LINKS mparam.h:mpfr-src/src/mparam_h.in" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
- :L)
- #
- # CONFIG_LINK
- #
-
- if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
- :
- else
- # Prefer the file from the source tree if names are identical.
- if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
- ac_source=$srcdir/$ac_source
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
-$as_echo "$as_me: linking $ac_source to $ac_file" >&6;}
-
- if test ! -r "$ac_source"; then
- as_fn_error $? "$ac_source: file not found" "$LINENO" 5
- fi
- rm -f "$ac_file"
-
- # Try a relative symlink, then a hard link, then a copy.
- case $ac_source in
- [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
- *) ac_rel_source=$ac_top_build_prefix$ac_source ;;
- esac
- ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
- ln "$ac_source" "$ac_file" 2>/dev/null ||
- cp -p "$ac_source" "$ac_file" ||
- as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
- fi
- ;;
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- # TODO: see whether this extra hack can be removed once we start
- # requiring Autoconf 2.70 or later.
- case $CONFIG_FILES in #(
- *\'*) :
- eval set x "$CONFIG_FILES" ;; #(
- *) :
- set x $CONFIG_FILES ;; #(
- *) :
- ;;
-esac
- shift
- # Used to flag and report bootstrapping failures.
- am_rc=0
- for am_mf
- do
- # Strip MF so we end up with the name of the file.
- am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile which includes
- # dependency-tracking related rules and includes.
- # Grep'ing the whole file directly is not great: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
- || continue
- am_dirpart=`$as_dirname -- "$am_mf" ||
-$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$am_mf" : 'X\(//\)[^/]' \| \
- X"$am_mf" : 'X\(//\)$' \| \
- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$am_mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- am_filepart=`$as_basename -- "$am_mf" ||
-$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
- X"$am_mf" : 'X\(//\)$' \| \
- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$am_mf" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { echo "$as_me:$LINENO: cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles" >&5
- (cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } || am_rc=$?
- done
- if test $am_rc -ne 0; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. If GNU make was not used, consider
- re-running the configure script with MAKE=\"gmake\" (or whatever is
- necessary). You can also try re-running configure with the
- '--disable-dependency-tracking' option to at least be able to build
- the package (albeit without support for automatic dependency tracking).
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- { am_dirpart=; unset am_dirpart;}
- { am_filepart=; unset am_filepart;}
- { am_mf=; unset am_mf;}
- { am_rc=; unset am_rc;}
- rm -f conftest-deps.mk
-}
- ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/Build/source/libs/mpfr/configure.ac b/Build/source/libs/mpfr/configure.ac
deleted file mode 100644
index 9eee355f08a..00000000000
--- a/Build/source/libs/mpfr/configure.ac
+++ /dev/null
@@ -1,131 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl Copyright (C) 2014 Taco Hoekwater <taco@metatex.org>
-dnl Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org>
-dnl
-dnl This file is free software; the copyright holder
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-m4_include([version.ac])[] dnl define mpfr_version
-AC_INIT([mpfr (TeX Live)], mpfr_version, [tex-k@tug.org])
-AC_PREREQ([2.65])
-AC_CONFIG_SRCDIR([mpfr-src/src/mpfr.h])
-AC_CONFIG_AUX_DIR([../../build-aux])
-AC_CONFIG_MACRO_DIRS([../../m4 m4])
-
-KPSE_BASIC([mpfr])
-
-AC_PROG_CC
-AC_PROG_RANLIB
-AC_PROG_LN_S
-
-KPSE_COMPILER_VISIBILITY
-
-AC_CONFIG_HEADERS([config.h])
-
-KPSE_CANONICAL_HOST
-
-MPFR_CONFIGS
-
-AM_CONDITIONAL([build], [test "x$enable_build" != xno])
-
-KPSE_GMP_FLAGS
-
-if test "x$enable_build" != xno || test -f config.force; then
-
-AC_CHECK_HEADER([limits.h], [], [AC_MSG_ERROR([limits.h not found])])
-AC_CHECK_HEADER([float.h], [], [AC_MSG_ERROR([float.h not found])])
-AC_CHECK_HEADER([string.h], [], [AC_MSG_ERROR([string.h not found])])
-
-dnl Add some specific flags for ICC
-AC_MSG_CHECKING([for ICC])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#if !defined __ICC
-# error "ICC Not Found"
-error
-#endif
-]])], [
- AC_MSG_RESULT([yes])
- CFLAGS="-fp_port -mp -wd1572 -wd265 -wd186 -wd239 $CFLAGS"
-], [AC_MSG_RESULT([no])])
-
-dnl This allows to take the first GMP library in the library paths,
-dnl whether it is dynamic or static. This behavior is more sensible,
-dnl in particular because it is the only way to link with a version
-dnl only available in static form when another version is available
-dnl in dynamic, and also for consistency, because the compiler will
-dnl take the first gmp.h found in the include paths (so, we need to
-dnl take a library that corresponds to this header file). This is a
-dnl common problem with darwin.
-AS_CASE([$host],
- [*-apple-darwin*], [MPFR_LD_SEARCH_PATHS_FIRST])
-
-KPSE_ADD_FLAGS([gmp])
-
-AC_CHECK_HEADER([gmp.h], [], [AC_MSG_ERROR([gmp.h not found])])
-
-dnl Check minimal GMP version
-dnl We only guarantee that with a *functional* and recent enough GMP version,
-dnl MPFR will compile; we do not guarantee that GMP will compile.
-dnl In particular fat builds are broken in GMP 4.3.2 and GMP 5.0.0
-dnl (at least on 64-bit Core 2 under Linux),
-dnl see http://gmplib.org/list-archives/gmp-bugs/2011-August/002345.html.
-AC_MSG_CHECKING([for recent GMP])
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-#include "gmp.h"
-#if (__GNU_MP_VERSION*100+__GNU_MP_VERSION_MINOR*10 < 500)
-# error "min GMP version is 5.0.0"
-error
-#endif
-]])], [AC_MSG_RESULT([yes])], [
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([GMP 4.1.0 min required])
-])
-
-AC_CHECK_FUNC([__gmpz_init], [],
- [AC_MSG_ERROR([Sorry, cannot find/use libgmp])])
-
-dnl Check for corresponding 'gmp.h' and libgmp.a
-AC_MSG_CHECKING([if gmp.h version and libgmp version are the same])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <string.h>
-#include "gmp.h"
-]], [[
- char buffer[100];
- sprintf (buffer, "%d.%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR,
- __GNU_MP_VERSION_PATCHLEVEL);
- printf ("(%s/%s) ", buffer, gmp_version);
- if (strcmp (buffer, gmp_version) == 0)
- return 0;
- if (__GNU_MP_VERSION_PATCHLEVEL != 0)
- return 1;
- sprintf (buffer, "%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR);
- return (strcmp (buffer, gmp_version) != 0) ? 1 : 0;
-]])],
- [AC_MSG_RESULT([yes])
- MPFR_CHECK_PRINTF_SPEC],
- [AC_MSG_RESULT([no])
- AC_MSG_WARN([==========================================================])
- AC_MSG_WARN(['gmp.h' and 'libgmp' seem to have different versions or])
- AC_MSG_WARN([we cannot run a program linked with GMP (if you cannot])
- AC_MSG_WARN([see the version numbers above). A cause may be incompatible])
- AC_MSG_WARN([GMP versions See 'config.log' for details..])
- AC_MSG_WARN([==========================================================])
- ],
- [AC_MSG_RESULT([can not test])])
-
-
-KPSE_RESTORE_FLAGS
-
-echo timestamp >config.force
-fi
-
-AC_SUBST([MPFR_TREE], [mpfr-src])
-
-AC_CONFIG_LINKS([mparam.h:mpfr-src/src/mparam_h.in])
-
-AC_CONFIG_FILES([Makefile include/Makefile])
-
-AC_OUTPUT
diff --git a/Build/source/libs/mpfr/include/Makefile.am b/Build/source/libs/mpfr/include/Makefile.am
deleted file mode 100644
index a456e0e0ae7..00000000000
--- a/Build/source/libs/mpfr/include/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-## Proxy Makefile.am to install mpfr headers for TeX Live.
-##
-## Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org>
-##
-## This file is free software; the copyright holder
-## gives unlimited permission to copy and/or distribute it,
-## with or without modifications, as long as this notice is preserved.
-##
-MPFR_SRC = $(top_srcdir)/$(MPFR_TREE)/src
-
-hdr_links = \
- $(MPFR_SRC)/mpfr.h \
- $(MPFR_SRC)/mpf2mpfr.h
-
-include $(top_srcdir)/../../am/hdr_links.am
-
diff --git a/Build/source/libs/mpfr/include/Makefile.in b/Build/source/libs/mpfr/include/Makefile.in
deleted file mode 100644
index 15ae82e82be..00000000000
--- a/Build/source/libs/mpfr/include/Makefile.in
+++ /dev/null
@@ -1,448 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = include
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/mpfr-check-printf-spec.m4 \
- $(top_srcdir)/m4/mpfr-configs.m4 \
- $(top_srcdir)/m4/mpfr-long-double-format.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-gmp-flags.m4 \
- $(top_srcdir)/../../m4/kpse-search-libs.m4 \
- $(top_srcdir)/../../m4/kpse-size-max.m4 \
- $(top_srcdir)/../../m4/kpse-visibility.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/version.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../am/hdr_links.am
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GMP_DEPEND = @GMP_DEPEND@
-GMP_INCLUDES = @GMP_INCLUDES@
-GMP_LIBS = @GMP_LIBS@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MPFR_LIBM = @MPFR_LIBM@
-MPFR_TREE = @MPFR_TREE@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-MPFR_SRC = $(top_srcdir)/$(MPFR_TREE)/src
-hdr_links = \
- $(MPFR_SRC)/mpfr.h \
- $(MPFR_SRC)/mpf2mpfr.h
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/../../am/hdr_links.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign include/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-$(top_srcdir)/../../am/hdr_links.am $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-local
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am all-local check check-am clean clean-generic \
- cscopelist-am ctags-am distclean distclean-generic \
- distclean-local distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
- uninstall-am
-
-.PRECIOUS: Makefile
-
-all-local:
- @for file in $(hdr_links); do \
- test -f $$file || continue; \
- inst=`echo $$file | sed -e 's/^.*\///'`; \
- test -f $$inst || { \
- rm -f $$inst; \
- if $(AM_V_P); then echo "$(LN_S) $$file $$inst"; \
- else echo " INST $$inst"; fi; \
- $(LN_S) $$file $$inst; } || exit 1; \
- done
-
-distclean-local:
- rm -f *.h
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/libs/mpfr/m4/mpfr-check-printf-spec.m4 b/Build/source/libs/mpfr/m4/mpfr-check-printf-spec.m4
deleted file mode 100644
index c518f71c56d..00000000000
--- a/Build/source/libs/mpfr/m4/mpfr-check-printf-spec.m4
+++ /dev/null
@@ -1,72 +0,0 @@
-# Autoconf macros for the GNU MPFR Library.
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
-# Contributed by the AriC and Caramel projects, INRIA.
-#
-# Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org>
-# Extracted from mpfr-src/acinclude.m4 and adapted for TeX Live.
-#
-# This file is free software; the copyright holders
-# give unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# MPFR_CHECK_PRINTF_SPEC
-# ----------------------
-# Check if gmp_printf supports some optional length modifiers.
-# Defined symbols are negative to shorten the gcc command line.
-AC_DEFUN([MPFR_CHECK_PRINTF_SPEC], [
-AC_REQUIRE([MPFR_CONFIGS])dnl
-if test "x$ac_cv_type_intmax_t" = xyes; then
- MPFR_FUNC_GMP_PRINTF_SPEC([jd], [intmax_t], [
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
- ], ,
- [AC_DEFINE([NPRINTF_J], 1, [gmp_printf cannot read intmax_t])])
-fi
-
-MPFR_FUNC_GMP_PRINTF_SPEC([hhd], [char], , ,
- [AC_DEFINE([NPRINTF_HH], 1, [gmp_printf cannot use `hh' length modifier])])
-
-MPFR_FUNC_GMP_PRINTF_SPEC([lld], [long long int], , ,
- [AC_DEFINE([NPRINTF_LL], 1, [gmp_printf cannot read long long int])])
-
-MPFR_FUNC_GMP_PRINTF_SPEC([Lf], [long double], , ,
- [AC_DEFINE([NPRINTF_L], 1, [gmp_printf cannot read long double])])
-
-MPFR_FUNC_GMP_PRINTF_SPEC([td], [ptrdiff_t], [
-#if defined (__cplusplus)
-#include <cstddef>
-#else
-#include <stddef.h>
-#endif
- ], ,
- [AC_DEFINE([NPRINTF_T], 1, [gmp_printf cannot read ptrdiff_t])])
-]) # MPFR_CHECK_PRINTF_SPEC
-
-
-# MPFR_FUNC_GMP_PRINTF_SPEC(SPEC, TYPE, [INCLUDES], [IF-TRUE], [IF-FALSE])
-# ------------------------------------------------------------------------
-# Check if gmp_sprintf supports the conversion specification 'spec'
-# with type 'type'.
-# Expand 'if-true' if printf supports 'spec', 'if-false' otherwise.
-m4_define([MPFR_FUNC_GMP_PRINTF_SPEC], [
-AC_MSG_CHECKING([if gmp_printf supports "%$1"])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-$3
-#include <gmp.h>
-]], [[
- char s[256];
- $2 a = 17;
-
- if (gmp_sprintf (s, "(%0.0$1)(%d)", a, 42) == -1) return 1;
- return (strcmp (s, "(17)(42)") != 0);
-]])],
- [AC_MSG_RESULT([yes])
- $4],
- [AC_MSG_RESULT([no])
- $5])
-]) # MPFR_FUNC_GMP_PRINTF_SPEC
diff --git a/Build/source/libs/mpfr/m4/mpfr-configs.m4 b/Build/source/libs/mpfr/m4/mpfr-configs.m4
deleted file mode 100644
index 57ed1576be9..00000000000
--- a/Build/source/libs/mpfr/m4/mpfr-configs.m4
+++ /dev/null
@@ -1,264 +0,0 @@
-# Autoconf macros for the GNU MPFR Library.
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
-# Contributed by the AriC and Caramel projects, INRIA.
-#
-# Copyright (C) 2014, 2015 Peter Breitenlohner <tex-live@tug.org>
-# Extracted from mpfr-src/acinclude.m4 and adapted for TeX Live.
-#
-# This file is free software; the copyright holders
-# give unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-dnl ------------------------------------------------------------
-dnl You must put in MPFR_CONFIGS everything which configure MPFR
-dnl except:
-dnl -everything dealing with CC and CFLAGS in particular the ABI
-dnl but the IEEE-754 specific flags must be set here.
-dnl -GMP's linkage.
-dnl -Libtool stuff.
-dnl -Handling of special arguments of MPFR's configure.
-AC_DEFUN([MPFR_CONFIGS], [dnl
-AC_REQUIRE([AC_HEADER_TIME])
-AC_REQUIRE([AC_CANONICAL_HOST])
-
-dnl Check for wide characters (wchar_t and wint_t)
-AC_CHECK_HEADERS([wchar.h])
-
-dnl We have stdarg.h
-AC_DEFINE([HAVE_STDARG], 1, [Define if stdarg])
-
-AC_CHECK_HEADERS([sys/time.h])
-
-dnl Check how to get `alloca'
-AC_FUNC_ALLOCA
-
-KPSE_CHECK_SIZE_MAX
-
-dnl va_copy macro
-AC_MSG_CHECKING([how to copy va_list])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdarg.h>
-]], [[
- va_list ap1, ap2;
- va_copy(ap1, ap2);
-]])], [
- AC_MSG_RESULT([va_copy])
- AC_DEFINE([HAVE_VA_COPY], 1, [Define to 1 if you have the `va_copy' function.])
-], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdarg.h>
-]], [[
- va_list ap1, ap2;
- __va_copy(ap1, ap2);
-]])], [AC_DEFINE([HAVE___VA_COPY], 1, [Define to 1 if you have the `__va_copy' function.])
- AC_MSG_RESULT([__va_copy])],
- [AC_MSG_RESULT([memcpy])])])
-
-dnl Check for IEEE-754 switches on Alpha
-AS_CASE([$host],
- [alpha*-*-*], [
- AC_CACHE_CHECK([for IEEE-754 switches], [mpfr_cv_ieee_switches], [
- saved_CFLAGS=$CFLAGS
- if test -n "$GCC"; then
- mpfr_cv_ieee_switches="-mfp-rounding-mode=d -mieee-with-inexact"
- else
- mpfr_cv_ieee_switches="-fprm d -ieee_with_inexact"
- fi
- CFLAGS="$CFLAGS $mpfr_cv_ieee_switches"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
- [], [mpfr_cv_ieee_switches=none])
- CFLAGS=$saved_CFLAGS
- ])
- test "x$mpfr_cv_ieee_switches" = xnone || CFLAGS="$CFLAGS $mpfr_cv_ieee_switches"
-])
-
-dnl check for long long
-AC_CHECK_TYPE([long long int],
- [AC_DEFINE([HAVE_LONG_LONG], 1, [Define if compiler supports long long])])
-
-dnl intmax_t is C99
-AC_CHECK_TYPES([intmax_t])
-if test "x$ac_cv_type_intmax_t" = xyes; then
- AC_CACHE_CHECK([for working INTMAX_MAX], [mpfr_cv_have_intmax_max], [
- saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$srcdir/mpfr-src/src"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "mpfr-intmax.h"]],
- [[intmax_t x = INTMAX_MAX;]])],
- [mpfr_cv_have_intmax_max=yes], [mpfr_cv_have_intmax_max=no])
- CPPFLAGS=$saved_CPPFLAGS
- ])
- if test "x$mpfr_cv_have_intmax_max" = xyes; then
- AC_DEFINE([MPFR_HAVE_INTMAX_MAX], 1, [Define if you have a working INTMAX_MAX.])
- fi
-fi
-
-KPSE_SEARCH_LIBS([MPFR_LIBM], [pow], [m])
-
-dnl Check for fesetround
-AC_CACHE_CHECK([for fesetround], [mpfr_cv_have_fesetround], [
-saved_LIBS=$LIBS
-LIBS="$LIBS $MPFR_LIBM"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <fenv.h>]], [[fesetround(FE_TONEAREST);]])],
- [mpfr_cv_have_fesetround=yes], [mpfr_cv_have_fesetround=no])
-LIBS=$saved_LIBS
-])
-if test "x$mpfr_cv_have_fesetround" = xyes; then
- AC_DEFINE([MPFR_HAVE_FESETROUND], 1,
- [Define if you have the `fesetround' function via the <fenv.h> header file.])
-fi
-
-dnl Check for gcc float-conversion bug; if need be, -ffloat-store is used to
-dnl force the conversion to the destination type when a value is stored to
-dnl a variable (see ISO C99 standard 5.1.2.3#13, 6.3.1.5#2, 6.3.1.8#2). This
-dnl is important concerning the exponent range. Note that this doesn't solve
-dnl the double-rounding problem.
-if test -n "$GCC"; then
- AC_CACHE_CHECK([for gcc float-conversion bug], [mpfr_cv_gcc_floatconv_bug], [
- saved_LIBS=$LIBS
- LIBS="$LIBS $MPFR_LIBM"
- AC_TRY_RUN([
-#include <float.h>
-#ifdef MPFR_HAVE_FESETROUND
-#include <fenv.h>
-#endif
-static double get_max (void);
-int main() {
- double x = 0.5;
- double y;
- int i;
- for (i = 1; i <= 11; i++)
- x *= x;
- if (x != 0)
- return 1;
-#ifdef MPFR_HAVE_FESETROUND
- /* Useful test for the G4 PowerPC */
- fesetround(FE_TOWARDZERO);
- x = y = get_max ();
- x *= 2.0;
- if (x != y)
- return 1;
-#endif
- return 0;
-}
-static double get_max (void) { static volatile double d = DBL_MAX; return d; }
- ], [mpfr_cv_gcc_floatconv_bug="no"],
- [mpfr_cv_gcc_floatconv_bug="yes, use -ffloat-store"],
- [mpfr_cv_gcc_floatconv_bug="cannot test, use -ffloat-store"])
- LIBS=$saved_LIBS
- ])
- test "x$mpfr_cv_gcc_floatconv_bug" = xno || CFLAGS="$CFLAGS -ffloat-store"
-fi
-
-dnl Check if denormalized numbers are supported
-AC_CACHE_CHECK([for denormalized numbers], [mpfr_cv_have_denorms], [
-AC_TRY_RUN([
-#include <math.h>
-#include <stdio.h>
-int main() {
- double x = 2.22507385850720138309e-308;
- fprintf (stderr, "%e\n", x / 2.0);
- return 2.0 * (x / 2.0) != x;
-}
-], [mpfr_cv_have_denorms=yes], [mpfr_cv_have_denorms=no], [mpfr_cv_have_denorms=no])
-])
-if test "x$mpfr_cv_have_denorms" = xyes; then
- AC_DEFINE([HAVE_DENORMS], 1, [Define if denormalized floats work.])
-fi
-
-dnl Check the FP division by 0 fails (e.g. on a non-IEEE-754 platform).
-dnl In such a case, MPFR_ERRDIVZERO is defined to disable the tests
-dnl involving a FP division by 0.
-dnl For the developers: to check whether all these tests are disabled,
-dnl configure MPFR with "-DMPFR_TEST_DIVBYZERO=1 -DMPFR_ERRDIVZERO=1".
-AC_CACHE_CHECK([if the FP division by 0 fails], [mpfr_cv_errdivzero], [
-AC_TRY_RUN([
-int main() {
- volatile double d = 0.0, x;
- x = 0.0 / d;
- x = 1.0 / d;
- return 0;
-}
-], [mpfr_cv_errdivzero="no"],
- [mpfr_cv_errdivzero="yes"],
- [mpfr_cv_errdivzero="cannot test, assume no"])
-])
-if test "x$mpfr_cv_errdivzero" = xyes; then
- AC_DEFINE([MPFR_ERRDIVZERO], 1, [Define if the FP division by 0 fails.])
- AC_MSG_WARN([The floating-point division by 0 fails instead of])
- AC_MSG_WARN([returning a special value: NaN or infinity. Tests])
- AC_MSG_WARN([involving a FP division by 0 will be disabled.])
-fi
-
-dnl Check whether NAN != NAN (as required by the IEEE-754 standard,
-dnl but not by the ISO C standard). For instance, this is false with
-dnl MIPSpro 7.3.1.3m under IRIX64. By default, assume this is true.
-AC_CACHE_CHECK([if NAN == NAN], [mpfr_cv_nanisnan], [
-AC_TRY_RUN([
-#include <stdio.h>
-#include <math.h>
-#ifndef NAN
-# define NAN (0.0/0.0)
-#endif
-int main() {
- double d;
- d = NAN;
- return d != d;
-}
-], [mpfr_cv_nanisnan="yes"],
- [mpfr_cv_nanisnan="no"],
- [mpfr_cv_nanisnan="cannot test, assume no"])
-])
-if test "x$mpfr_cv_nanisnan" = xyes; then
- AC_DEFINE([MPFR_NANISNAN], 1, [Define if NAN == NAN.])
- AC_MSG_WARN([The test NAN != NAN is false. The probable reason is that])
- AC_MSG_WARN([your compiler optimizes floating-point expressions in an])
- AC_MSG_WARN([unsafe way because some option, such as -ffast-math or])
- AC_MSG_WARN([-fast (depending on the compiler), has been used. You])
- AC_MSG_WARN([should NOT use such an option, otherwise MPFR functions])
- AC_MSG_WARN([such as mpfr_get_d and mpfr_set_d may return incorrect])
- AC_MSG_WARN([results on special FP numbers (e.g. NaN or signed zeros).])
- AC_MSG_WARN([If you did not use such an option, please send us a bug])
- AC_MSG_WARN([report so that we can try to find a workaround for your])
- AC_MSG_WARN([platform and/or document the behavior.])
-fi
-
-dnl Check if the chars '0' to '9' are consecutive values
-AC_MSG_CHECKING([if charset has consecutive values])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-char *number = "0123456789";
-char *lower = "abcdefghijklmnopqrstuvwxyz";
-char *upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-]],[[
- int i;
- unsigned char *p;
- for (p = (unsigned char*) number, i = 0; i < 9; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) lower, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) upper, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
-]])], [AC_MSG_RESULT([yes])],[
- AC_MSG_RESULT([no])
- AC_DEFINE([MPFR_NO_CONSECUTIVE_CHARSET], 1, [Charset is not consecutive])
-], [AC_MSG_RESULT([cannot test])])
-
-dnl Now try to check the long double format
-MPFR_C_LONG_DOUBLE_FORMAT
-
-])
-dnl end of MPFR_CONFIGS
-
-
-dnl MPFR_LD_SEARCH_PATHS_FIRST
-dnl --------------------------
-
-AC_DEFUN([MPFR_LD_SEARCH_PATHS_FIRST],
-[AS_CASE([$LDFLAGS],
- [*-Wl,-search_paths_first*], [],
- [AC_MSG_CHECKING([if the compiler understands -Wl,-search_paths_first])
- saved_LDFLAGS=$LDFLAGS
- LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- LDFLAGS=$saved_LDFLAGS])])
-])
diff --git a/Build/source/libs/mpfr/m4/mpfr-long-double-format.m4 b/Build/source/libs/mpfr/m4/mpfr-long-double-format.m4
deleted file mode 100644
index 8fbf2d3a250..00000000000
--- a/Build/source/libs/mpfr/m4/mpfr-long-double-format.m4
+++ /dev/null
@@ -1,355 +0,0 @@
-# Autoconf macros for the GNU MPFR Library.
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
-# Contributed by the AriC and Caramel projects, INRIA.
-#
-# Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org>
-# Extracted from mpfr-src/acinclude.m4 and adapted for TeX Live.
-#
-# This file is free software; the copyright holders
-# give unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# MPFR_C_LONG_DOUBLE_FORMAT
-# -------------------------
-# Determine the format of a long double.
-#
-# The object file is grepped, so as to work when cross compiling. A
-# start and end sequence is included to avoid false matches, and
-# allowance is made for the desired data crossing an "od -b" line
-# boundary. The test number is a small integer so it should appear
-# exactly, no rounding or truncation etc.
-#
-# "od -b" is supported even by Unix V7, and the awk script used doesn't
-# have functions or anything, so even an "old" awk should suffice.
-#
-# The 10-byte IEEE extended format is generally padded to either 12 or 16
-# bytes for alignment purposes. The SVR4 i386 ABI is 12 bytes, or i386
-# gcc -m128bit-long-double selects 16 bytes. IA-64 is 16 bytes in LP64
-# mode, or 12 bytes in ILP32 mode. The first 10 bytes is the relevant
-# part in all cases (big and little endian).
-#
-# Enhancements:
-#
-# Could match more formats, but no need to worry until there's code
-# wanting to use them.
-#
-# Don't want to duplicate the double matching from GMP_C_DOUBLE_FORMAT,
-# perhaps we should merge with that macro, to match data formats
-# irrespective of the C type in question. Or perhaps just let the code
-# use DOUBLE macros when sizeof(double)==sizeof(long double).
-
-AC_DEFUN([MPFR_C_LONG_DOUBLE_FORMAT], [dnl
-AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AC_PROG_AWK])
-AC_CACHE_CHECK([format of `long double' floating point],
- [mpfr_cv_c_long_double_format],
-[mpfr_cv_c_long_double_format=unknown
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-/* "before" is 16 bytes to ensure there's no padding between it and "x".
- We're not expecting any "long double" bigger than 16 bytes or with
- alignment requirements stricter than 16 bytes. */
-struct {
- char before[16];
- long double x;
- char after[8];
-} foo = {
- { '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
- '\001', '\043', '\105', '\147', '\211', '\253', '\315', '\357' },
- -123456789.0,
- { '\376', '\334', '\272', '\230', '\166', '\124', '\062', '\020' }
-};
-]])],
- [cat >conftest.awk <<\EOF
-_mpfr_long_double_awk
-EOF
- mpfr_cv_c_long_double_format=`od -b conftest.$ac_objext | $AWK -f conftest.awk`
- AS_CASE([$mpfr_cv_c_long_double_format],
- [unknown*],
- [echo "cannot match anything, conftest.$ac_objext contains" >&AS_MESSAGE_LOG_FD
- od -b conftest.$ac_objext >&AS_MESSAGE_LOG_FD])],
- [AC_MSG_WARN([oops, cannot compile test program])])
-rm -f conftest.awk])
-
-AH_VERBATIM([HAVE_LDOUBLE],
-[/* Define one of the following to 1 for the format of a `long double'.
- If your format is not among these choices, or you don't know what it is,
- then leave all undefined.
- IEEE_EXT is the 10-byte IEEE extended precision format.
- IEEE_QUAD is the 16-byte IEEE quadruple precision format.
- LITTLE or BIG is the endianness. */
-#undef HAVE_LDOUBLE_IEEE_EXT_LITTLE
-#undef HAVE_LDOUBLE_IEEE_QUAD_LITTLE
-#undef HAVE_LDOUBLE_IEEE_QUAD_BIG])
-
-AS_CASE([$mpfr_cv_c_long_double_format],
- ["IEEE extended, little endian"],
- [AC_DEFINE([HAVE_LDOUBLE_IEEE_EXT_LITTLE], 1)],
- ["IEEE quad, big endian"],
- [AC_DEFINE([HAVE_LDOUBLE_IEEE_QUAD_BIG], 1)],
- ["IEEE quad, little endian"],
- [AC_DEFINE([HAVE_LDOUBLE_IEEE_QUAD_LITTLE], 1)],
- ["possibly double-double, big endian"],
- [# Since we are not sure, we do not want to define a macro.
- AC_MSG_WARN([This format is known on GCC/PowerPC platforms,])
- AC_MSG_WARN([but due to GCC PR26374, we can't test further.])
- AC_MSG_WARN([You can safely ignore this warning, though.])],
- [unknown* | "not available"], [],
- [AC_MSG_WARN([oops, unrecognised float format: $mpfr_cv_c_long_double_format])])
-]) # MPFR_C_LONG_DOUBLE_FORMAT
-
-# _mpfr_long_double_awk
-# ---------------------
-# Internal subroutine defining contents of conftest.awk.
-m4_define([_mpfr_long_double_awk], [[
-BEGIN {
- found = 0
-}
-
-# got[] holds a sliding window of bytes read the input. got[0] is the most
-# recent byte read, and got[31] the oldest byte read, so when looking to
-# match some data the indices are "reversed".
-#
-{
- for (f = 2; f <= NF; f++)
- {
- # new byte, shift others up
- for (i = 31; i >= 0; i--)
- got[i+1] = got[i];
- got[0] = $f;
-
- # end sequence
- if (got[7] != "376") continue
- if (got[6] != "334") continue
- if (got[5] != "272") continue
- if (got[4] != "230") continue
- if (got[3] != "166") continue
- if (got[2] != "124") continue
- if (got[1] != "062") continue
- if (got[0] != "020") continue
-
- # start sequence, with 8-byte body
- if (got[23] == "001" && \
- got[22] == "043" && \
- got[21] == "105" && \
- got[20] == "147" && \
- got[19] == "211" && \
- got[18] == "253" && \
- got[17] == "315" && \
- got[16] == "357")
- {
- saw = " (" got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[15] == "301" && \
- got[14] == "235" && \
- got[13] == "157" && \
- got[12] == "064" && \
- got[11] == "124" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- print "IEEE double, big endian"
- found = 1
- exit
- }
-
- if (got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "124" && \
- got[11] == "064" && \
- got[10] == "157" && \
- got[9] == "235" && \
- got[8] == "301")
- {
- print "IEEE double, little endian"
- found = 1
- exit
- }
- }
-
- # start sequence, with 12-byte body
- if (got[27] == "001" && \
- got[26] == "043" && \
- got[25] == "105" && \
- got[24] == "147" && \
- got[23] == "211" && \
- got[22] == "253" && \
- got[21] == "315" && \
- got[20] == "357")
- {
- saw = " (" got[19] \
- " " got[18] \
- " " got[17] \
- " " got[16] \
- " " got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[19] == "000" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "240" && \
- got[14] == "242" && \
- got[13] == "171" && \
- got[12] == "353" && \
- got[11] == "031" && \
- got[10] == "300")
- {
- print "IEEE extended, little endian"
- found = 1
- exit
- }
-
- if (got[19] == "300" && \
- got[18] == "031" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "353" && \
- got[14] == "171" && \
- got[13] == "242" && \
- got[12] == "240" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[09] == "000" && \
- got[08] == "000")
- {
- # format found on m68k
- print "IEEE extended, big endian"
- found = 1
- exit
- }
- }
-
- # start sequence, with 16-byte body
- if (got[31] == "001" && \
- got[30] == "043" && \
- got[29] == "105" && \
- got[28] == "147" && \
- got[27] == "211" && \
- got[26] == "253" && \
- got[25] == "315" && \
- got[24] == "357")
- {
- saw = " (" got[23] \
- " " got[22] \
- " " got[21] \
- " " got[20] \
- " " got[19] \
- " " got[18] \
- " " got[17] \
- " " got[16] \
- " " got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[23] == "000" && \
- got[22] == "000" && \
- got[21] == "000" && \
- got[20] == "000" && \
- got[19] == "240" && \
- got[18] == "242" && \
- got[17] == "171" && \
- got[16] == "353" && \
- got[15] == "031" && \
- got[14] == "300")
- {
- print "IEEE extended, little endian"
- found = 1
- exit
- }
-
- if (got[23] == "300" && \
- got[22] == "031" && \
- got[21] == "326" && \
- got[20] == "363" && \
- got[19] == "105" && \
- got[18] == "100" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "000" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- # format used on HP 9000/785 under HP-UX
- print "IEEE quad, big endian"
- found = 1
- exit
- }
-
- if (got[23] == "000" && \
- got[22] == "000" && \
- got[21] == "000" && \
- got[20] == "000" && \
- got[19] == "000" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "100" && \
- got[12] == "105" && \
- got[11] == "363" && \
- got[10] == "326" && \
- got[9] == "031" && \
- got[8] == "300")
- {
- print "IEEE quad, little endian"
- found = 1
- exit
- }
-
- if (got[23] == "301" && \
- got[22] == "235" && \
- got[21] == "157" && \
- got[20] == "064" && \
- got[19] == "124" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "000" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- # format used on 32-bit PowerPC (Mac OS X and Debian GNU/Linux)
- print "possibly double-double, big endian"
- found = 1
- exit
- }
- }
- }
-}
-
-END {
- if (! found)
- print "unknown", saw
-}
-]])
diff --git a/Build/source/libs/mpfr/mpfr-src/AUTHORS b/Build/source/libs/mpfr/mpfr-src/AUTHORS
deleted file mode 100644
index 6967838073a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/AUTHORS
+++ /dev/null
@@ -1,27 +0,0 @@
-Authors of MPFR (in chronological order of initial contribution):
-
-Guillaume Hanrot Main author
-Fabrice Rouillier Original version of mul_ui.c, gmp_op.c
-Paul Zimmermann Main author
-Sylvie Boldo Original version of agm.c and log.c
-Jean-Luc Rémy Original version of zeta.c
-Emmanuel Jeandel Original version of exp3.c, const_pi.c, sincos.c
-Mathieu Dutour acos.c, asin.c, atan.c and early gamma.c
-Vincent Lefèvre Main author
-David Daney Hyperbolic and inverse hyperbolic functions, base-2
- and base-10 exponential and logarithm, factorial
-Alain Delplanque Rewritten get_str.c
-Ludovic Meunier Error function (erf.c)
-Patrick Pélissier Main author
-Laurent Fousse Original version of sum.c
-Damien Stehlé Function mpfr_get_ld_2exp
-Philippe Théveny Main author
-Sylvain Chevillard Original version of ai.c
-Charles Karney mpfr_nrandom and mpfr_erandom functions
-Fredrik Johansson New version of mpfr_const_euler
-Mickaël Gastineau MPFRbench program
-Jianyang Pan Formally proven code for mpfr_add1sp1
-
-The main authors are included in the MPFR mailing-list <mpfr@inria.fr>.
-This is the preferred way to contact us. For further information, please
-look at the MPFR web page <https://www.mpfr.org/>.
diff --git a/Build/source/libs/mpfr/mpfr-src/BUGS b/Build/source/libs/mpfr/mpfr-src/BUGS
deleted file mode 100644
index e4901559a22..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/BUGS
+++ /dev/null
@@ -1,72 +0,0 @@
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-##############################################################################
-
-Known bugs:
-
-* The overflow/underflow exceptions may be badly handled in some functions;
- specially when the intermediary internal results have exponent which
- exceeds the hardware limit (2^30 for a 32 bits CPU, and 2^62 for a 64 bits
- CPU) or the exact result is close to an overflow/underflow threshold.
-
-* Under Linux/x86 with the traditional FPU, some functions do not work
- if the FPU rounding precision has been changed to single (this is a
- bad practice and should be useless, but one never knows what other
- software will do).
-
-* Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not behave
- correctly in a reduced exponent range.
-
-* Function hypot gives incorrect result when on the one hand the difference
- between parameters' exponents is near 2*MPFR_EMAX_MAX and on the other hand
- the output precision or the precision of the parameter with greatest
- absolute value is greater than 2*MPFR_EMAX_MAX-4.
-
-Potential bugs:
-
-* Possible incorrect results due to internal underflow, which can lead to
- a huge loss of accuracy while the error analysis doesn't take that into
- account. If the underflow occurs at the last function call (just before
- the MPFR_CAN_ROUND), the result should be correct (or MPFR gets into an
- infinite loop). TODO: check the code and the error analysis.
-
-* Possible bugs with huge precisions (> 2^30) and a 32-bit ABI, in particular
- undetected integer overflows. TODO: use the MPFR_ADD_PREC macro.
-
-* Possible bugs if the chosen exponent range does not allow to represent
- the range [1/16, 16].
-
-* Possible infinite loop in some functions for particular cases: when
- the exact result is an exactly representable number or the middle of
- consecutive two such numbers. However for non-algebraic functions, it is
- believed that no such case exists, except the well-known cases like cos(0)=1,
- exp(0)=1, and so on, and the x^y function when y is an integer or y=1/2^k.
-
-* The mpfr_set_ld function may be quite slow if the long double type has an
- exponent of more than 15 bits.
-
-* mpfr_set_d may give wrong results on some non-IEEE architectures.
-
-* Error analysis for some functions may be incorrect (out-of-date due
- to modifications in the code?).
-
-* Possible use of non-portable feature (pre-C99) of the integer division
- with negative result.
diff --git a/Build/source/libs/mpfr/mpfr-src/ChangeLog b/Build/source/libs/mpfr/mpfr-src/ChangeLog
deleted file mode 100644
index c5a5d61985e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/ChangeLog
+++ /dev/null
@@ -1,105496 +0,0 @@
-------------------------------------------------------------------------
-r14065 | vlefevre | 2020-07-10 11:52:33 +0000 (Fri, 10 Jul 2020) | 1 line
-Changed paths:
- M /branches/4.1/VERSION
- M /branches/4.1/configure.ac
- M /branches/4.1/doc/mpfr.texi
- M /branches/4.1/src/mpfr.h
- M /branches/4.1/src/version.c
-
-Updated version to 4.1.0.
-------------------------------------------------------------------------
-r14064 | vlefevre | 2020-07-10 11:50:59 +0000 (Fri, 10 Jul 2020) | 1 line
-Changed paths:
- M /branches/4.1/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r14063 | vlefevre | 2020-07-10 10:33:32 +0000 (Fri, 10 Jul 2020) | 6 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/doc/README.dev
- M /branches/4.1/src/jyn_asympt.c
- M /branches/4.1/tests/tjn.c
-
-[src/jyn_asympt.c] Partly solved the slowness of jn(733333,733333).
-[tests/tjn.c] Added tests of jn(73333,73333) and jn(733333,733333),
- enabled only with MPFR_CHECK_EXPENSIVE.
-[doc/README.dev] In the MPFR_CHECK_EXPENSIVE description, say that
- --enable-assert=full should not be used (too expensive, not needed).
-(merged changesets r14053-14062 from the trunk)
-------------------------------------------------------------------------
-r14050 | vlefevre | 2020-07-01 21:39:57 +0000 (Wed, 01 Jul 2020) | 1 line
-Changed paths:
- M /branches/4.1/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r14049 | vlefevre | 2020-07-01 21:37:36 +0000 (Wed, 01 Jul 2020) | 1 line
-Changed paths:
- M /branches/4.1/VERSION
- M /branches/4.1/configure.ac
- M /branches/4.1/doc/mpfr.texi
- M /branches/4.1/src/mpfr.h
- M /branches/4.1/src/version.c
-
-Updated version to 4.1.0-rc2.
-------------------------------------------------------------------------
-r14048 | vlefevre | 2020-07-01 13:59:32 +0000 (Wed, 01 Jul 2020) | 3 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/NEWS
-
-[NEWS] Added an item saying that TLS can safely be (re-)enabled
-on Sparc.
-(merged changeset r14047 from the trunk)
-------------------------------------------------------------------------
-r14046 | vlefevre | 2020-06-29 13:57:32 +0000 (Mon, 29 Jun 2020) | 7 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/tests/mpfr-test.h
-
-[tests/mpfr-test.h] Avoid a GCC bug on Sparc, at least when using TLS.
-The MPFR library itself is not affected, only a particular test. Normal
-code using the MPFR library should not be affected either, as the bug
-occurs when accessing __gmpfr_flags directly (and the public mpfr.h
-header file does not provide any macro that accesses an internal
-variable directly). So a workaround for the tests is the best solution.
-(merged changeset r14045 from the trunk)
-------------------------------------------------------------------------
-r14043 | vlefevre | 2020-06-18 17:37:41 +0000 (Thu, 18 Jun 2020) | 1 line
-Changed paths:
- M /branches/4.1/VERSION
- M /branches/4.1/configure.ac
- M /branches/4.1/doc/mpfr.texi
- M /branches/4.1/src/mpfr.h
- M /branches/4.1/src/version.c
-
-Updated version to 4.1.0-dev (due to changes since 4.1.0-rc1).
-------------------------------------------------------------------------
-r14042 | vlefevre | 2020-06-18 17:17:18 +0000 (Thu, 18 Jun 2020) | 54 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/doc/mpfr.texi
- M /branches/4.1/src/digamma.c
- M /branches/4.1/src/get_str.c
- M /branches/4.1/src/mpfr-longlong.h
- M /branches/4.1/tests/mpfr-test.h
- M /branches/4.1/tests/tabort_defalloc1.c
- M /branches/4.1/tests/tabort_defalloc2.c
- M /branches/4.1/tests/tcmp_ui.c
- M /branches/4.1/tests/tdigamma.c
- M /branches/4.1/tests/tests.c
- M /branches/4.1/tests/tset_ld.c
-
-Merged r14021-14036 from the trunk:
-
-r14021:
-[tests] Skip tabort_defalloc1 and tabort_defalloc2 under Valgrind, as
-Valgrind complains due to the large allocation size.
- * mpfr-test.h, tests.c: added tests_run_within_valgrind() function to
- guess whether the test runs within Valgrind.
- * tabort_defalloc1.c, tabort_defalloc2.c: skip the test (exit code 77)
- if this function returns true.
-
-r14022-14023:
-[tests/tset_ld.c] In bug_20160907 (tests on subnormals, specific to
-x86 extended precision):
- * Replaced an assertion by a test with detailed output.
- * In case of incorrect result, detect whether Valgrind is used and
- one gets the result obtained with Valgrind due to
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890215
- https://bugs.kde.org/show_bug.cgi?id=421262
- (long double behaves as double); in this case, output a message
- without an error since Valgrind is the only cause of the
- miscalculation.
- * Corrected a value in a test, which did not match the comment.
-
-r14024-14027:
-[src/digamma.c]
- * Replaced some MPFR_EXP / mpfr_get_exp by MPFR_GET_EXP to check that
- the MPFR number has an exponent (i.e. it is not a special value).
- * Added an integer overflow check on a precision.
- * Fixed a bug: an exponent was read while the value could be zero.
-
-r14028:
-[tests/tdigamma.c] Increase the number of tests.
-
-r14029,14031:
-[doc/mpfr.texi] Specify the range of b for mpfr_get_str_ndigits.
-
-r14030:
-[src/get_str.c] Since the mpfr_get_str_ndigits function is in the
-public API, use MPFR_ASSERTN instead of MPFR_ASSERTD on the condition
-on the argument b in order to get an assertion failure (by default)
-if this condition is not satisfied.
-
-r14032,14035-14036:
-[src/mpfr-longlong.h] Applied patch on
- https://gmplib.org/list-archives/gmp-bugs/2020-June/004807.html
-to fix add_ssaaaa and sub_ddmmss on arm / aarch64, in order to resolve
- https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00017.html
- https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00059.html
-
-r14034:
-[tests/tcmp_ui.c] Added a comment about a failing test with tcc if
-one adds tcc support for macros using __builtin_constant_p in mpfr.h
-by testing __TINYC__.
-Bug report against tcc: https://savannah.nongnu.org/bugs/?58606
-------------------------------------------------------------------------
-r14019 | vlefevre | 2020-06-13 13:22:33 +0000 (Sat, 13 Jun 2020) | 5 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/configure.ac
-
-[configure.ac] No longer add -Wc++-compat to CFLAGS when the compiler
-is GCC not in C++ mode (reverting the change done in r13406) since this
-option is not available before GCC 4.1:
- https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html
-(merged changeset r14018 from the trunk)
-------------------------------------------------------------------------
-r14016 | vlefevre | 2020-06-13 09:32:51 +0000 (Sat, 13 Jun 2020) | 7 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/doc/mpfr.texi
- M /branches/4.1/tests/tfpif.c
-
-Merged the latest changes from the trunk:
-
-r14012:
-[tests/tfpif.c] Updated comment about the bug detected on AIX.
-
-r14015:
-[doc/mpfr.texi] ACM TOMS article: use the preferred DOI URL.
-------------------------------------------------------------------------
-r14011 | vlefevre | 2020-06-13 01:05:59 +0000 (Sat, 13 Jun 2020) | 8 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/NEWS
- M /branches/4.1/tools/announce-text
-
-Merged the latest changes from the trunk:
-
-r14008,14010:
-[tools/announce-text] For release candidates, automatically adapt the
-flow of the text.
-
-r14009:
-[NEWS] Updated mpfr.org URLs (http → https).
-------------------------------------------------------------------------
-r14006 | vlefevre | 2020-06-12 17:55:05 +0000 (Fri, 12 Jun 2020) | 17 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/README
- M /branches/4.1/tests/tests.c
- M /branches/4.1/tests/tfpif.c
-
-Merged the latest changes from the trunk:
-
-r14003:
-[tests/tfpif.c] Fixed a bug (in the test) detected on AIX[*], where
-an fclose failed due to a previous read failure. At the same time,
-check that a read failure no longer occurs. Note: the read failure
-made mpfr_fpif_import fail, but this is a test where it is expected
-to fail, i.e. we now check that it fails for a good reason.
-[*] gcc119.fsffrance.org on the GCC Compile farm.
-
-r14004:
-[tests/tests.c] Removed a useless "#include <errno.h>" (added in r5252,
-useless since r5253).
-
-r14005:
-[README] Added URL of the official GNU MPFR website and a note about the
-future migration, since InriaForge will shut down in December 2020.
-------------------------------------------------------------------------
-r14002 | vlefevre | 2020-06-12 12:17:11 +0000 (Fri, 12 Jun 2020) | 1 line
-Changed paths:
- M /branches/4.1/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r14001 | vlefevre | 2020-06-12 12:10:28 +0000 (Fri, 12 Jun 2020) | 1 line
-Changed paths:
- M /branches/4.1/VERSION
- M /branches/4.1/configure.ac
- M /branches/4.1/doc/mpfr.texi
- M /branches/4.1/src/mpfr.h
- M /branches/4.1/src/version.c
-
-Updated version to 4.1.0-rc1.
-------------------------------------------------------------------------
-r14000 | vlefevre | 2020-06-12 12:09:52 +0000 (Fri, 12 Jun 2020) | 2 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/tools/update-version
-
-[tools/update-version] Improved a message.
-(merged changeset r13999 from the trunk)
-------------------------------------------------------------------------
-r13998 | vlefevre | 2020-06-12 12:02:30 +0000 (Fri, 12 Jun 2020) | 3 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] Corrected a comment from GMP's longlong.h, which
-makes codespell complain in particular.
-(merged changeset r13997 from the trunk)
-------------------------------------------------------------------------
-r13996 | vlefevre | 2020-06-12 11:56:18 +0000 (Fri, 12 Jun 2020) | 4 lines
-Changed paths:
- M /branches/4.1
- M /branches/4.1/tools/mpfrlint
-
-[tools/mpfrlint] Improved the __GMP_DECLSPEC test:
- * No longer exclude "src/mpfr.h".
- * Avoid false positives in "src/mpfr.h" and "src/mpfr-longlong.h".
-(merged changeset r13995 from the trunk)
-------------------------------------------------------------------------
-r13994 | vlefevre | 2020-06-12 11:45:04 +0000 (Fri, 12 Jun 2020) | 1 line
-Changed paths:
- M /branches/4.1/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13991 | vlefevre | 2020-06-12 11:40:23 +0000 (Fri, 12 Jun 2020) | 1 line
-Changed paths:
- A /branches/4.1 (from /trunk:13990)
-
-Created branch 4.1.
-------------------------------------------------------------------------
-r13990 | vlefevre | 2020-06-12 11:39:36 +0000 (Fri, 12 Jun 2020) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r13989 | vlefevre | 2020-06-11 21:22:20 +0000 (Thu, 11 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/total_order.c
- M /trunk/tests/ttotal_order.c
-
-Renamed mpfr_total_order to mpfr_total_order_p for consistency with the
-other predicates (by convention, the function name should end with _p).
-------------------------------------------------------------------------
-r13987 | vlefevre | 2020-06-11 15:15:52 +0000 (Thu, 11 Jun 2020) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] New function mpfr_total_order. Detailed mpfr_get_str_ndigits.
-------------------------------------------------------------------------
-r13986 | vlefevre | 2020-06-11 15:07:52 +0000 (Thu, 11 Jun 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release".
-------------------------------------------------------------------------
-r13980 | vlefevre | 2020-06-11 13:01:58 +0000 (Thu, 11 Jun 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release".
-------------------------------------------------------------------------
-r13979 | vlefevre | 2020-06-11 12:44:42 +0000 (Thu, 11 Jun 2020) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Updated -version-info to 7:0:1 for MPFR 4.1.0.
-------------------------------------------------------------------------
-r13978 | vlefevre | 2020-06-11 12:41:25 +0000 (Thu, 11 Jun 2020) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Additional details, in particular binary compatibility.
-------------------------------------------------------------------------
-r13977 | vlefevre | 2020-06-11 12:05:29 +0000 (Thu, 11 Jun 2020) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Some improvements.
-------------------------------------------------------------------------
-r13976 | zimmerma | 2020-06-11 07:44:42 +0000 (Thu, 11 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] one more test is skipped now
-
-------------------------------------------------------------------------
-r13975 | zimmerma | 2020-06-11 07:44:00 +0000 (Thu, 11 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] add test results with reduced limb size (int)
-
-------------------------------------------------------------------------
-r13974 | vlefevre | 2020-06-11 00:00:45 +0000 (Thu, 11 Jun 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release".
-------------------------------------------------------------------------
-r13973 | vlefevre | 2020-06-10 23:19:17 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added release name for 4.1.0: "épinards à la crème".
-------------------------------------------------------------------------
-r13971 | vlefevre | 2020-06-10 21:53:27 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] English usage improvement.
-------------------------------------------------------------------------
-r13970 | vlefevre | 2020-06-10 21:50:12 +0000 (Wed, 10 Jun 2020) | 15 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tvalist.c
-
-Fixed 2 issues with tests/tvalist.c:
- 1. When building with mini-gmp (--with-mini-gmp=DIR) without
- optimizations (-O0), the build of tvalist was failing because
- the formatted output functions are not supported (this issue
- wasn't noticed with optimizations due to dead code elimination).
- Fix: this test is disabled with mini-gmp (not needed anyway).
- 2. Dead code elimination with optimizations partly broke the goal
- of this test, i.e. checking that mpfr_vfprintf was available.
- This dead code was introduced in r7648 "Make sure that fct is
- used (avoid a warning)." (where fct = mpfr_vfprintf) but was
- actually not sufficient.
- Fix: call mpfr_vfprintf unconditionally, but on an empty string
- in order to avoid output to stdout.
-In addition to these changes in tests/tvalist.c, src/mpfr-impl.h could
-be simplified as a consequence.
-------------------------------------------------------------------------
-r13969 | vlefevre | 2020-06-10 21:26:07 +0000 (Wed, 10 Jun 2020) | 5 lines
-Changed paths:
- M /trunk/src/clears.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/tests/tvalist.c
-
-Removed '# undef HAVE_STDARG' before '# include "config.h"' when it
-was used, as it was not always undefined (e.g. in tests/tsprintf.c)
-and there are no reasons to undefine this macro specifically.
-Note: this code was introduced in r2665 (2004-02-06), perhaps for
-the MPFR build inside GMP, which has been dropped a long time ago.
-------------------------------------------------------------------------
-r13968 | vlefevre | 2020-06-10 21:07:30 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/tests/tvalist.c
-
-[tests/tvalist.c] Updated a comment.
-------------------------------------------------------------------------
-r13967 | vlefevre | 2020-06-10 21:01:12 +0000 (Wed, 10 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tvalist.c
-
-[tests/tvalist.c] Correction when config.h is used (code copied from
-src/inits.c).
-------------------------------------------------------------------------
-r13966 | zimmerma | 2020-06-10 14:27:40 +0000 (Wed, 10 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] review
-
-------------------------------------------------------------------------
-r13964 | vlefevre | 2020-06-10 12:48:02 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Typo in option name.
-------------------------------------------------------------------------
-r13963 | vlefevre | 2020-06-10 10:58:36 +0000 (Wed, 10 Jun 2020) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h]
- * Updated comment about this file and the changes against GMP 6.2.0.
- * Define __GMP_GNUC_PREREQ if it isn't defined (this is currently not
- needed since it is defined in gmp.h as used also there, but this is
- useful in case some future gmp.h version no longer defines it).
-------------------------------------------------------------------------
-r13962 | vlefevre | 2020-06-10 10:39:09 +0000 (Wed, 10 Jun 2020) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] Update: applied the diff of GMP's longlong.h
-between GMP 6.1.0 and GMP 6.2.0, after reverting changesets 13251,
-11042, 11025, and 10727, as these changes are present in the diff.
-------------------------------------------------------------------------
-r13961 | vlefevre | 2020-06-10 10:21:51 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] With mini-gmp, also check the availability of srand48.
-------------------------------------------------------------------------
-r13960 | vlefevre | 2020-06-10 10:15:52 +0000 (Wed, 10 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] For gmp_randseed_ui, which uses srand48, use
-a portable version of the conversion from unsigned long to long.
-------------------------------------------------------------------------
-r13959 | vlefevre | 2020-06-10 09:37:15 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] Note also that the random functions are not thread-safe.
-------------------------------------------------------------------------
-r13958 | vlefevre | 2020-06-10 09:21:46 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] Major update.
-------------------------------------------------------------------------
-r13957 | vlefevre | 2020-06-10 08:40:02 +0000 (Wed, 10 Jun 2020) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Removed a FIXME (no problems found).
-------------------------------------------------------------------------
-r13955 | vlefevre | 2020-06-09 15:53:51 +0000 (Tue, 09 Jun 2020) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Code style: replaced (mp_limb_t) -1 by MPFR_LIMB_MAX.
-------------------------------------------------------------------------
-r13954 | vlefevre | 2020-06-09 15:46:19 +0000 (Tue, 09 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/src/mul_ui.c
-
-[src/mul_ui.c] Bug fix: in the code where MPFR_LONG_WITHIN_LIMB is
-not defined, update the flags (needed for the possible overflow).
-------------------------------------------------------------------------
-r13953 | vlefevre | 2020-06-09 15:37:58 +0000 (Tue, 09 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-[tests/tmul_ui.c] Added an overflow check that fails in MPFR_RNDZ with
-mini-gmp and mp_limb_t < long (e.g. "-DMINI_GMP_LIMB_TYPE=short").
-------------------------------------------------------------------------
-r13952 | vlefevre | 2020-06-09 15:15:04 +0000 (Tue, 09 Jun 2020) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] In the MPFR_SUSPICIOUS_OVERFLOW case, output yprec.
-------------------------------------------------------------------------
-r13951 | vlefevre | 2020-06-09 15:04:19 +0000 (Tue, 09 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Changed the code that defines MPFR_LONG_WITHIN_LIMB
-in order to support mini-gmp with -DMINI_GMP_LIMB_TYPE=...
-------------------------------------------------------------------------
-r13950 | vlefevre | 2020-06-09 13:39:35 +0000 (Tue, 09 Jun 2020) | 8 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Fixed build failure with GMP_NUMB_BITS == 8 due to the
-use of uint64_t in src/get_ld.c, while <stdint.h> was not included:
-replaced it by "unsigned long long", which does not need a specific
-header (an exact 64-bit type is not needed, we just need at least a
-64-bit width, which unsigned long long is guaranteed to have).
-Note: unsigned long long may not be available with a pre-C99 compiler,
-but this is not worse than uint64_t. This limitation is currently OK
-as GMP_NUMB_BITS == 8 support is just for testing.
-------------------------------------------------------------------------
-r13949 | vlefevre | 2020-06-09 10:53:21 +0000 (Tue, 09 Jun 2020) | 12 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Make MPFR_CHECK_MP_LIMB_T_VS_LONG and
-MPFR_CHECK_MP_LIMB_T_VS_INTMAX similar:
- * Use AC_LINK_IFELSE in MPFR_CHECK_MP_LIMB_T_VS_LONG too: this
- is safer than AC_COMPILE_IFELSE, as it will detect undefined
- function-like macros.
- * Define MPFR_USE_STATIC_ASSERT in MPFR_CHECK_MP_LIMB_T_VS_INTMAX
- too in order to make sure that a static assertion is used (not
- the MPFR_ASSERTN fallback).
-Note: These constitute redundant safeguards because if MPFR_ASSERTN
-is used, it will be regarded as a function since the macro is not
-defined in this context, and linking will fail as a consequence.
-But this redundancy will protect more against MPFR code evolution.
-------------------------------------------------------------------------
-r13948 | vlefevre | 2020-06-09 09:41:51 +0000 (Tue, 09 Jun 2020) | 16 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed MPFR_CHECK_MP_LIMB_T_VS_LONG macro by forcing
-MPFR_USE_STATIC_ASSERT to 1 before including mpfr-sassert.h, i.e.
-by requiring static assertions: because AC_COMPILE_IFELSE is used
-(i.e. just compiling, no linking), the test could incorrectly succeed
-when MPFR_USE_STATIC_ASSERT was not defined, i.e. whatever the value
-of "(mp_limb_t) -1 >= (unsigned long) -1"; indeed, in this case,
-MPFR_ASSERTN() was used instead of a static assertion, and since the
-macro was not defined here, MPFR_ASSERTN was regarded as a function
-(without a prototype), which was fine for compiling (except when the
-compiler is configured to regard warnings such as missing prototype
-as errors). In short, one could get "yes" while long was larger than
-mp_limb_t.
-Note: In uncommon cases (non-standard compiler...), one can still get
-"no" while a long fits in mp_limb_t, but this isn't much an issue as
-the MPFR code should work in such a case. Moreover, src/mpfr-impl.h
-will also have the chance to set MPFR_LONG_WITHIN_LIMB in practice.
-------------------------------------------------------------------------
-r13947 | vlefevre | 2020-06-09 00:57:05 +0000 (Tue, 09 Jun 2020) | 28 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-sassert.h
- M /trunk/tune/tuneup.c
-
-Removed MPFR_DECL_STATIC_ASSERT macro as it was buggy, unused, rather
-useless, and it had drawbacks. Details:
- * In src/mpfr-sassert.h, the default definition of this macro in the
- MPFR_USE_STATIC_ASSERT case ended with a spurious ";". Since this
- macro was unused, this wasn't noticeable... except in the configure
- test for static assertions, which failed in some cases (e.g. with
- CFLAGS="-std=c99 -pedantic-errors -Wno-error=overlength-strings")
- for this reason, which had the effect to let MPFR_USE_STATIC_ASSERT
- undefined, while static assertions were actually working.
- * Still in src/mpfr-sassert.h, but when MPFR_USE_STATIC_ASSERT is not
- defined, the MPFR_DECL_STATIC_ASSERT(c) expanded to nothing, which
- would yield invalid code as
- MPFR_DECL_STATIC_ASSERT(some_assertion);
- would yield an extra ";" (about the same issue as above). Given
- the fact that the portable MPFR_USE_STATIC_ASSERT code does not
- work with this compiler, it is not clear whether this is fixable
- in a completely reliable way.
- * MPFR_DECL_STATIC_ASSERT can be replaced by MPFR_STAT_STATIC_ASSERT
- after moving it to the statement section of a function, with almost
- no drawbacks (just a bit readability in some cases?).
- * When MPFR_USE_STATIC_ASSERT is not defined, MPFR_STAT_STATIC_ASSERT
- will check the assertion at run time (for free, since the result is
- known at compile time), while MPFR_DECL_STATIC_ASSERT would not be
- able to do anything useful.
-Changes:
- * acinclude.m4: removed the test of MPFR_DECL_STATIC_ASSERT.
- * src/mpfr-sassert.h: removed MPFR_DECL_STATIC_ASSERT definitions.
- * tune/tuneup.c: removed MPFR_DECL_STATIC_ASSERT redefinition.
-------------------------------------------------------------------------
-r13946 | vlefevre | 2020-06-08 23:55:33 +0000 (Mon, 08 Jun 2020) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] MPFR_CHECK_MP_LIMB_T_VS_LONG: updated comment to say
-that using MPFR_ASSERTN (as the code tries to do if static assertions
-are not supported, but currently fails) would be incorrect.
-------------------------------------------------------------------------
-r13945 | vlefevre | 2020-06-08 13:45:33 +0000 (Mon, 08 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] In MPFR_CHECK_MP_LIMB_T_VS_INTMAX, do the test only if
-intmax_t is defined (assuming that it is iff uintmax_t is defined).
-------------------------------------------------------------------------
-r13944 | vlefevre | 2020-06-08 13:39:32 +0000 (Mon, 08 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Also output the results of the detection of
-"long within limb" and "intmax_t within limb".
-------------------------------------------------------------------------
-r13942 | vlefevre | 2020-06-04 16:22:38 +0000 (Thu, 04 Jun 2020) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Removed an obsolete FIXME, which is probably wrong.
-------------------------------------------------------------------------
-r13941 | vlefevre | 2020-06-04 16:17:12 +0000 (Thu, 04 Jun 2020) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated a comment, replacing a resolved FIXME.
-------------------------------------------------------------------------
-r13940 | vlefevre | 2020-06-04 15:53:59 +0000 (Thu, 04 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] MPFR_CHECK_DBL2INT_BUG test: avoid potentially reserved
-exit status.
-------------------------------------------------------------------------
-r13939 | vlefevre | 2020-06-04 14:29:17 +0000 (Thu, 04 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed r13938: the new MPFR_C_REALFP_FORMAT macro also
-needs to take the printf length modifier in argument.
-------------------------------------------------------------------------
-r13938 | vlefevre | 2020-06-04 13:51:32 +0000 (Thu, 04 Jun 2020) | 11 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Improved the code to determine the format of double,
-resolving the FIXME. The issue was that it used an AC_RUN_IFELSE,
-so that the format could not be determined when cross-compiling.
-The code to determine the format of long double did not have such
-an issue: the object file was analyzed by an awk script. Since a
-long double can have the same format as a double, this code was
-already able to recognize a double, in particular. So the change
-consisted in slightly adapting this code to accept the tested type
-as an argument ("double" or "long double", the mpfr_cv_… variable
-name being obtained thanks to AS_VAR_PUSHDEF) and reusing it for
-the detection of the format of double.
-------------------------------------------------------------------------
-r13937 | vlefevre | 2020-06-04 13:21:09 +0000 (Thu, 04 Jun 2020) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT cleanup:
- * Removed an unused AH_VERBATIM.
- * Removed "not available" condition, no longer possible since r13936.
-------------------------------------------------------------------------
-r13936 | vlefevre | 2020-06-04 12:34:18 +0000 (Thu, 04 Jun 2020) | 6 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fix concerning r13935: also removed code that tested
-the availability of long double. This code was useless since it was
-just outputting "not available" if long double was missing, and one
-would get an error later since MPFR requires long double. But since
-long double is in ISO C89, it is useless to add a test just to return
-an error for pre-C89 compilers.
-------------------------------------------------------------------------
-r13935 | vlefevre | 2020-06-04 12:17:15 +0000 (Thu, 04 Jun 2020) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4] Removed "AC_CHECK_TYPES([long double])", whose only
- purpose is to define a HAVE_LONG_DOUBLE macro.
-[configure.ac] Removed HAVE_LONG_DOUBLE from the cleanup: no longer
- needed with the change in acinclude.m4.
-------------------------------------------------------------------------
-r13934 | vlefevre | 2020-06-03 13:44:24 +0000 (Wed, 03 Jun 2020) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Minor change in a comment.
-------------------------------------------------------------------------
-r13933 | vlefevre | 2020-06-03 13:38:17 +0000 (Wed, 03 Jun 2020) | 10 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-Cleanup about the function detection by autoconf.
- * acinclude.m4: removed the detection of memmove, memset and strtol,
- which was not used (a macro "HAVE_..." was defined... to be removed
- in configure.ac!); for AC_CHECK_FUNCS, remove options starting with
- "-Werror" as they can yield a spurious failure due to the way this
- test is done (this occurred on memmove and memset with GCC due to
- builtins, and similar issues could still occur in practice with the
- remaining functions in the AC_CHECK_FUNCS list).
- * configure.ac: removed HAVE_STRTOL from the macro cleanup: no longer
- needed since strtol has been removed from the AC_CHECK_FUNCS list.
-------------------------------------------------------------------------
-r13932 | vlefevre | 2020-06-03 12:11:13 +0000 (Wed, 03 Jun 2020) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Minor improvement: in the MPFR_CHECK_GMP test, changed
-the exit status values 1..3 to 81..83 in order to avoid confusion, as
-low values can typically be returned in case of compile or link error.
-------------------------------------------------------------------------
-r13931 | vlefevre | 2020-06-02 22:43:08 +0000 (Tue, 02 Jun 2020) | 1 line
-Changed paths:
- M /trunk/tests/memory.c
-
-[tests/memory.c] Updated a comment.
-------------------------------------------------------------------------
-r13930 | vlefevre | 2020-06-02 21:35:11 +0000 (Tue, 02 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] Added code to check that mpfr-longlong.h is not
-included directly; MPFR_NEED_LONGLONG_H must be defined instead.
-------------------------------------------------------------------------
-r13929 | vlefevre | 2020-06-02 21:26:51 +0000 (Tue, 02 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] To complete r13928, one also needs to define
-MPFR_NEED_INTMAX_H here when mpfr-intmax.h is used.
-------------------------------------------------------------------------
-r13928 | vlefevre | 2020-06-02 21:21:45 +0000 (Tue, 02 Jun 2020) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
-
-[src/{mpfr-impl.h,mpfr-intmax.h}] Added code to check that mpfr-intmax.h
-is not included directly; MPFR_NEED_INTMAX_H must be defined instead.
-------------------------------------------------------------------------
-r13923 | vlefevre | 2020-06-01 10:39:52 +0000 (Mon, 01 Jun 2020) | 12 lines
-Changed paths:
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_uj.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/set_sj.c
- M /trunk/src/set_uj.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/memory.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tversion.c
-
-Bug fixes and cleanup related to "src/mpfr-intmax.h" by introducing
-a new macro MPFR_NEED_INTMAX_H, which should be defined instead of
-using: #include "mpfr-intmax.h"
-
-Details on the bugs fixed:
- * The code added in r13916 forgot a #include <limits.h> since this
- code does a test on ULLONG_MAX. With the cleanup, <limits.h> is
- already always included by mpfr-impl.h (early enough).
- * In src/get_str.c and tests/memory.c, a #include "config.h" was
- missing before #include "mpfr-intmax.h"; this issue would affect
- platforms where "config.h" is needed and where <inttypes.h> or
- <stdint.h> does not exist or does not work.
-------------------------------------------------------------------------
-r13922 | vlefevre | 2020-06-01 00:15:37 +0000 (Mon, 01 Jun 2020) | 3 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] For the non-regression test added in r13907, one
-also needs to temporarily increase the memory limit, thus require
-MPFR_CHECK_LARGEMEM too.
-------------------------------------------------------------------------
-r13920 | vlefevre | 2020-05-26 11:24:25 +0000 (Tue, 26 May 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] If decimal floats are explicitly disabled, do not do
-the check of the bit-field ordering for _Decimal128.
-------------------------------------------------------------------------
-r13919 | vlefevre | 2020-05-26 11:12:21 +0000 (Tue, 26 May 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed detection of bit-field ordering for _Decimal128:
-a compiler error with exit status 1 was mixed up with little endian.
-------------------------------------------------------------------------
-r13916 | vlefevre | 2020-05-24 17:53:31 +0000 (Sun, 24 May 2020) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-intmax.h
-
-[src/mpfr-intmax.h] Added support for Silicon Graphics IRIX 6.5 (1998)
-with native /usr/bin/cc, which knows the long long type but defines
-ULONGLONG_MAX, etc. instead of ULLONG_MAX, etc.
-------------------------------------------------------------------------
-r13915 | vlefevre | 2020-05-24 01:35:17 +0000 (Sun, 24 May 2020) | 4 lines
-Changed paths:
- M /trunk/tests/tget_ld_2exp.c
-
-[tests/tget_ld_2exp.c] Reverted r13914 as we still need to support
-pre-C99 compilers (and this change was useless).
-If C99 syntax is needed, there should be a configure test, and the
-code should be conditional.
-------------------------------------------------------------------------
-r13914 | zimmerma | 2020-05-23 19:53:25 +0000 (Sat, 23 May 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tget_ld_2exp.c
-
-[tests/tget_ld_2exp.c] put expected value in hex in bug20180904()
-
-------------------------------------------------------------------------
-r13913 | vlefevre | 2020-05-20 01:13:35 +0000 (Wed, 20 May 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": mention MPFR_CHECK_EXPENSIVE.
-------------------------------------------------------------------------
-r13912 | zimmerma | 2020-05-19 21:19:06 +0000 (Tue, 19 May 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] added comment about bug fix
-
-------------------------------------------------------------------------
-r13911 | zimmerma | 2020-05-19 21:13:36 +0000 (Tue, 19 May 2020) | 3 lines
-Changed paths:
- M /trunk/src/bernoulli.c
-
-[src/bernoulli.c] improve initial precision in mpfr_bernoulli_internal()
- (avoid failures for n <= 10000)
-
-------------------------------------------------------------------------
-r13910 | zimmerma | 2020-05-19 20:01:02 +0000 (Tue, 19 May 2020) | 2 lines
-Changed paths:
- M /trunk/src/bernoulli.c
-
-[src/bernoulli.c] fix bug with non-regression test added in r13907
-
-------------------------------------------------------------------------
-r13909 | zimmerma | 2020-05-19 17:59:41 +0000 (Tue, 19 May 2020) | 3 lines
-Changed paths:
- M /trunk/src/bernoulli.c
-
-[src/bernoulli.c] temporary fix for the bug in mpfr_gamma, something must be
- wrong in the error analysis of mpfr_bernoulli_internal()
-
-------------------------------------------------------------------------
-r13908 | zimmerma | 2020-05-19 16:13:09 +0000 (Tue, 19 May 2020) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/tgamma.c
-
-[doc/README.dev] added MPFR_CHECK_EXPENSIVE
-[tests/tgamma.c] use MPFR_CHECK_EXPENSIVE
-
-------------------------------------------------------------------------
-r13907 | zimmerma | 2020-05-19 15:06:58 +0000 (Tue, 19 May 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-added non-regression test for bug reported by Frithjof Blomquist
-
-------------------------------------------------------------------------
-r13906 | vlefevre | 2020-05-04 15:25:13 +0000 (Mon, 04 May 2020) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Use of codespell: better workaround to python ugliness.
-------------------------------------------------------------------------
-r13898 | vlefevre | 2020-04-27 20:12:09 +0000 (Mon, 27 Apr 2020) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Section "Rounding" / even-rounding rule: the odd
-radices β are actually not concerned since in such radices, β^k
-is always odd, so that the exponent does not matter.
-------------------------------------------------------------------------
-r13897 | vlefevre | 2020-04-27 19:59:50 +0000 (Mon, 27 Apr 2020) | 7 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] In Section "Rounding", for MPFR_RNDN, added a note
-about the even-rounding rule in particular cases: 1-digit precision
-and odd radices.
-Note: A short explanation was already in the mpfr_get_str description,
-which is where the issue could occur at the time the minimum precision
-of MPFR numbers was 2. Now that the minimum precision is 1, this rule
-in such special cases is more general.
-------------------------------------------------------------------------
-r13896 | vlefevre | 2020-04-27 19:27:57 +0000 (Mon, 27 Apr 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] + "than": also in a comment.
-------------------------------------------------------------------------
-r13895 | vlefevre | 2020-04-27 19:19:53 +0000 (Mon, 27 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected a typo. Changed "{less,greater} or equal to"
-to the more common "{less,greater} than or equal to".
-------------------------------------------------------------------------
-r13893 | vlefevre | 2020-04-26 16:07:20 +0000 (Sun, 26 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] In the paragraph on mpfr_rnd_t, give a reference
-to Section "Rounding".
-------------------------------------------------------------------------
-r13892 | vlefevre | 2020-04-26 15:58:59 +0000 (Sun, 26 Apr 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] s/can not/cannot/
-------------------------------------------------------------------------
-r13891 | vlefevre | 2020-04-26 15:57:16 +0000 (Sun, 26 Apr 2020) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved Section "Rounding" even more:
- * Added a note about the sign of the result (important for 0).
- * Described the directed rounding modes (BTW, this notion of
- "directed rounding modes" was used but never defined).
-------------------------------------------------------------------------
-r13890 | vlefevre | 2020-04-26 15:13:10 +0000 (Sun, 26 Apr 2020) | 5 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved the description of the rounding modes:
- * Be more clear that MPFR_RNDN uses the even rounding rule.
- * In "two representable numbers", add "consecutive".
- * Be more general than radix 2 (due to conversions to a string).
- * Consistent typography.
-------------------------------------------------------------------------
-r13889 | vlefevre | 2020-04-25 15:08:40 +0000 (Sat, 25 Apr 2020) | 5 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi]
- * mpfr_init2: mention mpfr_prec_round; added a note about
- memory allocation.
- * mpfr_prec_round: clarification ("new allocation" could be
- surprising since one needs less memory).
-------------------------------------------------------------------------
-r13888 | zimmerma | 2020-04-25 14:42:58 +0000 (Sat, 25 Apr 2020) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] document that mpfr_prec_round does no new allocation
- in case the allocated memory is enough
-
-------------------------------------------------------------------------
-r13886 | vlefevre | 2020-04-22 15:27:07 +0000 (Wed, 22 Apr 2020) | 5 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Removing the FIXME: I can't see anything wrong in the
-MPFR code. This could be a bug in GCC's analyzer (which is currently
-experimental). And GCC bug 94713 in the analyzer prevents debugging
-as it makes impossible to track uninitialized values: warnings do not
-occur the first time an uninitialized value occurs.
-------------------------------------------------------------------------
-r13885 | vlefevre | 2020-04-22 15:10:28 +0000 (Wed, 22 Apr 2020) | 1 line
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Added an assertion.
-------------------------------------------------------------------------
-r13884 | vlefevre | 2020-04-22 15:02:31 +0000 (Wed, 22 Apr 2020) | 1 line
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Reduce the number of mpz_get_ui calls with assertions.
-------------------------------------------------------------------------
-r13883 | vlefevre | 2020-04-22 12:23:39 +0000 (Wed, 22 Apr 2020) | 1 line
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Added a FIXME.
-------------------------------------------------------------------------
-r13881 | vlefevre | 2020-04-14 11:12:16 +0000 (Tue, 14 Apr 2020) | 5 lines
-Changed paths:
- M /trunk/doc/texinfo.tex
-
-[doc/texinfo.tex] Update to 2020-02-11.09 with "autoreconf -i -f"
-under Debian/unstable.
-Note: The generated mpfr.html and mpfr.info files remain the same.
-In mpfr.pdf, there are minor changes concerning horizontal spacing
-in paragraphs with a URL.
-------------------------------------------------------------------------
-r13879 | vlefevre | 2020-04-11 01:53:36 +0000 (Sat, 11 Apr 2020) | 4 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Fixed missing "#if _MPFR_IEEE_FLOATS" that
-became visible with r13878 now that the encoding of decimal floats
-can be detected at compile time. But by fixing the defined macros
-manually, this issue could be visible before r13878.
-------------------------------------------------------------------------
-r13878 | vlefevre | 2020-04-10 11:19:19 +0000 (Fri, 10 Apr 2020) | 11 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/src/get_d64.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tversion.c
-
-Reworked decimal support and detection, resolving FIXMEs.
- * INSTALL, acinclude.m4, configure.ac: --enable-decimal-float can
- take new values. Change of macro DPD_FORMAT (DPD was assumed in
- case of cross-compilation, which could be wrong) to 3 new macros:
- DECIMAL_DPD_FORMAT, DECIMAL_BID_FORMAT, DECIMAL_GENERIC_CODE.
- * doc/README.dev: documented these 3 new macros.
- * src/mpfr-impl.h: the detection of the BID encoding can now be
- done at compile time when GCC defines __DECIMAL_BID_FORMAT__
- (as on x86); support of the 3 new macros.
- * src/{get_d64.c,set_d64.c,set_d128.c}: update.
- * tests/{tget_set_d64.c,tget_set_d128.c,tversion.c}: update.
-------------------------------------------------------------------------
-r13877 | vlefevre | 2020-04-08 22:39:35 +0000 (Wed, 08 Apr 2020) | 1 line
-Changed paths:
- M /trunk/ChangeLog
- M /trunk/INSTALL
- M /trunk/src/get_d128.c
- M /trunk/src/get_d64.c
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
- M /trunk/tests/tests.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tsprintf.c
-
-Updated URLs of the GCC mailing-list archives.
-------------------------------------------------------------------------
-r13876 | vlefevre | 2020-04-06 21:06:10 +0000 (Mon, 06 Apr 2020) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Updated FIXME about AC_FUNC_ALLOCA (in 2019-01, I
-already noticed a probable bug in the AC_FUNC_ALLOCA description,
-but forgot about it).
-------------------------------------------------------------------------
-r13875 | vlefevre | 2020-04-06 14:03:01 +0000 (Mon, 06 Apr 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13874 | vlefevre | 2020-04-06 14:02:01 +0000 (Mon, 06 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Formatted output functions: added a comment with the URL
-of the bug report.
-------------------------------------------------------------------------
-r13873 | vlefevre | 2020-04-06 13:59:38 +0000 (Mon, 06 Apr 2020) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS,doc/mpfr.texi] Documented the improvement in the formatted output
-functions (mpfr_printf, etc.) with an empty precision field, about
-trailing zeros.
-------------------------------------------------------------------------
-r13868 | vlefevre | 2020-04-03 10:56:49 +0000 (Fri, 03 Apr 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Corrected MPFR_ASSERTD to MPFR_ASSERTN.
-------------------------------------------------------------------------
-r13867 | vlefevre | 2020-04-03 10:54:16 +0000 (Fri, 03 Apr 2020) | 9 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Reverted r13862 and fixed the test_ubf test: A random
-precision was too small, so that an input for the test was not computed
-exactly (I had modified the values of the inputs for better tests, but
-forgot to change the minimum precision). Also check that the inputs are
-computed exactly (which is what I often do, but here, I had forgotten),
-in order to make errors like the above one easier to understand in case
-the test will have to be modified later.
-Note: With the incorrect input, the mpfr_sub1 result and flags were
-actually correct, so that this was only a bug in the test.
-------------------------------------------------------------------------
-r13866 | zimmerma | 2020-04-03 06:32:52 +0000 (Fri, 03 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] update CompCert instructions
-
-------------------------------------------------------------------------
-r13865 | zimmerma | 2020-04-02 20:35:33 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] fixed CompCert instructions
-
-------------------------------------------------------------------------
-r13864 | vlefevre | 2020-04-02 15:55:35 +0000 (Thu, 02 Apr 2020) | 6 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Reverted r13858: the check_overflow test was already
-in MPFR 4.0.1 and was succeeding on armv5tejl-unknown-linux-gnueabi,
-which had mpfr_cv_c_long_double_format='IEEE double, little endian'.
-The issue should be investigated.
-Note: MPFR_LDBL_MANT_DIG may be larger than the actual number of bits,
-but this should not cause a failure in the tests.
-------------------------------------------------------------------------
-r13863 | vlefevre | 2020-04-02 15:43:04 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tget_ld_2exp.c
-
-[tests/tget_ld_2exp.c] Proper fix: the bug20180904 test was designed
-for the x87 extended precision, so enable it only in this case.
-------------------------------------------------------------------------
-r13862 | zimmerma | 2020-04-02 14:06:30 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] modify test_ubf() to always hit a current failing test
-
-------------------------------------------------------------------------
-r13861 | vlefevre | 2020-04-02 13:49:16 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Fixed the change done in r13853 (about removed macros),
-making the code simpler and more maintainable at the same time.
-------------------------------------------------------------------------
-r13860 | zimmerma | 2020-04-02 11:48:28 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added configuration for CompCert test
-
-------------------------------------------------------------------------
-r13859 | vlefevre | 2020-04-02 11:31:51 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] Removed obsolete workaround due to LDBL_MAX being buggy
-on old i386 systems (the tests were not using this workaround).
-------------------------------------------------------------------------
-r13858 | zimmerma | 2020-04-02 11:12:28 +0000 (Thu, 02 Apr 2020) | 3 lines
-Changed paths:
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tset_ld.c
-
-[tests/tget_ld_2exp.c] fixed for case where long double = double
-[tests/tset_ld.c] likewise
-
-------------------------------------------------------------------------
-r13857 | vlefevre | 2020-04-02 10:58:19 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Moved MPFR_CONFIGS invocation: MPFR_CONFIGS uses LDFLAGS,
-thus must be invoked after LDFLAGS has been determined completely.
-------------------------------------------------------------------------
-r13856 | zimmerma | 2020-04-02 10:32:50 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] now all tests pass with compcert
-
-------------------------------------------------------------------------
-r13855 | zimmerma | 2020-04-02 10:19:13 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] added missing LDFLAGS for long double test
-
-------------------------------------------------------------------------
-r13854 | vlefevre | 2020-04-02 09:56:46 +0000 (Thu, 02 Apr 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added HAVE_ALLOCA description.
-------------------------------------------------------------------------
-r13853 | vlefevre | 2020-04-02 09:53:55 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Do not remove the HAVE_ALLOCA macro, which is now used
-by MPFR to determine the default MPFR_ALLOCA_MAX value.
-------------------------------------------------------------------------
-r13852 | zimmerma | 2020-04-02 09:51:09 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] update CompCert instructions
-
-------------------------------------------------------------------------
-r13851 | vlefevre | 2020-04-02 09:45:31 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output whether MPFR is built with the GMP build,
-and the MPFR_ALLOCA_MAX value if not.
-------------------------------------------------------------------------
-r13850 | vlefevre | 2020-04-02 09:24:44 +0000 (Thu, 02 Apr 2020) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] If HAVE_ALLOCA is not defined, i.e. if alloca() is
-not available (as detected by the configure script), then set the
-default MPFR_ALLOCA_MAX value to 0 so that alloca() is not used.
-------------------------------------------------------------------------
-r13849 | zimmerma | 2020-04-02 06:57:07 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added instructions for CompCert
-
-------------------------------------------------------------------------
-r13848 | vlefevre | 2020-04-02 01:26:46 +0000 (Thu, 02 Apr 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated MPFR_ALLOCA_MAX description.
-------------------------------------------------------------------------
-r13847 | vlefevre | 2020-04-02 01:04:08 +0000 (Thu, 02 Apr 2020) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] When MPFR_ALLOCA_MAX = 0 (set at configure time),
-do not reference alloca() since we don't need it.
-------------------------------------------------------------------------
-r13844 | vlefevre | 2020-03-31 13:11:09 +0000 (Tue, 31 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] About mpfr_printf with %Re and empty precision field,
-added a comment with URLs of the discussion and the bug report.
-------------------------------------------------------------------------
-r13840 | vlefevre | 2020-03-30 19:07:12 +0000 (Mon, 30 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Typo in a comment.
-------------------------------------------------------------------------
-r13839 | vlefevre | 2020-03-30 14:52:53 +0000 (Mon, 30 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated message output when the gmp.h vs libgmp test
-fails: another cause may be that LD_RUN_PATH is not honored (problem
-seen under OpenBSD 6.6 / gcc302.fsffrance.org).
-------------------------------------------------------------------------
-r13835 | vlefevre | 2020-03-27 17:36:26 +0000 (Fri, 27 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tset_sj.c
-
-[tests/tset_sj.c] Forgot a "#ifndef NPRINTF_J" for printf("%jd",...).
-------------------------------------------------------------------------
-r13834 | vlefevre | 2020-03-27 15:45:17 +0000 (Fri, 27 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/set_uj.c
-
-[src/set_uj.c] Fixed underflow detection.
-------------------------------------------------------------------------
-r13833 | vlefevre | 2020-03-27 15:12:51 +0000 (Fri, 27 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/set_uj.c
-
-[src/set_uj.c] Added early overflow detection to avoid a possible
-integer overflow. Added a FIXME (incorrect underflow detection).
-------------------------------------------------------------------------
-r13832 | vlefevre | 2020-03-27 15:05:03 +0000 (Fri, 27 Mar 2020) | 6 lines
-Changed paths:
- M /trunk/tests/tset_sj.c
-
-[tests/tset_sj.c] Added tests of mpfr_set_sj_2exp and mpfr_set_uj_2exp
-in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
-MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
-MPFR_EXP_MAX-7 to MPFR_EXP_MAX (like in tset_si.c, see r13808), but
-also exponents INTMAX_MIN and INTMAX_MAX. This shows bugs in set_uj.c,
-to be fixed...
-------------------------------------------------------------------------
-r13831 | vlefevre | 2020-03-27 14:17:10 +0000 (Fri, 27 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/set_sj.c
-
-[src/set_sj.c] Coding style.
-------------------------------------------------------------------------
-r13830 | vlefevre | 2020-03-27 13:59:05 +0000 (Fri, 27 Mar 2020) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-[src] Moved the definition of the numberof() macro from mpfr-gmp.h to
-mpfr-impl.h in order to always use our own. Also make sure that the
-type is signed, so that the value can be used in arbitrary expressions
-without the risk of silently switching to unsigned arithmetic.
-------------------------------------------------------------------------
-r13827 | vlefevre | 2020-03-26 12:58:24 +0000 (Thu, 26 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/texpm1.c
-
-[tests/texpm1.c] Updated the bad_cases() parameters to increase the
-proportion of generated bad cases.
-------------------------------------------------------------------------
-r13826 | vlefevre | 2020-03-26 11:51:33 +0000 (Thu, 26 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Forgot a cast for MPFR_EXP_FSPEC argument.
-------------------------------------------------------------------------
-r13825 | vlefevre | 2020-03-26 10:07:00 +0000 (Thu, 26 Mar 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13824 | vlefevre | 2020-03-26 10:00:46 +0000 (Thu, 26 Mar 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/dump.c
- M /trunk/src/mpfr-impl.h
-
-Consistency: "a UBF" → "an UBF" since UBF stands for "unbounded float".
-------------------------------------------------------------------------
-r13823 | vlefevre | 2020-03-26 09:56:45 +0000 (Thu, 26 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
-------------------------------------------------------------------------
-r13822 | vlefevre | 2020-03-26 09:53:55 +0000 (Thu, 26 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
-------------------------------------------------------------------------
-r13821 | vlefevre | 2020-03-26 09:35:25 +0000 (Thu, 26 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Bug fix (MPFR_ZEXP(x) as used for an assignment
-could yield undefined behavior on platforms where mpfr_exp_t has
-trap representations); this is also a general improvement.
-------------------------------------------------------------------------
-r13818 | vlefevre | 2020-03-26 02:45:48 +0000 (Thu, 26 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Avoid the build failure with -Werror=strict-aliasing by
-replacing x[…] by p[…] (but this doesn't eliminate the problem itself).
-------------------------------------------------------------------------
-r13816 | vlefevre | 2020-03-26 00:17:17 +0000 (Thu, 26 Mar 2020) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] UBF: updated comment: this breaks aliasing rules, but
-there isn't any other acceptable solution.
-Note: when trying to build MPFR without --enable-assert, with GCC and
-CFLAGS="-O2 -Werror=strict-aliasing", the compilation of tests/tsub.c
-currently fails because of that.
-------------------------------------------------------------------------
-r13815 | vlefevre | 2020-03-25 20:24:23 +0000 (Wed, 25 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Fixed tests on UBF.
-------------------------------------------------------------------------
-r13814 | vlefevre | 2020-03-25 20:04:16 +0000 (Wed, 25 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Fixed underflow handling in case c small (can occur only
-with UBF).
-------------------------------------------------------------------------
-r13813 | vlefevre | 2020-03-25 19:40:39 +0000 (Wed, 25 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Minor correction.
-------------------------------------------------------------------------
-r13812 | vlefevre | 2020-03-25 19:39:40 +0000 (Wed, 25 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Changed a RND_LOOP to RND_LOOP_NO_RNDF as the behavior
-with RNDF changed after a bug fix.
-------------------------------------------------------------------------
-r13811 | vlefevre | 2020-03-25 17:52:01 +0000 (Wed, 25 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Completed tests for UBF (currently fail).
-------------------------------------------------------------------------
-r13810 | vlefevre | 2020-03-25 17:28:45 +0000 (Wed, 25 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Bug fix for UBF and MPFR_RNDF.
-------------------------------------------------------------------------
-r13809 | vlefevre | 2020-03-25 17:07:02 +0000 (Wed, 25 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_ui_2exp.c
-
-[src/set_{si,ui}_2exp.c] Bug fix in MPFR_LONG_WITHIN_LIMB defined case:
-added early underflow/overflow checking to avoid integer overflow or
-errors due to special exponent values.
-------------------------------------------------------------------------
-r13808 | vlefevre | 2020-03-25 16:55:37 +0000 (Wed, 25 Mar 2020) | 5 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Added tests of mpfr_set_si_2exp and mpfr_set_ui_2exp
-in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
-MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
-MPFR_EXP_MAX-7 to MPFR_EXP_MAX, showing bugs in these functions when
-MPFR_LONG_WITHIN_LIMB is defined.
-------------------------------------------------------------------------
-r13807 | vlefevre | 2020-03-24 15:41:55 +0000 (Tue, 24 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] More tests on UBF. The results are not checked yet,
-but running the tests with UBsan could allow one to trigger bugs
-(such as the one fixed in r13806).
-------------------------------------------------------------------------
-r13806 | vlefevre | 2020-03-24 15:32:22 +0000 (Tue, 24 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] If exp_b = MPFR_EXP_MIN, an integer overflow may occur in
-the "MAX (aq, bq) + 2 <= diff_exp" branch. This is possible only with
-UBF. Fixed this bug with an early underflow detection in the UBF case.
-------------------------------------------------------------------------
-r13805 | vlefevre | 2020-03-24 13:47:38 +0000 (Tue, 24 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Added extreme_underflow test: before the r13798 bug fix,
-this was triggering an integer overflow.
-------------------------------------------------------------------------
-r13804 | vlefevre | 2020-03-24 12:41:29 +0000 (Tue, 24 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Corrected a function name.
-------------------------------------------------------------------------
-r13803 | vlefevre | 2020-03-24 11:27:52 +0000 (Tue, 24 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] More tests on UBF, in particular with an exponent change
-(including subnormal → normal and normal → overflow due to that).
-------------------------------------------------------------------------
-r13802 | vlefevre | 2020-03-24 01:31:09 +0000 (Tue, 24 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Tests on UBF: underflow/overflow cases done.
-------------------------------------------------------------------------
-r13801 | vlefevre | 2020-03-23 16:05:46 +0000 (Mon, 23 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] More tests on UBF.
-------------------------------------------------------------------------
-r13800 | vlefevre | 2020-03-23 15:40:48 +0000 (Mon, 23 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] UBF: reordered macro definitions.
-------------------------------------------------------------------------
-r13799 | vlefevre | 2020-03-23 15:38:06 +0000 (Mon, 23 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sub1.c
-
-[src]
- * mpfr-impl.h: define MPFR_UBF_GET_EXP macro.
- * add1.c, sub1.c: use this macro.
-------------------------------------------------------------------------
-r13798 | vlefevre | 2020-03-23 15:13:34 +0000 (Mon, 23 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Detect an underflow case (before the main detection) to
-avoid a possible integer overflow with UBF.
-------------------------------------------------------------------------
-r13797 | vlefevre | 2020-03-23 13:19:56 +0000 (Mon, 23 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added comments.
-------------------------------------------------------------------------
-r13796 | vlefevre | 2020-03-23 13:13:10 +0000 (Mon, 23 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] First tests on UBF.
-------------------------------------------------------------------------
-r13795 | vlefevre | 2020-03-23 11:09:53 +0000 (Mon, 23 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Avoid a potential integer overflow with huge precisions.
-------------------------------------------------------------------------
-r13794 | vlefevre | 2020-03-16 10:57:40 +0000 (Mon, 16 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Removed useless cast in a comparison, as both operands are
-non-negative.
-------------------------------------------------------------------------
-r13793 | vlefevre | 2020-03-16 10:53:56 +0000 (Mon, 16 Mar 2020) | 8 lines
-Changed paths:
- M /trunk/src/rem1.c
-
-[src/rem1.c]
- * Portability fix: when mpfr_exp_t <= long (which is the default),
- an addition was done in unsigned integer arithmetic instead of
- signed integer arithmetic, with a conversion back to a signed
- type, i.e. with potentially implementation-defined behavior.
- There could also be an integer overflow on huge-precision values
- if mp_bitcnt_t > unsigned long.
- * Updated a comment.
-------------------------------------------------------------------------
-r13792 | vlefevre | 2020-03-16 10:44:24 +0000 (Mon, 16 Mar 2020) | 8 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c]
- * Portability fix: when mpfr_exp_t <= long (which is the default),
- an addition with a negative result was done in unsigned integer
- arithmetic instead of signed integer arithmetic, with a conversion
- back to a signed type, i.e. with implementation-defined behavior.
- There could also be an integer overflow on huge-precision values
- if mp_bitcnt_t > unsigned long.
- * Updated comments.
-------------------------------------------------------------------------
-r13791 | vlefevre | 2020-03-16 10:34:26 +0000 (Mon, 16 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cos.c
-
-[src/cos.c] Updated a comment.
-------------------------------------------------------------------------
-r13790 | vlefevre | 2020-03-16 10:22:20 +0000 (Mon, 16 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cos.c
-
-[src/cos.c] Updated a comment.
-------------------------------------------------------------------------
-r13789 | vlefevre | 2020-03-16 10:07:34 +0000 (Mon, 16 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/const_log2.c
-
-[src/const_log2.c] Corrected type for the return value of mpz_scan1.
-------------------------------------------------------------------------
-r13788 | vlefevre | 2020-03-13 17:48:24 +0000 (Fri, 13 Mar 2020) | 5 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/tests.c
-
-[tests/tests.c] Revert a change done in r13783 for function bad_cases():
- no longer fail if a generated value does not correspond to a bad case.
- But fail if the MPFR_CHECK_BADCASES environment variable is defined
- and too few bad cases are generated (less than 90%).
-[doc/README.dev] Document MPFR_CHECK_BADCASES.
-------------------------------------------------------------------------
-r13787 | vlefevre | 2020-03-13 16:40:17 +0000 (Fri, 13 Mar 2020) | 25 lines
-Changed paths:
- M /trunk/tests/tatanh.c
- M /trunk/tests/tests.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/trec_sqrt.c
-
-[tests] Update to test the ternary value in test5rm() when possible,
-and support the exact cases.
- * tests.c:
- - test5rm(): modified the prototype again and the behavior.
- Now, either only one test is done and the ternary value is
- not checked, or the test is done in the 5 rounding modes and
- the ternary value is checked.
- - data_check(): corresponding update; updated description.
- - bad_cases(): test the exact cases too.
- * tatanh.c: for the bad_cases() call, reduce emax to avoid errors in
- the generation of bad cases due to the rounding of tanh(y) to 1,
- which does not correspond to a bad case for atanh, but to an exact
- case.
- * tlog1p.c: for the bad_cases() call, reduce emax to avoid errors in
- the generation of bad cases due to the rounding of expm1(y) to -1,
- which does not correspond to a bad case for log1p, but to an exact
- case.
- * trec_sqrt.c: corrected the bad_cases() call to avoid negative
- numbers.
-Note: the following tests
- GMP_CHECK_RANDOMIZE=5 ./tacos
- GMP_CHECK_RANDOMIZE=6 ./tatan
- GMP_CHECK_RANDOMIZE=4 ./tcos
-currently fail, but because of a change in r13783 (see associated log
-for the reason). To be fixed later.
-------------------------------------------------------------------------
-r13786 | vlefevre | 2020-03-13 10:29:46 +0000 (Fri, 13 Mar 2020) | 5 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Modified the prototype of test5rm() to support a
-parameter "exact". Therefore the parameter "test_one" is now a boolean
-(the value 2 is no longer supported, as redundant with "exact"), and
-about data_check() with rnd = '*', the loop is now done in test5rm(),
-i.e. test5rm() is called with test_one being false.
-------------------------------------------------------------------------
-r13785 | vlefevre | 2020-03-12 17:33:07 +0000 (Thu, 12 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] For bad_cases(), use the same pos and psup parameters
-as in troot.c for "rootn[2]", allowing inexact cases.
-------------------------------------------------------------------------
-r13784 | vlefevre | 2020-03-12 17:21:40 +0000 (Thu, 12 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-[tests/tcbrt.c] For bad_cases(), use the same pos and psup parameters
-as in troot.c for "rootn[3]", allowing inexact cases.
-------------------------------------------------------------------------
-r13783 | vlefevre | 2020-03-12 17:17:56 +0000 (Thu, 12 Mar 2020) | 19 lines
-Changed paths:
- M /trunk/tests/tests.c
- M /trunk/tests/troot.c
-
-[tests]
- * tests.c, function bad_cases(): updated/added debug messages;
- assume that the parameters are chosen in such a way that this
- test always generates hard-to-round cases (including exact cases),
- i.e. exit with an error if one does not get a bad case, otherwise
- this can leave unexpected failures unnoticed (either due to a bug
- in the MPFR library or due to poorly chosen parameters such as in
- troot.c until now).
- Note: ideally, this would require a proof, but it is better to get
- (unlikely) spurious failures with a non-default GMP_CHECK_RANDOMIZE
- value than missing important tests.
- * troot.c, bad_cases() invocation:
- - corrected the pos parameter: when n is even, it is useless to
- generate a negative number as the function is not defined (the
- inverse function generates a positive number, and the mismatch
- now yields a failure due to the change in bad_cases); when n is
- odd, generate as many negative numbers as positive ones.
- - for n ≤ 5, reduce the psup parameter in order to also generate
- inexact cases, instead of always exact cases.
-------------------------------------------------------------------------
-r13782 | vlefevre | 2020-03-12 16:17:38 +0000 (Thu, 12 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Added a TODO for bad_cases, as the exact cases are not
-tested yet. As a consequence, the bad_cases test added in tcbrt.c r13776
-is not really useful yet, as the cbrt bad cases are only exact cases.
-------------------------------------------------------------------------
-r13781 | vlefevre | 2020-03-12 15:48:34 +0000 (Thu, 12 Mar 2020) | 9 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c]
- * test5rm: removed additional useless tests added in r6037 in the
- case test_one true and rnd = MPFR_RNDZ or MPFR_RNDA, since the
- description was a bit incorrect and this was used only by
- - data/digamma, where this yielded only duplicate tests (mode *);
- - data/li2, where mode z is used on a few tests and could be
- replaced by mode Z (i.e. test_one false) if need be;
- updated description and added details.
- * data_check: corrected/updated description.
-------------------------------------------------------------------------
-r13780 | vlefevre | 2020-03-12 13:05:16 +0000 (Thu, 12 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Minor change in an initialization.
-------------------------------------------------------------------------
-r13779 | vlefevre | 2020-03-12 00:57:34 +0000 (Thu, 12 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_{d64,d128}.c] Added a FIXME and improved a message.
-------------------------------------------------------------------------
-r13778 | vlefevre | 2020-03-12 00:44:26 +0000 (Thu, 12 Mar 2020) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a FIXME: in case of cross-compiling, the guess
-"DPD" can be wrong, e.g. for the build with MinGW under Linux. One
-does not get a failure just because of other issues in the code,
-forcing the portable implementation of the decimal functions.
-------------------------------------------------------------------------
-r13776 | vlefevre | 2020-03-11 15:22:13 +0000 (Wed, 11 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-Added bad_cases tests for mpfr_cbrt.
-------------------------------------------------------------------------
-r13775 | vlefevre | 2020-03-11 15:12:09 +0000 (Wed, 11 Mar 2020) | 4 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Improved the algorithm in the case the precision of the
-input is larger than 3n, where n is the precision of the output, + 1
-if the rounding mode is MPFR_RNDN: instead of truncating the output,
-call mpz_root on the truncated input.
-------------------------------------------------------------------------
-r13774 | vlefevre | 2020-03-11 13:29:03 +0000 (Wed, 11 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-[tests/tcbrt.c] Test the ternary value on other exact cases.
-------------------------------------------------------------------------
-r13773 | vlefevre | 2020-03-11 13:23:28 +0000 (Wed, 11 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-[tests/tcbrt.c] Test the ternary value on special cases.
-------------------------------------------------------------------------
-r13772 | vlefevre | 2020-03-11 10:36:43 +0000 (Wed, 11 Mar 2020) | 5 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Description of the algorithm: improvement; corrected the
-end, which was incorrect and did not match the code (the comment was
-introduced in r2057 and was already incorrect in the round-down case;
-then the round-to-nearest case was improved in r2070, but the comment
-was not updated).
-------------------------------------------------------------------------
-r13771 | vlefevre | 2020-03-11 10:18:02 +0000 (Wed, 11 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Description of the algorithm: correction; added a TODO.
-------------------------------------------------------------------------
-r13769 | vlefevre | 2020-03-10 16:43:17 +0000 (Tue, 10 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Description of the algorithm: corrected indentation;
-renamed variable r to t in order to avoid confusion with the code
-(where r has a different meaning).
-------------------------------------------------------------------------
-r13768 | vlefevre | 2020-03-10 16:35:08 +0000 (Tue, 10 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Clarified a comment.
-------------------------------------------------------------------------
-r13767 | vlefevre | 2020-03-10 16:12:46 +0000 (Tue, 10 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Resolved the second FIXME and simplified the code
-(basically by removing duplicate code).
-------------------------------------------------------------------------
-r13766 | vlefevre | 2020-03-10 15:38:20 +0000 (Tue, 10 Mar 2020) | 4 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Description of the algorithm:
- * Since there was no upper bound on s, let's remove the upper bound
- on m (this now matches the code).
- * Replaced the FIXME by one due to the lack of upper bound on s.
-------------------------------------------------------------------------
-r13765 | vlefevre | 2020-03-10 15:20:11 +0000 (Tue, 10 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Added another FIXME as the code does not match the
-algorithm described in a comment.
-------------------------------------------------------------------------
-r13764 | vlefevre | 2020-03-10 15:07:10 +0000 (Tue, 10 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Improved a condition to avoid operations that correspond
-to a no-op.
-------------------------------------------------------------------------
-r13763 | vlefevre | 2020-03-10 14:24:45 +0000 (Tue, 10 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Added an assertion.
-------------------------------------------------------------------------
-r13762 | vlefevre | 2020-03-10 14:15:11 +0000 (Tue, 10 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Code cleanup and simplification. Added logging messages and
-a FIXME about a comment (coming from r2057 with its associated code).
-------------------------------------------------------------------------
-r13761 | vlefevre | 2020-03-10 13:43:04 +0000 (Tue, 10 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/cbrt.c
-
-[src/cbrt.c] Removed a useless cast on a comparison operand, since
-both operands are non-negative.
-------------------------------------------------------------------------
-r13760 | vlefevre | 2020-03-10 13:38:06 +0000 (Tue, 10 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Added assertions.
-------------------------------------------------------------------------
-r13759 | vlefevre | 2020-03-10 13:12:09 +0000 (Tue, 10 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Workaround to Debian bug 953369 in libpython3.8-minimal
-for the codespell invocation.
-------------------------------------------------------------------------
-r13758 | vlefevre | 2020-03-09 15:31:45 +0000 (Mon, 09 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/eint.c
-
-[src/eint.c] Bug fix: possible integer overflow with some
-C implementations (or some _MPFR_PREC_FORMAT / _MPFR_EXP_FORMAT values)
-due to the use of incorrect integer types.
-------------------------------------------------------------------------
-r13757 | vlefevre | 2020-03-09 14:41:06 +0000 (Mon, 09 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/eint.c
-
-[src/eint.c] Added other logging messages.
-------------------------------------------------------------------------
-r13756 | vlefevre | 2020-03-09 14:36:19 +0000 (Mon, 09 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/eint.c
-
-[src/eint.c] Added some logging messages.
-------------------------------------------------------------------------
-r13755 | zimmerma | 2020-03-09 09:54:57 +0000 (Mon, 09 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] added one test
-
-------------------------------------------------------------------------
-r13753 | vlefevre | 2020-03-04 15:14:31 +0000 (Wed, 04 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] cancel: also log its value; range checking/tracking.
-------------------------------------------------------------------------
-r13752 | vlefevre | 2020-03-04 14:38:54 +0000 (Wed, 04 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Added a comment giving the range of the value returned
-in "cancel" and explaining why there is no integer overflow in the
-computation of this value.
-------------------------------------------------------------------------
-r13751 | vlefevre | 2020-03-04 14:28:29 +0000 (Wed, 04 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Comment: some absolute values are not needed (again).
-------------------------------------------------------------------------
-r13750 | vlefevre | 2020-03-04 14:26:40 +0000 (Wed, 04 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Minor correction for |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.
-------------------------------------------------------------------------
-r13749 | vlefevre | 2020-03-04 14:24:49 +0000 (Wed, 04 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Better explanation when |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.
-------------------------------------------------------------------------
-r13748 | vlefevre | 2020-03-03 15:09:21 +0000 (Tue, 03 Mar 2020) | 4 lines
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Finished the review of mpfr_cmp2: simplified the code even
-more; corrected/updated comments (in the case high_dif = 0, one can have
-dif = 1 if c has entirely been taken into account, so that the comment
-"dif > 1 here" was incorrect; only dif >= 1 is needed anyway).
-------------------------------------------------------------------------
-r13747 | vlefevre | 2020-03-03 14:17:32 +0000 (Tue, 03 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Changed high_dif to type int since it is manipulated like
-a boolean. Updated comments.
-------------------------------------------------------------------------
-r13746 | vlefevre | 2020-03-02 17:02:51 +0000 (Mon, 02 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Simplified the mpfr_cmp2 code and updated comments.
-------------------------------------------------------------------------
-r13745 | vlefevre | 2020-03-02 15:55:03 +0000 (Mon, 02 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Updated comments.
-------------------------------------------------------------------------
-r13744 | zimmerma | 2020-03-02 10:46:10 +0000 (Mon, 02 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] added comment
-
-------------------------------------------------------------------------
-r13743 | vlefevre | 2020-03-02 10:05:18 +0000 (Mon, 02 Mar 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: improved comment.
-------------------------------------------------------------------------
-r13742 | vlefevre | 2020-03-02 09:59:04 +0000 (Mon, 02 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: added a detailed
-comment (the previous comment was not obsolete, but misleading).
-------------------------------------------------------------------------
-r13741 | zimmerma | 2020-03-02 09:19:31 +0000 (Mon, 02 Mar 2020) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] removed obsolete comment (_MPFR_PREC_FORMAT=3 is the default
- under Linux x86_64)
-
-------------------------------------------------------------------------
-r13740 | zimmerma | 2020-03-01 18:07:02 +0000 (Sun, 01 Mar 2020) | 2 lines
-Changed paths:
- M /trunk/src/rem1.c
- M /trunk/src/sin.c
-
-[src/sin.c] increase initial precision even more
-
-------------------------------------------------------------------------
-r13739 | vlefevre | 2020-03-01 00:22:52 +0000 (Sun, 01 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Replaced mpfr_cmp by !mpfr_equal_p for NaN detection.
-------------------------------------------------------------------------
-r13738 | vlefevre | 2020-03-01 00:19:05 +0000 (Sun, 01 Mar 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] Replaced obsolete function mpfr_mul_2exp by mpfr_mul_2ui.
-------------------------------------------------------------------------
-r13737 | zimmerma | 2020-02-29 13:07:12 +0000 (Sat, 29 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/src/sin.c
-
-[src/sin.c] increase initial precision when x is large
-
-------------------------------------------------------------------------
-r13736 | zimmerma | 2020-02-29 11:04:14 +0000 (Sat, 29 Feb 2020) | 10 lines
-Changed paths:
- M /trunk/src/rem1.c
-
-[src/rem1.c] workaround for efficiency bug in mpz_powm_ui, which was making
-argument reduction in mpfr_sin for huge x very slow.
-
-Before:
-$ ./mfv5 -p113 -e16384 -d-2 mpfr_sin
- mpfr_sin: 3289620 / 3576511.59 / 6841956
-
-After this commit:
- mpfr_sin: 166868 / 182661.01 / 343224
-
-------------------------------------------------------------------------
-r13735 | zimmerma | 2020-02-29 10:55:26 +0000 (Sat, 29 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] added one test
-
-------------------------------------------------------------------------
-r13734 | zimmerma | 2020-02-29 09:25:06 +0000 (Sat, 29 Feb 2020) | 4 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-added value -2 for option -d to generate random number with exponent
-exactly e. Example:
-$ mfv5 -p113 -e16384 -d-2 -v mpfr_sin
-
-------------------------------------------------------------------------
-r13733 | zimmerma | 2020-02-28 15:29:10 +0000 (Fri, 28 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] added a test
-
-------------------------------------------------------------------------
-r13732 | zimmerma | 2020-02-28 15:20:42 +0000 (Fri, 28 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] fixed and completed check_binary128()
-
-------------------------------------------------------------------------
-r13731 | vlefevre | 2020-02-28 15:07:26 +0000 (Fri, 28 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Started to review mpfr_cmp2. Minor changes.
-------------------------------------------------------------------------
-r13730 | vlefevre | 2020-02-28 13:19:58 +0000 (Fri, 28 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Detailed a comment concerning UBF.
-------------------------------------------------------------------------
-r13727 | vlefevre | 2020-02-27 13:35:30 +0000 (Thu, 27 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] Cleanup of the latest test (note: mpfr_equal_p is better
-than mpfr_cmp as it makes the test fail on a NaN result).
-------------------------------------------------------------------------
-r13726 | zimmerma | 2020-02-27 13:24:12 +0000 (Thu, 27 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] added one test with precision 128
-
-------------------------------------------------------------------------
-r13725 | vlefevre | 2020-02-27 10:53:50 +0000 (Thu, 27 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Updated a comment (underscore version of attribute name).
-------------------------------------------------------------------------
-r13724 | vlefevre | 2020-02-27 10:45:30 +0000 (Thu, 27 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect the use of the non-underscore version of the
-attribute names in mpfr.h (see README.dev).
-------------------------------------------------------------------------
-r13723 | vlefevre | 2020-02-25 17:26:07 +0000 (Tue, 25 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Use the underscore version of the attribute names.
-[doc/README.dev] Added information on this subject.
-------------------------------------------------------------------------
-r13722 | vlefevre | 2020-02-25 16:17:57 +0000 (Tue, 25 Feb 2020) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added item on GNU Automake and -I options.
-------------------------------------------------------------------------
-r13721 | vlefevre | 2020-02-14 09:29:07 +0000 (Fri, 14 Feb 2020) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Removed an incorrect comment before MPFR_TMP_INIT1
-(this macro does not allocate anything, and MPFR_TMP_INIT just after
-can allocate more than 1 limb).
-------------------------------------------------------------------------
-r13720 | vlefevre | 2020-02-14 09:23:00 +0000 (Fri, 14 Feb 2020) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] About the use of MPFR_MANT(x).
-------------------------------------------------------------------------
-r13719 | vlefevre | 2020-02-13 11:49:50 +0000 (Thu, 13 Feb 2020) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Typo.
-------------------------------------------------------------------------
-r13718 | vlefevre | 2020-02-12 15:15:56 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/tests/tcmpabs.c
-
-[tests/tcmpabs.c] Added missing tests of mpfr_cmpabs with NaN.
-------------------------------------------------------------------------
-r13717 | vlefevre | 2020-02-12 15:12:10 +0000 (Wed, 12 Feb 2020) | 5 lines
-Changed paths:
- M /trunk/tests/tcmpabs.c
-
-[tests/tcmpabs.c] For mpfr_cmpabs: like mpfr_cmpabs_ui, do each test
-in 4 different contexts, combinations of:
- * flags all unset or flags all set;
- * usual exponent range or reduced exponent range.
-Minor corrections in the old tests.
-------------------------------------------------------------------------
-r13716 | vlefevre | 2020-02-12 14:59:24 +0000 (Wed, 12 Feb 2020) | 4 lines
-Changed paths:
- M /trunk/tests/tcmpabs.c
-
-[tests/tcmpabs.c] For mpfr_cmpabs_ui: do each test in 4 different
-contexts, combinations of:
- * flags all unset or flags all set;
- * usual exponent range or reduced exponent range.
-------------------------------------------------------------------------
-r13715 | zimmerma | 2020-02-12 13:49:46 +0000 (Wed, 12 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tcmpabs.c
-
-[tests/tcmpabs.c] added tests for mpfr_cmpabs_ui
-
-------------------------------------------------------------------------
-r13714 | vlefevre | 2020-02-12 13:38:47 +0000 (Wed, 12 Feb 2020) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h]
- * MPFR_ALIAS: use the comma operator instead of "do ... while (0)"
- so that this macro can be used in an expression context.
- * MPFR_TMP_INIT_ABS, MPFR_TMP_INIT_NEG: use MPFR_ALIAS.
-------------------------------------------------------------------------
-r13713 | vlefevre | 2020-02-12 13:25:50 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added prototype for mpfr_cmpabs_ui.
-------------------------------------------------------------------------
-r13712 | vlefevre | 2020-02-12 13:10:07 +0000 (Wed, 12 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added mpfr_cmpabs_ui to Section "Added Functions"
-(API Compatibility).
-------------------------------------------------------------------------
-r13711 | vlefevre | 2020-02-12 13:04:50 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Replaced obsolete mpfr_cmp_abs by mpfr_cmpabs.
-------------------------------------------------------------------------
-r13710 | vlefevre | 2020-02-12 12:57:37 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typo from r13708.
-------------------------------------------------------------------------
-r13709 | zimmerma | 2020-02-12 12:52:50 +0000 (Wed, 12 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] mention new mpfr_cmpabs_ui
-
-------------------------------------------------------------------------
-r13708 | zimmerma | 2020-02-12 12:51:55 +0000 (Wed, 12 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/cmpabs.c
- A /trunk/src/cmpabs_ui.c
-
-added new function mpfr_cmpabs_ui
-
-------------------------------------------------------------------------
-r13707 | zimmerma | 2020-02-12 12:25:47 +0000 (Wed, 12 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- D /trunk/src/cmp_abs.c
- A /trunk/src/cmpabs.c (from /trunk/src/cmp_abs.c:13706)
-
-renamed cmp_abs.c to cmpabs.c
-
-------------------------------------------------------------------------
-r13706 | vlefevre | 2020-02-12 11:25:53 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Typo.
-------------------------------------------------------------------------
-r13705 | vlefevre | 2020-02-12 11:23:59 +0000 (Wed, 12 Feb 2020) | 3 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] + Serialization / Deserialization (suggested by Frédéric Pétrot).
-I've also added an idea of implementation to reuse most of the code and
-change very little.
-------------------------------------------------------------------------
-r13704 | vlefevre | 2020-02-12 01:38:57 +0000 (Wed, 12 Feb 2020) | 4 lines
-Changed paths:
- M /trunk/src/ubf.c
-
-[src/ubf.c]
- * Optimized mpfr_init_get_zexp() for _MPFR_EXP_FORMAT <= 3
- (as in the default configuration).
- * Updated comments.
-------------------------------------------------------------------------
-r13703 | vlefevre | 2020-02-12 01:15:34 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added UBF-related comments.
-------------------------------------------------------------------------
-r13702 | vlefevre | 2020-02-12 00:37:04 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added UBF-related comments.
-------------------------------------------------------------------------
-r13701 | vlefevre | 2020-02-12 00:04:34 +0000 (Wed, 12 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment for UBF and types.
-------------------------------------------------------------------------
-r13700 | vlefevre | 2020-02-11 14:38:49 +0000 (Tue, 11 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment for INEXPOS.
-------------------------------------------------------------------------
-r13699 | vlefevre | 2020-02-11 14:36:00 +0000 (Tue, 11 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] INEXPOS and VSIGN code improvement.
-------------------------------------------------------------------------
-r13698 | vlefevre | 2020-02-11 14:33:58 +0000 (Tue, 11 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/modf.c
- M /trunk/src/sinh_cosh.c
-
-Removed duplicate macro definitions.
-------------------------------------------------------------------------
-r13696 | vlefevre | 2020-02-11 11:44:01 +0000 (Tue, 11 Feb 2020) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Use mpfr_set_str instead of mpfr_set_d.
-------------------------------------------------------------------------
-r13695 | vlefevre | 2020-02-11 10:06:46 +0000 (Tue, 11 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Got rid of some goto's. Added log messages.
-------------------------------------------------------------------------
-r13694 | vlefevre | 2020-02-10 15:17:34 +0000 (Mon, 10 Feb 2020) | 3 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Bug fix: the underflow case (possible with UBF, e.g. via
-mpfr_fmma or mpfr_fmms) was not tested in the case c small.
-Note: this completes r11418 and r12752 for underflow detection.
-------------------------------------------------------------------------
-r13693 | vlefevre | 2020-02-10 15:05:19 +0000 (Mon, 10 Feb 2020) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Added log messages and checked the UBF cases yielding
-exp_b == MPFR_EXP_MAX and/or diff_exp == MPFR_EXP_MAX.
-------------------------------------------------------------------------
-r13692 | vlefevre | 2020-02-08 10:59:39 +0000 (Sat, 08 Feb 2020) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added log messages for MPFR_PREC_ARG ('P' specifier).
-------------------------------------------------------------------------
-r13690 | vlefevre | 2020-02-08 02:21:15 +0000 (Sat, 08 Feb 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Fixed some tests: the 'P' specifier was missing.
-------------------------------------------------------------------------
-r13689 | vlefevre | 2020-02-06 10:23:15 +0000 (Thu, 06 Feb 2020) | 6 lines
-Changed paths:
- M /trunk/src/fmma.c
-
-[src/fmma.c] Reverted the mpfr_check_range from r13688.
-The exponent range has not been extended by mpfr_fmma_aux, and the
-result comes from mpfr_add, mpfr_sub, or mpfr_set_1_2, which return
-results in the current range. If the result of mpfr_fmma_aux is not
-in the current range, this is due to a bug in one of these functions.
-Note: mpfr_add and mpfr_sub accept UBF inputs.
-------------------------------------------------------------------------
-r13688 | zimmerma | 2020-02-06 08:45:25 +0000 (Thu, 06 Feb 2020) | 3 lines
-Changed paths:
- M /trunk/src/fmma.c
- M /trunk/tests/tfmma.c
-
-[src/fmma.c] fixed bug (result might be out of exponent range)
-[tests/tfmma.c] added non-regression test
-
-------------------------------------------------------------------------
-r13685 | vlefevre | 2020-02-03 23:37:28 +0000 (Mon, 03 Feb 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13684 | vlefevre | 2020-02-03 23:36:35 +0000 (Mon, 03 Feb 2020) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] In the paragraph "MPFR internal data such as flags",
-no longer mention caches as caches may now also be global when MPFR
-has been compiled as thread safe (locking is used). Caches have been
-discussed earlier in the section anyway.
-------------------------------------------------------------------------
-r13683 | vlefevre | 2020-01-23 10:05:59 +0000 (Thu, 23 Jan 2020) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] URL update.
-------------------------------------------------------------------------
-r13681 | vlefevre | 2020-01-20 16:02:54 +0000 (Mon, 20 Jan 2020) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r13678 | vlefevre | 2020-01-20 15:36:00 +0000 (Mon, 20 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Updated a comment; in particular, replaced the two
-obsolete gmane.org URLs by lists.gnu.org/archive/html/bug-gnulib ones.
-------------------------------------------------------------------------
-r13677 | vlefevre | 2020-01-20 15:25:19 +0000 (Mon, 20 Jan 2020) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Removed reference to a gmane.org URL, which no longer exists.
-------------------------------------------------------------------------
-r13674 | vlefevre | 2020-01-16 13:21:16 +0000 (Thu, 16 Jan 2020) | 1 line
-Changed paths:
- M /trunk/src/beta.c
- M /trunk/tests/ttanh.c
-
-[src/beta.c,tests/ttanh.c] towards → toward (for consistency).
-------------------------------------------------------------------------
-r13671 | vlefevre | 2020-01-10 16:24:30 +0000 (Fri, 10 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-[tests/{tfprintf.c,tprintf.c}] Updated an error message about MinGW,
-now output only if MinGW is used.
-------------------------------------------------------------------------
-r13670 | vlefevre | 2020-01-10 16:17:16 +0000 (Fri, 10 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Concerning MinGW, added a sentence about the use of
-the __USE_MINGW_ANSI_STDIO macro, confirming the existing note.
-------------------------------------------------------------------------
-r13669 | vlefevre | 2020-01-10 16:12:53 +0000 (Fri, 10 Jan 2020) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Removed obsolete item on MinGW and -D__USE_MINGW_ANSI_STDIO.
-------------------------------------------------------------------------
-r13668 | vlefevre | 2020-01-10 16:11:46 +0000 (Fri, 10 Jan 2020) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro.
-------------------------------------------------------------------------
-r13667 | vlefevre | 2020-01-10 10:30:58 +0000 (Fri, 10 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated mpfr_get_str documentation, correcting r13666
-(we still need the extra two bytes and to take -@Inf@ into account).
-------------------------------------------------------------------------
-r13666 | zimmerma | 2020-01-10 09:21:11 +0000 (Fri, 10 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] fixed out-dated documentation for mpfr_get_str
-
-------------------------------------------------------------------------
-r13665 | vlefevre | 2020-01-09 18:01:59 +0000 (Thu, 09 Jan 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] In the latest update, forgot to remove the CC=...
-------------------------------------------------------------------------
-r13664 | vlefevre | 2020-01-09 17:57:53 +0000 (Thu, 09 Jan 2020) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about the test under Wine.
-------------------------------------------------------------------------
-r13663 | vlefevre | 2020-01-09 14:37:48 +0000 (Thu, 09 Jan 2020) | 7 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4,configure.ac]
- * Moved the code that tries to determine the format of double from
- configure.ac to acinclude.m4 in MPFR_CONFIGS (as required), just
- before the one for long double.
- * Added a FIXME comment: This code uses AC_RUN_IFELSE, which cannot
- run the test when cross-compiling; use a test like for long double
- instead.
-------------------------------------------------------------------------
-r13662 | vlefevre | 2020-01-09 14:27:27 +0000 (Thu, 09 Jan 2020) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] English usage.
-------------------------------------------------------------------------
-r13661 | vlefevre | 2020-01-09 14:25:30 +0000 (Thu, 09 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4] Updated messages about the format of "long double".
-[configure.ac] Ditto for "double". Added missing AC_MSG_RESULT.
-------------------------------------------------------------------------
-r13658 | vlefevre | 2020-01-09 11:37:25 +0000 (Thu, 09 Jan 2020) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Updated/fixed an output line to match the other ones.
-------------------------------------------------------------------------
-r13657 | vlefevre | 2020-01-09 10:23:44 +0000 (Thu, 09 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added tests for %Ra and %Rb on the value 0 with an
-empty precision field.
-------------------------------------------------------------------------
-r13656 | vlefevre | 2020-01-09 10:17:04 +0000 (Thu, 09 Jan 2020) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed output precision bug with decimal output
-(i.e. e, f and g conversion specifiers) and an empty precision field
-on the value 0.
-------------------------------------------------------------------------
-r13655 | vlefevre | 2020-01-09 09:44:00 +0000 (Thu, 09 Jan 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Also added tests with %Rf, %Rg and %#Rg on 0.
-------------------------------------------------------------------------
-r13654 | vlefevre | 2020-01-09 09:39:45 +0000 (Thu, 09 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a test with %Re and an empty precision field
-on the value 0; it currently fails.
-------------------------------------------------------------------------
-r13653 | vlefevre | 2020-01-08 18:28:42 +0000 (Wed, 08 Jan 2020) | 1 line
-Changed paths:
- M /trunk/tools/ck-copyright-notice
-
-[tools/ck-copyright-notice] Added a note about the mpfr.pc.in file.
-------------------------------------------------------------------------
-r13652 | vlefevre | 2020-01-08 18:11:13 +0000 (Wed, 08 Jan 2020) | 4 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/check-typography
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/can_round.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/threads.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add1sp1_extracted.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/beta.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dot.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fmma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gamma_inc.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d128.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_q.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/invert_limb.h
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/log_ui.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_1_extracted.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/nbits_ulong.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/odd_p.c
- M /trunk/src/out_str.c
- M /trunk/src/pool.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub1sp1_extracted.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/total_order.c
- M /trunk/src/ubf.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc-cache.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbeta.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdot.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_q.c
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_ui.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprec_round.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/trootn_ui.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttotal_order.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/Makefile.am
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/check_mparam.c
- M /trunk/tools/ck-clz_tab
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-news
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2020 with
- perl -pi -e 's/ (\d{4}-)?(2019)(?= Free Software)/
- " ".($1||"$2-").($2+1)/e' **/*(^/)
-under zsh. Removed 2019 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r13651 | vlefevre | 2020-01-08 17:52:26 +0000 (Wed, 08 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] + base conversion with the round-trip property using a minimal
-precision, such as the to_chars functions from the C++ standard.
-------------------------------------------------------------------------
-r13650 | vlefevre | 2020-01-08 17:33:44 +0000 (Wed, 08 Jan 2020) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13649 | vlefevre | 2020-01-08 17:21:57 +0000 (Wed, 08 Jan 2020) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Formatted output: improved the text concerning the
-empty precision field, i.e. focus on the chosen precision rather
-than the round-trip property (as the rounding mode is not necessarily
-to nearest).
-------------------------------------------------------------------------
-r13648 | vlefevre | 2020-01-08 16:34:16 +0000 (Wed, 08 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Formatted output with %Re (empty precision field):
-added a reference to mpfr_get_str_ndigits.
-------------------------------------------------------------------------
-r13647 | vlefevre | 2020-01-08 16:20:57 +0000 (Wed, 08 Jan 2020) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Simplified the conditions under which trailing zeros
-are kept (the spec_g variable is no longer needed as a consequence).
-------------------------------------------------------------------------
-r13646 | vlefevre | 2020-01-08 15:30:46 +0000 (Wed, 08 Jan 2020) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Re-added tests changed by r13644 and r13645, but
-with a variable of smaller precision in order to get the same output
-as before.
-------------------------------------------------------------------------
-r13645 | vlefevre | 2020-01-08 14:56:56 +0000 (Wed, 08 Jan 2020) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Updated other two tests (in da_DK locale).
-------------------------------------------------------------------------
-r13644 | zimmerma | 2020-01-08 12:15:52 +0000 (Wed, 08 Jan 2020) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/vasprintf.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-fixed tests for new more precise semantics for mpfr_printf ("%Re", x),
-and documented it
-
-------------------------------------------------------------------------
-r13643 | zimmerma | 2020-01-08 10:43:06 +0000 (Wed, 08 Jan 2020) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] tentative fix so that mpfr_printf ("%.Re", x) prints a number
- of decimal digits independent from x
-
-------------------------------------------------------------------------
-r13642 | vlefevre | 2019-12-24 03:10:33 +0000 (Tue, 24 Dec 2019) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/doc/mpfr.texi
-
-[INSTALL,doc/mpfr.texi] Typography.
-------------------------------------------------------------------------
-r13635 | vlefevre | 2019-10-10 13:56:19 +0000 (Thu, 10 Oct 2019) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Ulp calculus: put the old Rule 8 just after Rule 2,
-as the old Rule 3 (now Rule 4) uses it directly (proof updated).
-------------------------------------------------------------------------
-r13634 | vlefevre | 2019-10-10 13:32:57 +0000 (Thu, 10 Oct 2019) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Ulp calculus: simplified the proof of Rule 8.
-------------------------------------------------------------------------
-r13633 | vlefevre | 2019-10-10 13:18:34 +0000 (Thu, 10 Oct 2019) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Ulp calculus Rule 3: missing absolute values in
-the proof.
-------------------------------------------------------------------------
-r13632 | vlefevre | 2019-10-10 13:08:28 +0000 (Thu, 10 Oct 2019) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Actually assume that no underflows nor overflows
-occur for the whole section "Error calculus".
-------------------------------------------------------------------------
-r13631 | vlefevre | 2019-10-10 12:59:33 +0000 (Thu, 10 Oct 2019) | 3 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Ulp calculus Rule 6: corrected it (we need to
-assume no underflows nor overflows) and its proof, and generalized
-it with absolute values (like in the previous rules).
-------------------------------------------------------------------------
-r13630 | vlefevre | 2019-10-07 09:17:23 +0000 (Mon, 07 Oct 2019) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Ulp calculus Rule 3: more powerful result and
-much simpler proof.
-------------------------------------------------------------------------
-r13629 | vlefevre | 2019-10-07 08:50:52 +0000 (Mon, 07 Oct 2019) | 3 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Section 2 (Error calculus): When n was a precision,
-replaced it by p as this is the usual notation (see Section 1) and n
-sometimes had a double meaning.
-------------------------------------------------------------------------
-r13628 | vlefevre | 2019-10-04 08:52:53 +0000 (Fri, 04 Oct 2019) | 1 line
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-[tests/tcmp_ui.c] Updated comment: this is a bug in Clang 9.
-------------------------------------------------------------------------
-r13627 | vlefevre | 2019-10-04 08:28:16 +0000 (Fri, 04 Oct 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-[tests/tcmp_ui.c] Added a comment: failure of a test with the
-clang-9 1:9-1 Debian package.
-------------------------------------------------------------------------
-r13626 | vlefevre | 2019-10-01 13:55:09 +0000 (Tue, 01 Oct 2019) | 11 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/doc/README.dev
- M /trunk/tests/tests.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tsprintf.c
-
-Clean-up concerning the tests of subnormals for double and float.
- * acinclude.m4: renamed variables
- mpfr_cv_have_denorms_flt to mpfr_cv_have_subnorm_flt
- mpfr_cv_have_denorms to mpfr_cv_have_subnorm_dbl
- and improved messages.
- * acinclude.m4, tests/tget_flt.c: renamed macro
- HAVE_DENORMS_FLT to HAVE_SUBNORM_FLT
- * acinclude.m4, tests/{tests.c,tset_d.c,tsprintf.c}: renamed macro
- HAVE_DENORMS to HAVE_SUBNORM_DBL
- * doc/README.dev: updated / completed the corresponding documentation.
- * tests/tget_d.c: renamed function check_denorms to check_subnorm.
-------------------------------------------------------------------------
-r13625 | vlefevre | 2019-10-01 13:28:37 +0000 (Tue, 01 Oct 2019) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Updated comment about the tests for subnormal numbers.
-------------------------------------------------------------------------
-r13624 | vlefevre | 2019-10-01 13:23:51 +0000 (Tue, 01 Oct 2019) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a comment about the tests for subnormal numbers.
-------------------------------------------------------------------------
-r13623 | vlefevre | 2019-09-24 11:08:04 +0000 (Tue, 24 Sep 2019) | 1 line
-Changed paths:
- M /trunk/doc/Makefile.am
-
-[doc/Makefile.am] Added missing texinfo.tex prerequisite.
-------------------------------------------------------------------------
-r13622 | vlefevre | 2019-09-16 08:33:16 +0000 (Mon, 16 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tprintf.c
-
-[tests] Added FIXME comment in tfprintf.c, tout_str.c and tprintf.c:
-The output is not tested (thus coverage data are meaningless).
-------------------------------------------------------------------------
-r13621 | vlefevre | 2019-09-10 12:40:39 +0000 (Tue, 10 Sep 2019) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-[src/{add1sp.c,sub1sp.c}] Get rid of useless goto's.
-------------------------------------------------------------------------
-r13619 | vlefevre | 2019-09-06 15:17:14 +0000 (Fri, 06 Sep 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13618 | vlefevre | 2019-09-06 12:35:10 +0000 (Fri, 06 Sep 2019) | 1 line
-Changed paths:
- M /trunk/src/hypot.c
-
-[src/hypot.c] Replaced a TODO by a FIXME.
-------------------------------------------------------------------------
-r13617 | vlefevre | 2019-09-06 11:17:11 +0000 (Fri, 06 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/out_str.c
- M /trunk/tests/tout_str.c
-
-The mpfr_out_str function now accepts bases from -2 to -36, in order to
-follow mpfr_get_str and GMP's mpf_out_str functions.
-------------------------------------------------------------------------
-r13614 | vlefevre | 2019-09-06 01:00:27 +0000 (Fri, 06 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Changed an incorrect use of @xref, which must always
-occur at the beginning of a sentence (use "see @ref{...}" instead).
-------------------------------------------------------------------------
-r13613 | vlefevre | 2019-09-06 00:56:34 +0000 (Fri, 06 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] At the end of "Arithmetic Functions", added a sentence
-referencing the power functions (since x^n is an arithmetic function).
-------------------------------------------------------------------------
-r13612 | vlefevre | 2019-09-05 16:17:35 +0000 (Thu, 05 Sep 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Removed the useless "Float ..." index entries.
-------------------------------------------------------------------------
-r13611 | vlefevre | 2019-09-05 16:10:49 +0000 (Thu, 05 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Moved the mpfr_pow class of functions from
-"Arithmetic Functions" to "Transcendental Functions".
-------------------------------------------------------------------------
-r13610 | vlefevre | 2019-09-05 15:40:37 +0000 (Thu, 05 Sep 2019) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added "Float transcendental functions" to the index
-for consistency ("transcendental functions" implies floating point,
-but the user should expect to find it with the other index terms
-starting with "Float").
-------------------------------------------------------------------------
-r13609 | vlefevre | 2019-09-05 15:36:08 +0000 (Thu, 05 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Renamed "Basic Arithmetic Functions" to just
-"Arithmetic Functions".
-------------------------------------------------------------------------
-r13608 | vlefevre | 2019-09-05 14:15:10 +0000 (Thu, 05 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Transcendental functions: added a sentence to the
-important note (about cases theoretically very hard to round).
-------------------------------------------------------------------------
-r13607 | vlefevre | 2019-09-05 13:57:21 +0000 (Thu, 05 Sep 2019) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Renamed Section "Special Functions" to
-"Transcendental Functions" (as after changes in r13605 and r13606,
-it now contains only the transcendental functions), and slightly
-rewrote its important note.
-------------------------------------------------------------------------
-r13606 | vlefevre | 2019-09-05 13:44:16 +0000 (Thu, 05 Sep 2019) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Moved mpfr_free_cache, mpfr_free_cache2, mpfr_free_pool
-and mpfr_mp_memory_cleanup from "Special Functions" to a new section
-"Memory Handling Functions".
-------------------------------------------------------------------------
-r13605 | vlefevre | 2019-09-05 13:23:26 +0000 (Thu, 05 Sep 2019) | 7 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi]
- * Moved mpfr_fac_ui, mpfr_fma, mpfr_fms, mpfr_fmma, mpfr_fmms,
- mpfr_hypot, mpfr_sum and mpfr_dot from "Special Functions" to
- "Basic Arithmetic Functions" (as these are functions based on
- +, -, *, / and roots).
- * Added a FIXME for mpfr_pow: does this function really belong
- to "Basic Arithmetic Functions"?
-------------------------------------------------------------------------
-r13604 | vlefevre | 2019-09-05 12:56:52 +0000 (Thu, 05 Sep 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved warning about huge precisions.
-------------------------------------------------------------------------
-r13603 | vlefevre | 2019-09-05 10:21:34 +0000 (Thu, 05 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] For the --enable-assert=full test, also test the flags
-(like what has been done for mpfr_add1sp and mpfr_sub1sp).
-------------------------------------------------------------------------
-r13602 | vlefevre | 2019-09-05 10:02:14 +0000 (Thu, 05 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] For the --enable-assert=full test, improved output of
-ternary value and flags, like in r13582 for mpfr_add1sp.
-------------------------------------------------------------------------
-r13601 | vlefevre | 2019-09-05 09:58:32 +0000 (Thu, 05 Sep 2019) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Cosmetic change (consistent ordering).
-------------------------------------------------------------------------
-r13600 | zimmerma | 2019-09-04 15:29:19 +0000 (Wed, 04 Sep 2019) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] added non-regression test for bug in mpfr_sub1sp2n
-[src/sub1sp.c] fixed that bug
-
-------------------------------------------------------------------------
-r13599 | vlefevre | 2019-09-04 12:38:10 +0000 (Wed, 04 Sep 2019) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro for MS-Windows.
-------------------------------------------------------------------------
-r13598 | vlefevre | 2019-09-04 12:23:27 +0000 (Wed, 04 Sep 2019) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] More details about mpfr_add and mpfr_sub.
-------------------------------------------------------------------------
-r13597 | zimmerma | 2019-09-04 12:07:07 +0000 (Wed, 04 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] mention that mpfr_sub was also improved for 128 bits
-
-------------------------------------------------------------------------
-r13596 | zimmerma | 2019-09-04 11:52:11 +0000 (Wed, 04 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] coverage improved to 98.6% on x86_64
-
-------------------------------------------------------------------------
-r13595 | zimmerma | 2019-09-04 11:35:35 +0000 (Wed, 04 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] improve coverage
-
-------------------------------------------------------------------------
-r13594 | vlefevre | 2019-09-04 11:33:24 +0000 (Wed, 04 Sep 2019) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro: the patch had
-a spurious ";" at the end of conftest.c, which made its compilation
-fail with -pedantic -Werror (using gcc or clang).
-------------------------------------------------------------------------
-r13593 | zimmerma | 2019-09-04 11:22:26 +0000 (Wed, 04 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] rewrote mpfr_sub1sp2n (inspired from mpfr_sub1sp1n)
-
-------------------------------------------------------------------------
-r13592 | vlefevre | 2019-09-04 10:59:18 +0000 (Wed, 04 Sep 2019) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Updated MPFR_C_LONG_DOUBLE_FORMAT to support compilation
-with GCC's and clang's LTO (-flto). This new test is inspired by the one
-used by GMP for the double type.
-Thanks to Paul Mulders for a preliminary version of the patch for MPFR.
-------------------------------------------------------------------------
-r13590 | zimmerma | 2019-09-03 16:16:53 +0000 (Tue, 03 Sep 2019) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] added new function mpfr_sub1sp2n for p = 2*GMP_NUMB_BITS
- (still to be tested)
-
-------------------------------------------------------------------------
-r13589 | vlefevre | 2019-09-03 14:39:35 +0000 (Tue, 03 Sep 2019) | 3 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] bug20190903:
- * Fixed the second test for GMP_NUMB_BITS != 64.
- * Updated comments.
-------------------------------------------------------------------------
-r13588 | zimmerma | 2019-09-03 14:02:27 +0000 (Tue, 03 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] improved comment
-
-------------------------------------------------------------------------
-r13587 | vlefevre | 2019-09-03 14:00:33 +0000 (Tue, 03 Sep 2019) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] mpfr_add1sp2n: improved a comment.
-------------------------------------------------------------------------
-r13586 | vlefevre | 2019-09-03 13:52:48 +0000 (Tue, 03 Sep 2019) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Fixed the bug.
-------------------------------------------------------------------------
-r13585 | vlefevre | 2019-09-03 13:35:47 +0000 (Tue, 03 Sep 2019) | 1 line
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] bug20190903: do the second test in MPFR_RNDU too.
-------------------------------------------------------------------------
-r13584 | vlefevre | 2019-09-03 13:31:08 +0000 (Tue, 03 Sep 2019) | 3 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] bug20190903: in the second test, check the mpfr_t
-value, the ternary value and the flags, in order to get a failure
-even without "--enable-assert=full".
-------------------------------------------------------------------------
-r13583 | vlefevre | 2019-09-03 13:11:52 +0000 (Tue, 03 Sep 2019) | 6 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] When testing mpfr_add, use a wrapper mpfr_add_cf
-that calls mpfr_clear_flags first, so that if --enable-assert=full
-is used, the flags can be better checked too (and automatically).
-Now tadd1sp outputs with --enable-assert=full, as wanted:
- add1 : ternary = -1, flags = inexact (8)
- add1sp: ternary = 0, flags = none (0)
-------------------------------------------------------------------------
-r13582 | vlefevre | 2019-09-03 13:02:07 +0000 (Tue, 03 Sep 2019) | 5 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/exceptions.c
- M /trunk/src/mpfr-impl.h
-
-[src]
- * exceptions.c: define flags_fout if MPFR_WANT_ASSERT >= 2, i.e. with
- --enable-assert=full (for better flags output in add1sp.c, etc.).
- * mpfr-impl.h: declare flags_fout if MPFR_WANT_ASSERT >= 2.
- * add1sp.c: improve output of ternary value and flags.
-------------------------------------------------------------------------
-r13581 | vlefevre | 2019-09-03 12:40:56 +0000 (Tue, 03 Sep 2019) | 1 line
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Updated comments of bug20190903.
-------------------------------------------------------------------------
-r13580 | vlefevre | 2019-09-03 12:37:47 +0000 (Tue, 03 Sep 2019) | 8 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Added a test that triggers a bug in mpfr_add1sp2n
-(corresponding to the FIXME), yielding a failure with
-"--enable-assert=full".
-Note 1: The computed values are equal (with MPFR_RNDN), but one gets
- Inexact sp = 0 | Inexact = -1
- Flags sp = 10 | Flags = 10
-Note 2: The fact that the flags do not match the ternary value in the
-error message is due to a missing mpfr_clear_flags in the test.
-------------------------------------------------------------------------
-r13579 | vlefevre | 2019-09-03 12:23:35 +0000 (Tue, 03 Sep 2019) | 6 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] mpfr_add1sp2n:
- * Code refactoring, eliminating the unnecessary goto's.
- * In the d >= 2 * GMP_NUMB_BITS case, use a single test for rb and sb.
- * Improved code consistency.
- * Added a FIXME about suspicious code. → Find a failing test and fix
- the code, or explain the code if it is correct.
-------------------------------------------------------------------------
-r13578 | zimmerma | 2019-09-03 11:51:41 +0000 (Tue, 03 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] fix for bug20190903
-
-------------------------------------------------------------------------
-r13577 | vlefevre | 2019-09-03 11:28:22 +0000 (Tue, 03 Sep 2019) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Corrected a comment.
-------------------------------------------------------------------------
-r13576 | vlefevre | 2019-09-03 10:30:10 +0000 (Tue, 03 Sep 2019) | 3 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] More random tests in the special precisions
-GMP_NUMB_BITS and 2 * GMP_NUMB_BITS (but they don't trigger
-the bug due to r13574).
-------------------------------------------------------------------------
-r13575 | vlefevre | 2019-09-03 10:25:41 +0000 (Tue, 03 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Added testcase for bug due to r13574 (found with
-the other test programs, using --enable-assert=full).
-------------------------------------------------------------------------
-r13574 | zimmerma | 2019-09-03 09:20:19 +0000 (Tue, 03 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] added mpfr_add1sp2n for 128-bit precision (with 64-bit limb)
-
-------------------------------------------------------------------------
-r13573 | zimmerma | 2019-09-02 15:48:13 +0000 (Mon, 02 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp1_extracted.c
-
-[src/sub1sp1_extracted.c] replace hard-coded bounds by emin/emax
-
-------------------------------------------------------------------------
-r13572 | zimmerma | 2019-09-02 15:10:45 +0000 (Mon, 02 Sep 2019) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/sub1sp.c
- A /trunk/src/sub1sp1_extracted.c
-
-added sub1sp1_extracted.c (not ready yet)
-
-------------------------------------------------------------------------
-r13571 | zimmerma | 2019-08-30 13:26:54 +0000 (Fri, 30 Aug 2019) | 2 lines
-Changed paths:
- M /trunk/src/add1sp1_extracted.c
- M /trunk/src/mul_1_extracted.c
-
-added github source for Jianyang Pan formal proof
-
-------------------------------------------------------------------------
-r13570 | vlefevre | 2019-08-21 10:22:25 +0000 (Wed, 21 Aug 2019) | 7 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
-
-[tests/mpfr-test.h] At the end, with GCC, undef volatile if defined.
-Explanations:
- With GCC, a macro "volatile" can be defined to test some special code
- in mpfr-impl.h (code for compilers that define such a macro), but the
- volatile keyword is necessary in some tests to avoid some GCC bugs.
- Thus we need to undef this macro (if defined). We do that at the end,
- so that mpfr-impl.h (included earlier) is not affected by this undef.
-------------------------------------------------------------------------
-r13569 | vlefevre | 2019-08-21 08:57:50 +0000 (Wed, 21 Aug 2019) | 5 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Updated a test with a non-canonical encoding:
- * More meaningful name ("noncanonical" instead of "coverage").
- * Output details in case of failure.
- * Avoid GCC bug 91226: wrong propagation of non-canonical _Decimal64
- and _Decimal128 constant (BID only).
-------------------------------------------------------------------------
-r13568 | vlefevre | 2019-08-20 13:58:15 +0000 (Tue, 20 Aug 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update concerning the "decimal-point character".
-------------------------------------------------------------------------
-r13567 | vlefevre | 2019-08-20 13:44:16 +0000 (Tue, 20 Aug 2019) | 5 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Changed "decimal point" to "decimal-point character",
-which is the term used in the ISO C standard. This is better as this
-character is also used with non-decimal bases: "decimal-point" is
-just the name of this character (as initially defined for base 10)
-and does not imply a number written in decimal.
-------------------------------------------------------------------------
-r13566 | vlefevre | 2019-08-20 13:02:52 +0000 (Tue, 20 Aug 2019) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Compatibility With MPF: added an item on the difference
-of the output format between mpf_out_str and mpfr_out_str.
-------------------------------------------------------------------------
-r13565 | vlefevre | 2019-08-20 11:06:03 +0000 (Tue, 20 Aug 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Rewrote and completed the mpfr_out_str description.
-------------------------------------------------------------------------
-r13564 | vlefevre | 2019-08-20 09:39:53 +0000 (Tue, 20 Aug 2019) | 13 lines
-Changed paths:
- M /trunk/src/out_str.c
-
-[src/out_str.c] Fixed bug in mpfr_out_str: When the exponent of the
-converted value is 0, it was not output, contrary to what is described
-in the MPFR manual. Note that this does not change the value of the
-printed string, so that this has no effect on applications that just
-re-read the value (with MPFR or another code).
-This was regarded as a bug rather than an error in the documentation,
-thus the output now looks more similar to what printf with %e yields;
-the GMP function mpf_out_str also outputs the exponent 0.
-Short discussion:
- https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00012.html
-
-Note: The tests still pass, as this function is currently not really
-tested.
-------------------------------------------------------------------------
-r13563 | vlefevre | 2019-08-14 17:01:18 +0000 (Wed, 14 Aug 2019) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Update/corrections about MinGW and __USE_MINGW_ANSI_STDIO.
-------------------------------------------------------------------------
-r13562 | vlefevre | 2019-08-14 15:43:30 +0000 (Wed, 14 Aug 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] When building with MinGW, output a line about it:
-MinGW32 / MinGW64, and the __USE_MINGW_ANSI_STDIO definition.
-------------------------------------------------------------------------
-r13561 | vlefevre | 2019-08-14 15:37:46 +0000 (Wed, 14 Aug 2019) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Moved a definition under the #if where it is used.
-------------------------------------------------------------------------
-r13560 | zimmerma | 2019-08-14 07:38:12 +0000 (Wed, 14 Aug 2019) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-improve INSTALL (feedback from sisyphus <sisyphus359@gmail.com>)
-
-------------------------------------------------------------------------
-r13559 | vlefevre | 2019-08-12 13:39:50 +0000 (Mon, 12 Aug 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a FIXME for mpfr_out_str about the exponent 0.
-------------------------------------------------------------------------
-r13558 | vlefevre | 2019-08-12 13:32:58 +0000 (Mon, 12 Aug 2019) | 10 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] About mpfr_get_str / mpfr_out_str:
- * In the mpfr_get_str description, changed argument "b" to "base" for
- consistency with similar functions (now, only mpfr_get_str_ndigits
- has b as this looks better in the formula). Also added a link to
- mpfr_get_str_ndigits.
- * In the mpfr_out_str description, replaced the ambiguous and even
- incorrect sentence "enough digits so that op can be read back
- exactly" (issues with trailing zeros and with the directed rounding
- modes) by text similar to the one in the mpfr_get_str description
- (keeping the reference to mpfr_get_str).
-------------------------------------------------------------------------
-r13557 | vlefevre | 2019-08-12 12:40:32 +0000 (Mon, 12 Aug 2019) | 1 line
-Changed paths:
- M /trunk/src/out_str.c
-
-[src/out_str.c] Coding style (e is not a boolean).
-------------------------------------------------------------------------
-r13556 | vlefevre | 2019-08-09 13:52:29 +0000 (Fri, 09 Aug 2019) | 1 line
-Changed paths:
- M /trunk/tests/tout_str.c
-
-[tests/tout_str.c] Use mpfr_print_rnd_mode in a message.
-------------------------------------------------------------------------
-r13555 | vlefevre | 2019-08-09 13:49:28 +0000 (Fri, 09 Aug 2019) | 3 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-[tests/tout_str.c] Code simplification: a test from r1888 on a
-random value was unnecessary (the log message of r1888 did not
-even correspond to the change).
-------------------------------------------------------------------------
-r13554 | vlefevre | 2019-08-09 13:37:48 +0000 (Fri, 09 Aug 2019) | 1 line
-Changed paths:
- M /trunk/tests/tout_str.c
-
-[tests/tout_str.c] GNU coding style.
-------------------------------------------------------------------------
-r13553 | vlefevre | 2019-08-09 13:34:16 +0000 (Fri, 09 Aug 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-[tests/tout_str.c] Added missing newline characters in the output
-after calls to mpfr_out_str.
-------------------------------------------------------------------------
-r13552 | vlefevre | 2019-08-09 13:29:36 +0000 (Fri, 09 Aug 2019) | 5 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-[tests/tout_str.c] By default, output the results to a file instead of
-/dev/null (this was already done only if opening /dev/null failed), so
-that they can be checked later. Fixed 2 issues at the same time:
- * Do not close stdout (when an argument was provided).
- * Remove the file at the end.
-------------------------------------------------------------------------
-r13551 | vlefevre | 2019-08-09 13:11:38 +0000 (Fri, 09 Aug 2019) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] GNU coding style.
-------------------------------------------------------------------------
-r13550 | vlefevre | 2019-08-09 13:09:57 +0000 (Fri, 09 Aug 2019) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Added a comment about the use of perror.
-------------------------------------------------------------------------
-r13549 | vlefevre | 2019-08-09 13:06:47 +0000 (Fri, 09 Aug 2019) | 4 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Also check fclose failure when the file has been opened
-for writing (typically an error in case the buffer cannot be written to
-the file). Call perror after all fopen/src_fopen/fclose failures to get
-the reason of the failure.
-------------------------------------------------------------------------
-r13548 | vlefevre | 2019-08-09 12:45:21 +0000 (Fri, 09 Aug 2019) | 4 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] In case of failure of fopen or src_fopen, write the
-error message on stderr (as one should do for errors not directly
-related to the tests, such as memory allocation and I/O errors).
-Also improved the error messages and made them consistent.
-------------------------------------------------------------------------
-r13547 | vlefevre | 2019-08-06 12:47:52 +0000 (Tue, 06 Aug 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13546 | vlefevre | 2019-08-05 13:50:20 +0000 (Mon, 05 Aug 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved consistency with @item.
-------------------------------------------------------------------------
-r13545 | vlefevre | 2019-08-02 13:17:10 +0000 (Fri, 02 Aug 2019) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/doc/Makefile.am
- M /trunk/src/Makefile.am
- M /trunk/tests/Makefile.am
- M /trunk/tools/bench/Makefile.am
- M /trunk/tune/Makefile.am
-
-For Makefile.am and each one in SUBDIRS, added the .POSIX target to
-select the POSIX behavior (since we do not require GNU "make").
-See: https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00005.html
-------------------------------------------------------------------------
-r13544 | vlefevre | 2019-08-02 08:22:52 +0000 (Fri, 02 Aug 2019) | 2 lines
-Changed paths:
- M /trunk/tools/get_patches.sh
-
-[tools/get_patches.sh] Fixed change in r13543 (the contents of PATCHES
-should still be written as a list of words separated by a space).
-------------------------------------------------------------------------
-r13543 | vlefevre | 2019-08-02 08:15:24 +0000 (Fri, 02 Aug 2019) | 9 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/tools/get_patches.sh
-
-Fixed src/get_patches.c generation that was changed in r13542.
- * src/Makefile.am, tools/get_patches.sh: since get_patches.sh is
- no longer run from $(top_srcdir), the PATCHES absolute pathname
- now needs to be passed in argument.
- * src/Makefile.am: fixed the get_patches.c rule (the automatic
- variable $< was used with the meaning "first prerequisite" of
- GNU Make; an "exit 1" was missing, so that a failure did not
- abort "make" immediately).
- * tools/get_patches.sh: detect errors with "set -e".
-------------------------------------------------------------------------
-r13542 | vlefevre | 2019-07-31 15:55:00 +0000 (Wed, 31 Jul 2019) | 7 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Define get_patches.c as a built source to avoid a
-non-portable make rule ("/" character in target), causing an error
-in FreeBSD with its "make" command. This change should be OK as the
-get_patches.sh script that generates get_patches.c is very simple
-and portable. As a consequence, put get_patches.c in CLEANFILES.
-See:
- https://sympa.inria.fr/sympa/arc/mpfr/2019-07/msg00003.html
-------------------------------------------------------------------------
-r13541 | vlefevre | 2019-07-31 15:28:01 +0000 (Wed, 31 Jul 2019) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Fixed dist-hook for ck-mparam, which was run from a
-read-only directory with "make distcheck" while a temporary file
-is created in the current directory, yielding a failure (ck-mparam
-has been run in dist-hook since r12533 on 2018-04-03).
-------------------------------------------------------------------------
-r13540 | vlefevre | 2019-07-31 15:23:57 +0000 (Wed, 31 Jul 2019) | 4 lines
-Changed paths:
- M /trunk/tools/ck-mparam
-
-[tools/ck-mparam] Updated comment to warn that the source tree that is
-checked is the one that contains this script, not the one corresponding
-to the current working directory (the rule for the other scripts in the
-tools directory is currently different).
-------------------------------------------------------------------------
-r13539 | vlefevre | 2019-07-31 15:06:10 +0000 (Wed, 31 Jul 2019) | 5 lines
-Changed paths:
- M /trunk/tools/ck-mparam
-
-[tools/ck-mparam] This script can now be run from any directory (which
-must still be writable). This change has been done to be able to run
-it from the build directory, as if it is run via "make distcheck" and
-a dist-hook rule, then neither the top-level directory nor the tools
-directory is writable.
-------------------------------------------------------------------------
-r13537 | vlefevre | 2019-07-23 10:55:43 +0000 (Tue, 23 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Updated comment (only the x86 and x86_64 targets
-are affected).
-------------------------------------------------------------------------
-r13536 | vlefevre | 2019-07-23 06:55:53 +0000 (Tue, 23 Jul 2019) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Improved a comment.
-------------------------------------------------------------------------
-r13535 | vlefevre | 2019-07-22 14:08:50 +0000 (Mon, 22 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Avoid GCC bug 91226: wrong propagation of
-non-canonical _Decimal64 constant.
-------------------------------------------------------------------------
-r13534 | vlefevre | 2019-07-22 12:57:55 +0000 (Mon, 22 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] In decimal64_to_string, log the memory representation
-of the _Decimal64 argument.
-------------------------------------------------------------------------
-r13533 | vlefevre | 2019-07-22 12:47:56 +0000 (Mon, 22 Jul 2019) | 3 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] In decimal64_to_string, log the various fields of the
-_Decimal64 argument whose memory data is regarded as a double (as this
-is the current implementation of this function).
-------------------------------------------------------------------------
-r13532 | vlefevre | 2019-07-22 10:36:28 +0000 (Mon, 22 Jul 2019) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] More output details in the noncanonical test.
-------------------------------------------------------------------------
-r13531 | vlefevre | 2019-07-22 10:29:09 +0000 (Mon, 22 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Improved the noncanonical test, but this does not
-solve the failure with gcc-snapshot.
-------------------------------------------------------------------------
-r13530 | vlefevre | 2019-07-22 10:16:00 +0000 (Mon, 22 Jul 2019) | 3 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] More meaningful name of a test with a
-non-canonical encoding and more details (fails with Debian's
-gcc-snapshot 10.0.0 20190718, trunk revision 273586).
-------------------------------------------------------------------------
-r13528 | vlefevre | 2019-07-12 15:58:07 +0000 (Fri, 12 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": mention -Wsuggest-attribute=...
-options (but mpfr.h first needs some macros like __MPFR_SENTINEL_ATTR).
-------------------------------------------------------------------------
-r13527 | vlefevre | 2019-07-12 13:31:46 +0000 (Fri, 12 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-Renamed MPFR_CONST_ATTR macro to MPFR_CONST_FUNCTION_ATTR in order to be
-similar to the MPFR_{PURE,HOT,COLD}_FUNCTION_ATTR macro names.
-------------------------------------------------------------------------
-r13526 | vlefevre | 2019-07-10 09:15:09 +0000 (Wed, 10 Jul 2019) | 5 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update concerning the MPFR manual:
- * Updated information about the papersize issues (should be fixed,
- but manual checking is recommended).
- * Detailed English typography.
- * Removed mention of the old texinfo bug 33329 (Debian bug 583558).
-------------------------------------------------------------------------
-r13524 | vlefevre | 2019-07-08 11:08:18 +0000 (Mon, 08 Jul 2019) | 1 line
-Changed paths:
- M /trunk/codespell.exclude
- M /trunk/codespell.ignore
-
-[codespell.*] Update for codespell 1.15.0.
-------------------------------------------------------------------------
-r13522 | vlefevre | 2019-07-08 11:03:43 +0000 (Mon, 08 Jul 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
-
-Fixed spelling mistakes found by codespell 1.15.0.
-------------------------------------------------------------------------
-r13519 | vlefevre | 2019-07-06 19:55:37 +0000 (Sat, 06 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added missing "const" qualifier to "char *" in a test;
-needed with GCC's "-Wwrite-strings -Werror".
-------------------------------------------------------------------------
-r13517 | vlefevre | 2019-07-02 12:13:56 +0000 (Tue, 02 Jul 2019) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] MPFR_GROUP_* macros / mpfr_group_t structure: when
-MPFR_GROUP_STATIC_SIZE is 0 (for testing), use a flexible array member
-(ISO C99) instead of a zero-length array (GNU extension, forbidden in
-ISO C).
-------------------------------------------------------------------------
-r13515 | vlefevre | 2019-07-02 11:06:33 +0000 (Tue, 02 Jul 2019) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsum.c
- M /trunk/tests/turandom.c
-
-[tests/*.c] Added missing "const" qualifier to "char *" when this
-involves string literals (detected by using GCC's -Wwrite-strings
-option, via the default -Wdiscarded-qualifiers warning).
-------------------------------------------------------------------------
-r13514 | vlefevre | 2019-07-01 15:40:11 +0000 (Mon, 01 Jul 2019) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4,configure.ac] MPFR_C_LONG_DOUBLE_FORMAT: also detect
-clang's LTO.
-Note: no longer use $FGREP (see r13513) as its status is unclear on
-non-POSIX systems (though very probably available when $EGREP is).
-------------------------------------------------------------------------
-r13513 | vlefevre | 2019-07-01 14:12:10 +0000 (Mon, 01 Jul 2019) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4,configure.ac] For MPFR_C_LONG_DOUBLE_FORMAT, when the
-format is unknown and it is detected that LTO has been used, output
-"recognition prevented by LTO".
-Note: at the same time, since AC_PROG_FGREP was needed, replaced
-$EGREP by $FGREP when applicable.
-------------------------------------------------------------------------
-r13512 | vlefevre | 2019-07-01 13:44:51 +0000 (Mon, 01 Jul 2019) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT: improved comment and added a
-warning saying that this does not work with GCC's LTO (gcc -flto ...).
-------------------------------------------------------------------------
-r13511 | zimmerma | 2019-06-07 12:42:41 +0000 (Fri, 07 Jun 2019) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] simplified code of sub1sp1 for bx = cx
-
-------------------------------------------------------------------------
-r13510 | vlefevre | 2019-06-06 12:43:33 +0000 (Thu, 06 Jun 2019) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] About r13506-13509 and optimization: added a comment
-about Clang after some tests (without giving details, as in practice,
-this is more complex... but this is the general idea).
-------------------------------------------------------------------------
-r13509 | zimmerma | 2019-06-06 12:23:42 +0000 (Thu, 06 Jun 2019) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed typo
-
-------------------------------------------------------------------------
-r13508 | vlefevre | 2019-06-06 12:12:11 +0000 (Thu, 06 Jun 2019) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added reference to GCC PR30315 about a misoptimization
-on x86/x86_64 (see r13506 and r13507).
-------------------------------------------------------------------------
-r13507 | vlefevre | 2019-06-06 10:51:57 +0000 (Thu, 06 Jun 2019) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Completed r13506: added MPFR_ASSERTD to justify the
-new code and give more information to the compiler; added comments
-about this optimization issue.
-------------------------------------------------------------------------
-r13506 | zimmerma | 2019-06-06 10:14:04 +0000 (Thu, 06 Jun 2019) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] small speedup (following discussion with Félix Breton)
-
-------------------------------------------------------------------------
-r13498 | vlefevre | 2019-06-01 14:22:53 +0000 (Sat, 01 Jun 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about MPFR_DISABLE_IEEE_FLOATS.
-------------------------------------------------------------------------
-r13497 | vlefevre | 2019-06-01 13:57:48 +0000 (Sat, 01 Jun 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated MPFR_DISABLE_IEEE_FLOATS description.
-------------------------------------------------------------------------
-r13496 | vlefevre | 2019-06-01 13:54:08 +0000 (Sat, 01 Jun 2019) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Undefine HAVE_LDOUBLE_IS_DOUBLE & HAVE_LDOUBLE_IEEE_*
-macros if MPFR_DISABLE_IEEE_FLOATS is defined, as the goal is to test
-code not relying on IEEE floats.
-------------------------------------------------------------------------
-r13495 | vlefevre | 2019-05-24 13:17:50 +0000 (Fri, 24 May 2019) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Code simplification with the generic
-LONGDOUBLE_NAN_ACTION macro (the WANT_LONGDOUBLE_VOLATILE macro is not
-needed as used only once, thus removed). Improved the related comment.
-------------------------------------------------------------------------
-r13494 | vlefevre | 2019-05-24 08:33:50 +0000 (Fri, 24 May 2019) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/volatile.c
-
-[src] Instead of including <float.h> in volatile.c (r13493), do that
-unconditionally in mpfr-impl.h to make sure that macro definitions
-in this header file are always correct: some definitions depend on
-various macros from <float.h>, such as FLT_RADIX and DBL_MANT_DIG.
-------------------------------------------------------------------------
-r13493 | zimmerma | 2019-05-24 07:35:03 +0000 (Fri, 24 May 2019) | 3 lines
-Changed paths:
- M /trunk/src/volatile.c
-
-applied patch from #21762
-(https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21762&group_id=136)
-
-------------------------------------------------------------------------
-r13492 | vlefevre | 2019-05-15 13:53:23 +0000 (Wed, 15 May 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added another URL on undefined behavior.
-------------------------------------------------------------------------
-r13488 | vlefevre | 2019-04-30 17:06:09 +0000 (Tue, 30 Apr 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Note that -static-libasan does not work with MPFR.
-------------------------------------------------------------------------
-r13486 | vlefevre | 2019-04-30 15:13:32 +0000 (Tue, 30 Apr 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about the use of GCC's "-fsanitize=address".
-------------------------------------------------------------------------
-r13485 | zimmerma | 2019-04-30 13:49:59 +0000 (Tue, 30 Apr 2019) | 3 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] fixed out-of-bound read reported by Thomas Bailleux
-
-Note: This bug was introduced in r12066.
-------------------------------------------------------------------------
-r13484 | vlefevre | 2019-04-29 13:29:12 +0000 (Mon, 29 Apr 2019) | 1 line
-Changed paths:
- M /trunk/tools/ck-version-info
-
-[tools/ck-version-info] Minor corrections in a comment.
-------------------------------------------------------------------------
-r13483 | vlefevre | 2019-04-29 13:26:29 +0000 (Mon, 29 Apr 2019) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about the VERSION file:
- * Added a paragraph on the meaning of the "-dev" suffix.
- * Removed a confusing and useless "-dev" in an example.
-------------------------------------------------------------------------
-r13482 | vlefevre | 2019-04-29 13:17:34 +0000 (Mon, 29 Apr 2019) | 4 lines
-Changed paths:
- M /trunk/tools/ck-news
-
-[tools/ck-news] Changed the condition of the test for FIXME or TODO:
-Previously it was disabled only for -dev versions. Now it is enabled
-only for releases and release candidates. This will allow snapshots,
-for which the NEWS file may still contain a FIXME or TODO.
-------------------------------------------------------------------------
-r13481 | vlefevre | 2019-04-29 13:11:11 +0000 (Mon, 29 Apr 2019) | 1 line
-Changed paths:
- M /trunk/tools/ck-version-info
-
-[tools/ck-version-info] Corrected check. Added explanations in comments.
-------------------------------------------------------------------------
-r13480 | vlefevre | 2019-04-29 12:44:01 +0000 (Mon, 29 Apr 2019) | 1 line
-Changed paths:
- M /trunk/tools/ck-version-info
-
-[tools/ck-version-info] Better error message if $vinfo is not defined.
-------------------------------------------------------------------------
-r13479 | vlefevre | 2019-04-29 12:38:40 +0000 (Mon, 29 Apr 2019) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Added a comment.
-------------------------------------------------------------------------
-r13477 | vlefevre | 2019-04-25 12:26:27 +0000 (Thu, 25 Apr 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13475 | vlefevre | 2019-04-25 10:55:11 +0000 (Thu, 25 Apr 2019) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the list of rounding modes in the description
-of the mpfr_print_rnd_mode function. Choose the same order as in the
-"Rounding Modes" section in "MPFR Basics".
-------------------------------------------------------------------------
-r13474 | vlefevre | 2019-04-25 10:53:38 +0000 (Thu, 25 Apr 2019) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Lists of rounding modes: also check with the
-"Rounding Modes" section in "MPFR Basics".
-------------------------------------------------------------------------
-r13473 | vlefevre | 2019-04-25 10:35:45 +0000 (Thu, 25 Apr 2019) | 1 line
-Changed paths:
- M /trunk/src/print_rnd_mode.c
-
-[src/print_rnd_mode.c] Added a comment to remember to update the manual.
-------------------------------------------------------------------------
-r13472 | vlefevre | 2019-04-25 10:34:31 +0000 (Thu, 25 Apr 2019) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check that the lists of rounding modes in
-src/print_rnd_mode.c and doc/mpfr.texi are identical.
-------------------------------------------------------------------------
-r13471 | vlefevre | 2019-04-25 10:05:47 +0000 (Thu, 25 Apr 2019) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added a blank line (grouping of function declarations).
-------------------------------------------------------------------------
-r13470 | vlefevre | 2019-04-25 10:04:25 +0000 (Thu, 25 Apr 2019) | 1 line
-Changed paths:
- M /trunk/TODO
- M /trunk/src/mpfr.h
- M /trunk/src/vasprintf.c
-
-Added support for GCC's returns_nonnull attribute (with GCC 4.9+).
-------------------------------------------------------------------------
-r13469 | vlefevre | 2019-04-25 09:31:55 +0000 (Thu, 25 Apr 2019) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Update about GCC's nonnull and returns_nonnull attributes.
-------------------------------------------------------------------------
-r13467 | vlefevre | 2019-04-16 08:11:02 +0000 (Tue, 16 Apr 2019) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/vasprintf.c
-
-New macro MPFR_FALLTHROUGH to avoid -Wimplicit-fallthrough warnings
-with GCC 7+. This macro also makes the code more readable by bringing
-the attention on an unusual fallthrough in a switch case.
- * src/mpfr-impl.h: define this macro.
- * src/vasprintf.c: use this macro in a case of fallthrough.
-------------------------------------------------------------------------
-r13466 | vlefevre | 2019-04-15 12:27:49 +0000 (Mon, 15 Apr 2019) | 8 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/vasprintf.c] Minor bug fix: when an integer is to be read for
- the field width or precision, regard strings like "17*" as invalid
- instead of regarding it as "*" (ignoring the integer that precedes,
- except in case of overflow). In C's printf, such an invalid string
- yields undefined behavior, but in MPFR, we normally print the
- invalid format specifier as a literal string in such a case.
- Bug detected with -Wimplicit-fallthrough from GCC 7+.
-[tests/tsprintf.c] Added non-regression test.
-------------------------------------------------------------------------
-r13464 | vlefevre | 2019-04-02 09:36:47 +0000 (Tue, 02 Apr 2019) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated --enable-logging description.
-------------------------------------------------------------------------
-r13463 | vlefevre | 2019-04-02 09:33:07 +0000 (Tue, 02 Apr 2019) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] When logging support is requested, run a test to check
-that code with nested functions and the 'cleanup' attribute can be
-compiled, as these features are needed.
-------------------------------------------------------------------------
-r13462 | vlefevre | 2019-04-02 09:07:39 +0000 (Tue, 02 Apr 2019) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] AC_ARG_ENABLE(float128,...): updated comment and
-description.
-------------------------------------------------------------------------
-r13461 | vlefevre | 2019-04-02 08:56:21 +0000 (Tue, 02 Apr 2019) | 5 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated comment for AC_ARG_ENABLE(decimal-float,...).
- * Removed information about very old GCC versions.
- * _Decimal128 is considered too, in addition to _Decimal64.
- * No longer just a GCC extension, but part of ISO/IEC TS 18661.
- * Added a FIXME for new options about _Decimal64 and _Decimal128.
-------------------------------------------------------------------------
-r13460 | vlefevre | 2019-04-02 08:43:30 +0000 (Tue, 02 Apr 2019) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Cleanup: moved some AC_ARG_ENABLE's where they should be.
-------------------------------------------------------------------------
-r13459 | vlefevre | 2019-03-29 16:27:57 +0000 (Fri, 29 Mar 2019) | 8 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c]
- * Corrected FIXME by modifying the assertion. The failure could occur
- only when mpfr_intmax_t has the same size as int (which is the case
- when long = int and either intmax_t and long long are not available
- or intmax_t = long = int), and only when INT_MIN is provided as a
- field width argument.
- * Related to that, updated a test to improve optimization.
- * Added comments.
-------------------------------------------------------------------------
-r13458 | vlefevre | 2019-03-29 15:20:48 +0000 (Fri, 29 Mar 2019) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a FIXME: tsprintf yields an assertion failure
-with sizeof(mpfr_intmax_t) = 4 (which was not tested until now).
-------------------------------------------------------------------------
-r13457 | vlefevre | 2019-03-29 14:39:22 +0000 (Fri, 29 Mar 2019) | 32 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/doc/README.dev
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_uj.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/tests/tfits.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tversion.c
-
-Cleanup / fixes related to intmax_t, mpfr_intmax_t, etc.
-
-The issues were:
- * The build of the tests (make check) could fail with CFLAGS implying
- "-std=c90 -Werror=format", i.e. if intmax_t was available but the
- use of the "j" printf length modifier made the compilation fail
- (its unconditional use was incorrect anyway).
- * MPFR_INTMAX_MAX had definitions in both mpfr-impl.h & mpfr-intmax.h,
- with inconsistent usage.
-
-Detailed changes:
- * acinclude.m4: removed the definition of MPFR_PRINTF_MAXLM, which
- could be incorrect (large numbers were not tested to select its
- value); in the MPFR_FUNC_GMP_PRINTF_SPEC macro, check sprintf()
- in addition to gmp_sprintf() as it is now also used in the tests;
- updated some comments and messages.
- * src/mpfr-impl.h: removed the MPFR_*INTMAX* definitions; they had
- been added due to
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=582698
- with -ansi -pedantic-errors, but this issue was fixed in GCC 4.8
- (released 6 years ago), so that they are no longer needed.
- * src/mpfr-intmax.h: completed the definitions; mpfr_intmax_t is now
- the largest integer type available and fully working (in particular
- with printf), thus it may be smaller than intmax_t.
- * doc/README.dev: updated the description of mpfr_intmax_t, etc.
- * tests/tversion.c: output sizeof(mpfr_intmax_t) too.
- * Various .c files in src and tests related to (u)intmax_t: use
- INTMAX_MAX instead of MPFR_INTMAX_MAX, etc. as Debian bug 582698
- (mentioned above) no longer occurs and mpfr_intmax_t may be smaller
- than intmax_t; use the "j" printf length modifier instead of
- MPFR_PRINTF_MAXLM, and protect it with "#ifndef NPRINTF_J"
- (only the tests are concerned, so that this is not an issue).
-------------------------------------------------------------------------
-r13456 | vlefevre | 2019-03-28 17:19:00 +0000 (Thu, 28 Mar 2019) | 2 lines
-Changed paths:
- M /trunk/src/urandomb.c
-
-[src/urandomb.c] Removed the FIXME: this is a bug in GMP or in Clang's
-memory sanitizer.
-------------------------------------------------------------------------
-r13455 | vlefevre | 2019-03-28 16:56:46 +0000 (Thu, 28 Mar 2019) | 2 lines
-Changed paths:
- M /trunk/src/urandomb.c
-
-[src/urandomb.c] Added a FIXME (use-of-uninitialized-value with
-Clang's memory sanitizer).
-------------------------------------------------------------------------
-r13452 | vlefevre | 2019-03-13 12:51:51 +0000 (Wed, 13 Mar 2019) | 1 line
-Changed paths:
- M /trunk/src/printf.c
-
-[src/printf.c] Removed unused definitions.
-------------------------------------------------------------------------
-r13451 | vlefevre | 2019-03-01 13:12:20 +0000 (Fri, 01 Mar 2019) | 6 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about coverage:
- * Mention not to enable optimizations.
- * Replaced "-fprofile-arcs -ftest-coverage" by "--coverage", as
- this is what is used by the tools/coverage script (note: this
- is a synonym when compiling, but also allows the right options
- to be used when linking, thus might be better in doubt).
-------------------------------------------------------------------------
-r13446 | vlefevre | 2019-02-04 14:17:56 +0000 (Mon, 04 Feb 2019) | 1 line
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/td_div.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tset_float128.c
-
-[tests] Use MPFR_DBL_* macros when necessary.
-------------------------------------------------------------------------
-r13445 | vlefevre | 2019-02-04 13:57:49 +0000 (Mon, 04 Feb 2019) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] For consistency, use "[ch]" instead of "{c,h}".
-------------------------------------------------------------------------
-r13444 | vlefevre | 2019-02-04 13:55:47 +0000 (Mon, 04 Feb 2019) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect use of DBL_* macros instead of MPFR_DBL_* ones.
-------------------------------------------------------------------------
-r13443 | vlefevre | 2019-02-04 13:47:14 +0000 (Mon, 04 Feb 2019) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Improved message about division by zero.
-------------------------------------------------------------------------
-r13442 | vlefevre | 2019-02-04 13:39:17 +0000 (Mon, 04 Feb 2019) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tools/mpfrlint
-
-[doc/README.dev] Improved description of MPFR_ERRDIVZERO.
-[tools/mpfrlint] Added a comment about division by zero.
-------------------------------------------------------------------------
-r13441 | vlefevre | 2019-02-04 13:23:37 +0000 (Mon, 04 Feb 2019) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check that native FP division by zero is not used.
-------------------------------------------------------------------------
-r13429 | vlefevre | 2019-01-31 15:09:00 +0000 (Thu, 31 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] In check-exported-symbols, replaced grep by $(GREP)
-as usual and like in check-gmp-symbols.
-------------------------------------------------------------------------
-r13423 | vlefevre | 2019-01-30 09:49:35 +0000 (Wed, 30 Jan 2019) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated comment about default options in CFLAGS for GCC.
-------------------------------------------------------------------------
-r13421 | vlefevre | 2019-01-30 09:19:01 +0000 (Wed, 30 Jan 2019) | 7 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/NEWS
- M /trunk/configure.ac
-
-Update about CC / CFLAGS settings from GMP (__GMP_CC / __GMP_CFLAGS).
- * configure.ac: remove -pedantic unconditionally; since r7044, it was
- removed only when logging was enabled, as at that time only logging
- was using C extensions.
- * NEWS: added a line about this change.
- * INSTALL: updated the note about CC / CFLAGS, removing the obsolete
- reference to GMP 4.3.0 at the same time.
-------------------------------------------------------------------------
-r13420 | vlefevre | 2019-01-28 01:31:22 +0000 (Mon, 28 Jan 2019) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Corrected subject for Release Candidate > 1.
-------------------------------------------------------------------------
-r13415 | vlefevre | 2019-01-25 14:31:46 +0000 (Fri, 25 Jan 2019) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r13414 | vlefevre | 2019-01-25 12:58:24 +0000 (Fri, 25 Jan 2019) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update about shared caches.
-------------------------------------------------------------------------
-r13413 | vlefevre | 2019-01-25 12:55:31 +0000 (Fri, 25 Jan 2019) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added: "Shared caches: cleanup."
-------------------------------------------------------------------------
-r13412 | vlefevre | 2019-01-25 12:52:54 +0000 (Fri, 25 Jan 2019) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-thread.h
-
-[src/mpfr-thread.h] Fixed the lock macros:
- * in case of failure, one must abort, otherwise this would generally
- be undefined behavior;
- * added missing "do {} while (0)" (currently not mandatory).
-------------------------------------------------------------------------
-r13411 | vlefevre | 2019-01-25 12:01:18 +0000 (Fri, 25 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated a comment about MPFR_DECL_INIT_CACHE and
-the shared cache.
-------------------------------------------------------------------------
-r13410 | vlefevre | 2019-01-25 11:48:40 +0000 (Fri, 25 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Avoid a warning with the pthread_rwlock_t test,
-as it is an error with -Werror.
-------------------------------------------------------------------------
-r13408 | vlefevre | 2019-01-25 00:52:54 +0000 (Fri, 25 Jan 2019) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed another C++ compatibility issue detected by
-the -Werror=c++-compat GCC option (it led the "long double" format
-to be unknown).
-------------------------------------------------------------------------
-r13407 | vlefevre | 2019-01-24 23:21:20 +0000 (Thu, 24 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Fixed C++ compatibility issue (arithmetic on enum)
-detected by the -Werror=c++-compat GCC option.
-------------------------------------------------------------------------
-r13406 | vlefevre | 2019-01-23 14:11:26 +0000 (Wed, 23 Jan 2019) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] By default (i.e. if CFLAGS is not already set), if
-the compiler is GCC not in C++ mode, add the -Wc++-compat warning
-since we expect the code to compile with a C++ compiler.
-------------------------------------------------------------------------
-r13401 | vlefevre | 2019-01-13 15:38:22 +0000 (Sun, 13 Jan 2019) | 1 line
-Changed paths:
- M /trunk/tests/tcheck.c
-
-[tests/tcheck.c] Corrected meaningless error message.
-------------------------------------------------------------------------
-r13397 | vlefevre | 2019-01-13 00:13:15 +0000 (Sun, 13 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Minor correction for non-tex versions.
-Thanks to Trevor Spiteri for the bug report.
-------------------------------------------------------------------------
-r13396 | vlefevre | 2019-01-09 14:12:12 +0000 (Wed, 09 Jan 2019) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-Moved the compatibility test of the configure options even earlier, from
-acinclude.m4 to configure.ac, just after the code that defines them.
-Also added an associated AC_MSG_CHECKING message for better clarity.
-------------------------------------------------------------------------
-r13395 | vlefevre | 2019-01-09 14:01:33 +0000 (Wed, 09 Jan 2019) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Simplified a message.
-------------------------------------------------------------------------
-r13394 | vlefevre | 2019-01-09 13:58:07 +0000 (Wed, 09 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] When the shared cache is enabled, also output the
-lock method (this information has been lost in r13032).
-------------------------------------------------------------------------
-r13393 | vlefevre | 2019-01-09 13:51:05 +0000 (Wed, 09 Jan 2019) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] When checking support for POSIX threads (pthread), also
-check that pthread_rwlock_t is supported, as it is needed by MPFR and
-conditionally defined in glibc's bits/pthreadtypes.h (via <pthread.h>).
-------------------------------------------------------------------------
-r13392 | vlefevre | 2019-01-09 12:56:20 +0000 (Wed, 09 Jan 2019) | 20 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-Cleaned up configure code related to threading and the shared cache.
- * acinclude.m4:
- - detect incompatibilities between configure options at the
- beginning of MPFR_CONFIGS, forcing enable_thread_safe to
- "no" or "yes" when necessary, so that the subsequent code
- can rely on that;
- - check ISO C11 thread support and/or POSIX thread support
- only when necessary;
- - handle --enable-shared-cache early in MPFR_CONFIGS, because
- the use of POSIX threads (pthread) may need to change CC,
- CFLAGS, and LIBS (thus affecting other tests);
- - test $enable_shared_cache instead of $mpfr_want_shared_cache;
- - removed the now useless MPFR_CHECK_SHARED_CACHE function.
- * configure.ac: no longer set the mpfr_want_shared_cache variable,
- as enable_shared_cache (now used) already has the same usage.
-Note: currently,
- ./configure --enable-shared-cache CFLAGS="-std=c99"
-still succeeds and still makes the compilation fail. This seems to
-be due to a limitation of AX_PTHREAD, which just tests linking, not
-compilation.
-------------------------------------------------------------------------
-r13391 | vlefevre | 2019-01-09 11:38:46 +0000 (Wed, 09 Jan 2019) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] In MPFR_CHECK_SHARED_CACHE (used when the shared cache
-was requested), also set CC="$PTHREAD_CC" as documented by ax_pthread
-(autoconf-archive). This is not guaranteed to work, but according to
-the ax_pthread.m4 source, in the cases where "$PTHREAD_CC" != "$CC",
-not setting it will probably not work either.
-------------------------------------------------------------------------
-r13390 | vlefevre | 2019-01-09 10:20:54 +0000 (Wed, 09 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment about the cache-related types, which
-depend on the locking methods.
-------------------------------------------------------------------------
-r13385 | vlefevre | 2019-01-08 13:29:14 +0000 (Tue, 08 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Updated comment about GCC bug 86554: now fixed in
-the GCC trunk.
-------------------------------------------------------------------------
-r13383 | vlefevre | 2019-01-07 16:10:18 +0000 (Mon, 07 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Replaced "env -u DISPLAY" by "env DISPLAY=''" as
-the -u option is not supported by NetBSD.
-------------------------------------------------------------------------
-r13380 | vlefevre | 2019-01-07 15:17:11 +0000 (Mon, 07 Jan 2019) | 4 lines
-Changed paths:
- M /trunk/COPYING
- M /trunk/COPYING.LESSER
-
-Updated files:
- * COPYING from https://www.gnu.org/licenses/gpl-3.0.txt
- * COPYING.LESSER from https://www.gnu.org/licenses/lgpl-3.0.txt
-These are URL updates and cosmetic changes.
-------------------------------------------------------------------------
-r13378 | vlefevre | 2019-01-07 14:26:23 +0000 (Mon, 07 Jan 2019) | 4 lines
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
-Note: For r5400, this changes an incorrect update done via r13372 back
-to the old log message, as the URL in this log message here describes
-a change in one of the files.
-------------------------------------------------------------------------
-r13376 | vlefevre | 2019-01-07 14:05:06 +0000 (Mon, 07 Jan 2019) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated some URL's (http → https).
-------------------------------------------------------------------------
-r13374 | vlefevre | 2019-01-07 13:56:16 +0000 (Mon, 07 Jan 2019) | 1 line
-Changed paths:
- M /trunk/doc/texinfo.tex
-
-[doc/texinfo.tex] Update to 2018-02-12.17 with "autoreconf -i -f".
-------------------------------------------------------------------------
-r13372 | vlefevre | 2019-01-07 13:49:57 +0000 (Mon, 07 Jan 2019) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/COPYING
- M /trunk/ChangeLog
- M /trunk/INSTALL
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/doc/fdl.texi
- M /trunk/examples/can_round.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/threads.c
- M /trunk/examples/version.c
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add1sp1_extracted.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/beta.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dot.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fmma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gamma_inc.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d128.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_q.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/invert_limb.h
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/log_ui.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_1_extracted.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/nbits_ulong.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/odd_p.c
- M /trunk/src/out_str.c
- M /trunk/src/pool.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/total_order.c
- M /trunk/src/ubf.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc-cache.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbeta.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdot.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_q.c
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_ui.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprec_round.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/trootn_ui.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttotal_order.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/check_mparam.c
- M /trunk/tools/get_patches.sh
- M /trunk/tools/mbench/generate.c
- M /trunk/tools/mbench/mfv5-arprec.cc
- M /trunk/tools/mbench/mfv5-cln.cc
- M /trunk/tools/mbench/mfv5-crlibm.cc
- M /trunk/tools/mbench/mfv5-libc.cc
- M /trunk/tools/mbench/mfv5-lidia.cc
- M /trunk/tools/mbench/mfv5-mpf.cc
- M /trunk/tools/mbench/mfv5-mpfr.cc
- M /trunk/tools/mbench/mfv5-ntl.cc
- M /trunk/tools/mbench/mfv5-pari.cc
- M /trunk/tools/mbench/mfv5-void.cc
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
- M /trunk/tools/mbench/mpfr-gfx.c
- M /trunk/tools/mbench/mpfr-v4.c
- M /trunk/tools/mbench/mpfr-v6.c
- M /trunk/tools/mbench/timp.h
- M /trunk/tools/timings-mpfr.c
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Updated the www.gnu.org URL's (http → https) on all the files with:
- perl -pi -e 's,http://www.gnu.org/,https://www.gnu.org/,g' **/*(.)
-under zsh.
-------------------------------------------------------------------------
-r13365 | vlefevre | 2019-01-07 01:11:12 +0000 (Mon, 07 Jan 2019) | 3 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Updated comment about GCC bug 86554: the MPFR build
-is still affected with the latest gcc-snapshot version (20190102-1)
-when using --with-gmp-build=... together with --enable-assert.
-------------------------------------------------------------------------
-r13364 | vlefevre | 2019-01-04 13:49:39 +0000 (Fri, 04 Jan 2019) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added a comment about GCC bug 86554: the MPFR build
-seems no longer affected by recent gcc-snapshot versions.
-------------------------------------------------------------------------
-r13361 | vlefevre | 2019-01-01 21:17:19 +0000 (Tue, 01 Jan 2019) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13359 | vlefevre | 2019-01-01 20:56:06 +0000 (Tue, 01 Jan 2019) | 4 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/check-typography
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/can_round.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/threads.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add1sp1_extracted.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/beta.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dot.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fmma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gamma_inc.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d128.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_q.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/invert_limb.h
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/log_ui.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_1_extracted.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/nbits_ulong.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/odd_p.c
- M /trunk/src/out_str.c
- M /trunk/src/pool.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/total_order.c
- M /trunk/src/ubf.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc-cache.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbeta.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdot.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_q.c
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_ui.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprec_round.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/trootn_ui.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttotal_order.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/Makefile.am
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/check_mparam.c
- M /trunk/tools/ck-clz_tab
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-news
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2019 with
- perl -pi -e 's/ (\d{4}-)?(2018)(?= Free Software)/
- " ".($1||"$2-").($2+1)/e' **/*(^/)
-under zsh. Removed 2018 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r13356 | vlefevre | 2018-12-31 03:36:15 +0000 (Mon, 31 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Added double_rounding test to trigger errors before
-the fix in mpfr_set_1_2 (set.c r13347).
-------------------------------------------------------------------------
-r13355 | vlefevre | 2018-12-31 02:31:17 +0000 (Mon, 31 Dec 2018) | 1 line
-Changed paths:
- M /trunk/src/set.c
-
-[src/set.c] In mpfr_set_1_2, evaluate MPFR_PREC(s) just once.
-------------------------------------------------------------------------
-r13354 | vlefevre | 2018-12-31 02:19:23 +0000 (Mon, 31 Dec 2018) | 1 line
-Changed paths:
- M /trunk/src/set.c
-
-[src/set.c] Clarified the mpfr_set_1_2 description.
-------------------------------------------------------------------------
-r13353 | vlefevre | 2018-12-31 02:14:55 +0000 (Mon, 31 Dec 2018) | 4 lines
-Changed paths:
- M /trunk/src/set.c
-
-[src/set.c] For mpfr_set_1_2, corrected the comments and simplified the
-generic algorithm (there is no need to distinguish the rounding modes,
-except for the double-rounding test, and this simplification avoids the
-non-portable inex | inex2).
-------------------------------------------------------------------------
-r13351 | vlefevre | 2018-12-20 13:49:07 +0000 (Thu, 20 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] Removed "#define GMP_LIMB_BITS 8": it is not used by
-mini-gmp.h and yields a failure when building mini-gmp.c (which has
-its own definition of GMP_LIMB_BITS, equivalent but not identical).
-------------------------------------------------------------------------
-r13350 | vlefevre | 2018-12-20 13:43:57 +0000 (Thu, 20 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Support mini-gmp with reduced limb size, in the case
-GMP_NUMB_BITS is not defined: guess GMP_NUMB_BITS from the size of
-mp_limb_t instead of the size of unsigned long.
-------------------------------------------------------------------------
-r13349 | vlefevre | 2018-12-20 13:29:33 +0000 (Thu, 20 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] Correction to avoid a "conflicting types for 'mp_limb_t'"
-error.
-------------------------------------------------------------------------
-r13348 | zimmerma | 2018-12-14 15:23:15 +0000 (Fri, 14 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] added note about using mini-gmp (development version) with
- reduced limb size
-
-------------------------------------------------------------------------
-r13347 | zimmerma | 2018-12-14 14:39:48 +0000 (Fri, 14 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/src/set.c
- M /trunk/tests/tset.c
-
-[src/set.c] fixed double-rounding bug in mpfr_set_1_2
-[tests/tset.c] added corresponding tests
-
-------------------------------------------------------------------------
-r13346 | zimmerma | 2018-12-14 13:40:16 +0000 (Fri, 14 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] added a test of test_set_1_2(), which currently fails
-
-------------------------------------------------------------------------
-r13345 | zimmerma | 2018-12-14 12:30:08 +0000 (Fri, 14 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] disabled tests that don't agree with mpfr_can_round documentation
-
-------------------------------------------------------------------------
-r13344 | vlefevre | 2018-12-13 16:28:03 +0000 (Thu, 13 Dec 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.
-------------------------------------------------------------------------
-r13343 | vlefevre | 2018-12-13 16:18:49 +0000 (Thu, 13 Dec 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.
-------------------------------------------------------------------------
-r13342 | vlefevre | 2018-12-13 09:51:29 +0000 (Thu, 13 Dec 2018) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added item: new functions mpfr_cmp_uj and mpfr_cmp_sj.
-------------------------------------------------------------------------
-r13341 | vlefevre | 2018-12-13 09:47:45 +0000 (Thu, 13 Dec 2018) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Removed obsolete "check again coverage" from 2007.
-------------------------------------------------------------------------
-r13340 | zimmerma | 2018-12-13 09:15:46 +0000 (Thu, 13 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] fixed same issue as in r13338 and r13339
-
-------------------------------------------------------------------------
-r13339 | zimmerma | 2018-12-13 09:01:38 +0000 (Thu, 13 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] fixed bug in mpfr_mul() when sizeof(mp_limb_t) < sizeof(mpfr_exp_t)
- (same issue as in r13338)
-
-------------------------------------------------------------------------
-r13338 | vlefevre | 2018-12-12 13:00:23 +0000 (Wed, 12 Dec 2018) | 5 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] For MPFR_WANT_ASSERT >= 2: minor changes in the code;
-corrected a comment (even with mp_limb_t >= mpfr_exp_t, there was an
-issue: the expression b1 - 1 + cc was computed in unsigned arithmetic,
-then converted to mpfr_exp_t, with an implementation-defined result
-when -1 was expected, i.e. with b1 = cc = 0).
-------------------------------------------------------------------------
-r13337 | vlefevre | 2018-12-12 12:30:25 +0000 (Wed, 12 Dec 2018) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Corrected a typo in a comment.
-------------------------------------------------------------------------
-r13336 | vlefevre | 2018-12-12 12:24:03 +0000 (Wed, 12 Dec 2018) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Fixed error message with MPFR_WANT_ASSERT >= 2.
-------------------------------------------------------------------------
-r13335 | vlefevre | 2018-12-11 17:51:23 +0000 (Tue, 11 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] For count_leading_zeros (MPFR_LONG_WITHIN_LIMB
-not defined), no longer assume GMP_NUMB_BITS <= 32.
-------------------------------------------------------------------------
-r13334 | vlefevre | 2018-12-11 17:33:53 +0000 (Tue, 11 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Fixed count_leading_zeros (avoid undefined behavior
-on shift counts, which must be nonnegative and smaller than the width
-of the type of the shifted value).
-------------------------------------------------------------------------
-r13333 | zimmerma | 2018-12-11 17:01:47 +0000 (Tue, 11 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] fixed reference routine mpfr_mul3() when sizeof(limb) < sizeof(exp)
-
-------------------------------------------------------------------------
-r13332 | zimmerma | 2018-12-11 15:39:46 +0000 (Tue, 11 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] fixed count_leading_zeros for mini-gmp with 32-bit limb
-
-------------------------------------------------------------------------
-r13331 | zimmerma | 2018-12-10 14:08:16 +0000 (Mon, 10 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] added remark about random functions
-
-------------------------------------------------------------------------
-r13329 | zimmerma | 2018-12-10 08:49:56 +0000 (Mon, 10 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] fixed test_20151023 (was giving an error with micro-gmp-8
-and GMP_CHECK_RANDOMIZE=1544431052619574)
-
-------------------------------------------------------------------------
-r13328 | vlefevre | 2018-12-10 00:44:18 +0000 (Mon, 10 Dec 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a test for some avoidable use of gmp_printf.
-------------------------------------------------------------------------
-r13327 | vlefevre | 2018-12-07 17:58:36 +0000 (Fri, 07 Dec 2018) | 4 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tests.c
-
-[tests]
- * mpfr-test.h, tests.c: added n_trace function to output a mpn.
- * tcan_round.c: use n_trace instead of gmp_printf ("%NX\n",...),
- which is not available with mini-gmp.
-------------------------------------------------------------------------
-r13326 | vlefevre | 2018-12-06 08:13:09 +0000 (Thu, 06 Dec 2018) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Corrected all the error messages for mini-gmp.
-------------------------------------------------------------------------
-r13325 | vlefevre | 2018-12-06 08:11:06 +0000 (Thu, 06 Dec 2018) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Corrected error message for mini-gmp.
-------------------------------------------------------------------------
-r13324 | vlefevre | 2018-12-05 20:01:26 +0000 (Wed, 05 Dec 2018) | 1 line
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-[tests/tpow_z.c] Another fix and minor improvements.
-------------------------------------------------------------------------
-r13323 | vlefevre | 2018-12-05 19:57:36 +0000 (Wed, 05 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-[tests/tpow_z.c] Fixed a test (midpoint case) that was failing
-with micro-gmp-8 and GMP_CHECK_RANDOMIZE=1544033327230569.
-------------------------------------------------------------------------
-r13322 | vlefevre | 2018-12-05 17:43:28 +0000 (Wed, 05 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-[tests/tpow_z.c] Fixed a test for MPFR_RNDF: do not check the ternary
-value (a failure was occurring with --with-mini-gmp=.../micro-gmp/8
-and GMP_CHECK_RANDOMIZE=1544025040809270).
-------------------------------------------------------------------------
-r13321 | vlefevre | 2018-12-05 17:41:33 +0000 (Wed, 05 Dec 2018) | 1 line
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-[tests/tpow_z.c] Improved error message.
-------------------------------------------------------------------------
-r13320 | vlefevre | 2018-12-05 17:39:25 +0000 (Wed, 05 Dec 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Added missing "void" in function prototype.
-------------------------------------------------------------------------
-r13319 | vlefevre | 2018-12-05 11:42:02 +0000 (Wed, 05 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] When building against mini-gmp, check the availability of
-lrand48, in particular because it is not part of the ISO C standard.
-------------------------------------------------------------------------
-r13318 | zimmerma | 2018-12-05 09:26:09 +0000 (Wed, 05 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] put back unconditional assert from r13316 (removed by error)
-
-------------------------------------------------------------------------
-r13317 | zimmerma | 2018-12-05 09:23:00 +0000 (Wed, 05 Dec 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] improved random_limb (the low bits of lrand48 are bad)
- and fixed gmp_urandomm_ui
-
-------------------------------------------------------------------------
-r13316 | vlefevre | 2018-12-05 08:29:54 +0000 (Wed, 05 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] gmp_urandomm_ui: added a MPFR_ASSERTN
-unconditionally, as n == 0 is always forbidden.
-------------------------------------------------------------------------
-r13315 | zimmerma | 2018-12-05 08:03:17 +0000 (Wed, 05 Dec 2018) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] the static assert introduced in r13313 makes the
- compilation fail for 8-bit limbs, while the code
- was valid for n <= 256 in that case
-
-------------------------------------------------------------------------
-r13314 | vlefevre | 2018-12-04 18:05:26 +0000 (Tue, 04 Dec 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Fixed types.
-------------------------------------------------------------------------
-r13313 | vlefevre | 2018-12-04 17:58:34 +0000 (Tue, 04 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Added a static assertion to make sure that
-the MPFR_ASSERTD added in r13312 is valid.
-------------------------------------------------------------------------
-r13312 | zimmerma | 2018-12-04 17:00:35 +0000 (Tue, 04 Dec 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] gmp_urandomm_ui did not generate uniform values
-
-------------------------------------------------------------------------
-r13311 | vlefevre | 2018-12-03 16:30:10 +0000 (Mon, 03 Dec 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Improved comment.
-------------------------------------------------------------------------
-r13309 | vlefevre | 2018-11-29 01:26:10 +0000 (Thu, 29 Nov 2018) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] About r13308, added references to the bugs.
-------------------------------------------------------------------------
-r13308 | vlefevre | 2018-11-29 01:24:39 +0000 (Thu, 29 Nov 2018) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Unset DISPLAY as it is not needed and it can yield
-error messages when running the tests with LOG_COMPILER=wine (for builds
-with MinGW).
-------------------------------------------------------------------------
-r13307 | vlefevre | 2018-11-29 01:05:47 +0000 (Thu, 29 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Updated a comment about an output issue with MinGW,
-with the test run under Wine (which is really the cause of the issue).
-------------------------------------------------------------------------
-r13306 | vlefevre | 2018-11-28 15:13:12 +0000 (Wed, 28 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] In case of failure of some particular test, output
-the probable cause of this failure (GCC bug 86554) with a workaround.
-------------------------------------------------------------------------
-r13305 | vlefevre | 2018-11-27 17:39:11 +0000 (Tue, 27 Nov 2018) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Updated a comment about a printf issue with MinGW.
-------------------------------------------------------------------------
-r13304 | vlefevre | 2018-11-27 16:51:17 +0000 (Tue, 27 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Added a FIXME about the error analysis (info that was
-part of the FIXME resolved in r13303 and inadvertently dropped).
-------------------------------------------------------------------------
-r13303 | vlefevre | 2018-11-27 15:15:13 +0000 (Tue, 27 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Resolved a FIXME; tstrtofr no longer fails due to
-bug20181127 with 8-bit limbs (micro-gmp/8).
-------------------------------------------------------------------------
-r13302 | vlefevre | 2018-11-27 15:05:17 +0000 (Tue, 27 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added bug20181127 (test found with random_tests),
-which fails with 8-bit limbs (micro-gmp/8).
-------------------------------------------------------------------------
-r13299 | vlefevre | 2018-11-27 11:47:39 +0000 (Tue, 27 Nov 2018) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tstrtofr.c
-
-[src/mpfr-impl.h] Added a comment with a warning concerning the
- meaning of MPFR_EXP_FSPEC.
-[tests/tstrtofr.c] Fixed a MPFR_EXP_FSPEC related bug in a test
- for _MPFR_EXP_FORMAT <= 2, e.g. with -D_MPFR_PREC_FORMAT=2.
-------------------------------------------------------------------------
-r13298 | vlefevre | 2018-11-27 11:30:56 +0000 (Tue, 27 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Fixed bad format string for an error message, detected
-with -D_MPFR_PREC_FORMAT=2 (using -Werror...).
-------------------------------------------------------------------------
-r13296 | vlefevre | 2018-11-26 13:15:45 +0000 (Mon, 26 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
- M /trunk/tests/tset_str.c
-
-[tests] Moved bug20180908() from tget_str.c to tset_str.c since it tests
-mpfr_set_str() only. This test was introduced in r13164.
-------------------------------------------------------------------------
-r13295 | vlefevre | 2018-11-23 10:43:13 +0000 (Fri, 23 Nov 2018) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] + More UBF functions.
-------------------------------------------------------------------------
-r13293 | vlefevre | 2018-11-23 10:33:33 +0000 (Fri, 23 Nov 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13292 | vlefevre | 2018-11-23 09:32:39 +0000 (Fri, 23 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Changed some unsigned long to unsigned int.
-------------------------------------------------------------------------
-r13291 | vlefevre | 2018-11-23 09:22:30 +0000 (Fri, 23 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Some cleanup in parsed_string_to_mpfr. Avoid a potential
-integer overflow in very high precision if mp_size_t < mpfr_prec_t.
-------------------------------------------------------------------------
-r13290 | vlefevre | 2018-11-22 22:20:51 +0000 (Thu, 22 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Updated FIXME, due to new tests added to
-tests/tstrtofr.c in r13278-13279,13286-13288.
-------------------------------------------------------------------------
-r13289 | vlefevre | 2018-11-22 21:58:40 +0000 (Thu, 22 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/nbits_ulong.c
-
-[src/nbits_ulong.c] Added missing initialization from r13269
-when MPFR_LONG_WITHIN_LIMB is not defined.
-------------------------------------------------------------------------
-r13288 | vlefevre | 2018-11-22 21:52:00 +0000 (Thu, 22 Nov 2018) | 5 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Resolved the FIXME and fixed the issue related to
-the old mpfr_get_str description (see r13283).
-Note: with the later fix r13289, a test still fails with 8-bit limbs
-(incorrect exponent, possibly corresponding to the FIXME just before
-"exp = GMP_NUMB_BITS - count;" in src/strtofr.c).
-------------------------------------------------------------------------
-r13287 | vlefevre | 2018-11-22 16:29:01 +0000 (Thu, 22 Nov 2018) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added comments, including a FIXME.
-------------------------------------------------------------------------
-r13286 | vlefevre | 2018-11-22 16:14:59 +0000 (Thu, 22 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Resolved the FIXME for the random tests, and
-increased the number of tests to trigger a failure.
-------------------------------------------------------------------------
-r13283 | vlefevre | 2018-11-22 15:29:37 +0000 (Thu, 22 Nov 2018) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_str.c
-
-MPFR manual: corrected/completed the mpfr_get_str description in order
-to follow the historical behavior and GMP's mpf_get_str function.
-(Discussion in the Trier meeting.)
-------------------------------------------------------------------------
-r13282 | vlefevre | 2018-11-22 15:09:31 +0000 (Thu, 22 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Code style.
-------------------------------------------------------------------------
-r13281 | vlefevre | 2018-11-22 09:27:09 +0000 (Thu, 22 Nov 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about issues with mixing signed/unsigned types.
-------------------------------------------------------------------------
-r13280 | vlefevre | 2018-11-22 09:01:58 +0000 (Thu, 22 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about the disallowed conversions between
-function pointers and other kinds of pointers (including to void *).
-------------------------------------------------------------------------
-r13279 | vlefevre | 2018-11-20 16:51:12 +0000 (Tue, 20 Nov 2018) | 4 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added a FIXME, which explains the current failure.
-But there is currently an inconsistency in mpfr_get_str, whose digits
-are not specified:
- https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00021.html
-------------------------------------------------------------------------
-r13278 | vlefevre | 2018-11-20 16:17:15 +0000 (Tue, 20 Nov 2018) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added random tests, which currently fail.
-------------------------------------------------------------------------
-r13276 | vlefevre | 2018-11-19 15:23:59 +0000 (Mon, 19 Nov 2018) | 3 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] mpfr_can_round_raw: improved the code structure about
-rnd1 and rnd2, making clear that they are not changed several times;
-avoid the use of cc with 2 different meanings in the same code path.
-------------------------------------------------------------------------
-r13275 | zimmerma | 2018-11-17 09:47:41 +0000 (Sat, 17 Nov 2018) | 3 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] fixed bug in mpfr_can_round when rnd2=RNDF, rnd1 is a
- directed rounding, and the input is exact
-
-------------------------------------------------------------------------
-r13274 | vlefevre | 2018-11-16 15:06:27 +0000 (Fri, 16 Nov 2018) | 5 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment.
-In short, the current tstrtofr.c tests seem to always be hard-to-round
-cases. The consequence is that some parts of the code are run, but not
-completely tested, because for these cases, some intermediate results,
-potentially incorrect, are thrown out due to the next Ziv iteration!
-------------------------------------------------------------------------
-r13273 | vlefevre | 2018-11-16 14:48:33 +0000 (Fri, 16 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: minor changes.
-------------------------------------------------------------------------
-r13272 | vlefevre | 2018-11-16 14:31:59 +0000 (Fri, 16 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: added log messages.
-------------------------------------------------------------------------
-r13271 | vlefevre | 2018-11-16 13:23:29 +0000 (Fri, 16 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Minor change to use MPFR_ASSERTD.
-------------------------------------------------------------------------
-r13270 | vlefevre | 2018-11-16 13:15:57 +0000 (Fri, 16 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/mpfr-impl.h
-
-[src/{int_ceil_log2.c,mpfr-impl.h}] Consistent postcondition for
-MPFR_INT_CEIL_LOG2 and __gmpfr_int_ceil_log2 (result >= 0).
-------------------------------------------------------------------------
-r13269 | vlefevre | 2018-11-16 13:13:52 +0000 (Fri, 16 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/nbits_ulong.c
-
-[src/nbits_ulong.c] Code refactoring. Added {pre,post}condition.
-------------------------------------------------------------------------
-r13268 | vlefevre | 2018-11-16 12:50:13 +0000 (Fri, 16 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: removed an incorrect cast.
-------------------------------------------------------------------------
-r13267 | vlefevre | 2018-11-16 12:17:36 +0000 (Fri, 16 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (again,
-another issue).
-------------------------------------------------------------------------
-r13266 | vlefevre | 2018-11-16 12:09:24 +0000 (Fri, 16 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (there
-is another issue to solve first).
-------------------------------------------------------------------------
-r13265 | vlefevre | 2018-11-16 11:48:20 +0000 (Fri, 16 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/amd/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/mips/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/mparam.h
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r13264 | vlefevre | 2018-11-16 10:26:36 +0000 (Fri, 16 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: updated a comment (useless code
-in this function or incomplete tests).
-------------------------------------------------------------------------
-r13263 | vlefevre | 2018-11-16 10:10:30 +0000 (Fri, 16 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/rndna.c
-
-Avoid GCC's -Wcast-align warnings with 8-bit limbs (a correct alignment
-is ensured by the code itself, and GCC cannot check just from a cast).
-------------------------------------------------------------------------
-r13262 | vlefevre | 2018-11-16 08:24:25 +0000 (Fri, 16 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: updated comments.
-------------------------------------------------------------------------
-r13261 | vlefevre | 2018-11-15 17:17:13 +0000 (Thu, 15 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: more code review, with minor
-changes and corrections + a FIXME.
-------------------------------------------------------------------------
-r13260 | vlefevre | 2018-11-15 11:35:55 +0000 (Thu, 15 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Typo.
-------------------------------------------------------------------------
-r13259 | vlefevre | 2018-11-15 10:22:47 +0000 (Thu, 15 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Fixed an allocation bug for GMP_NUMB_BITS = 8.
-------------------------------------------------------------------------
-r13258 | vlefevre | 2018-11-15 10:13:22 +0000 (Thu, 15 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Updated a comment: the issue with mpn_set_str found
-in 2013-12 (see r8722) was actually an error in the GMP manual.
-------------------------------------------------------------------------
-r13257 | vlefevre | 2018-11-15 10:02:17 +0000 (Thu, 15 Nov 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] parsed_string_to_mpfr: improved an assertion; comments.
-------------------------------------------------------------------------
-r13256 | zimmerma | 2018-11-15 09:43:43 +0000 (Thu, 15 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] fixed some TODOs, which exposes a bug
-
-------------------------------------------------------------------------
-r13255 | vlefevre | 2018-11-15 09:33:02 +0000 (Thu, 15 Nov 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Near the beginning of parsed_string_to_mpfr: corrected
-comments; added an assertion; minor change of a test.
-------------------------------------------------------------------------
-r13253 | zimmerma | 2018-11-10 08:25:31 +0000 (Sat, 10 Nov 2018) | 4 lines
-Changed paths:
- M /trunk/src/mulders.c
- M /trunk/tune/tuneup.c
-
-[src/mulders.c] fixed issue with --enable-gmp-internals
-[tune/tuneup.c] likewise
-(see https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00015.html)
-
-------------------------------------------------------------------------
-r13251 | zimmerma | 2018-10-18 09:03:52 +0000 (Thu, 18 Oct 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] applied patch from https://sympa.inria.fr/sympa/arc/mpfr/2018-10/msg00010.html
-
-------------------------------------------------------------------------
-r13244 | vlefevre | 2018-10-07 10:36:45 +0000 (Sun, 07 Oct 2018) | 1 line
-Changed paths:
- M /trunk/codespell.ignore
-
-[codespell.ignore] Also ignore "ue" (codespell 1.14).
-------------------------------------------------------------------------
-r13237 | vlefevre | 2018-10-01 15:36:47 +0000 (Mon, 01 Oct 2018) | 6 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/Makefile.am
-
-[configure.ac,src/Makefile.am] About the --with-mini-gmp support, since
-there are some advantages with the new code, one will probably not go
-back. Thus removed the references to the Automake 1.15 bug and to the
-old code. Also removed the mini_gmp_path=. workaround needed with the
-old code (even with Automake 1.16), which had been added in r13217.
-Also slightly improved the setup for mini-gmp.
-------------------------------------------------------------------------
-r13236 | vlefevre | 2018-10-01 13:54:04 +0000 (Mon, 01 Oct 2018) | 1 line
-Changed paths:
- M /trunk/doc/with-mini-gmp.patch
-
-[doc/with-mini-gmp.patch] Updated comment.
-------------------------------------------------------------------------
-r13235 | vlefevre | 2018-10-01 13:51:10 +0000 (Mon, 01 Oct 2018) | 8 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/Makefile.am
-
-[configure.ac,src/Makefile.am] Avoid a "make" failure due to a bug in
-Automake 1.15 automatic dependency tracking: instead of using mini-gmp
-directly in an external directory with a $(mini_gmp_path) variable in
-src/Makefile.am, make the configure script add symbolic links to the
-mini-gmp sources in the build directory, and use these symbolic links
-for the MPFR build (as if they were plain files).
-Tested under various conditions: static and shared; separate source and
-build directories; changing the mini-gmp version without "make clean".
-------------------------------------------------------------------------
-r13233 | vlefevre | 2018-09-28 08:17:28 +0000 (Fri, 28 Sep 2018) | 6 lines
-Changed paths:
- A /trunk/doc/with-mini-gmp.patch
-
-Added doc/with-mini-gmp.patch file (for the developers):
-Modifications to configure.ac and src/Makefile.am that had been done
-for --with-mini-gmp support. This is kept for the reference, as changes
-may be needed as a workaround to a bug fixed in GNU Automake 1.16, and
-other future changes might break things (to remember what was working
-at this time).
-------------------------------------------------------------------------
-r13230 | vlefevre | 2018-09-20 11:12:22 +0000 (Thu, 20 Sep 2018) | 1 line
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] Update.
-------------------------------------------------------------------------
-r13229 | vlefevre | 2018-09-19 12:55:56 +0000 (Wed, 19 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.ac
-
-[Makefile.am] Distribute the doc/mini-gmp file.
-[configure.ac] For --with-mini-gmp, say:
- "(experimental, please read doc/mini-gmp file)"
-------------------------------------------------------------------------
-r13228 | vlefevre | 2018-09-19 12:47:03 +0000 (Wed, 19 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Added nodist_ for mini-gmp.{c,h} so that these files
-(not part of MPFR) are not put in the tarballs by "make dist".
-------------------------------------------------------------------------
-r13227 | vlefevre | 2018-09-19 12:17:20 +0000 (Wed, 19 Sep 2018) | 4 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/doc/mini-gmp
-
-Removed --enable-mini-gmp configure option.
- * NEWS: say that it is replaced by --with-mini-gmp.
- * configure.ac: --enable-mini-gmp removed.
- * doc/mini-gmp: update.
-------------------------------------------------------------------------
-r13226 | vlefevre | 2018-09-19 11:50:17 +0000 (Wed, 19 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Missing #else (from r13156).
-------------------------------------------------------------------------
-r13225 | vlefevre | 2018-09-19 11:36:03 +0000 (Wed, 19 Sep 2018) | 5 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] When using --with-mini-gmp, define GMP_NUMB_BITS if this
-macro is not already defined in mini-gmp.h (this is done a bit like
-with --enable-mini-gmp, but the handling in this option is buggy as
-GMP_NUMB_BITS is defined with AC_DEFINE_UNQUOTED unconditionally,
-though is most cases the contents of the macros are the same).
-------------------------------------------------------------------------
-r13224 | vlefevre | 2018-09-19 10:59:02 +0000 (Wed, 19 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Do not split "Setup GMP detection". When building
-MPFR against mini-gmp, do not run any "Setup GMP detection" test
-(in particular, no longer check gmp.h, as it is useless).
-------------------------------------------------------------------------
-r13223 | vlefevre | 2018-09-19 10:44:08 +0000 (Wed, 19 Sep 2018) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.h
-
-[src/mpfr-mini-gmp.h] Removed incorrect GMP_NUMB_BITS macro definition,
-and this macro needs to be usable in preprocessor tests, and sizeof and
-types are not available at this level. GMP_NUMB_BITS must be defined by
-mini-gmp.h, by the configure script, or by the user.
-------------------------------------------------------------------------
-r13222 | vlefevre | 2018-09-19 00:21:16 +0000 (Wed, 19 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Update due to r13221.
-------------------------------------------------------------------------
-r13221 | vlefevre | 2018-09-18 13:59:54 +0000 (Tue, 18 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Run tversion at the beginning of the tests,
-then show its output and svnversion's output too.
-------------------------------------------------------------------------
-r13220 | vlefevre | 2018-09-18 08:10:40 +0000 (Tue, 18 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.h
-
-[src/mpfr-mini-gmp.h] Added a FIXME (failure with a mini-gmp that
-does not define GMP_NUMB_BITS, such as the official one).
-------------------------------------------------------------------------
-r13219 | vlefevre | 2018-09-18 01:47:06 +0000 (Tue, 18 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/random2.c
-
-[tests/random2.c] Avoid undefined behavior on shift count.
-------------------------------------------------------------------------
-r13218 | vlefevre | 2018-09-18 01:45:39 +0000 (Tue, 18 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed MPFR_LIMB_MASK() macro.
-------------------------------------------------------------------------
-r13217 | vlefevre | 2018-09-18 01:17:52 +0000 (Tue, 18 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Avoid a configure failure with automatic dependency
-tracking when --with-mini-gmp is not used (bug in Automake?).
-------------------------------------------------------------------------
-r13216 | vlefevre | 2018-09-18 00:00:24 +0000 (Tue, 18 Sep 2018) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] + Mini-gmp support via the --with-mini-gmp configure option.
-------------------------------------------------------------------------
-r13214 | vlefevre | 2018-09-17 23:55:55 +0000 (Mon, 17 Sep 2018) | 2 lines
-Changed paths:
- M /trunk
- M /trunk/configure.ac
- M /trunk/doc/mini-gmp
- M /trunk/src/Makefile.am
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
-
-Merged the with-mini-gmp branch into the trunk: new --with-mini-gmp
-configure option to build MPFR against mini-gmp (instead of GMP).
-------------------------------------------------------------------------
-r13211 | vlefevre | 2018-09-17 15:01:51 +0000 (Mon, 17 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/mul_ui.c
-
-[src/mul_ui.c] Better code organization (with the MPFR_RET at the right
-place). Corrected indentation after #else.
-------------------------------------------------------------------------
-r13210 | zimmerma | 2018-09-17 14:40:01 +0000 (Mon, 17 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mul_ui.c
-
-[src/mpfr-mini-gmp.c] added #if 0 ... #endif for mpz_dump (unused)
-[src/mul_ui.c] fixed compiler warning for limb < long
-
-------------------------------------------------------------------------
-r13207 | vlefevre | 2018-09-17 10:08:51 +0000 (Mon, 17 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/random2.c
-
-[tests/random2.c] Fix for 8-bit limb.
-------------------------------------------------------------------------
-r13205 | vlefevre | 2018-09-17 09:17:18 +0000 (Mon, 17 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Define only one buffer in test_version().
-------------------------------------------------------------------------
-r13204 | vlefevre | 2018-09-17 09:14:21 +0000 (Mon, 17 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/random2.c
-
-[tests/random2.c] Improved code by using MPFR_LIMB_* macros.
-------------------------------------------------------------------------
-r13203 | vlefevre | 2018-09-17 09:04:58 +0000 (Mon, 17 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved MPFR_LIMB_* macros for mp_limb_t < int
-(e.g. 16-bit or 8-bit limb), as in such a case, integer promotion
-transforms mp_limb_t to int.
-------------------------------------------------------------------------
-r13202 | zimmerma | 2018-09-17 07:56:07 +0000 (Mon, 17 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] fixed compiler warning
-
-------------------------------------------------------------------------
-r13200 | vlefevre | 2018-09-14 21:46:06 +0000 (Fri, 14 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_si.c
-
-[src/get_si.c] Code refactoring/simplification like what has been
-done for get_ui.c in r13185, fixing also an integer overflow when
-MPFR_LONG_WITHIN_LIMB is not defined.
-------------------------------------------------------------------------
-r13199 | vlefevre | 2018-09-14 15:28:12 +0000 (Fri, 14 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/random2.c
-
-[tests/random2.c] Fix for 16-bit limb.
-------------------------------------------------------------------------
-r13198 | vlefevre | 2018-09-14 15:19:38 +0000 (Fri, 14 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Fix for 16-bit limb.
-------------------------------------------------------------------------
-r13197 | vlefevre | 2018-09-14 15:04:09 +0000 (Fri, 14 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Fixed bug in add_ssaaaa / sub_ddmmss from r13081.
-------------------------------------------------------------------------
-r13194 | vlefevre | 2018-09-14 13:03:24 +0000 (Fri, 14 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Moved a comment in a better place.
-------------------------------------------------------------------------
-r13191 | vlefevre | 2018-09-14 11:19:31 +0000 (Fri, 14 Sep 2018) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Typo.
-------------------------------------------------------------------------
-r13189 | vlefevre | 2018-09-14 11:13:50 +0000 (Fri, 14 Sep 2018) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated comments about configure options for mini-gmp.
-------------------------------------------------------------------------
-r13188 | zimmerma | 2018-09-13 16:27:28 +0000 (Thu, 13 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] reduce REDUCE_EMAX with mini-gmp
-
-------------------------------------------------------------------------
-r13186 | vlefevre | 2018-09-13 13:03:53 +0000 (Thu, 13 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/get_ui.c
-
-[src/get_ui.c] Added assertions.
-------------------------------------------------------------------------
-r13185 | vlefevre | 2018-09-13 13:01:05 +0000 (Thu, 13 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/get_ui.c
-
-[src/get_ui.c] Code refactoring/simplification.
-------------------------------------------------------------------------
-r13184 | vlefevre | 2018-09-13 11:04:50 +0000 (Thu, 13 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/sin_cos.c
-
-[src/sin_cos.c] Added assertions protecting against buffer overflow.
-------------------------------------------------------------------------
-r13183 | zimmerma | 2018-09-13 08:46:01 +0000 (Thu, 13 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/sin_cos.c
-
-[src/sin_cos.c] fix for small limb size
-
-------------------------------------------------------------------------
-r13182 | vlefevre | 2018-09-12 14:32:42 +0000 (Wed, 12 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.h
-
-[src/mpfr-mini-gmp.h] Fix: Since gmp_version is not defined in mini-gmp,
-we must not declare it (otherwise one would get a link failure instead
-of a compilation failure if gmp_version is used by mistake).
-------------------------------------------------------------------------
-r13181 | vlefevre | 2018-09-12 14:28:03 +0000 (Wed, 12 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Improved change in r13179 for mini-gmp.
-------------------------------------------------------------------------
-r13180 | vlefevre | 2018-09-12 13:39:57 +0000 (Wed, 12 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Do not check for CC and CFLAGS in gmp.h if mini-gmp is
-used, i.e. if --enable-mini-gmp (current option) or --with-mini-gmp
-(future option) is given.
-------------------------------------------------------------------------
-r13179 | zimmerma | 2018-09-12 13:32:33 +0000 (Wed, 12 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] libgmp is not defined with mini-gmp (issue found with -O0)
-
-------------------------------------------------------------------------
-r13178 | vlefevre | 2018-09-12 12:48:50 +0000 (Wed, 12 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.h
-
-[src/mpfr-mini-gmp.h] Removed #include lines as mpfr-mini-gmp.h is
-included only in mpfr-impl.h, which already does these #include's.
-------------------------------------------------------------------------
-r13177 | vlefevre | 2018-09-12 12:21:53 +0000 (Wed, 12 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Check that MPFR_HAVE_GMP_IMPL and MPFR_USE_MINI_GMP
-are not both defined.
-------------------------------------------------------------------------
-r13176 | vlefevre | 2018-09-12 12:19:21 +0000 (Wed, 12 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Removed #include "mpfr-mini-gmp.h" as this include
-is already done in mpfr-impl.h (in both cases, when MPFR_USE_MINI_GMP is
-defined).
-------------------------------------------------------------------------
-r13175 | vlefevre | 2018-09-12 12:11:04 +0000 (Wed, 12 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Replaced "if (GMP_NUMB_BITS >= 16)" by a preprocessor
-test "#if GMP_NUMB_BITS >= 16" like earlier. Use static assertions.
-------------------------------------------------------------------------
-r13174 | vlefevre | 2018-09-12 10:43:22 +0000 (Wed, 12 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Fixed types for 8-bit limb. Removed useless casts.
-------------------------------------------------------------------------
-r13173 | vlefevre | 2018-09-12 10:26:45 +0000 (Wed, 12 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Fixed a type from r13172 (int was obviously too short
-and was yielding a segmentation fault).
-------------------------------------------------------------------------
-r13172 | zimmerma | 2018-09-11 20:59:57 +0000 (Tue, 11 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] fixed for 8-bit limb
-
-------------------------------------------------------------------------
-r13171 | zimmerma | 2018-09-11 12:01:25 +0000 (Tue, 11 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] fixed test for small value of GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r13170 | zimmerma | 2018-09-11 10:45:39 +0000 (Tue, 11 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] fixed r13168: in case exact=0, mpn_rshift was not done
-
-------------------------------------------------------------------------
-r13169 | zimmerma | 2018-09-11 09:37:07 +0000 (Tue, 11 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] modified test_sqrt1n() so that it passes with 8-bit limbs
-
-------------------------------------------------------------------------
-r13168 | vlefevre | 2018-09-11 09:00:21 +0000 (Tue, 11 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Replaced "exact &=" by "exact = exact &&" as usual.
-------------------------------------------------------------------------
-r13167 | zimmerma | 2018-09-11 08:49:53 +0000 (Tue, 11 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] fix for 8-bit limb
-
-------------------------------------------------------------------------
-r13166 | zimmerma | 2018-09-11 07:39:16 +0000 (Tue, 11 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] added comment
-
-------------------------------------------------------------------------
-r13165 | vlefevre | 2018-09-10 23:50:38 +0000 (Mon, 10 Sep 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r13164 | zimmerma | 2018-09-10 19:17:57 +0000 (Mon, 10 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/strtofr.c
- M /trunk/tests/tget_str.c
-
-[src/strtofr.c] fix from r13163 was incorrect
-[tests/tget_str.c] added a testcase, and fixed an error message
-
-------------------------------------------------------------------------
-r13163 | zimmerma | 2018-09-08 17:00:40 +0000 (Sat, 08 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] resolved a FIXME
-
-------------------------------------------------------------------------
-r13162 | zimmerma | 2018-09-08 14:02:13 +0000 (Sat, 08 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] fixed corner_cases() test
-
-------------------------------------------------------------------------
-r13161 | zimmerma | 2018-09-08 11:39:54 +0000 (Sat, 08 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/int_ceil_log2.c
-
-[src/int_ceil_log2.c] fixed __gmpfr_int_ceil_log2 for limb < long
-
-------------------------------------------------------------------------
-r13160 | zimmerma | 2018-09-07 20:26:15 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/random2.c
-
-[tests/random2.c] fixed mpfr_random2 for GMP_NUMB_BITS <> 64
-
-------------------------------------------------------------------------
-r13159 | zimmerma | 2018-09-07 19:16:34 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] fixed another compiler warning
-
-------------------------------------------------------------------------
-r13158 | zimmerma | 2018-09-07 19:14:29 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_ui.c
-
-[src/get_ui.c] fixed compiler warning
-
-------------------------------------------------------------------------
-r13157 | zimmerma | 2018-09-07 17:12:46 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
- M /trunk/src/set_d.c
-
-some fixes for 8-bit limb support
-
-------------------------------------------------------------------------
-r13156 | zimmerma | 2018-09-07 15:17:37 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/constant.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_str.c
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_ld.c
-
-adapt to 8-bit limbs (work in progress)
-
-------------------------------------------------------------------------
-r13155 | zimmerma | 2018-09-07 11:59:57 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tl2b.c
-
-[tests/tl2b.c] extend to 8-bit limb
-
-------------------------------------------------------------------------
-r13154 | zimmerma | 2018-09-07 11:49:13 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] fix for 8-bit limb
-
-------------------------------------------------------------------------
-r13153 | vlefevre | 2018-09-07 09:23:57 +0000 (Fri, 07 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added @tie{} (normal non-breakable space) at various
-places to avoid unwanted line breaking.
-------------------------------------------------------------------------
-r13152 | vlefevre | 2018-09-07 08:45:54 +0000 (Fri, 07 Sep 2018) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] mpfr_rootn_ui, mpfr_root: changed k to n in order to
-match IEEE 754-2008. Also improved the description of mpfr_rootn_ui,
-mentioning the P754/D2.41 draft of the next IEEE 754 standard because
-IEEE 754-2008 is incomplete.
-------------------------------------------------------------------------
-r13151 | vlefevre | 2018-09-06 10:44:48 +0000 (Thu, 06 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] !mpfr_equal_p is better than mpfr_cmp.
-------------------------------------------------------------------------
-r13150 | zimmerma | 2018-09-06 07:56:44 +0000 (Thu, 06 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/rint.c
-
-[src/rint.c] fixed bug with 16-bit limb
- (found by trint with GMP_CHECK_RANDOMIZE=1536206745598891)
-
-------------------------------------------------------------------------
-r13149 | zimmerma | 2018-09-06 07:33:45 +0000 (Thu, 06 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] fixed test_20151023()
-
-------------------------------------------------------------------------
-r13148 | vlefevre | 2018-09-06 07:15:25 +0000 (Thu, 06 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/get_d64.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/ui_div.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r13147 | vlefevre | 2018-09-06 06:46:40 +0000 (Thu, 06 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Removed incorrect and useless assertions (manl
-has exactly 32 bits, thus a shift count of 32 bits is invalid,
-but also useless).
-------------------------------------------------------------------------
-r13146 | zimmerma | 2018-09-05 16:17:58 +0000 (Wed, 05 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] fixed (hopefully definitively) for 16-bit limb
-
-------------------------------------------------------------------------
-r13145 | vlefevre | 2018-09-05 15:53:50 +0000 (Wed, 05 Sep 2018) | 4 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] 2 fixes concerning rp[]:
- * If GMP_NUMB_BITS >= 64, there is a shift of 32 bits, thus one
- uses mp_limb_t (> 32 bits) instead of unsigned int.
- * Otherwise use unsigned long as an unsigned int might be on 16 bits.
-------------------------------------------------------------------------
-r13144 | vlefevre | 2018-09-05 15:26:46 +0000 (Wed, 05 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Indentation.
-------------------------------------------------------------------------
-r13143 | vlefevre | 2018-09-05 15:23:00 +0000 (Wed, 05 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/exp_2.c
- A /trunk/src/nbits_ulong.c
-
-[src] Moved mpfr_nbits_ulong to its own file "nbits_ulong.c".
-------------------------------------------------------------------------
-r13142 | vlefevre | 2018-09-05 15:17:56 +0000 (Wed, 05 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/pow_si.c
-
-[src/pow_si.c] MPFR_NEED_LONGLONG_H is still needed.
-------------------------------------------------------------------------
-r13141 | vlefevre | 2018-09-05 14:56:48 +0000 (Wed, 05 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Removed xxx suffix added in r13139 (by mistake?).
-------------------------------------------------------------------------
-r13140 | zimmerma | 2018-09-05 14:30:57 +0000 (Wed, 05 Sep 2018) | 4 lines
-Changed paths:
- M /trunk/src/exp_2.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/pow_si.c
-
-[src/exp_2.c] export (internally) nbits_ulong (renamed to mpfr_nbits_ulong)
-[src/mpfr-impl.h] added prototype for mpfr_nbits_ulong
-[src/pow_si.c] fixed for 16-bit limb
-
-------------------------------------------------------------------------
-r13139 | zimmerma | 2018-09-05 13:18:11 +0000 (Wed, 05 Sep 2018) | 4 lines
-Changed paths:
- M /trunk/src/get_d64.c
- M /trunk/src/set_d64.c
- M /trunk/tests/tget_set_d64.c
-
-[src/get_d64.c] fixed for 16-bit limb
-[src/set_d64.c] likewise
-[tests/tget_set_d64.c] improved error message
-
-------------------------------------------------------------------------
-r13137 | vlefevre | 2018-09-05 11:52:06 +0000 (Wed, 05 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] In the case GMP_NUMB_BITS == 16, cast to unsigned long
-instead of unsigned int since shift counts can be up to 16 and an int
-might be on 16 bits only.
-------------------------------------------------------------------------
-r13136 | zimmerma | 2018-09-05 10:36:30 +0000 (Wed, 05 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] when denorm=16, a 32-bit shift on an unsigned int is undefined
-
-------------------------------------------------------------------------
-r13135 | zimmerma | 2018-09-05 10:20:36 +0000 (Wed, 05 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/exp_2.c
- M /trunk/tests/texp.c
-
-[src/exp_2.c] fix for 16-bit limb
-[tests/texp.c] improve error message
-
-------------------------------------------------------------------------
-r13134 | zimmerma | 2018-09-05 08:25:33 +0000 (Wed, 05 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/tests/terandom_chisq.c
-
-[src/mpfr-mini-gmp.c] fixed gmp_urandomb_ui for 16-bit limb, added mpz_dump
-[tests/terandom_chisq.c] more details in case of error
-
-------------------------------------------------------------------------
-r13133 | zimmerma | 2018-09-05 07:11:49 +0000 (Wed, 05 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] fixed typo
-
-------------------------------------------------------------------------
-r13132 | vlefevre | 2018-09-04 17:29:15 +0000 (Tue, 04 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] Avoid a GCC bug.
-------------------------------------------------------------------------
-r13131 | vlefevre | 2018-09-04 16:41:18 +0000 (Tue, 04 Sep 2018) | 1 line
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] Attempt to fix randexp, but GCC complains.
-------------------------------------------------------------------------
-r13130 | vlefevre | 2018-09-04 16:06:38 +0000 (Tue, 04 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/mpn_exp.c
-
-[src/mpn_exp.c] Avoid useless "while" in nbits_mpfr_exp_t.
-------------------------------------------------------------------------
-r13129 | zimmerma | 2018-09-04 15:27:36 +0000 (Tue, 04 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] give more digits in case of error
-[tests/tget_ld_2exp.c] added one test (currently fails for 16-bit limb)
-
-------------------------------------------------------------------------
-r13128 | zimmerma | 2018-09-04 15:20:19 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] partial fix for 16-bit limb (typo + nice bug!)
-
-------------------------------------------------------------------------
-r13127 | zimmerma | 2018-09-04 14:50:57 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] fixed infinite loop in test code for limb < mpfr_exp_t
-
-------------------------------------------------------------------------
-r13126 | zimmerma | 2018-09-04 14:33:27 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpn_exp.c
-
-[src/mpn_exp.c] adapt to bitsize(mpfr_exp_t) > GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r13125 | vlefevre | 2018-09-04 14:19:31 +0000 (Tue, 04 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Code simplification.
-------------------------------------------------------------------------
-r13124 | vlefevre | 2018-09-04 14:14:39 +0000 (Tue, 04 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] MPFR_LIMB is actually useless now...
-------------------------------------------------------------------------
-r13123 | vlefevre | 2018-09-04 14:11:39 +0000 (Tue, 04 Sep 2018) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Code style and potential correction for 16-bit limb.
-------------------------------------------------------------------------
-r13122 | vlefevre | 2018-09-04 14:06:25 +0000 (Tue, 04 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/sqrt_ui.c
-
-[src/sqrt_ui.c] Moved MPFR_SAVE_EXPO_FREE after mpfr_sqrt because
-the uu argument may be out of range and there is no guarantee that
-mpfr_sqrt can handle that. Improved consistency; code refactoring.
-------------------------------------------------------------------------
-r13121 | zimmerma | 2018-09-04 13:33:35 +0000 (Tue, 04 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/round_prec.c
- M /trunk/tests/tcan_round.c
-
-[src/round_prec.c] fixed for 16-bit limb
-[tests/tcan_round.c] improve error message
-
-------------------------------------------------------------------------
-r13120 | zimmerma | 2018-09-04 13:33:02 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/sqrt_ui.c
-
-[src/sqrt_ui.c] fixed for 16-bit limb
-
-------------------------------------------------------------------------
-r13119 | vlefevre | 2018-09-04 10:44:33 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_si.c
-
-[src/get_si.c] Make sure that a left shift is done on an unsigned type
-(as a left shift on a 0 of signed type was not specified by C90).
-------------------------------------------------------------------------
-r13118 | zimmerma | 2018-09-04 09:21:29 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] fix for 16-bit limbs, and added comments
-
-------------------------------------------------------------------------
-r13117 | zimmerma | 2018-09-04 09:13:50 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/rint.c
-
-[src/rint.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13116 | zimmerma | 2018-09-04 09:12:07 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] more detailed error message
-
-------------------------------------------------------------------------
-r13115 | zimmerma | 2018-09-04 09:10:34 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_si.c
-
-[src/get_si.c] forgot cast when long > limb
-
-------------------------------------------------------------------------
-r13114 | zimmerma | 2018-09-04 09:10:11 +0000 (Tue, 04 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_ui.c
-
-[src/get_ui.c] forgot cast when long > limb
-
-------------------------------------------------------------------------
-r13113 | zimmerma | 2018-09-03 19:35:31 +0000 (Mon, 03 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/odd_p.c
-
-[src/odd_p.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13112 | zimmerma | 2018-09-03 19:19:20 +0000 (Mon, 03 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] exit at the first error
-
-------------------------------------------------------------------------
-r13111 | zimmerma | 2018-09-03 15:52:18 +0000 (Mon, 03 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_si.c
- M /trunk/src/get_ui.c
-
-[src/get_si.c] adapt to 16-bit limbs
-[src/get_ui.c] likewise
-
-------------------------------------------------------------------------
-r13110 | zimmerma | 2018-09-03 14:05:11 +0000 (Mon, 03 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
-
-[src/cmp_si.c] adapt for reduced exponent range for 16-bit limbs
-[src/cmp_ui.c] likewise
-
-------------------------------------------------------------------------
-r13109 | vlefevre | 2018-09-03 13:32:24 +0000 (Mon, 03 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/mpfr-test.h
-
-[tests/mpfr-test.h] If MPFR_TESTS_ABORT is defined, replace exit(1) by
- abort(), thus with a core dump.
-[doc/README.dev] Document MPFR_TESTS_ABORT.
-------------------------------------------------------------------------
-r13108 | zimmerma | 2018-09-03 13:17:45 +0000 (Mon, 03 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/mul_ui.c
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] revert 13107 (abort might lose some data in open files)
-[src/mul_ui.c] fixed for 16-bit limb and reduced exponent range
-
-------------------------------------------------------------------------
-r13107 | zimmerma | 2018-09-03 12:38:10 +0000 (Mon, 03 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] replace exit(1) by abort() to allow debugging with gdb
-
-------------------------------------------------------------------------
-r13106 | zimmerma | 2018-09-03 12:09:07 +0000 (Mon, 03 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/isinteger.c
-
-[src/isinteger.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13105 | zimmerma | 2018-09-03 08:35:17 +0000 (Mon, 03 Sep 2018) | 3 lines
-Changed paths:
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
-
-[src/cmp_si.c] fixed error for 16-bit limb
-[src/cmp_ui.c] adapted to 16-bit limb
-
-------------------------------------------------------------------------
-r13104 | zimmerma | 2018-09-01 08:15:20 +0000 (Sat, 01 Sep 2018) | 2 lines
-Changed paths:
- M /trunk/src/cmp_si.c
-
-[src/cmp_si.c] adapt for 16-bit limb
-
-------------------------------------------------------------------------
-r13103 | zimmerma | 2018-08-31 19:22:05 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mul_ui.c
-
-[src/mul_ui.c] adapt for 16-bit limb
-
-------------------------------------------------------------------------
-r13102 | vlefevre | 2018-08-31 15:43:48 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Fixed potential undefined behavior (when mp_limb_t
-is defined as an unsigned short) with MPFR_LIMB_LSHIFT.
-------------------------------------------------------------------------
-r13101 | vlefevre | 2018-08-31 15:40:23 +0000 (Fri, 31 Aug 2018) | 4 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Define MPFR_LIMB_LSHIFT(x,c) macro to do a left shift,
-making sure that the shifted argument is unsigned (needed due to the
-integer promotion rules when mp_limb_t is defined as an unsigned short).
-[src/add1.c] Fixed potential undefined behavior with MPFR_LIMB_LSHIFT.
-------------------------------------------------------------------------
-r13100 | vlefevre | 2018-08-31 15:12:20 +0000 (Fri, 31 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Corrected a comment and added a warning.
-------------------------------------------------------------------------
-r13099 | zimmerma | 2018-08-31 14:57:31 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] fix MPFR_INT_CEIL_LOG2 for 16-bit limb
-
-------------------------------------------------------------------------
-r13098 | zimmerma | 2018-08-31 14:47:05 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_si_2exp.c
-
-[src/set_si_2exp.c] support 16-bit limbs
-
-------------------------------------------------------------------------
-r13097 | vlefevre | 2018-08-31 14:35:07 +0000 (Fri, 31 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/set_ui_2exp.c
-
-[src/set_ui_2exp.c] Code formatting. Removed a FIXME (done in r13078).
-------------------------------------------------------------------------
-r13096 | zimmerma | 2018-08-31 14:32:09 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] missing cast
-
-------------------------------------------------------------------------
-r13095 | zimmerma | 2018-08-31 14:13:52 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tmul.c
-
-removed TEST_FLAGS stuff
-
-------------------------------------------------------------------------
-r13094 | vlefevre | 2018-08-31 12:14:37 +0000 (Fri, 31 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] More correction about the MPFR_TESTS_TIMEOUT macro.
-------------------------------------------------------------------------
-r13093 | vlefevre | 2018-08-31 12:09:03 +0000 (Fri, 31 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Clarification about MPFR_TESTS_TIMEOUT.
-------------------------------------------------------------------------
-r13092 | vlefevre | 2018-08-31 11:57:08 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Reverted r13090: this was already mentioned at the
-right place (do not mix up macros and environment variables).
-------------------------------------------------------------------------
-r13091 | zimmerma | 2018-08-31 11:54:51 +0000 (Fri, 31 Aug 2018) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mul.c
- M /trunk/src/ui_div.c
-
-[src/mpfr-gmp.h] added missing udiv_qrnnd for 16-bit limb
-[src/mul.c] fixed for 16-bit limb
-[src/ui_div.c] likewise
-
-------------------------------------------------------------------------
-r13090 | zimmerma | 2018-08-31 11:37:01 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[README.dev] mention that MPFR_TESTS_TIMEOUT only works with --enable-tests-timeout
-
-------------------------------------------------------------------------
-r13089 | vlefevre | 2018-08-31 11:06:40 +0000 (Fri, 31 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fix for MS Windows.
-------------------------------------------------------------------------
-r13088 | vlefevre | 2018-08-31 10:43:50 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Make sure that MPFR_LONG_WITHIN_LIMB is defined if
-__GMP_SHORT_LIMB is not defined, as required by the current code.
-------------------------------------------------------------------------
-r13087 | vlefevre | 2018-08-31 10:22:40 +0000 (Fri, 31 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Untabified.
-------------------------------------------------------------------------
-r13086 | zimmerma | 2018-08-31 09:48:01 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] fixed wrong #ifdef
-
-------------------------------------------------------------------------
-r13085 | zimmerma | 2018-08-31 09:39:36 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13084 | zimmerma | 2018-08-31 09:29:16 +0000 (Fri, 31 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/tests/tadd.c
-
-[src/add1.c] fix for 16-bit limb
-[tests/tadd.c] more output in case of error
-
-------------------------------------------------------------------------
-r13083 | zimmerma | 2018-08-31 08:11:01 +0000 (Fri, 31 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] fixed compiler warning
-
-------------------------------------------------------------------------
-r13082 | zimmerma | 2018-08-31 08:07:00 +0000 (Fri, 31 Aug 2018) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sub1sp.c
-
-[src/mpfr-gmp.h] removed leftover debug statement
-[src/mpfr-impl.h] added MPFR_LIMB macro
-[src/sub1sp.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13081 | zimmerma | 2018-08-30 12:07:56 +0000 (Thu, 30 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-gmp.h] more changes for 16-bit limb
-[src/mpfr-impl.h] mpfr-longlong.h should not be used for limb < long
-
-------------------------------------------------------------------------
-r13080 | zimmerma | 2018-08-30 10:56:29 +0000 (Thu, 30 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[mpfr-gmp.h] added comment
-
-------------------------------------------------------------------------
-r13079 | zimmerma | 2018-08-30 08:21:22 +0000 (Thu, 30 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[mpfr-mini-gmp.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13078 | zimmerma | 2018-08-30 08:09:21 +0000 (Thu, 30 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_ui_2exp.c
-
-[src/set_ui_2exp.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13077 | zimmerma | 2018-08-29 15:41:21 +0000 (Wed, 29 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/round_p.c
-
-[src/round_p.c] gmp_fprintf is not defined in mini-gmp
-
-------------------------------------------------------------------------
-r13076 | zimmerma | 2018-08-29 15:28:35 +0000 (Wed, 29 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-[tests/tadd.c] fix for 16-bit limb
-
-------------------------------------------------------------------------
-r13075 | zimmerma | 2018-08-29 15:21:38 +0000 (Wed, 29 Aug 2018) | 6 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] revert previous commit since it does not remove the warning:
-add1.c: In function ‘mpfr_add1’:
-add1.c:407:30: warning: ‘<<’ in boolean context, did you mean ‘<’ ? [-Wint-in-bool-context]
- if (difs && (cprev << (GMP_NUMB_BITS - difs)))
- ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
-
-------------------------------------------------------------------------
-r13074 | zimmerma | 2018-08-29 15:18:45 +0000 (Wed, 29 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] fixed compiler warning (with gcc 8.2.0)
-
-------------------------------------------------------------------------
-r13073 | vlefevre | 2018-08-29 10:30:11 +0000 (Wed, 29 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Added a comment about a spurious failure
-with MPFR_RNDF if RND_LOOP_NO_RNDF were not used.
-------------------------------------------------------------------------
-r13072 | vlefevre | 2018-08-28 21:25:46 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsinh.c
-
-[tests/tsinh.c] Fixed test introduced in r13047.
-------------------------------------------------------------------------
-r13071 | vlefevre | 2018-08-28 21:06:22 +0000 (Tue, 28 Aug 2018) | 4 lines
-Changed paths:
- M /trunk/src/add_ui.c
- M /trunk/src/sub_ui.c
- M /trunk/src/ui_sub.c
-
-[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the bug introduced in r13066
-for the cases where MPFR_LONG_WITHIN_LIMB is defined (make sure that a
-significand allocated in the stack is not freed before the associated
-mpfr_t object).
-------------------------------------------------------------------------
-r13070 | vlefevre | 2018-08-28 20:41:10 +0000 (Tue, 28 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Extend the exponent range in the case where
-MPFR_LONG_WITHIN_LIMB is not defined, resolving the FIXME.
-Note: a test was already there in tdiv_ui via the generic tests.
-------------------------------------------------------------------------
-r13069 | vlefevre | 2018-08-28 20:32:34 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Disabled rnd=MPFR_RNDF in a loop as this now fails.
-------------------------------------------------------------------------
-r13068 | vlefevre | 2018-08-28 20:29:42 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Corrected an error message.
-------------------------------------------------------------------------
-r13067 | vlefevre | 2018-08-28 20:26:21 +0000 (Tue, 28 Aug 2018) | 4 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/div_ui.c
-
-[src/div.c] Avoid an infinite recursion when MPFR_LONG_WITHIN_LIMB
-is not defined (mpfr_div calls mpfr_div_ui, which calls mpfr_div).
-[src/div_ui.c] Made the preprocessor test on MPFR_LONG_WITHIN_LIMB
-consistent with the ones in the other .c files.
-------------------------------------------------------------------------
-r13066 | vlefevre | 2018-08-28 20:10:44 +0000 (Tue, 28 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/add_ui.c
- M /trunk/src/sub_ui.c
- M /trunk/src/ui_sub.c
-
-[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the cases where
-MPFR_LONG_WITHIN_LIMB is not defined (regression in the
-latest changes). Also avoid unused variables.
-------------------------------------------------------------------------
-r13065 | vlefevre | 2018-08-28 19:44:37 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsubnormal.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r13064 | vlefevre | 2018-08-28 18:25:05 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/ui_sub.c
-
-[src/ui_sub.c] Extend the exponent range early enough.
-------------------------------------------------------------------------
-r13063 | vlefevre | 2018-08-28 18:23:38 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/add_ui.c
-
-[src/add_ui.c] Extend the exponent range early enough.
-------------------------------------------------------------------------
-r13062 | vlefevre | 2018-08-28 17:39:32 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/sub_ui.c
-
-[src/sub_ui.c] Extend the exponent range early enough.
-------------------------------------------------------------------------
-r13061 | zimmerma | 2018-08-28 14:44:47 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] adapt to GMP_NUMB_BITS=16
-
-------------------------------------------------------------------------
-r13060 | vlefevre | 2018-08-28 14:41:23 +0000 (Tue, 28 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Added a FIXME.
-------------------------------------------------------------------------
-r13059 | zimmerma | 2018-08-28 14:30:57 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] adapt to GMP_NUMB_BITS=16
-
-------------------------------------------------------------------------
-r13058 | zimmerma | 2018-08-28 14:23:10 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] adapt to GMP_NUMB_BITS=16 (not yet tested)
-
-------------------------------------------------------------------------
-r13057 | zimmerma | 2018-08-28 14:02:06 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] removed a static assertion (duplicate with MPFR_LONG_WITHIN_LIMB)
-
-------------------------------------------------------------------------
-r13056 | zimmerma | 2018-08-28 14:01:28 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/init2.c
-
-[src/init2.c] split a static assertion in two
-
-------------------------------------------------------------------------
-r13055 | zimmerma | 2018-08-28 14:01:02 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] allow GMP_NUMB_BITS=16 (experimental, do not use!)
-
-------------------------------------------------------------------------
-r13054 | zimmerma | 2018-08-28 14:00:09 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] make it easier to extend to GMP_NUMB_BITS<32
-
-------------------------------------------------------------------------
-r13053 | zimmerma | 2018-08-28 13:48:47 +0000 (Tue, 28 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] read GMP_NUMB_BITS from mini-gmp.h when available
- (otherwise assume mp_limb_t == unsigned long)
-
-------------------------------------------------------------------------
-r13052 | zimmerma | 2018-08-28 13:28:08 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/ui_sub.c
-
-[src/ui_sub.c] make code work for limb < long
-
-------------------------------------------------------------------------
-r13051 | zimmerma | 2018-08-28 13:26:28 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub_ui.c
-
-[src/sub_ui.c] make code work for limb < long
-
-------------------------------------------------------------------------
-r13050 | zimmerma | 2018-08-28 13:24:07 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] make code work for limb < long
-
-------------------------------------------------------------------------
-r13049 | zimmerma | 2018-08-28 13:18:16 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/add_ui.c
-
-[src/add_ui.c] make code work for limb < long
-
-------------------------------------------------------------------------
-r13048 | zimmerma | 2018-08-28 13:01:48 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[mini-gmp] update
-
-------------------------------------------------------------------------
-r13047 | zimmerma | 2018-08-28 12:44:48 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsinh.c
-
-[tests/tsinh.c] improve coverage
-
-------------------------------------------------------------------------
-r13046 | zimmerma | 2018-08-28 08:05:06 +0000 (Tue, 28 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsubnormal.c
-
-[tests/tsubnormal.c] improve coverage
-
-------------------------------------------------------------------------
-r13045 | vlefevre | 2018-08-27 15:45:32 +0000 (Mon, 27 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added a FIXME about cp vs tp.
-------------------------------------------------------------------------
-r13044 | zimmerma | 2018-08-27 15:18:25 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] improve coverage
-
-------------------------------------------------------------------------
-r13043 | vlefevre | 2018-08-27 15:03:05 +0000 (Mon, 27 Aug 2018) | 5 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Avoid bad usage of tp in the generic code:
- * In the case d == 1, two branches were inconsistent: tp not defined
- at the same level, with one shadowing the other one.
- * In the case 2 <= d < p, tp was reused with a different meanings;
- renamed the second one to cp, as this is MPFR_MANT(c).
-------------------------------------------------------------------------
-r13042 | vlefevre | 2018-08-27 14:41:32 +0000 (Mon, 27 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Re-added/updated FIXME about the long backward goto's.
-------------------------------------------------------------------------
-r13041 | vlefevre | 2018-08-27 13:11:02 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/mul.c
-
-[src/{add1sp.c,mul.c}] Updated the condition to use the formally
-extracted code and added a corresponding comment.
-------------------------------------------------------------------------
-r13040 | zimmerma | 2018-08-27 13:06:17 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/const_log2.c
-
-[src/const_log2.c] further improve coverage
-
-------------------------------------------------------------------------
-r13039 | vlefevre | 2018-08-27 12:51:11 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/cache.c
-
-[src/cache.c] Improved variable names (→ dprec for the precision of dest
-and cprec for the precision of the cache) and added/updated comments.
-------------------------------------------------------------------------
-r13038 | vlefevre | 2018-08-27 12:32:49 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/cache.c
-
-[src/cache.c] Reverted r13036 as what matters is the target precision,
-which can be very small.
-------------------------------------------------------------------------
-r13037 | zimmerma | 2018-08-27 12:23:42 +0000 (Mon, 27 Aug 2018) | 5 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/add1sp1_extracted.c
- M /trunk/src/mul.c
- M /trunk/src/mul_1_extracted.c
-
-[src/add1sp1_extracted.c] replaced extracted code by new for MPFR_PREC_BITS=64
-[src/mul_1_extracted.c] likewise
-[src/add1sp.c] changed condition to use the formally extracted code
-[src/mul.c] likewise (but code is still not yet activated here)
-
-------------------------------------------------------------------------
-r13036 | vlefevre | 2018-08-27 12:20:47 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/cache.c
-
-[src/cache.c] Comment: In practice, the "overflow handler" of
-MPFR_RNDRAW_GEN should never be called.
-------------------------------------------------------------------------
-r13035 | zimmerma | 2018-08-27 12:19:51 +0000 (Mon, 27 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/const_log2.c
- M /trunk/tests/tconst_log2.c
-
-[src/const_log2.c] avoid hard-coded values
-[tests/tconst_log2.c] improve coverage
-
-------------------------------------------------------------------------
-r13034 | vlefevre | 2018-08-27 12:12:48 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/cache.c
-
-[src/cache.c] Replaced a test + mpfr_overflow by a MPFR_ASSERTD since
-the cached value (in extended exponent range) cannot overflow.
-------------------------------------------------------------------------
-r13033 | zimmerma | 2018-08-27 11:31:15 +0000 (Mon, 27 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/const_euler.c
- M /trunk/tests/tconst_euler.c
-
-[src/const_euler.c] better choice of (initial) working precision
-[tests/tconst_euler.c] added coverage test
-
-------------------------------------------------------------------------
-r13032 | vlefevre | 2018-08-27 11:24:10 +0000 (Mon, 27 Aug 2018) | 6 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Update concerning the shared cache, to be consistent
-with the other mpfr_buildopt_*_p features:
- * check that mpfr_buildopt_sharedcache_p() and MPFR_WANT_SHARED_CACHE
- match;
- * for the output of the value, test mpfr_buildopt_sharedcache_p()
- instead of the macro.
-------------------------------------------------------------------------
-r13031 | zimmerma | 2018-08-27 11:11:42 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_catalan.c
-
-[tests/tconst_catalan.c] improve coverage
-
-------------------------------------------------------------------------
-r13030 | zimmerma | 2018-08-27 09:38:52 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tbuildopt.c
-
-[tests/tbuildopt.c] added check of mpfr_buildopt_sharedcache_p()
-
-------------------------------------------------------------------------
-r13028 | vlefevre | 2018-08-27 08:57:23 +0000 (Mon, 27 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r13027 | zimmerma | 2018-08-27 08:45:41 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed even rule for p=1
-
-------------------------------------------------------------------------
-r13026 | vlefevre | 2018-08-27 01:42:20 +0000 (Mon, 27 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Mention WG14/N2270 (proposed maybe_unused attribute),
-which could be useful to avoid MPFR_DBGRES.
-------------------------------------------------------------------------
-r13024 | zimmerma | 2018-08-24 15:44:10 +0000 (Fri, 24 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] finished simplifying the mpfr_sub1sp code
-
-------------------------------------------------------------------------
-r13023 | zimmerma | 2018-08-24 14:53:32 +0000 (Fri, 24 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] simplified the computation of sbb
-
-------------------------------------------------------------------------
-r13022 | zimmerma | 2018-08-24 14:45:06 +0000 (Fri, 24 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] full rewrite of mpfr_sub1sp (work in progress)
-
-------------------------------------------------------------------------
-r13020 | vlefevre | 2018-08-23 14:31:16 +0000 (Thu, 23 Aug 2018) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output "Enable formally proven code" info.
-------------------------------------------------------------------------
-r13019 | vlefevre | 2018-08-23 14:26:09 +0000 (Thu, 23 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Describe MPFR_WANT_PROVEN_CODE.
-------------------------------------------------------------------------
-r13018 | vlefevre | 2018-08-23 14:24:23 +0000 (Thu, 23 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/add1sp.c
- M /trunk/src/mul.c
-
-Renamed WANT_PROVEN_CODE to MPFR_WANT_PROVEN_CODE for consistency with
-the other WANT macros (and to avoid potential clashes with foreign .h
-files).
-------------------------------------------------------------------------
-r13017 | vlefevre | 2018-08-23 11:08:47 +0000 (Thu, 23 Aug 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] For some tests, ignore extracted files (proven code).
-------------------------------------------------------------------------
-r13016 | zimmerma | 2018-08-23 10:03:52 +0000 (Thu, 23 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/doc/mpfr.texi
- M /trunk/src/mul.c
-
-the mpfr_mul_1 extracted code is not proven yet
-
-------------------------------------------------------------------------
-r13015 | vlefevre | 2018-08-23 09:57:09 +0000 (Thu, 23 Aug 2018) | 6 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/add1sp.c
- M /trunk/src/mul.c
-
-For --enable-formally-proven-code, instead of requiring a check of the
-type sizes in configure, just enable the proven code only if the types
-have the sizes expected by this code.
- * configure.ac: removed the FIXME.
- * src/add1sp.c, src/mul.c: updated the #if test that enables the
- proven code (add1sp1_extracted.c and mul_1_extracted.c).
-------------------------------------------------------------------------
-r13014 | vlefevre | 2018-08-23 09:23:21 +0000 (Thu, 23 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated FIXME for --enable-formally-proven-code
-(many failures with -m32 due to assumptions on type sizes).
-------------------------------------------------------------------------
-r13013 | vlefevre | 2018-08-23 08:54:16 +0000 (Thu, 23 Aug 2018) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added a FIXME for --enable-formally-proven-code.
-------------------------------------------------------------------------
-r13012 | vlefevre | 2018-08-23 08:39:47 +0000 (Thu, 23 Aug 2018) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated message for --enable-formally-proven-code.
-------------------------------------------------------------------------
-r13011 | zimmerma | 2018-08-23 07:31:06 +0000 (Thu, 23 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/add1sp.c
- A /trunk/src/add1sp1_extracted.c
- M /trunk/src/mul.c
- A /trunk/src/mul_1_extracted.c
-
-added configure option --enable-formally-proven-code and corresponding code
-
-------------------------------------------------------------------------
-r13009 | vlefevre | 2018-08-22 12:52:28 +0000 (Wed, 22 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Ulp calculus: swap Rule 4 and Rule 5.
-------------------------------------------------------------------------
-r13008 | vlefevre | 2018-08-22 12:49:45 +0000 (Wed, 22 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Ulp calculus Rule 4: make the proof much simpler.
-------------------------------------------------------------------------
-r13007 | vlefevre | 2018-08-22 12:27:42 +0000 (Wed, 22 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Error calculus: implicitly assume x ≠ 0 in ulp.
-------------------------------------------------------------------------
-r13006 | vlefevre | 2018-08-22 09:31:21 +0000 (Wed, 22 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Updated a FIXME.
-------------------------------------------------------------------------
-r13005 | vlefevre | 2018-08-22 09:23:04 +0000 (Wed, 22 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Removed a comment that brings nothing and is not
-really correct (this is not a "flag").
-------------------------------------------------------------------------
-r13004 | zimmerma | 2018-08-22 07:47:38 +0000 (Wed, 22 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tmul.c
-
-[tests/mpfr-test.h] added macro TEST_FLAGS (debug use only)
-
-------------------------------------------------------------------------
-r13003 | vlefevre | 2018-08-22 03:01:16 +0000 (Wed, 22 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Portability corrections related to the use of the
-preprocessor / code robustness.
-------------------------------------------------------------------------
-r13002 | zimmerma | 2018-08-21 15:36:29 +0000 (Tue, 21 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] revert mpfr_sub1sp to the version of revision 12241
-
-------------------------------------------------------------------------
-r13001 | zimmerma | 2018-08-21 14:39:43 +0000 (Tue, 21 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed bug20180813
-
-------------------------------------------------------------------------
-r13000 | zimmerma | 2018-08-21 13:50:13 +0000 (Tue, 21 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] improved comment about bug20180813()
-
-------------------------------------------------------------------------
-r12998 | vlefevre | 2018-08-21 13:04:44 +0000 (Tue, 21 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12997 | zimmerma | 2018-08-21 11:01:14 +0000 (Tue, 21 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] added a test for a bug in mpfr_sub1sp (to be fixed)
-
-------------------------------------------------------------------------
-r12996 | vlefevre | 2018-08-20 15:33:12 +0000 (Mon, 20 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Replaced "Section ``Rounding''" by "@ref{Rounding}".
-------------------------------------------------------------------------
-r12995 | zimmerma | 2018-08-20 14:52:54 +0000 (Mon, 20 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] renamed Section "Rounding Modes" to "Rounding"
-
-------------------------------------------------------------------------
-r12991 | vlefevre | 2018-08-18 10:03:58 +0000 (Sat, 18 Aug 2018) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/memory.c
-
-Avoid a pointer-to-int-cast warning with GCC (e.g. under 32-bit Linux)
-by casting pointers to uintptr_t before the cast to mpfr_uintmax_t.
- * acinclude.m4: use AC_TYPE_UINTPTR_T to define uintptr_t if
- not available.
- * tests/memory.c: added casts to uintptr_t.
-------------------------------------------------------------------------
-r12990 | vlefevre | 2018-08-16 14:37:13 +0000 (Thu, 16 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/invert_limb.h
- M /trunk/src/invsqrt_limb.h
-
-Code robustness in macro definitions.
-------------------------------------------------------------------------
-r12989 | vlefevre | 2018-08-16 14:29:34 +0000 (Thu, 16 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Changed a variable name to avoid confusion with the function
-parameter of the same name, which has a different type.
-------------------------------------------------------------------------
-r12988 | vlefevre | 2018-08-16 14:16:36 +0000 (Thu, 16 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a cast to mp_bitcnt_t in order to fix potential
-integer overflow in MPFR_MPZ_SIZEINBASE2.
-------------------------------------------------------------------------
-r12987 | vlefevre | 2018-08-16 13:54:13 +0000 (Thu, 16 Aug 2018) | 1 line
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Type consistency.
-------------------------------------------------------------------------
-r12986 | vlefevre | 2018-08-16 13:52:02 +0000 (Thu, 16 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/bernoulli.c
- M /trunk/src/jn.c
- M /trunk/src/mpfr-impl.h
-
-Added MPFR_INC_PREC definition (similar to MPFR_ADD_PREC) and replaced
-some MPFR_ADD_PREC occurrences by MPFR_INC_PREC. In src/bernoulli.c,
-replaced += by MPFR_INC_PREC to detect overflow.
-------------------------------------------------------------------------
-r12985 | vlefevre | 2018-08-11 00:51:13 +0000 (Sat, 11 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tools/build-patch
-
-Replaced "TZ=UTC" by "TZ=UTC0" for portability.
-------------------------------------------------------------------------
-r12984 | vlefevre | 2018-08-06 13:01:51 +0000 (Mon, 06 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Avoid a useless variable. This should
-also avoid warnings with Windows ICC, reported at:
- https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
-------------------------------------------------------------------------
-r12983 | vlefevre | 2018-08-06 12:35:06 +0000 (Mon, 06 Aug 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Added missing casts for printf (error messages).
-Bug detected under MS Windows, where size_t > unsigned long. See:
- https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
-------------------------------------------------------------------------
-r12982 | vlefevre | 2018-08-06 12:17:55 +0000 (Mon, 06 Aug 2018) | 4 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Improved the conditions for test_20170105().
-In particular, the new preprocessor test can avoid spurious warnings
-on large shifts (false positives) with MS Windows. See:
- https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
-------------------------------------------------------------------------
-r12981 | vlefevre | 2018-08-06 12:00:28 +0000 (Mon, 06 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] More details about intmax_t, mpfr_intmax_t, etc.
-------------------------------------------------------------------------
-r12980 | vlefevre | 2018-08-06 10:41:26 +0000 (Mon, 06 Aug 2018) | 4 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-[tests/memory.c] To print a size_t or a pointer in error messages,
-cast to mpfr_uintmax_t (largest integer type available) instead of
-unsigned long, which may be too short (e.g. under MS Windows).
-See: https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
-------------------------------------------------------------------------
-r12979 | vlefevre | 2018-08-06 10:29:14 +0000 (Mon, 06 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-intmax.h
-
-[src/mpfr-intmax.h] Define MPFR_INTMAX_FSPEC macro: length modifier
-for printf corresponding to mpfr_intmax_t and mpfr_uintmax_t.
-------------------------------------------------------------------------
-r12978 | vlefevre | 2018-08-06 02:04:14 +0000 (Mon, 06 Aug 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated/added links about coding standards and C.
-------------------------------------------------------------------------
-r12977 | vlefevre | 2018-08-05 21:26:21 +0000 (Sun, 05 Aug 2018) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Updated a comment: more details about __GMP_DECLSPEC,
-in particular those found in GMP's longlong.h file.
-------------------------------------------------------------------------
-r12976 | vlefevre | 2018-08-05 16:03:33 +0000 (Sun, 05 Aug 2018) | 19 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] Replaced __GMP_DECLSPEC by __MPFR_DECLSPEC.
-
-Otherwise, with Windows DLL, __GMP_DECLSPEC is replaced by
-__declspec(dllimport), which is wrong when building MPFR and
-yields warning LNK4217 such as:
-
- eint.obj : warning LNK4217: locally defined symbol mpfr_clz_tab
- imported in function mpfr_eint
-
-due to
-
- extern const unsigned char __GMP_DECLSPEC __clz_tab[129];
-
-(note that mpfr_clz_tab is defined with "#define __clz_tab mpfr_clz_tab"
-only without the GMP build).
-
-See:
- https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00000.html
- https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00001.html
-------------------------------------------------------------------------
-r12975 | vlefevre | 2018-08-05 15:59:29 +0000 (Sun, 05 Aug 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check that __GMP_DECLSPEC is not used by MPFR.
-------------------------------------------------------------------------
-r12970 | vlefevre | 2018-07-31 10:58:39 +0000 (Tue, 31 Jul 2018) | 4 lines
-Changed paths:
- M /trunk
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Try to detect missing output from the first printf
-that occurred once with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO
-and run under Wine.
-(merged changesets r12968-12969 from the 4.0 branch)
-------------------------------------------------------------------------
-r12964 | vlefevre | 2018-07-27 16:24:08 +0000 (Fri, 27 Jul 2018) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/tests/tsprintf.c
-
-[acinclude.m4,configure.ac] Check the support of the group flag for
- native integers, which is a Single UNIX Specification extension.
-[tests/tsprintf.c] Test the group flag with the P length modifier only
- when supported, since the implementation relies on this support.
-------------------------------------------------------------------------
-r12963 | vlefevre | 2018-07-27 14:41:02 +0000 (Fri, 27 Jul 2018) | 8 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t):
- a '0' flag was always added when calling gmp_asprintf. This bug
- wasn't detected under Linux because the case for which it was
- occurring (left space padding without a precision and without a
- '0' flag) was not tested. With Wine, tsprintf was failing because
- of a bug in the stdio library: the '0' flag added by mistake should
- have been ignored in some test with a precision, but it wasn't.
-[tests/tsprintf.c] Added a test that made a failure occur under Linux.
-------------------------------------------------------------------------
-r12962 | vlefevre | 2018-07-27 12:46:39 +0000 (Fri, 27 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added 2 other tests with the P length modifier.
-------------------------------------------------------------------------
-r12961 | vlefevre | 2018-07-27 12:37:46 +0000 (Fri, 27 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t).
-[tests/tsprintf.c] Corrected/added tests with the P length modifier.
-------------------------------------------------------------------------
-r12960 | vlefevre | 2018-07-26 11:33:54 +0000 (Thu, 26 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed various overflow and close-to-overflow issues.
-Those with the P length modifier (mpfr_prec_t) will be fixed later.
-------------------------------------------------------------------------
-r12959 | vlefevre | 2018-07-26 11:29:36 +0000 (Thu, 26 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Another failure with the P length modifier.
-------------------------------------------------------------------------
-r12958 | vlefevre | 2018-07-26 11:06:35 +0000 (Thu, 26 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added tests with the P length modifier (mpfr_prec_t),
-yielding mode failures.
-------------------------------------------------------------------------
-r12957 | vlefevre | 2018-07-26 10:12:47 +0000 (Thu, 26 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer
-in case of error.
-------------------------------------------------------------------------
-r12956 | vlefevre | 2018-07-26 10:03:13 +0000 (Thu, 26 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a test that yields a "store to null pointer",
-detected by UBsan.
-------------------------------------------------------------------------
-r12955 | vlefevre | 2018-07-25 14:04:12 +0000 (Wed, 25 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Bug fix: in case of some errors (via "goto error;"),
-va_end wasn't called, yielding undefined behavior.
-------------------------------------------------------------------------
-r12951 | vlefevre | 2018-07-23 08:21:11 +0000 (Mon, 23 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added tget_set_d128 to svn:ignore property.
-------------------------------------------------------------------------
-r12949 | vlefevre | 2018-07-23 00:54:17 +0000 (Mon, 23 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/erf.c
-
-[src/erf.c] More security about tauk.
-------------------------------------------------------------------------
-r12948 | vlefevre | 2018-07-23 00:09:44 +0000 (Mon, 23 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/erf.c
-
-[src/erf.c] Removed a meaningless cast.
-------------------------------------------------------------------------
-r12947 | zimmerma | 2018-07-22 21:31:59 +0000 (Sun, 22 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/erf.c
-
-[src/erf.c] replaced double's by mpfr_t to fix bug reported by Naoki Shibata
-
-------------------------------------------------------------------------
-r12946 | vlefevre | 2018-07-22 20:39:00 +0000 (Sun, 22 Jul 2018) | 5 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-[tests/terf.c] Added a testcase for bug reported by Naoki Shibata:
- https://sympa.inria.fr/sympa/arc/mpfr/2018-07/msg00028.html
-(uceil_log2.c:40: MPFR assertion failed: exp < 1023).
-Increased the number of generic tests in order to reproduce the bug
-there too with the default seed.
-------------------------------------------------------------------------
-r12945 | vlefevre | 2018-07-21 01:13:20 +0000 (Sat, 21 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/subnormal.c
-
-[src/subnormal.c] C89 compatibility.
-------------------------------------------------------------------------
-r12944 | zimmerma | 2018-07-21 00:55:29 +0000 (Sat, 21 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/subnormal.c
- M /trunk/tests/tsubnormal.c
-
-[src/subnormal.c] experimental support for RNDNA
-
-------------------------------------------------------------------------
-r12943 | vlefevre | 2018-07-20 13:09:20 +0000 (Fri, 20 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/examples/threads.c
-
-Added examples/threads.c (and updated Makefile.am): multithreading test
-to detect scaling issues with MPFR.
-------------------------------------------------------------------------
-r12942 | vlefevre | 2018-07-19 09:46:48 +0000 (Thu, 19 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Updated a FIXME.
-------------------------------------------------------------------------
-r12941 | vlefevre | 2018-07-19 08:32:21 +0000 (Thu, 19 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] More FIXME's.
-------------------------------------------------------------------------
-r12940 | vlefevre | 2018-07-19 07:44:54 +0000 (Thu, 19 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Reindentation.
-------------------------------------------------------------------------
-r12939 | vlefevre | 2018-07-19 07:35:06 +0000 (Thu, 19 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a FIXME for MPFR_PREC_ARG handling.
-------------------------------------------------------------------------
-r12937 | vlefevre | 2018-07-18 23:59:09 +0000 (Wed, 18 Jul 2018) | 10 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/src/buildopt.c
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-thread.h
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tversion.c
-
-Shared caches: fix and minor changes.
- * Fixed detection and use of C11 thread support: the C11 header is
- <threads.h>, not <thread.h>.
- * Renamed WANT_SHARED_CACHE to MPFR_WANT_SHARED_CACHE for consistency
- with the other MPFR_WANT_* macros.
- * Added MPFR_THREAD_LOCK_METHOD macro, giving the thread locking
- method as a string (when shared caches are enabled).
- * doc/README.dev: documented 4 macros for shared caches.
- * tests/tversion.c: output MPFR_WANT_SHARED_CACHE and
- MPFR_THREAD_LOCK_METHOD information.
-------------------------------------------------------------------------
-r12935 | vlefevre | 2018-07-18 23:15:14 +0000 (Wed, 18 Jul 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-[tests/tconst_pi.c] Removed an incorrect assertion, as the #else would
-be applicable when WANT_SHARED_CACHE is defined but not HAVE_PTHREAD
-(which may occur when MPFR_HAVE_C11_LOCK is defined).
-------------------------------------------------------------------------
-r12934 | vlefevre | 2018-07-18 13:33:13 +0000 (Wed, 18 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed type in partition_number to be consistent with
-the end of the function.
-------------------------------------------------------------------------
-r12933 | vlefevre | 2018-07-16 14:17:55 +0000 (Mon, 16 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added 2 FIXME and removed an incorrect MPFR_ASSERTN
-(which came from r5236).
-------------------------------------------------------------------------
-r12932 | vlefevre | 2018-07-16 13:56:39 +0000 (Mon, 16 Jul 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added other tests to check_length_overflow, which
-would trigger other bugs in src/vasprintf.c (e.g. when removing the
-other failing tests).
-------------------------------------------------------------------------
-r12931 | vlefevre | 2018-07-16 13:33:33 +0000 (Mon, 16 Jul 2018) | 4 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added check_length_overflow to check the behavior of
-mpfr_snprintf on a large number of output characters (> INT_MAX) with
-size = 0. This test is actually done only if INT_MAX == 2147483647 and
-currently fails in such a case.
-------------------------------------------------------------------------
-r12930 | vlefevre | 2018-07-16 13:22:58 +0000 (Mon, 16 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Updated comment about overflow on the number of output
-characters, taking into account the latest ISO C and POSIX standards.
-------------------------------------------------------------------------
-r12929 | vlefevre | 2018-07-16 12:45:59 +0000 (Mon, 16 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Updated a comment.
-------------------------------------------------------------------------
-r12928 | vlefevre | 2018-07-13 14:43:40 +0000 (Fri, 13 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Simplified mpfr_get_str_wrapper.
-------------------------------------------------------------------------
-r12927 | vlefevre | 2018-07-13 13:38:08 +0000 (Fri, 13 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a log message.
-------------------------------------------------------------------------
-r12926 | vlefevre | 2018-07-13 13:15:01 +0000 (Fri, 13 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a FIXME: _Decimal128 code and _MPFR_IEEE_FLOATS
-(which is about binary IEEE-754 floating point) should be unrelated.
-------------------------------------------------------------------------
-r12925 | vlefevre | 2018-07-13 12:28:36 +0000 (Fri, 13 Jul 2018) | 8 lines
-Changed paths:
- M /trunk/src/get_d64.c
-
-[src/get_d64.c]
- * Added FIXME's for get_decimal64_nan and get_decimal64_inf internal
- functions: possible issue with _MPFR_IEEE_FLOATS code, which also
- seems more complex than the generic code.
- * Simplified get_decimal64_zero internal function to generate a
- decimal zero directly instead of using the fact that a binary64
- zero is also the encoding of a decimal zero (and assuming that
- double = binary64 with perfect endianness matching).
-------------------------------------------------------------------------
-r12922 | vlefevre | 2018-07-13 10:28:16 +0000 (Fri, 13 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Updated message about the _Float128 support, since
-this is not just about the compiler.
-------------------------------------------------------------------------
-r12921 | vlefevre | 2018-07-13 10:20:28 +0000 (Fri, 13 Jul 2018) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed the _Float128 / __float128 detection for NetBSD:
-Optimization made the "undefined reference" error disappear, so that
-__float128 was misdetected as being supported.
-------------------------------------------------------------------------
-r12915 | vlefevre | 2018-07-12 14:27:50 +0000 (Thu, 12 Jul 2018) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] For the _Float128 / __float128 detection, changed
-AC_COMPILE_IFELSE to AC_LINK_IFELSE since an error may occur only
-at link time, such as under NetBSD:
- https://mail-index.netbsd.org/pkgsrc-users/2018/02/02/msg026220.html
- https://mail-index.netbsd.org/pkgsrc-users/2018/02/05/msg026238.html
-------------------------------------------------------------------------
-r12913 | vlefevre | 2018-07-12 12:28:58 +0000 (Thu, 12 Jul 2018) | 4 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Corrected check-exported-symbols to avoid a failure
-when the default .SHELLFLAGS value is '-ec' (POSIX) instead of '-c'
-(GNU Make, which is not in POSIX-conforming mode by default).
-Bug found on FreeBSD 11.1 (Compile Farm @ HouseGordon.com).
-------------------------------------------------------------------------
-r12912 | vlefevre | 2018-07-11 08:39:58 +0000 (Wed, 11 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] In buffer_sandwich, simplified the handling of the
-trailing zero (avoid memset and a useless assignment).
-------------------------------------------------------------------------
-r12908 | vlefevre | 2018-07-09 14:05:45 +0000 (Mon, 09 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] More changes to Section "Nomenclature and Types";
-in particular, defined regular numbers and exponents.
-------------------------------------------------------------------------
-r12907 | vlefevre | 2018-07-09 13:39:14 +0000 (Mon, 09 Jul 2018) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] In Section "Nomenclature and Types", removed all the
-@noindent, whose purpose is unclear (if one needs something special,
-an itemized list would be better, or possibly @deffn).
-------------------------------------------------------------------------
-r12906 | vlefevre | 2018-07-09 13:30:02 +0000 (Mon, 09 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Rewrote the paragraph defining "floating-point number"
-in Section "Nomenclature and Types", avoiding ambiguities.
-------------------------------------------------------------------------
-r12903 | vlefevre | 2018-07-06 14:01:06 +0000 (Fri, 06 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Grrr... again a copy-paste error. Now OK.
-------------------------------------------------------------------------
-r12902 | vlefevre | 2018-07-06 13:58:49 +0000 (Fri, 06 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-[tests/{tprintf.c,tsprintf.c}] Corrected the tests added in r12898,
-but tprintf still fails.
-------------------------------------------------------------------------
-r12901 | vlefevre | 2018-07-06 13:53:26 +0000 (Fri, 06 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Corrected the latest tests.
-------------------------------------------------------------------------
-r12900 | vlefevre | 2018-07-06 13:51:41 +0000 (Fri, 06 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added tests (failure on "%09.3Rg" for 1000).
-------------------------------------------------------------------------
-r12899 | vlefevre | 2018-07-06 13:45:00 +0000 (Fri, 06 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Corrected comments.
-------------------------------------------------------------------------
-r12898 | vlefevre | 2018-07-06 13:41:37 +0000 (Fri, 06 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-[tests/{tprintf.c,tsprintf.c}] Added tests (both programs fail).
-------------------------------------------------------------------------
-r12896 | vlefevre | 2018-07-06 13:26:15 +0000 (Fri, 06 Jul 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12895 | vlefevre | 2018-07-06 13:25:43 +0000 (Fri, 06 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Corrected comments and coding style.
-------------------------------------------------------------------------
-r12894 | vlefevre | 2018-07-06 13:17:40 +0000 (Fri, 06 Jul 2018) | 8 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Resolve the FIXME.
- * Renamed ip_trailing_zeros to ip_trailing_digits, since when
- spec.size == 0, these can be any digits.
- * Simplified the buffer_sandwich function since it can be called
- only when spec.size != 0, in which case tz (= ip_trailing_digits)
- is either 0 or 1 (a trailing zero must be added only when rounding
- to the next power of ten in the %f case).
- * Corrected/removed/added comments.
-------------------------------------------------------------------------
-r12893 | vlefevre | 2018-07-06 11:49:12 +0000 (Fri, 06 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-[tests/{tprintf.c,tsprintf.c}] Added tests with powers of ten in all
-rounding modes and powers of ten + 0.5 in rounding to nearest.
-------------------------------------------------------------------------
-r12889 | zimmerma | 2018-07-05 07:22:01 +0000 (Thu, 05 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] typo in Fredrik's name
-
-------------------------------------------------------------------------
-r12888 | zimmerma | 2018-07-05 07:19:35 +0000 (Thu, 05 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-[AUTHORS] typo in Fredrik's name
-
-------------------------------------------------------------------------
-r12887 | vlefevre | 2018-07-04 15:14:21 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Added a TODO (for the FIXME in src/vasprintf.c).
-------------------------------------------------------------------------
-r12886 | vlefevre | 2018-07-04 15:04:00 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Updated the FIXME comment.
-------------------------------------------------------------------------
-r12885 | vlefevre | 2018-07-04 14:38:04 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a FIXME comment about an incorrect comment.
-------------------------------------------------------------------------
-r12884 | vlefevre | 2018-07-04 14:30:16 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added log messages in buffer_sandwich.
-------------------------------------------------------------------------
-r12883 | vlefevre | 2018-07-04 14:20:29 +0000 (Wed, 04 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added more tests of the form 10^i - 1/2
-(like in tprintf.c).
-------------------------------------------------------------------------
-r12882 | vlefevre | 2018-07-04 14:00:08 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Added more tests of the form 10^i - 1/2.
-------------------------------------------------------------------------
-r12881 | vlefevre | 2018-07-04 13:40:12 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added test_locale() test based on the tprintf.c one.
-------------------------------------------------------------------------
-r12880 | vlefevre | 2018-07-04 13:36:32 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Minor correction.
-------------------------------------------------------------------------
-r12879 | vlefevre | 2018-07-04 13:27:49 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] More test_locale() cleanup.
-------------------------------------------------------------------------
-r12878 | vlefevre | 2018-07-04 13:11:01 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] English usage in a comment.
-------------------------------------------------------------------------
-r12877 | vlefevre | 2018-07-04 12:57:47 +0000 (Wed, 04 Jul 2018) | 4 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Renamed mpfr_get_str_aux to mpfr_get_str_wrapper
-in order to avoid a confusion with the mpfr_get_str_aux function
-from get_str.c (moreover, this is really a wrapper, which is the
-reverse of an aux function).
-------------------------------------------------------------------------
-r12876 | vlefevre | 2018-07-04 12:35:45 +0000 (Wed, 04 Jul 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] locale_da_DK() cleanup.
-------------------------------------------------------------------------
-r12875 | zimmerma | 2018-07-04 12:32:17 +0000 (Wed, 04 Jul 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] partly revert commit 12873
-
-------------------------------------------------------------------------
-r12874 | vlefevre | 2018-07-04 12:20:43 +0000 (Wed, 04 Jul 2018) | 4 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] test_locale() cleanup.
- * Conditional #include <locale.h> with the other header inclusions.
- * Completed a #if (to be like in tsprintf.c).
- * Moved a global variable as local to test_locale().
-------------------------------------------------------------------------
-r12873 | zimmerma | 2018-07-04 12:09:44 +0000 (Wed, 04 Jul 2018) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tprintf.c
-
-[src/vasprintf.c] replaced overflow tests by assertions
-[tests/tprintf.c] improve test coverage
-
-------------------------------------------------------------------------
-r12870 | vlefevre | 2018-07-04 08:50:32 +0000 (Wed, 04 Jul 2018) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-Added MPFR_CHECK_LOCALES environment variable for the tests (to be
-used by developers): when set, terminate with an error if locales
-cannot be tested.
-------------------------------------------------------------------------
-r12869 | vlefevre | 2018-07-04 01:23:27 +0000 (Wed, 04 Jul 2018) | 19 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed several bugs in buffer_sandwich, which could
-yield memory corruption with non-default memory allocators and other
-undefined behavior; check the return value when this function is called.
-
-Details:
- * check integer overflow on the size computations;
- * computation of q and r without tests;
- * fixed the case where r > len (e.g. len = 1 and tz = 1);
- * in the loop, increase the str pointer only when needed, otherwise
- str could be beyond of the end of the string of the digits, which
- is undefined behavior.
-
-The first consequence of the r > len issue was an incorrect generated
-string. Moreover, since the generated string was shorter than expected,
-mpfr_free_str would provide an incorrect buffer size to the "free"
-function of the current GMP memory allocator. By default, this size is
-ignored, but it may matter if the memory allocators have been changed
-with the mp_set_memory_functions GMP function, in which case a possible
-consequence could be memory corruption.
-------------------------------------------------------------------------
-r12868 | zimmerma | 2018-07-03 15:34:40 +0000 (Tue, 03 Jul 2018) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tprintf.c
-
-[src/vasprintf.c] added an assertion
-[tests/tprintf.c] added two tests (one currently fails)
-
-------------------------------------------------------------------------
-r12864 | vlefevre | 2018-06-26 18:22:17 +0000 (Tue, 26 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] C90 compatibility.
-------------------------------------------------------------------------
-r12863 | zimmerma | 2018-06-26 15:16:17 +0000 (Tue, 26 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] fixed another test
-
-------------------------------------------------------------------------
-r12862 | zimmerma | 2018-06-26 15:15:06 +0000 (Tue, 26 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] fixed test
-
-------------------------------------------------------------------------
-r12861 | zimmerma | 2018-06-26 13:20:49 +0000 (Tue, 26 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tprintf.c
-
-[src/vasprintf.c] improve coverage
-
-------------------------------------------------------------------------
-r12860 | zimmerma | 2018-06-26 11:37:44 +0000 (Tue, 26 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] improve coverage
-
-------------------------------------------------------------------------
-r12859 | zimmerma | 2018-06-26 10:58:03 +0000 (Tue, 26 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] improve coverage
-
-------------------------------------------------------------------------
-r12858 | zimmerma | 2018-06-25 13:42:59 +0000 (Mon, 25 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-[tests/tgamma_inc.c] improve coverage
-
-------------------------------------------------------------------------
-r12857 | zimmerma | 2018-06-25 10:48:05 +0000 (Mon, 25 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-[tests/tgamma_inc.c] added coverage test
-
-------------------------------------------------------------------------
-r12856 | zimmerma | 2018-06-25 10:13:29 +0000 (Mon, 25 Jun 2018) | 4 lines
-Changed paths:
- M /trunk/src/gamma.c
- M /trunk/src/gamma_inc.c
- M /trunk/tests/tgamma_inc.c
-
-[src/gamma.c] added comment
-[src/gamma_inc.c] fixed bug for gamma_inc(-Inf, 0)
-[tests/tgamma_inc.c] added coverage tests
-
-------------------------------------------------------------------------
-r12855 | vlefevre | 2018-06-23 10:40:02 +0000 (Sat, 23 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Do not do specific CFLAGS settings for MS-Windows ICC.
-See <https://sympa.inria.fr/sympa/arc/mpfr/2018-06/msg00027.html>.
-------------------------------------------------------------------------
-r12854 | vlefevre | 2018-06-23 06:04:53 +0000 (Sat, 23 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Spelling in a comment.
-------------------------------------------------------------------------
-r12853 | vlefevre | 2018-06-23 00:43:45 +0000 (Sat, 23 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed change in r12847.
-------------------------------------------------------------------------
-r12852 | vlefevre | 2018-06-23 00:23:10 +0000 (Sat, 23 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Improved a test.
-------------------------------------------------------------------------
-r12851 | vlefevre | 2018-06-23 00:20:00 +0000 (Sat, 23 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Replaced d != d by DOUBLE_ISNAN (d).
-------------------------------------------------------------------------
-r12850 | vlefevre | 2018-06-23 00:17:09 +0000 (Sat, 23 Jun 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12849 | vlefevre | 2018-06-23 00:15:33 +0000 (Sat, 23 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_{d64,d128}.c] When MPFR_ERRDIVZERO is defined,
-disable tests that can trigger a FP exception DIVBYZERO or INVALID
-(issue detected with -DMPFR_TESTS_FPE_DIV -DMPFR_ERRDIVZERO).
-------------------------------------------------------------------------
-r12848 | vlefevre | 2018-06-22 21:44:41 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved a comment about union ieee_decimal128.
-------------------------------------------------------------------------
-r12847 | vlefevre | 2018-06-22 21:41:53 +0000 (Fri, 22 Jun 2018) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_d128.c
- M /trunk/tests/tget_set_d128.c
-
-Do not assume that the bit-field ordering for _Decimal128 is necessarily
-little endian or big endian (this is more than the usual endianness
-issue). If this cannot be detected, instead of failing or assuming a
-possibly wrong default, switch to the portable code.
-------------------------------------------------------------------------
-r12846 | zimmerma | 2018-06-22 15:36:25 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
-
-added mpfr_get_decimal128 and mpfr_set_decimal128 to the manual
-
-------------------------------------------------------------------------
-r12845 | zimmerma | 2018-06-22 15:04:33 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] test some random 16-byte inputs
-
-------------------------------------------------------------------------
-r12844 | zimmerma | 2018-06-22 15:00:37 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] test random inputs
-
-------------------------------------------------------------------------
-r12843 | zimmerma | 2018-06-22 14:39:39 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-impl.h
-
-[acinclude.m4] added configure test to determine the encoding of _Decimal128 (little or big endian)
-
-------------------------------------------------------------------------
-r12842 | zimmerma | 2018-06-22 14:01:06 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] added standard suffixes
-
-------------------------------------------------------------------------
-r12841 | zimmerma | 2018-06-22 13:56:17 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] fixed a test
-
-------------------------------------------------------------------------
-r12840 | zimmerma | 2018-06-22 13:13:55 +0000 (Fri, 22 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] removed TODO (done), added comment
-[tests/tget_set_d128.c] removed TODO (done)
-
-------------------------------------------------------------------------
-r12839 | zimmerma | 2018-06-22 13:11:53 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] added comment (like for set_d128.c)
-
-------------------------------------------------------------------------
-r12838 | zimmerma | 2018-06-22 12:44:16 +0000 (Fri, 22 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_d128.c
- M /trunk/src/get_d64.c
-
-[src/get_d64.c] improve comment
-[src/get_d128.c] likewise
-
-------------------------------------------------------------------------
-r12837 | zimmerma | 2018-06-22 12:38:26 +0000 (Fri, 22 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/set_d64.c
- M /trunk/tests/tget_set_d64.c
-
-[src/set_d64.c] also deal with non-canonical BID encoding
-[tests/tget_set_d64.c] added test with non-canonical BID encoding
-
-------------------------------------------------------------------------
-r12836 | vlefevre | 2018-06-22 12:19:47 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/get_d128.c
-
-[src/get_d128.c] Bug fix (buffer overflow detected by AddressSanitizer).
-------------------------------------------------------------------------
-r12835 | vlefevre | 2018-06-22 12:10:52 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_d128.c
- M /trunk/src/set_d128.c
-
-[src] Moved the FIXME comment from set_d128.c to get_d128.c since the
-bug occurs in mpfr_get_decimal128 according to the AddressSanitizer.
-------------------------------------------------------------------------
-r12834 | vlefevre | 2018-06-22 12:08:14 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Updated FIXME comment.
-------------------------------------------------------------------------
-r12833 | vlefevre | 2018-06-22 11:52:45 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Replaced a umul_ppmm by umul_hi, and removed an unused
-variable as a consequence.
-------------------------------------------------------------------------
-r12832 | vlefevre | 2018-06-22 11:42:30 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] Code improvement (like r12809 and r12828 in set_d128.c).
-------------------------------------------------------------------------
-r12831 | vlefevre | 2018-06-22 11:35:36 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] Removed unused variable for
-HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE (PowerPC).
-------------------------------------------------------------------------
-r12830 | vlefevre | 2018-06-22 11:33:33 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
-
-[src/invsqrt_limb.h] Avoid a "variable ‘_l’ set but not used" warning
-on some platforms, such as powerpc64le-unknown-linux-gnu.
-------------------------------------------------------------------------
-r12829 | vlefevre | 2018-06-22 11:28:46 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[src/invert_limb.h] Avoid a "variable ‘_l’ set but not used" warning
-on some platforms, such as powerpc64le-unknown-linux-gnu.
-------------------------------------------------------------------------
-r12828 | vlefevre | 2018-06-22 11:19:27 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Avoid "unused variable" warnings on platforms with DPD.
-------------------------------------------------------------------------
-r12827 | vlefevre | 2018-06-22 11:11:02 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] About union ieee_double_decimal64: removed an
-incorrect comment and added a TODO.
-------------------------------------------------------------------------
-r12826 | vlefevre | 2018-06-22 11:08:20 +0000 (Fri, 22 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_d128.c
- M /trunk/tests/tget_set_d128.c
-
-Changed union ieee_double_decimal128 to union ieee_decimal128 since this
-has nothing to do with double (unlike union ieee_double_decimal64). Also
-refactored code for this union definition.
-------------------------------------------------------------------------
-r12825 | vlefevre | 2018-06-22 10:50:47 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated TODO for DPD.
-------------------------------------------------------------------------
-r12824 | vlefevre | 2018-06-22 10:47:16 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added TODO for DPD (better structure definition).
-------------------------------------------------------------------------
-r12823 | vlefevre | 2018-06-22 10:42:20 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Execute BID code only with BID.
-------------------------------------------------------------------------
-r12822 | vlefevre | 2018-06-22 10:35:07 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Simplification and better portability.
-------------------------------------------------------------------------
-r12821 | zimmerma | 2018-06-22 10:25:16 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] added coverage tests for non-canonical BID encodings
-
-------------------------------------------------------------------------
-r12820 | zimmerma | 2018-06-22 10:00:40 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] improve last commit
-
-------------------------------------------------------------------------
-r12819 | zimmerma | 2018-06-22 09:56:32 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] improved a comment
-
-------------------------------------------------------------------------
-r12818 | vlefevre | 2018-06-22 09:26:00 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Re-added "while (...)" erroneously removed in r12817.
-------------------------------------------------------------------------
-r12817 | zimmerma | 2018-06-22 09:14:07 +0000 (Fri, 22 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] added comment
-[src/set_d128.c] likewise
-
-------------------------------------------------------------------------
-r12816 | zimmerma | 2018-06-22 09:00:47 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] avoid variable conflict for DPD
-
-------------------------------------------------------------------------
-r12815 | zimmerma | 2018-06-22 08:54:53 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] implement for DFD encoding
-
-------------------------------------------------------------------------
-r12814 | zimmerma | 2018-06-22 08:54:08 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] added comment and space
-
-------------------------------------------------------------------------
-r12813 | vlefevre | 2018-06-22 02:25:39 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Added a FIXME (stack-buffer-overflow).
-------------------------------------------------------------------------
-r12812 | vlefevre | 2018-06-22 01:57:01 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Corrected r12811.
-------------------------------------------------------------------------
-r12811 | vlefevre | 2018-06-22 01:09:21 +0000 (Fri, 22 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] _MPFR_IEEE_FLOATS code for BID: correctly support
-the decoded significand >= 10^34 cases (non-canonical encodings),
-which must be zero.
-------------------------------------------------------------------------
-r12810 | vlefevre | 2018-06-22 00:49:07 +0000 (Fri, 22 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
-
-[tests/{tget_set_d64.c,tget_set_d128.c}] TODO: Also test non-canonical
-encodings.
-------------------------------------------------------------------------
-r12809 | vlefevre | 2018-06-22 00:31:33 +0000 (Fri, 22 Jun 2018) | 5 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c]
- * Enable the _MPFR_IEEE_FLOATS code only for GMP_NUMB_BITS == 32 or 64
- (as the other values are not supported by this code).
- * Bug fix for GMP_NUMB_BITS == 32 (→ tget_set_d128 no longer fails).
- * Added an assertion corresponding to a comment.
-------------------------------------------------------------------------
-r12808 | vlefevre | 2018-06-22 00:21:38 +0000 (Fri, 22 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Fit on 80 columns.
-------------------------------------------------------------------------
-r12807 | vlefevre | 2018-06-21 21:47:12 +0000 (Thu, 21 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated a title comment (→ Decimal support).
-------------------------------------------------------------------------
-r12806 | vlefevre | 2018-06-21 21:45:01 +0000 (Thu, 21 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Corrected a comment.
-------------------------------------------------------------------------
-r12805 | zimmerma | 2018-06-21 19:26:13 +0000 (Thu, 21 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] added comments
-
-------------------------------------------------------------------------
-r12804 | zimmerma | 2018-06-21 19:15:09 +0000 (Thu, 21 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] remove debug stuff
-
-------------------------------------------------------------------------
-r12803 | zimmerma | 2018-06-21 19:13:17 +0000 (Thu, 21 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] assume little-endian double implies little-endian decimal128
-
-------------------------------------------------------------------------
-r12802 | vlefevre | 2018-06-21 17:59:46 +0000 (Thu, 21 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] FIXME for _Decimal128.
-------------------------------------------------------------------------
-r12801 | zimmerma | 2018-06-21 13:41:55 +0000 (Thu, 21 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_d128.c
- M /trunk/tests/tget_set_d128.c
-
-[src/set_d128.c] (partly) implement the _MPFR_IEEE_FLOATS case (BID only so far)
-[tests/tget_set_d128.c] added more tests
-
-------------------------------------------------------------------------
-r12800 | zimmerma | 2018-06-21 13:20:19 +0000 (Thu, 21 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] added comments
-
-------------------------------------------------------------------------
-r12799 | zimmerma | 2018-06-21 06:31:29 +0000 (Thu, 21 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_d128.c
-
-[src/get_d128.c] removed useless comment
-
-------------------------------------------------------------------------
-r12798 | zimmerma | 2018-06-20 17:01:09 +0000 (Wed, 20 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_d128.c
- M /trunk/tests/tget_set_d128.c
-
-[src/get_d128.c] avoid using doubles
-[tests/tget_set_d128.c] improve test coverage
-
-------------------------------------------------------------------------
-r12797 | zimmerma | 2018-06-20 14:53:41 +0000 (Wed, 20 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] improve test coverage
-
-------------------------------------------------------------------------
-r12796 | zimmerma | 2018-06-20 14:44:52 +0000 (Wed, 20 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] improve coverage
-
-------------------------------------------------------------------------
-r12795 | zimmerma | 2018-06-20 14:10:04 +0000 (Wed, 20 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- A /trunk/src/get_d128.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tget_set_d128.c
-
-added mpfr_get_decimal128 (still experimental)
-
-------------------------------------------------------------------------
-r12794 | zimmerma | 2018-06-20 14:08:37 +0000 (Wed, 20 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_d64.c
-
-[get_d64.c] added comments and simplified code
-
-------------------------------------------------------------------------
-r12792 | vlefevre | 2018-06-20 09:08:16 +0000 (Wed, 20 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
-
-[tests/{tget_set_d64.c,tget_set_d128.c}] Tests on powers of 10:
-test negative numbers too.
-------------------------------------------------------------------------
-r12791 | vlefevre | 2018-06-19 23:20:12 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about FP constants and native FP.
-------------------------------------------------------------------------
-r12790 | vlefevre | 2018-06-19 16:28:21 +0000 (Tue, 19 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check that preprocessing directives have no spaces
-before.
-------------------------------------------------------------------------
-r12789 | vlefevre | 2018-06-19 16:18:01 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Modified a comment.
-------------------------------------------------------------------------
-r12788 | vlefevre | 2018-06-19 15:12:40 +0000 (Tue, 19 Jun 2018) | 6 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Avoid double, which is unreliable with GCC
-in non-standard mode (see GCC bug 323 and the discussion in
-GCC bug 85957). But the failure in tget_set_d128 probably came from
-the fact that (_Decimal128) 0.1 is not 1/10 exactly (the double 0.1
-has about a 17-digit precision only, while _Decimal128 has more);
-this test now passes.
-------------------------------------------------------------------------
-r12787 | vlefevre | 2018-06-19 14:52:37 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Simplified code and added assertions.
-------------------------------------------------------------------------
-r12784 | vlefevre | 2018-06-19 12:53:11 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] Added a log message (like in set_d128.c).
-------------------------------------------------------------------------
-r12783 | vlefevre | 2018-06-19 12:47:28 +0000 (Tue, 19 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
-
-[src/{set_d64.c,set_d128.c}] Bug fix: use mpfr_strtofr instead of
-mpfr_set_str to get the ternary value.
-------------------------------------------------------------------------
-r12782 | vlefevre | 2018-06-19 12:38:35 +0000 (Tue, 19 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
-
-[tests/{tget_set_d64.c,tget_set_d128.c}] Added tests on powers of 10.
- * tget_set_d64 fails on negative due to a bad ternary value.
- * tget_set_d128 fails on negative due to bad value, etc.
-------------------------------------------------------------------------
-r12781 | vlefevre | 2018-06-19 11:47:27 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Test the flags too.
-------------------------------------------------------------------------
-r12780 | vlefevre | 2018-06-19 11:43:53 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Test more values.
-------------------------------------------------------------------------
-r12779 | vlefevre | 2018-06-19 11:38:05 +0000 (Tue, 19 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Converting an integer into _Decimal128 is better
-than converting a double into _Decimal128.
-------------------------------------------------------------------------
-r12778 | vlefevre | 2018-06-19 11:33:14 +0000 (Tue, 19 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Simplified the test, avoiding a bug in ICC 15
-at the same time (1.0D was regarded as 0).
-------------------------------------------------------------------------
-r12777 | vlefevre | 2018-06-19 11:29:13 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Fixed indentation.
-------------------------------------------------------------------------
-r12776 | vlefevre | 2018-06-19 11:17:02 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Decimal formats: output the encoding type (DPD/BID).
-------------------------------------------------------------------------
-r12775 | vlefevre | 2018-06-19 11:03:01 +0000 (Tue, 19 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Changed _GMP_IEEE_FLOATS to _MPFR_IEEE_FLOATS as per
-r10958 (in set_d128.c, currently in a comment due to r12772).
-------------------------------------------------------------------------
-r12774 | vlefevre | 2018-06-19 10:58:40 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Added a log message.
-------------------------------------------------------------------------
-r12773 | vlefevre | 2018-06-19 10:51:33 +0000 (Tue, 19 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d128.c
-
-[tests/tget_set_d128.c] Added an informative error message.
-------------------------------------------------------------------------
-r12772 | vlefevre | 2018-06-19 10:05:06 +0000 (Tue, 19 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Disable the _GMP_IEEE_FLOATS code, which is not
-complete yet and makes the compilation fail.
-------------------------------------------------------------------------
-r12771 | vlefevre | 2018-06-13 15:31:23 +0000 (Wed, 13 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Corrected year in copyright notice.
-------------------------------------------------------------------------
-r12770 | vlefevre | 2018-06-13 15:30:02 +0000 (Wed, 13 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/set_d128.c
-
-[src/set_d128.c] Minor improvements.
-------------------------------------------------------------------------
-r12769 | zimmerma | 2018-06-13 10:33:51 +0000 (Wed, 13 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tget_set_d128.c
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] added -v option to get verbose output
-[tests/tget_set_d128.c] likewise
-
-------------------------------------------------------------------------
-r12768 | vlefevre | 2018-06-13 10:06:15 +0000 (Wed, 13 Jun 2018) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Missing "r".
-------------------------------------------------------------------------
-r12767 | zimmerma | 2018-06-13 08:45:56 +0000 (Wed, 13 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] update for mpfr_set_decimal128
-
-------------------------------------------------------------------------
-r12766 | zimmerma | 2018-06-13 07:10:29 +0000 (Wed, 13 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mpfr.h
- A /trunk/src/set_d128.c
- M /trunk/src/set_d64.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_set_d128.c
-
-added mpfr_set_decimal128 (work in progress, not yet fully tested)
-
-------------------------------------------------------------------------
-r12765 | zimmerma | 2018-06-08 16:16:55 +0000 (Fri, 08 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] added branch coverage
-
-------------------------------------------------------------------------
-r12764 | vlefevre | 2018-06-07 12:17:31 +0000 (Thu, 07 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Moved some computations on the exponents earlier
-since they may yield an early overflow or underflow, and computing
-the division by b^e would be useless in such a case.
-------------------------------------------------------------------------
-r12763 | vlefevre | 2018-06-07 11:21:46 +0000 (Thu, 07 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Added a MPFR_ASSERTD and a FIXME on things that don't
-make much sense in the error analysis (still trying to understand…).
-------------------------------------------------------------------------
-r12762 | zimmerma | 2018-06-07 09:34:22 +0000 (Thu, 07 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/const_pi.c
-
-[src/const_pi.c] missing reference about Brent-Salamin
-
-------------------------------------------------------------------------
-r12761 | zimmerma | 2018-06-07 09:31:41 +0000 (Thu, 07 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.bib
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.bib] added reference
-
-------------------------------------------------------------------------
-r12759 | zimmerma | 2018-06-05 14:37:16 +0000 (Tue, 05 Jun 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] improve coverage of the UBF case in mpfr_sub
- (now coverage of sub.c is 100%)
-
-------------------------------------------------------------------------
-r12758 | vlefevre | 2018-06-05 10:35:04 +0000 (Tue, 05 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Updated TODO from r12755.
-------------------------------------------------------------------------
-r12757 | zimmerma | 2018-06-05 06:45:12 +0000 (Tue, 05 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/fmma.c
-
-[src/fmma.c] now mpfr_fmms calls mpfr_sub for a better coverage
-
-------------------------------------------------------------------------
-r12756 | vlefevre | 2018-06-04 15:06:35 +0000 (Mon, 04 Jun 2018) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Updated TODO from r12755.
-------------------------------------------------------------------------
-r12755 | vlefevre | 2018-06-04 14:49:50 +0000 (Mon, 04 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added a comment with a TODO about potentially dead code on
-some platforms.
-------------------------------------------------------------------------
-r12754 | vlefevre | 2018-06-04 12:18:51 +0000 (Mon, 04 Jun 2018) | 5 lines
-Changed paths:
- A /trunk/codespell.exclude
- M /trunk/codespell.ignore
- M /trunk/tools/mpfrlint
-
-codespell: simplified exceptions.
- * Added codespell.exclude file.
- * codespell.ignore: removed some words (particular cases).
- * tools/mpfrlint: use the codespell.exclude exclude file, and for
- the doc directory, replaced -S by an explicit list of files.
-------------------------------------------------------------------------
-r12753 | vlefevre | 2018-06-04 09:27:59 +0000 (Mon, 04 Jun 2018) | 1 line
-Changed paths:
- M /trunk/codespell.ignore
-
-[codespell.ignore] Also ignore "objext" and "tim" (codespell 1.13).
-------------------------------------------------------------------------
-r12752 | zimmerma | 2018-06-04 08:00:22 +0000 (Mon, 04 Jun 2018) | 5 lines
-Changed paths:
- M /trunk/src/sub1.c
- M /trunk/tests/tfmma.c
-
-[src/sub1.c] fixed a bug and solved a FIXME (underflow for UBFs)
-Note: this mostly reverts r12319, r12321, and the remaining FIXME
-from r12327.
-[tests/tfmma.c] added non-regression tests
-
-------------------------------------------------------------------------
-r12751 | vlefevre | 2018-06-02 22:39:37 +0000 (Sat, 02 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Concerning r12738, the safer code can be avoided
-with GCC in ISO C mode (__STRICT_ANSI__).
-------------------------------------------------------------------------
-r12749 | zimmerma | 2018-06-02 18:40:39 +0000 (Sat, 02 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[src/invert_limb.h] fixed two typos reported by Marco Bodrato
-
-------------------------------------------------------------------------
-r12748 | vlefevre | 2018-06-02 00:11:28 +0000 (Sat, 02 Jun 2018) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] For GCC, output __STRICT_ANSI__ when defined.
-------------------------------------------------------------------------
-r12747 | zimmerma | 2018-06-01 12:24:43 +0000 (Fri, 01 Jun 2018) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] fixed/improved comments
-
-------------------------------------------------------------------------
-r12746 | zimmerma | 2018-05-31 21:12:05 +0000 (Thu, 31 May 2018) | 2 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
-
-[src/invsqrt_limb.h] fixed typos in comments
-
-------------------------------------------------------------------------
-r12745 | vlefevre | 2018-05-31 20:09:45 +0000 (Thu, 31 May 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated a URL.
-------------------------------------------------------------------------
-r12744 | vlefevre | 2018-05-31 16:04:15 +0000 (Thu, 31 May 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed potential compilation failure with _Decimal64,
-detected with r12738.
-------------------------------------------------------------------------
-r12742 | vlefevre | 2018-05-31 14:46:31 +0000 (Thu, 31 May 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12740 | vlefevre | 2018-05-31 14:37:04 +0000 (Thu, 31 May 2018) | 1 line
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/INSTALL
- M /trunk/doc/algorithms.tex
- M /trunk/doc/mpfr.texi
- M /trunk/examples/sample.c
- M /trunk/mpfr.pc.in
- M /trunk/tests/tests.c
- M /trunk/tools/cfarm.sh
- M /trunk/tools/update-version
-
-Updated mpfr.org URL's to use https (except in ChangeLog and NEWS).
-------------------------------------------------------------------------
-r12738 | vlefevre | 2018-05-31 00:23:22 +0000 (Thu, 31 May 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] With GCC, select safer code for DOUBLE_ISNAN(x).
-------------------------------------------------------------------------
-r12734 | vlefevre | 2018-05-30 17:38:44 +0000 (Wed, 30 May 2018) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] http → https (for mpfr.org).
-------------------------------------------------------------------------
-r12733 | vlefevre | 2018-05-30 15:54:11 +0000 (Wed, 30 May 2018) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r12732 | vlefevre | 2018-05-30 15:53:47 +0000 (Wed, 30 May 2018) | 4 lines
-Changed paths:
- M /trunk/doc/faq.xsl
- M /trunk/doc/update-faq
-
-[doc] Workaround due to the lack of https support in libxml2
-and the fact that mpfr.org now uses https with HSTS.
- * faq.xsl: for the visual.css, use a local URL.
- * update-faq: download visual.css from mpfr.org first.
-------------------------------------------------------------------------
-r12731 | vlefevre | 2018-05-30 14:09:36 +0000 (Wed, 30 May 2018) | 1 line
-Changed paths:
- M /trunk/doc/update-faq
-
-[doc/update-faq] http → https
-------------------------------------------------------------------------
-r12724 | vlefevre | 2018-05-30 09:27:29 +0000 (Wed, 30 May 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a FIXME about DOUBLE_ISNAN and GCC.
-------------------------------------------------------------------------
-r12723 | vlefevre | 2018-05-28 16:34:37 +0000 (Mon, 28 May 2018) | 6 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Continued to review the new error analysis and code.
-Changes:
- * made the code more SSA-like (avoid a "y += ysize; y -= ysize;");
- * clarified comments;
- * use MPFR_LIMB_MSB;
- * added a FIXME on the error analysis.
-------------------------------------------------------------------------
-r12722 | vlefevre | 2018-05-28 13:54:52 +0000 (Mon, 28 May 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added info about shell portability, and in particular
-about quotes (covering changes in r5659, r6128, r12711 and r12721).
-------------------------------------------------------------------------
-r12721 | vlefevre | 2018-05-28 13:52:00 +0000 (Mon, 28 May 2018) | 2 lines
-Changed paths:
- M /trunk/tools/ck-clz_tab
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/update-version
-
-[tools/{ck-clz_tab,ck-copyright-notice,ck-mparam,update-version}] Fixed
-non-portable quote nesting in backticks.
-------------------------------------------------------------------------
-r12717 | vlefevre | 2018-05-28 11:05:54 +0000 (Mon, 28 May 2018) | 3 lines
-Changed paths:
- M /trunk/examples/can_round.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
-
-[examples] Added "mpfr_free_cache ();" at the end of all programs,
-as this is something that should be done systematically (at least
-to detect memory leaks with valgrind).
-------------------------------------------------------------------------
-r12716 | vlefevre | 2018-05-25 15:25:27 +0000 (Fri, 25 May 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Started to review the new error analysis and code
-(r12705,12706). Minor improvements.
-------------------------------------------------------------------------
-r12715 | vlefevre | 2018-05-25 14:46:42 +0000 (Fri, 25 May 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpn_exp.c
-
-[src/{mpfr-impl.h,mpn_exp.c}] Changed the return type of mpfr_mpn_exp
-from long to int for consistency with the mpfr_mpn_exp code and with
-strtofr.c (which expects an int).
-------------------------------------------------------------------------
-r12714 | vlefevre | 2018-05-25 14:40:40 +0000 (Fri, 25 May 2018) | 1 line
-Changed paths:
- M /trunk/src/mpn_exp.c
-
-[src/mpn_exp.c] Code cleanup and protection against integer overflow.
-------------------------------------------------------------------------
-r12713 | vlefevre | 2018-05-24 14:35:51 +0000 (Thu, 24 May 2018) | 1 line
-Changed paths:
- M /trunk/src/hypot.c
-
-[src/hypot.c] Do bitwise operations in unsigned arithmetic.
-------------------------------------------------------------------------
-r12712 | vlefevre | 2018-05-24 14:28:57 +0000 (Thu, 24 May 2018) | 1 line
-Changed paths:
- M /trunk/src/hypot.c
-
-[src/hypot.c] Added 2 TODO.
-------------------------------------------------------------------------
-r12711 | vlefevre | 2018-05-23 14:34:10 +0000 (Wed, 23 May 2018) | 3 lines
-Changed paths:
- M /trunk/tools/ck-clz_tab
- M /trunk/tools/ck-copyright-notice
-
-[tools/{ck-clz_tab,ck-copyright-notice}] Changed the POSIX $(…) to `…`
-for Bourne shell compatibility (as under Solaris 10).
-Note: these scripts are called via dist-hook for "make dist".
-------------------------------------------------------------------------
-r12710 | vlefevre | 2018-05-22 07:41:58 +0000 (Tue, 22 May 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment for UBF.
-------------------------------------------------------------------------
-r12709 | vlefevre | 2018-05-22 07:32:18 +0000 (Tue, 22 May 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment about UBF and alignment requirements.
-------------------------------------------------------------------------
-r12708 | vlefevre | 2018-05-17 00:42:02 +0000 (Thu, 17 May 2018) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Removed TODO added in r12681, now obsolete.
-------------------------------------------------------------------------
-r12707 | vlefevre | 2018-05-16 15:17:09 +0000 (Wed, 16 May 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r12706 | zimmerma | 2018-05-16 14:43:31 +0000 (Wed, 16 May 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] revisit error analysis in the division case (end)
-
-------------------------------------------------------------------------
-r12705 | zimmerma | 2018-05-15 16:10:08 +0000 (Tue, 15 May 2018) | 3 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] revisit error analysis in the division case (work in progress,
- not yet finished)
-
-------------------------------------------------------------------------
-r12702 | vlefevre | 2018-05-09 11:21:11 +0000 (Wed, 09 May 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Updated the comment added in r12701.
-------------------------------------------------------------------------
-r12701 | vlefevre | 2018-05-09 11:16:19 +0000 (Wed, 09 May 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added a comment about the bug fixed in r10697:
-bug20180217 is a non-regression test for this bug.
-------------------------------------------------------------------------
-r12698 | vlefevre | 2018-05-02 15:14:32 +0000 (Wed, 02 May 2018) | 4 lines
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-[tests/tstckintc.c] Avoid false warnings with -Wcast-align=strict from
-GCC 8.1 by adding casts "(long *) (void *)", still allowing checks of
-other alignment requirements (which are not handled by the tstckintc.c
-code).
-------------------------------------------------------------------------
-r12697 | vlefevre | 2018-05-02 14:16:58 +0000 (Wed, 02 May 2018) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] + Use GCC's nonnull and returns_nonnull attributes.
-------------------------------------------------------------------------
-r12696 | vlefevre | 2018-05-02 12:31:59 +0000 (Wed, 02 May 2018) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a note on _Decimal64 detection.
-------------------------------------------------------------------------
-r12691 | vlefevre | 2018-04-30 15:24:36 +0000 (Mon, 30 Apr 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added info about spelling.
-------------------------------------------------------------------------
-r12690 | vlefevre | 2018-04-30 15:18:16 +0000 (Mon, 30 Apr 2018) | 5 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/random_deviate.c
- M /trunk/tests/teint.c
- M /trunk/tests/tversion.c
-
-Corrected "runtime" to "run time" (noun) or "run-time" (adjective)
-when it means the time at which the program is run.
-See:
- https://gcc.gnu.org/codingconventions.html#Spelling
- https://en.wikipedia.org/wiki/Run_time
-------------------------------------------------------------------------
-r12689 | vlefevre | 2018-04-27 15:39:52 +0000 (Fri, 27 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Potentially unnecessary code: comes from r8384.
-------------------------------------------------------------------------
-r12688 | vlefevre | 2018-04-27 15:20:11 +0000 (Fri, 27 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Updated TODO about potentially unnecessary code.
-------------------------------------------------------------------------
-r12687 | vlefevre | 2018-04-27 15:07:18 +0000 (Fri, 27 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Updated TODO about potentially unnecessary code,
-showing that this code probably increases the error bound (errors
-accumulate instead of compensating without this code).
-------------------------------------------------------------------------
-r12686 | vlefevre | 2018-04-27 11:17:16 +0000 (Fri, 27 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Added a TODO about potentially unnecessary code.
-------------------------------------------------------------------------
-r12685 | vlefevre | 2018-04-27 08:50:28 +0000 (Fri, 27 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Corrected/updated comments and added a log message.
-------------------------------------------------------------------------
-r12684 | vlefevre | 2018-04-27 08:34:58 +0000 (Fri, 27 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Corrected a comment (exp_base and exp_bin description).
-------------------------------------------------------------------------
-r12683 | vlefevre | 2018-04-27 08:22:59 +0000 (Fri, 27 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Added a FIXME: possible bug in very special cases with
-large exponents, 32-bit mpfr_exp_t and very long strings.
-------------------------------------------------------------------------
-r12682 | vlefevre | 2018-04-27 07:40:21 +0000 (Fri, 27 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Added/clarified comments.
-------------------------------------------------------------------------
-r12681 | vlefevre | 2018-04-27 01:36:48 +0000 (Fri, 27 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added a TODO related to the bug fixed in r12573.
-------------------------------------------------------------------------
-r12678 | vlefevre | 2018-04-26 15:10:36 +0000 (Thu, 26 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Coding style.
-------------------------------------------------------------------------
-r12677 | vlefevre | 2018-04-26 15:07:36 +0000 (Thu, 26 Apr 2018) | 5 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] For mpfr_cmp_q, improved the test where x is NaN by
-checking all the flags (not just erange) and added a test where y is
-a NaN rational.
-Note: this could be used to detect 2 bugs, fixed in r12343 and r12499,
-respectively.
-------------------------------------------------------------------------
-r12676 | vlefevre | 2018-04-26 14:08:10 +0000 (Thu, 26 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Removed a r2 != MPFR_RNDF test and added 3 TODO's
-to support r2 == MPFR_RNDF in some other tests.
-------------------------------------------------------------------------
-r12646 | vlefevre | 2018-04-24 09:46:03 +0000 (Tue, 24 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Clarified a comment (the "if" is part of the code,
-not the English word).
-------------------------------------------------------------------------
-r12645 | zimmerma | 2018-04-24 08:57:53 +0000 (Tue, 24 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] added comment about MPN_FILL
-
-------------------------------------------------------------------------
-r12644 | vlefevre | 2018-04-20 09:17:15 +0000 (Fri, 20 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/out_str.c
-
-[src/out_str.c] Check for integer overflow (here, a minor issue).
-------------------------------------------------------------------------
-r12643 | vlefevre | 2018-04-20 09:10:27 +0000 (Fri, 20 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/out_str.c
-
-[src/out_str.c] Support mpfr_exp_t larger than long (with mpfr_eexp_t).
-------------------------------------------------------------------------
-r12641 | vlefevre | 2018-04-19 15:13:10 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added tdot to svn:ignore property.
-------------------------------------------------------------------------
-r12640 | vlefevre | 2018-04-19 15:10:52 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdot.c
-
-[tests/tdot.c] Various improvements.
-------------------------------------------------------------------------
-r12639 | vlefevre | 2018-04-19 14:57:05 +0000 (Thu, 19 Apr 2018) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/dot.c
-
-[doc/mpfr.texi] Note that mpfr_dot does not yet handle intermediate
-underflows either.
-[src/dot.c] Changed an MPFR_ASSERTD to MPFR_ASSERTN since the assertion
-is not satisfied on some user inputs. Minor improvements.
-------------------------------------------------------------------------
-r12638 | vlefevre | 2018-04-19 14:42:21 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added mpfr_dot.
-------------------------------------------------------------------------
-r12637 | vlefevre | 2018-04-19 14:41:42 +0000 (Thu, 19 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] In the added functions, note that mpfr_dot is incomplete
-and experimental.
-------------------------------------------------------------------------
-r12636 | vlefevre | 2018-04-19 14:31:39 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Code style.
-------------------------------------------------------------------------
-r12635 | vlefevre | 2018-04-19 14:30:19 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12634 | vlefevre | 2018-04-19 14:29:41 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdot.c
-
-[tests/tdot.c] Code style.
-------------------------------------------------------------------------
-r12633 | zimmerma | 2018-04-19 14:21:48 +0000 (Thu, 19 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/dot.c
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/tdot.c
-
-added mpfr_dot
-
-------------------------------------------------------------------------
-r12631 | vlefevre | 2018-04-19 13:32:03 +0000 (Thu, 19 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tests/tget_flt.c] Correction about the use of mpfr_signbit, in case
-the implementation would change.
-------------------------------------------------------------------------
-r12628 | vlefevre | 2018-04-19 13:09:19 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Minor code improvement.
-------------------------------------------------------------------------
-r12627 | vlefevre | 2018-04-19 12:56:07 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Code formatting.
-------------------------------------------------------------------------
-r12626 | vlefevre | 2018-04-19 12:55:10 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Clarified a comment and slightly improved code.
-------------------------------------------------------------------------
-r12625 | vlefevre | 2018-04-19 12:37:50 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Typo in a comment.
-------------------------------------------------------------------------
-r12623 | vlefevre | 2018-04-19 10:15:25 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Added test_underflow5.
-------------------------------------------------------------------------
-r12622 | vlefevre | 2018-04-19 10:09:44 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Minor correction for test_underflow4.
-------------------------------------------------------------------------
-r12620 | vlefevre | 2018-04-19 07:01:09 +0000 (Thu, 19 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Added a comment.
-------------------------------------------------------------------------
-r12619 | vlefevre | 2018-04-18 23:24:57 +0000 (Wed, 18 Apr 2018) | 6 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Added test_underflow4. This allows to show that the
-bound MAX (MPFR_PREC (z), MPFR_PREC (s) + 1) in fma.c is optimal:
- * If one subtract 1 from the 1st term MPFR_PREC (z), a failure
- occurs in test_underflow4.
- * If one subtract 1 from the 2nd term MPFR_PREC (s) + 1, a failure
- occurs in test_underflow2.
-------------------------------------------------------------------------
-r12618 | vlefevre | 2018-04-18 15:19:33 +0000 (Wed, 18 Apr 2018) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] For the ICC check, also test __INTEL_COMPILER.
-------------------------------------------------------------------------
-r12617 | vlefevre | 2018-04-18 15:15:25 +0000 (Wed, 18 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Corrected comment for the ICC check (GCC is no longer
-disabled since r5720).
-------------------------------------------------------------------------
-r12616 | zimmerma | 2018-04-18 12:16:49 +0000 (Wed, 18 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] enable some code that now works with ICC (tested with ICC 14)
-[TODO] removed item
-
-------------------------------------------------------------------------
-r12615 | vlefevre | 2018-04-18 11:58:30 +0000 (Wed, 18 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Updated a comment about __ICC.
-------------------------------------------------------------------------
-r12614 | zimmerma | 2018-04-18 11:32:15 +0000 (Wed, 18 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed item that we won't implement
-
-------------------------------------------------------------------------
-r12613 | zimmerma | 2018-04-18 11:25:44 +0000 (Wed, 18 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed done item (UBF)
-
-------------------------------------------------------------------------
-r12612 | zimmerma | 2018-04-17 19:50:44 +0000 (Tue, 17 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] RNDF is done
-
-------------------------------------------------------------------------
-r12611 | zimmerma | 2018-04-17 19:46:45 +0000 (Tue, 17 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed an obsolete item
-
-------------------------------------------------------------------------
-r12610 | zimmerma | 2018-04-17 19:42:39 +0000 (Tue, 17 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] log_ui is done
-
-------------------------------------------------------------------------
-r12609 | vlefevre | 2018-04-17 09:30:16 +0000 (Tue, 17 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect the use of mpfr_div_2exp and mpfr_mul_2exp.
-------------------------------------------------------------------------
-r12608 | vlefevre | 2018-04-17 01:57:39 +0000 (Tue, 17 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/taway.c
-
-[tests/{reuse.c,taway.c}] Added mpfr_div_2ui and mpfr_mul_2ui.
-Note: si functions are not tested yet.
-------------------------------------------------------------------------
-r12607 | vlefevre | 2018-04-17 01:51:13 +0000 (Tue, 17 Apr 2018) | 4 lines
-Changed paths:
- M /trunk/src/atan.c
- M /trunk/src/bernoulli.c
- M /trunk/src/const_euler.c
- M /trunk/src/digamma.c
- M /trunk/src/log_ui.c
- M /trunk/src/sin_cos.c
- M /trunk/src/zeta.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
-
-Replaced mpfr_mul_2exp & mpfr_div_2exp by mpfr_mul_2ui & mpfr_div_2ui,
-respectively (for the tests, except in reuse.c and in taway.c).
-Note: As documented, mpfr_mul_2exp & mpfr_div_2exp are only kept for
-compatibility with MPF; mpfr_mul_2ui & mpfr_div_2ui are preferred.
-------------------------------------------------------------------------
-r12606 | vlefevre | 2018-04-16 15:07:16 +0000 (Mon, 16 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] + function to reduce the precision of a variable, with a
-ternary value in input, i.e. taking care of double rounding.
-------------------------------------------------------------------------
-r12605 | vlefevre | 2018-04-16 14:48:20 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] More tests for test_underflow2.
-------------------------------------------------------------------------
-r12604 | vlefevre | 2018-04-16 14:41:06 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Corrected r12603 for test_underflow2.
-------------------------------------------------------------------------
-r12603 | vlefevre | 2018-04-16 14:20:23 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] More tests for test_underflow2.
-------------------------------------------------------------------------
-r12602 | vlefevre | 2018-04-16 13:54:22 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Updated easy case of underflow.
-------------------------------------------------------------------------
-r12601 | vlefevre | 2018-04-16 11:43:32 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Updated a comment for test_underflow2.
-------------------------------------------------------------------------
-r12600 | vlefevre | 2018-04-16 11:37:23 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] In test_underflow2, also test different signs.
-------------------------------------------------------------------------
-r12599 | vlefevre | 2018-04-16 10:36:12 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Updated svn:ignore property.
-------------------------------------------------------------------------
-r12598 | vlefevre | 2018-04-16 09:31:24 +0000 (Mon, 16 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": check also with
--DMPFR_GROUP_STATIC_SIZE=0 to detect memory leaks.
-------------------------------------------------------------------------
-r12597 | vlefevre | 2018-04-16 09:09:00 +0000 (Mon, 16 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Forgot a MPFR_GROUP_CLEAR.
-------------------------------------------------------------------------
-r12596 | vlefevre | 2018-04-16 09:05:01 +0000 (Mon, 16 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Simplified the underflow case by using UBF in the
-difficult cases, resolving the remaining FIXME's.
-------------------------------------------------------------------------
-r12595 | vlefevre | 2018-04-13 14:44:41 +0000 (Fri, 13 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] More tests for test_overflow3 by adding loops on j and k.
-------------------------------------------------------------------------
-r12594 | vlefevre | 2018-04-13 13:43:49 +0000 (Fri, 13 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Extended test_overflow3 to reversed signs.
-------------------------------------------------------------------------
-r12593 | vlefevre | 2018-04-13 13:29:31 +0000 (Fri, 13 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Do all the overflow/underflow tests in exponent ranges
-[-1024,1024], [MPFR_EMIN_MIN,MPFR_EMAX_MAX], and the default one.
-------------------------------------------------------------------------
-r12592 | vlefevre | 2018-04-13 10:17:33 +0000 (Fri, 13 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-sassert.h
-
-[src/mpfr-sassert.h] Added a comment.
-------------------------------------------------------------------------
-r12591 | vlefevre | 2018-04-12 19:04:45 +0000 (Thu, 12 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Forgot a cast for C++ compatibility.
-------------------------------------------------------------------------
-r12590 | vlefevre | 2018-04-12 14:50:25 +0000 (Thu, 12 Apr 2018) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Reverted r12588: there should be no alignment issues
-with UBF, since an UBF (__mpfr_ubf_struct) is sometimes regarded as a
-MPFR number (__mpfr_struct) but not the opposite (or this is just back
-to __mpfr_ubf_struct).
-------------------------------------------------------------------------
-r12589 | vlefevre | 2018-04-12 14:17:55 +0000 (Thu, 12 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Simplified the difficult part of the overflow case by
-using UBF (this also fixes corner cases in huge precision).
-------------------------------------------------------------------------
-r12588 | vlefevre | 2018-04-12 13:46:10 +0000 (Thu, 12 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a note about alignment constraints for UBF.
-------------------------------------------------------------------------
-r12587 | vlefevre | 2018-04-12 13:34:16 +0000 (Thu, 12 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
- M /trunk/tests/tfma.c
-
-[src/fma.c] Fixed sign related bug in overflow case.
-[tests/tfma.c] Added test_overflow5 test for this bug.
-------------------------------------------------------------------------
-r12586 | vlefevre | 2018-04-12 12:52:20 +0000 (Thu, 12 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] In test_overflow4, also test different signs.
-------------------------------------------------------------------------
-r12585 | vlefevre | 2018-04-12 10:27:59 +0000 (Thu, 12 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Correction for the FIXME from r12403 concerning r12396.
-The test added in tests/tfma.c r12584 no longer fails.
-------------------------------------------------------------------------
-r12584 | vlefevre | 2018-04-12 10:21:00 +0000 (Thu, 12 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Added a test that fails. It corresponds to the FIXME
-in src/fma.c about the test on MPFR_GET_EXP (u) - MPFR_GET_EXP (z).
-------------------------------------------------------------------------
-r12583 | vlefevre | 2018-04-12 08:29:47 +0000 (Thu, 12 Apr 2018) | 4 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Removed a redundant test since the second condition of
-the && expression implies the first one.
-Note: This test came from the time when the precision type was unsigned,
-in order to make sure that the result of the subtraction was positive.
-------------------------------------------------------------------------
-r12575 | vlefevre | 2018-04-11 12:40:33 +0000 (Wed, 11 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output "Generic ABI code" info (MPFR_GENERIC_ABI).
-------------------------------------------------------------------------
-r12574 | vlefevre | 2018-04-11 09:12:00 +0000 (Wed, 11 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] English usage in a comment.
-------------------------------------------------------------------------
-r12573 | zimmerma | 2018-04-11 06:51:30 +0000 (Wed, 11 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] fixed bug in corner cases
-
-------------------------------------------------------------------------
-r12572 | vlefevre | 2018-04-10 15:51:23 +0000 (Tue, 10 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Reverted r12569: this is wrong with a 32-bit ABI.
-------------------------------------------------------------------------
-r12571 | vlefevre | 2018-04-10 13:12:40 +0000 (Tue, 10 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Added a FIXME.
-------------------------------------------------------------------------
-r12570 | zimmerma | 2018-04-10 12:34:44 +0000 (Tue, 10 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] added more comments
-
-------------------------------------------------------------------------
-r12569 | zimmerma | 2018-04-10 08:31:31 +0000 (Tue, 10 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-[src/strtofr.c] replaced dead code by an assert
-[tests/tstrtofr.c] fixed bug20170308 and added coverage test
-
-------------------------------------------------------------------------
-r12568 | zimmerma | 2018-04-09 14:49:32 +0000 (Mon, 09 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] removed dead code (and added explanation)
-
-------------------------------------------------------------------------
-r12567 | zimmerma | 2018-04-09 08:02:45 +0000 (Mon, 09 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] completed a comment
-
-------------------------------------------------------------------------
-r12566 | zimmerma | 2018-04-06 16:19:29 +0000 (Fri, 06 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-[src/strtofr.c] added comment
-[tests/tstrtofr.c] improve coverage
-
-------------------------------------------------------------------------
-r12565 | vlefevre | 2018-04-06 15:21:45 +0000 (Fri, 06 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Replaced an incorrect comment by an assertion.
-------------------------------------------------------------------------
-r12564 | vlefevre | 2018-04-06 15:12:54 +0000 (Fri, 06 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Check validity of flag.
-------------------------------------------------------------------------
-r12563 | zimmerma | 2018-04-06 15:11:13 +0000 (Fri, 06 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] now 98.2% of test coverage
-
-------------------------------------------------------------------------
-r12562 | vlefevre | 2018-04-06 15:07:51 +0000 (Fri, 06 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Tests in lexicographic order.
-------------------------------------------------------------------------
-r12561 | zimmerma | 2018-04-06 15:02:12 +0000 (Fri, 06 Apr 2018) | 4 lines
-Changed paths:
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/tests/tcan_round.c
-
-[src/round_prec.c] added comments
-[src/round_raw_generic.c] removed dead code
-[tests/tcan_round.c] improve coverage
-
-------------------------------------------------------------------------
-r12560 | zimmerma | 2018-04-06 14:46:04 +0000 (Fri, 06 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tprec_round.c (from /trunk/tests/tround_prec.c:12559)
- D /trunk/tests/tround_prec.c
-
-renamed tround_prec.c to tprec_round.c
-
-------------------------------------------------------------------------
-r12559 | zimmerma | 2018-04-06 13:43:27 +0000 (Fri, 06 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] removed some dead code (if rnd1 = rnd2 and the case
- rnd2 = RNDN was already treated, we cannot have rnd1 = RNDN)
-
-------------------------------------------------------------------------
-r12558 | vlefevre | 2018-04-06 10:02:31 +0000 (Fri, 06 Apr 2018) | 5 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Fixed a test:
- * For this test, unsigned long and mpfr_exp_t must both have at least
- 64 bits.
- * Use a hardcoded emax, otherwise the test could fail for mpfr_exp_t
- larger than 64 bits (one would not have an overflow as expected).
-------------------------------------------------------------------------
-r12557 | vlefevre | 2018-04-06 09:43:31 +0000 (Fri, 06 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Fixed the code in case the size of the mpfr_exp_t type
-would be larger than 256 bits. This is also semantically better.
-------------------------------------------------------------------------
-r12556 | vlefevre | 2018-04-06 09:40:57 +0000 (Fri, 06 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/mpfr-test.h
-
-Moved the MAX, MIN and ABS macros from tests/mpfr-test.h to
-src/mpfr-impl.h (they can be useful...).
-------------------------------------------------------------------------
-r12555 | vlefevre | 2018-04-06 09:20:56 +0000 (Fri, 06 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] More tests for (-2)^(2^i + 1), not just with i = 256.
-------------------------------------------------------------------------
-r12554 | zimmerma | 2018-04-06 08:57:26 +0000 (Fri, 06 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] modified a test for better coverage
-
-------------------------------------------------------------------------
-r12553 | vlefevre | 2018-04-06 08:47:09 +0000 (Fri, 06 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Corrected a comment (again).
-------------------------------------------------------------------------
-r12552 | vlefevre | 2018-04-06 08:45:56 +0000 (Fri, 06 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Corrected a comment.
-------------------------------------------------------------------------
-r12551 | zimmerma | 2018-04-06 08:11:21 +0000 (Fri, 06 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] simplified case x=2^b and y < 0
-
-------------------------------------------------------------------------
-r12550 | vlefevre | 2018-04-05 14:29:38 +0000 (Thu, 05 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Updated comments.
-------------------------------------------------------------------------
-r12549 | vlefevre | 2018-04-05 14:15:16 +0000 (Thu, 05 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Reverted r12541 (which yielded a failure in tpow_all),
-re-indented, and added a comment concerning the failing case.
-------------------------------------------------------------------------
-r12548 | zimmerma | 2018-04-05 07:28:05 +0000 (Thu, 05 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/round_prec.c
- M /trunk/tests/tcan_round.c
-
-[src/round_prec.c] fixed a bug (to be reviewed)
-[tests/tcan_round.c] added coverage tests
-
-------------------------------------------------------------------------
-r12547 | zimmerma | 2018-04-05 06:32:30 +0000 (Thu, 05 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tests/ttan.c
-
-[tests/ttan.c] improve coverage (and also of round_near_x)
-
-------------------------------------------------------------------------
-r12546 | zimmerma | 2018-04-05 06:01:20 +0000 (Thu, 05 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] fixed typo
-
-------------------------------------------------------------------------
-r12545 | vlefevre | 2018-04-04 16:47:10 +0000 (Wed, 04 Apr 2018) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Coverage is specific to x86_64 due to the various #if.
-------------------------------------------------------------------------
-r12544 | vlefevre | 2018-04-04 16:44:54 +0000 (Wed, 04 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Corrected indentation.
-------------------------------------------------------------------------
-r12543 | zimmerma | 2018-04-04 16:34:31 +0000 (Wed, 04 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] coverage is now 98.1%
-
-------------------------------------------------------------------------
-r12542 | zimmerma | 2018-04-04 16:31:38 +0000 (Wed, 04 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] added a comment
-
-------------------------------------------------------------------------
-r12541 | zimmerma | 2018-04-04 16:21:33 +0000 (Wed, 04 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/pow.c
- M /trunk/tests/tpow.c
-
-[src/pow.c] removed some dead code (with comment explaining why)
-[tests/tpow.c] added a test
-
-------------------------------------------------------------------------
-r12540 | zimmerma | 2018-04-04 15:31:32 +0000 (Wed, 04 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/pow.c
- M /trunk/tests/tpow.c
-
-[src/pow.c] simplify code for prec=1
-[tests/tpow.c] added tests for prec=1
-
-------------------------------------------------------------------------
-r12539 | zimmerma | 2018-04-03 15:28:21 +0000 (Tue, 03 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] added macros for Microsoft compiler
-
-------------------------------------------------------------------------
-r12538 | vlefevre | 2018-04-03 13:25:29 +0000 (Tue, 03 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tools/check_mparam.c
-
-[tools/check_mparam.c] Added a copyright notice.
-------------------------------------------------------------------------
-r12537 | vlefevre | 2018-04-03 13:20:13 +0000 (Tue, 03 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Added tools/check_mparam.c and tools/ck-mparam
-to EXTRA_DIST since tools/ck-mparam is now run in dist-hook.
-------------------------------------------------------------------------
-r12536 | vlefevre | 2018-04-03 13:09:08 +0000 (Tue, 03 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Do not output a useless "PASS ..." line at the end.
-------------------------------------------------------------------------
-r12535 | vlefevre | 2018-04-03 13:07:14 +0000 (Tue, 03 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Update of the "check" rule:
- * Output svnversion info when applicable.
- * Do not echo "cat tversion.log 2> /dev/null || true".
-------------------------------------------------------------------------
-r12534 | vlefevre | 2018-04-03 11:08:38 +0000 (Tue, 03 Apr 2018) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Added missing comments for dist-hook.
-------------------------------------------------------------------------
-r12533 | vlefevre | 2018-04-03 11:05:23 +0000 (Tue, 03 Apr 2018) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Run ck-mparam in dist-hook (for "make dist").
-------------------------------------------------------------------------
-r12532 | vlefevre | 2018-04-03 11:02:41 +0000 (Tue, 03 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tools/ck-mparam
-
-[tools/ck-mparam] Commented out the old gcc-specific test since the
-new one is strictly more powerful. No longer depend on gcc.
-------------------------------------------------------------------------
-r12531 | vlefevre | 2018-04-03 10:57:37 +0000 (Tue, 03 Apr 2018) | 1 line
-Changed paths:
- M /trunk/tools/ck-mparam
-
-[tools/ck-mparam] Also check the mparam.h files with check_mparam.c.
-------------------------------------------------------------------------
-r12530 | vlefevre | 2018-04-03 10:48:34 +0000 (Tue, 03 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tools/check_mparam.c
-
-[tools/check_mparam.c] C89 compatibility. Return an error code
-(useful for scripts).
-------------------------------------------------------------------------
-r12529 | vlefevre | 2018-04-03 10:45:20 +0000 (Tue, 03 Apr 2018) | 2 lines
-Changed paths:
- M /trunk/tools/check_mparam.c
-
-[tools/check_mparam.c] A pathname of the mparam.h file can now be
-provided with -DMPARAM='"..."' when compiling.
-------------------------------------------------------------------------
-r12528 | vlefevre | 2018-04-03 10:38:15 +0000 (Tue, 03 Apr 2018) | 3 lines
-Changed paths:
- D /misc/check_mparam.c
- A /trunk/tools/check_mparam.c (from /misc/check_mparam.c:12527)
-
-Moved misc/check_mparam.c into trunk/tools: it will be useful for
-"make dist" in order to make sure that all mparam.h files are OK
-before a release.
-------------------------------------------------------------------------
-r12527 | vlefevre | 2018-04-03 10:31:30 +0000 (Tue, 03 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Re-enable the change done in r12382. This is allowed
-after the fix in generic/mparam.h r12525 (this file was hand written
-and did not satisfy the current constraints).
-------------------------------------------------------------------------
-r12525 | zimmerma | 2018-04-03 09:39:30 +0000 (Tue, 03 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/generic/mparam.h
-
-[generic/mparam.h] ensure divhigh_ktab[n] is 0 or < n-1, as now required
- since commit r12382
-
-------------------------------------------------------------------------
-r12524 | vlefevre | 2018-04-02 23:22:02 +0000 (Mon, 02 Apr 2018) | 1 line
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Code style / indentation. Added a comment.
-------------------------------------------------------------------------
-r12523 | vlefevre | 2018-04-02 23:04:08 +0000 (Mon, 02 Apr 2018) | 3 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Reverting r12382 because divhigh_ktab[n] == n can
-happen. Note: this probably lacks documentation; moreover, testing
-that these tables satisfy the requirements would be useful.
-------------------------------------------------------------------------
-r12522 | vlefevre | 2018-03-31 01:07:26 +0000 (Sat, 31 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/inp_str.c
-
-[src/inp_str.c] Handle size_t overflow, empty string (after skipping
-spaces), and I/O errors (as opposed to end-of-file).
-------------------------------------------------------------------------
-r12521 | zimmerma | 2018-03-30 12:28:40 +0000 (Fri, 30 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/inp_str.c
-
-[src/inp_str.c] disallow stream=NULL (cf r12520)
-
-------------------------------------------------------------------------
-r12520 | zimmerma | 2018-03-30 09:16:17 +0000 (Fri, 30 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/out_str.c
-
-[src/out_str.c] the behavior on a null stream is unspecified (cf r12519)
-
-------------------------------------------------------------------------
-r12519 | vlefevre | 2018-03-30 08:51:22 +0000 (Fri, 30 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tests/tout_str.c
-
-Reverted r12516: the behavior on a null stream is unspecified.
-------------------------------------------------------------------------
-r12518 | zimmerma | 2018-03-30 07:09:45 +0000 (Fri, 30 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] restrict a test to 64-bit exponent
-
-------------------------------------------------------------------------
-r12517 | zimmerma | 2018-03-29 15:42:09 +0000 (Thu, 29 Mar 2018) | 3 lines
-Changed paths:
- M /trunk/src/pow.c
- M /trunk/tests/tpow.c
-
-[src/pow.c] added comment
-[tests/tpow.c] improve coverage
-
-------------------------------------------------------------------------
-r12516 | zimmerma | 2018-03-29 14:18:14 +0000 (Thu, 29 Mar 2018) | 5 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-[tests/tout_str.c] improve coverage (I don't know how to avoid printing to
- stdout, but since "make check" no longer shows the test
- outputs, this should be fine). However I don't know how
- to do the same for mpfr_inp_str...
-
-------------------------------------------------------------------------
-r12515 | zimmerma | 2018-03-29 13:24:17 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-[tests/tconst_pi.c] forgotten line in commit 12512
-
-------------------------------------------------------------------------
-r12514 | zimmerma | 2018-03-29 13:17:23 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/grandom.c
- M /trunk/tests/tgrandom.c
-
-[tests/tgrandom.c] improve coverage
-
-------------------------------------------------------------------------
-r12513 | zimmerma | 2018-03-29 12:54:34 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/grandom.c
-
-[src/grandom.c] improve coverage, and solved a FIXME
-
-------------------------------------------------------------------------
-r12512 | zimmerma | 2018-03-29 12:20:33 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-[tests/tconst_pi.c] improve coverage of mpfr_free_cache2
-
-------------------------------------------------------------------------
-r12511 | vlefevre | 2018-03-29 12:01:38 +0000 (Thu, 29 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Reverted another incorrect change done in r12509.
-------------------------------------------------------------------------
-r12510 | vlefevre | 2018-03-29 11:59:48 +0000 (Thu, 29 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Reverted an incorrect change done in r12509.
-------------------------------------------------------------------------
-r12509 | zimmerma | 2018-03-29 10:22:38 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] simplify code and improve coverage to 100%
-
-------------------------------------------------------------------------
-r12508 | zimmerma | 2018-03-29 10:04:50 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] removed dead code and simplify code
-
-------------------------------------------------------------------------
-r12507 | zimmerma | 2018-03-29 09:38:22 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] improve coverage
-
-------------------------------------------------------------------------
-r12506 | zimmerma | 2018-03-29 08:28:14 +0000 (Thu, 29 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] improve coverage
-
-------------------------------------------------------------------------
-r12505 | vlefevre | 2018-03-29 08:09:58 +0000 (Thu, 29 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Really fixed the badData test, completing r12504.
-------------------------------------------------------------------------
-r12504 | vlefevre | 2018-03-29 08:08:58 +0000 (Thu, 29 Mar 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Fixed a test: for the huge-precision badData case,
-make sure that the data are valid so that we really check that the
-precision does not fit (and not a read error).
-------------------------------------------------------------------------
-r12503 | vlefevre | 2018-03-29 07:26:11 +0000 (Thu, 29 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Correction just in case MPFR_PREC_BITS > 64.
-------------------------------------------------------------------------
-r12502 | vlefevre | 2018-03-29 00:02:43 +0000 (Thu, 29 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r12501 | vlefevre | 2018-03-28 23:57:49 +0000 (Wed, 28 Mar 2018) | 5 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c]
- * Replaced an incorrect comment from r12500 by a correct assertion.
- * Fixed a theoretical bug coming from this incorrect comment.
- * Added a MPFR_ASSERTN assertion to double-check correctness.
- * Added a comment explaining a ... >= 0x80 test.
-------------------------------------------------------------------------
-r12500 | zimmerma | 2018-03-28 10:35:33 +0000 (Wed, 28 Mar 2018) | 3 lines
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/tests/tfpif.c
-
-[src/fpif.c] removed dead code
-[tests/tfpif.c] improve coverage
-
-------------------------------------------------------------------------
-r12499 | zimmerma | 2018-03-28 09:44:59 +0000 (Wed, 28 Mar 2018) | 3 lines
-Changed paths:
- M /trunk/src/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-[src/gmp_op.c] fixed bug in mpfr_cmp_q for den(q)=0
-[tests/tgmpop.c] improve coverage
-
-------------------------------------------------------------------------
-r12498 | vlefevre | 2018-03-24 01:52:02 +0000 (Sat, 24 Mar 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typographic correction (texinfo rule).
-------------------------------------------------------------------------
-r12497 | vlefevre | 2018-03-24 01:48:38 +0000 (Sat, 24 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] For codespell, skip mpfr.t2p (directory created
-in doc by "make pdf").
-------------------------------------------------------------------------
-r12496 | vlefevre | 2018-03-24 01:45:59 +0000 (Sat, 24 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/total_order.c
-
-[src/total_order.c] Simplified the code (shorter code).
-------------------------------------------------------------------------
-r12495 | vlefevre | 2018-03-24 01:34:17 +0000 (Sat, 24 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/ttotal_order.c
-
-[tests/ttotal_order.c] Rewrote the tests to test every combination
-of classes of values.
-------------------------------------------------------------------------
-r12494 | vlefevre | 2018-03-24 00:28:27 +0000 (Sat, 24 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
- D /trunk/tests/total_order.c
- A /trunk/tests/ttotal_order.c (from /trunk/tests/total_order.c:12493)
-
-[tests] Renamed total_order.c to ttotal_order.c.
-------------------------------------------------------------------------
-r12493 | vlefevre | 2018-03-23 18:17:37 +0000 (Fri, 23 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/total_order.c
-
-[src/total_order.c] Suggest to test the sign bit first.
-------------------------------------------------------------------------
-r12492 | vlefevre | 2018-03-23 18:15:22 +0000 (Fri, 23 Mar 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added mpfr_total_order in "Added Functions".
-------------------------------------------------------------------------
-r12491 | vlefevre | 2018-03-23 18:14:05 +0000 (Fri, 23 Mar 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved mpfr_total_order description.
-------------------------------------------------------------------------
-r12490 | zimmerma | 2018-03-23 17:42:06 +0000 (Fri, 23 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] totalOrder is done
-
-------------------------------------------------------------------------
-r12489 | zimmerma | 2018-03-23 17:03:58 +0000 (Fri, 23 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/mpfr.h
- A /trunk/src/total_order.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/total_order.c
-
-added mpfr_total_order
-
-------------------------------------------------------------------------
-r12488 | vlefevre | 2018-03-23 10:06:33 +0000 (Fri, 23 Mar 2018) | 7 lines
-Changed paths:
- M /trunk/tests/terf.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
-
-[tests] Removed some useless #include's, in particular all the
-unconditional #include <math.h> occurrences.
-Note: There is an incompatibility between glibc 2.27 and the math.h
-provided by ICC 15 (at least), and this solves a compilation failure
-in the build of the tests.
-Moreover, <math.h> is not required by freestanding implementations,
-so that it may be better to avoid it if possible.
-------------------------------------------------------------------------
-r12487 | zimmerma | 2018-03-21 11:02:23 +0000 (Wed, 21 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added 2 suggestions from Patrick Pelissier
-
-------------------------------------------------------------------------
-r12486 | vlefevre | 2018-03-20 15:33:54 +0000 (Tue, 20 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] For codespell, skip all the algorithms.* files.
-------------------------------------------------------------------------
-r12485 | vlefevre | 2018-03-15 11:31:10 +0000 (Thu, 15 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a comment for the mul/sqr test.
-------------------------------------------------------------------------
-r12484 | vlefevre | 2018-03-15 11:27:38 +0000 (Thu, 15 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] In the mul/sqr test (r12482), exclude mul.c and sqr.c.
-------------------------------------------------------------------------
-r12483 | zimmerma | 2018-03-15 10:21:18 +0000 (Thu, 15 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/acosh.c
- M /trunk/src/asinh.c
- M /trunk/src/atanh.c
- M /trunk/src/cos.c
- M /trunk/src/digamma.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/jn.c
- M /trunk/src/lngamma.c
- M /trunk/src/mul.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/sin.c
- M /trunk/src/sqr.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/yn.c
-
-changed mpfr_mul (a, b, b, ...) into mpfr_sqr (a, b, ...) whenever possible
-
-------------------------------------------------------------------------
-r12482 | vlefevre | 2018-03-14 15:59:35 +0000 (Wed, 14 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect mpfr_mul with identical 2nd and 3rd arguments,
-which can be replaced by mpfr_sqr (suggestion by PZ).
-------------------------------------------------------------------------
-r12481 | zimmerma | 2018-03-14 15:06:00 +0000 (Wed, 14 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/const_pi.c
-
-[src/const_pi.c] added a reference, and replace mpfr_mul by mpfr_sqr
-
-------------------------------------------------------------------------
-r12478 | vlefevre | 2018-03-10 00:40:13 +0000 (Sat, 10 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] Fixed failure from r12473 when mpfr_prec_t is an int
-(missing casts for sprintf / printf).
-------------------------------------------------------------------------
-r12477 | vlefevre | 2018-03-09 23:58:15 +0000 (Fri, 09 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] C++ compatibility.
-------------------------------------------------------------------------
-r12476 | vlefevre | 2018-03-09 23:17:29 +0000 (Fri, 09 Mar 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] Use tests_allocate / tests_free.
-------------------------------------------------------------------------
-r12474 | vlefevre | 2018-03-09 23:10:41 +0000 (Fri, 09 Mar 2018) | 1 line
-Changed paths:
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/atan.c
- M /trunk/src/cache.c
- M /trunk/src/fpif.c
- M /trunk/src/get_flt.c
- M /trunk/src/mpfr.h
- M /trunk/src/sum.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tnrandom_chisq.c
-
-Fixed spelling mistakes found by codespell 1.12.0.
-------------------------------------------------------------------------
-r12473 | zimmerma | 2018-03-09 16:55:48 +0000 (Fri, 09 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] added tests for corner cases of mpfr_set_str o mpfr_get_str
-
-------------------------------------------------------------------------
-r12472 | vlefevre | 2018-03-08 11:32:31 +0000 (Thu, 08 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] In EXTRA_DIST, put the mparam.h in alphabetic order.
-------------------------------------------------------------------------
-r12471 | vlefevre | 2018-03-08 11:27:21 +0000 (Thu, 08 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Updated EXTRA_DIST for amd due to r12387.
-------------------------------------------------------------------------
-r12469 | vlefevre | 2018-03-08 02:33:34 +0000 (Thu, 08 Mar 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/li2.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/vasprintf.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tset_ld.c
-
-Fixed spelling mistakes found by codespell 1.11.0.
-------------------------------------------------------------------------
-r12468 | vlefevre | 2018-03-08 02:29:43 +0000 (Thu, 08 Mar 2018) | 1 line
-Changed paths:
- M /trunk/codespell.ignore
-
-[codespell.ignore] Also ignore "cas".
-------------------------------------------------------------------------
-r12467 | vlefevre | 2018-03-08 02:27:22 +0000 (Thu, 08 Mar 2018) | 4 lines
-Changed paths:
- A /trunk/codespell.ignore
- M /trunk/tools/mpfrlint
-
-Added codespell.ignore file with simple words to ignore with codespell
-("iff" as used in math; "nd" as the n comes from \n in printf, but nd
-could also be a variable name; "te" as used as a variable name).
-Updated tools/mpfrlint to use this file with codespell.
-------------------------------------------------------------------------
-r12466 | vlefevre | 2018-03-05 14:44:44 +0000 (Mon, 05 Mar 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12464 | zimmerma | 2018-03-05 13:04:37 +0000 (Mon, 05 Mar 2018) | 4 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] added tests for mpfr_get_str_ndigits
-[src/get_str.c] fixed bugs in mpfr_get_str_ndigits for b=2^k (value was 1 too
- large) and very large p (value was 1 too small)
-
-------------------------------------------------------------------------
-r12462 | vlefevre | 2018-03-05 10:40:43 +0000 (Mon, 05 Mar 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typographic corrections for mpfr_subnormalize.
-------------------------------------------------------------------------
-r12461 | vlefevre | 2018-03-05 10:31:40 +0000 (Mon, 05 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS] Added mpfr_get_str_ndigits.
-[doc/mpfr.texi] Added mpfr_get_str_ndigits in "Added Functions".
-------------------------------------------------------------------------
-r12460 | vlefevre | 2018-03-05 10:26:34 +0000 (Mon, 05 Mar 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Minor corrections concerning mpfr_get_str.
-------------------------------------------------------------------------
-r12459 | vlefevre | 2018-03-05 10:05:37 +0000 (Mon, 05 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added a note about a mpfr_prec_t limitation.
-------------------------------------------------------------------------
-r12458 | vlefevre | 2018-03-05 09:59:19 +0000 (Mon, 05 Mar 2018) | 6 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Simplified mpfr_get_str_ndigits (changes from r12455):
- * MPFR_PREC_BITS is used to exactly do what is wanted.
- * Removed dead code as currently, mpfr_prec_t <= unsigned long.
- Note: if in the future we support mpfr_prec_t > unsigned long
- (e.g. to have a 64-bit precision on MS Windows), the generic code
- could be retrieved back from r12455.
-------------------------------------------------------------------------
-r12457 | zimmerma | 2018-03-05 09:35:32 +0000 (Mon, 05 Mar 2018) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_str.c
- M /trunk/src/mpfr.h
-
-[src/get_str.c,src/mpfr.h] mpfr_get_str_digits -> mpfr_get_str_ndigits
-[doc/mpfr.texi] updated documentation of mpfr_get_str
-
-------------------------------------------------------------------------
-r12456 | zimmerma | 2018-03-05 09:29:42 +0000 (Mon, 05 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] fixed FIXME
-
-------------------------------------------------------------------------
-r12455 | vlefevre | 2018-03-05 09:19:42 +0000 (Mon, 05 Mar 2018) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Portability corrections in mpfr_get_str_digits.
-------------------------------------------------------------------------
-r12454 | zimmerma | 2018-03-05 08:22:18 +0000 (Mon, 05 Mar 2018) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_str.c
- M /trunk/src/mpfr.h
-
-[src/get_str.c] new function mpfr_get_str_digits
-[doc/mpfr.texi] added documentation for mpfr_get_str_digits
-
-------------------------------------------------------------------------
-r12453 | vlefevre | 2018-03-03 01:19:24 +0000 (Sat, 03 Mar 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Fixed bug from r12407 with 32-bit long and 64-bit limbs
-(e.g. as under 64-bit MS Windows).
-------------------------------------------------------------------------
-r12452 | vlefevre | 2018-02-26 23:52:34 +0000 (Mon, 26 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Correction for test of the fallback to __float128:
-in the test program, define the variable outside main() in order to
-avoid an error when the -Werror=unused-variable GCC option is used.
-------------------------------------------------------------------------
-r12451 | vlefevre | 2018-02-26 19:17:17 +0000 (Mon, 26 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/get_sj.c
-
-[src/get_sj.c] Avoid an unused variable.
-------------------------------------------------------------------------
-r12450 | vlefevre | 2018-02-26 18:00:38 +0000 (Mon, 26 Feb 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated description of MPFR_WANT_FLOAT128.
-------------------------------------------------------------------------
-r12449 | vlefevre | 2018-02-26 17:56:40 +0000 (Mon, 26 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Recommend AC_LINK_IFELSE rather than AC_COMPILE_IFELSE
-(see r12448 as an example of an issue with AC_COMPILE_IFELSE).
-------------------------------------------------------------------------
-r12448 | vlefevre | 2018-02-26 17:55:14 +0000 (Mon, 26 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed a test, which could define MPFR_INTMAX_WITHIN_LIMB
-even when not true (MPFR_STAT_STATIC_ASSERT() was just regarded as a
-function call since the macro was not defined, thus did not yield an
-error).
-------------------------------------------------------------------------
-r12447 | vlefevre | 2018-02-26 17:31:19 +0000 (Mon, 26 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output the sizes of long and intmax_t.
-------------------------------------------------------------------------
-r12446 | vlefevre | 2018-02-26 16:36:42 +0000 (Mon, 26 Feb 2018) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed incorrect test from r12426.
-------------------------------------------------------------------------
-r12445 | vlefevre | 2018-02-26 15:08:10 +0000 (Mon, 26 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/mulders.c
- M /trunk/tests/tfma.c
- M /trunk/tune/tuneup.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r12444 | vlefevre | 2018-02-26 12:43:22 +0000 (Mon, 26 Feb 2018) | 18 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/acinclude.m4
- M /trunk/src/set_float128.c
-
-Updated support for binary128:
- * __float128 was changed to _Float128 (ISO/IEC TS 18661) in r12391;
- also changed the suffix of the constants from "q" to "f128".
- * Use __float128 with the "q" suffix as a fallback in order to avoid
- regressions with GCC 6- and with C++ mode (g++).
- As documented in the GCC manual, this is entirely compatible on most
- platforms where both are supported: _Float128 and __float128 are the
- same type, and it could be checked that the following prototypes are
- equivalent (as expected):
- _Float128 f (__float128)
- __float128 f (_Float128)
- The only potential issues would be on hppa and IA-64 HP-UX, where
- __float128 is an alias for "long double" instead of _Float128, in
- case the ABI would be different (I have no information about this)
- and both would be mixed up with software using the MPFR conversion
- functions for binary128 via __float128 or "long double". The worst
- thing that could happen is a link error. If the link is accepted,
- everything should be fine as the representation doesn't change.
-------------------------------------------------------------------------
-r12443 | vlefevre | 2018-02-26 11:41:08 +0000 (Mon, 26 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/set_float128.c
-
-[src/set_float128.c] Removed a useless #include and corrected a comment.
-------------------------------------------------------------------------
-r12442 | vlefevre | 2018-02-25 01:53:11 +0000 (Sun, 25 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/get_z_exp.c
-
-[src/get_z_exp.c] Portability.
-------------------------------------------------------------------------
-r12441 | vlefevre | 2018-02-25 01:19:07 +0000 (Sun, 25 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Avoid a compilation error with
-gcc -std=c90 -pedantic -Werror in 32-bit ABI.
-------------------------------------------------------------------------
-r12440 | vlefevre | 2018-02-25 01:02:44 +0000 (Sun, 25 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] Fixed a return type.
-------------------------------------------------------------------------
-r12439 | zimmerma | 2018-02-24 10:02:40 +0000 (Sat, 24 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_z_exp.c
-
-[src/get_z_exp.c] new try for r12437. If that still does not work, we should
- define macros BITS_PER_EXP_T, BITS_PER_PREC_T, ...
-
-------------------------------------------------------------------------
-r12438 | vlefevre | 2018-02-23 22:13:53 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_z_exp.c
-
-[src/get_z_exp.c] Reverted r12437: the size of mpfr_exp_t is not
-always related to the size of mp_limb_t.
-------------------------------------------------------------------------
-r12437 | zimmerma | 2018-02-23 22:04:30 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_z_exp.c
-
-[src/get_z_exp.c] removed dead code on 64-bit computer
-
-------------------------------------------------------------------------
-r12436 | zimmerma | 2018-02-23 20:45:32 +0000 (Fri, 23 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/tests/tget_str.c
-
-[src/get_str.c] improved case m < g
-[tests/tget_str.c] improve coverage
-
-------------------------------------------------------------------------
-r12435 | vlefevre | 2018-02-23 18:15:42 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
-2 cases: TRUE and FALSE.
-------------------------------------------------------------------------
-r12434 | zimmerma | 2018-02-23 17:59:56 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] fixed not enough allocation issue
-
-------------------------------------------------------------------------
-r12433 | vlefevre | 2018-02-23 17:36:49 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
-2 cases: TRUE and FALSE.
-------------------------------------------------------------------------
-r12432 | zimmerma | 2018-02-23 17:02:14 +0000 (Fri, 23 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_str.c
- M /trunk/tests/tget_str.c
-
-[doc/mpfr.texi] m=1 is now valid in get_str
-[src/get_str.c] allow m=1 for b=2^k
-[tests/tget_str.c] added test for m=1 and b=2
-
-------------------------------------------------------------------------
-r12430 | zimmerma | 2018-02-23 16:40:33 +0000 (Fri, 23 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/tests/tget_str.c
-
-[src/get_str.c] added a comment
-[tests/tget_str.c] improved coverage (finding this example was quite hard!)
-
-------------------------------------------------------------------------
-r12429 | vlefevre | 2018-02-23 16:34:06 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_sj.c
-
-[src/get_sj.c] Removed two assertions, including an incorrect one.
-Added an assertion.
-------------------------------------------------------------------------
-r12427 | vlefevre | 2018-02-23 15:37:08 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Correction: if we cannot test, the portable code must be
-selected.
-------------------------------------------------------------------------
-r12426 | zimmerma | 2018-02-23 15:24:59 +0000 (Fri, 23 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/src/get_sj.c
-
-[configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB
-[src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1
-
-------------------------------------------------------------------------
-r12425 | vlefevre | 2018-02-23 15:19:12 +0000 (Fri, 23 Feb 2018) | 6 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_ld.c
-
-[src/mpfr-impl.h] Removed MPFR_LIMBS_PER_LONG_DOUBLE as it was not
- properly specified in the general case and was actually used only
- in src/set_ld.c with HAVE_LDOUBLE_IEEE_EXT_LITTLE.
-[src/set_ld.c] Simplified code. Moreover, the hypothetical case
- GMP_NUMB_BITS == 16 will trigger a compilation error instead of
- yielding incorrect code.
-------------------------------------------------------------------------
-r12424 | vlefevre | 2018-02-23 15:08:54 +0000 (Fri, 23 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/tests/tbuildopt.c
-
-[tests/tbuildopt.c]
- * Added missing const.
- * Use the variable s to avoid a warning and also to detect potential
- undefined behavior with debugging tools if s is not a string.
-------------------------------------------------------------------------
-r12423 | zimmerma | 2018-02-23 15:00:55 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_sj.c
-
-[src/get_sj.c] fixed typo
-
-------------------------------------------------------------------------
-r12422 | zimmerma | 2018-02-23 14:48:40 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_sj.c
-
-[src/get_sj.c] added comments and simplified the code
-
-------------------------------------------------------------------------
-r12421 | vlefevre | 2018-02-23 14:31:59 +0000 (Fri, 23 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Typo in a comment.
-------------------------------------------------------------------------
-r12420 | zimmerma | 2018-02-23 14:12:09 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tget_q.c
-
-[tests/tget_q.c] improved coverage
-
-------------------------------------------------------------------------
-r12419 | vlefevre | 2018-02-23 13:59:02 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_d64.c
-
-[src/get_d64.c] Parsing in the portable version of string_to_Decimal64:
-similar changes as in r12416 for the _MPFR_IEEE_FLOATS version.
-------------------------------------------------------------------------
-r12418 | zimmerma | 2018-02-23 13:37:33 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] removed dead code (as in r12413 for mpfr_get_d)
-
-------------------------------------------------------------------------
-r12417 | zimmerma | 2018-02-23 13:35:35 +0000 (Fri, 23 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/get_flt.c
- M /trunk/tests/tget_flt.c
-
-[src/get_flt.c] optimized code when MPFR_LIMBS_PER_FLT=1
-[tests/tget_flt.c] improved coverage
-
-------------------------------------------------------------------------
-r12416 | zimmerma | 2018-02-23 12:02:51 +0000 (Fri, 23 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/src/get_d64.c
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tget_set_d64.c
-
-[src/get_d64.c] simplified code, and removed dead code
-[src/mpfr-impl.h] added comment
-[tests/tget_set_d64.c] improve coverage
-
-------------------------------------------------------------------------
-r12415 | vlefevre | 2018-02-23 09:50:25 +0000 (Fri, 23 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/set_q.c
-
-[src/set_q.c] Simplified code.
-------------------------------------------------------------------------
-r12414 | zimmerma | 2018-02-23 08:59:39 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_d.c
-
-[src/get_d.c] removed dead code
-
-------------------------------------------------------------------------
-r12413 | zimmerma | 2018-02-23 08:56:52 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/get_d.c
-
-[src/get_d.c] optimized for common case MPFR_LIMBS_PER_DOUBLE=1
-
-------------------------------------------------------------------------
-r12412 | zimmerma | 2018-02-23 08:38:33 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] improved coverage
-
-------------------------------------------------------------------------
-r12411 | zimmerma | 2018-02-23 08:28:09 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_q.c
-
-[src/set_q.c] removed dead code on 64-bit processor
-
-------------------------------------------------------------------------
-r12410 | zimmerma | 2018-02-23 07:40:36 +0000 (Fri, 23 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] improve code when HAVE_LDOUBLE_IEEE_EXT_LITTLE is defined
-
-------------------------------------------------------------------------
-r12409 | vlefevre | 2018-02-22 22:45:19 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] Reverted r12408: MPFR_LIMBS_PER_LONG_DOUBLE cannot be
-used with the preprocessor due to the use of "sizeof".
-------------------------------------------------------------------------
-r12408 | zimmerma | 2018-02-22 19:24:40 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] improve code for MPFR_LIMBS_PER_LONG_DOUBLE=1
-
-------------------------------------------------------------------------
-r12407 | zimmerma | 2018-02-22 19:06:22 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] improved coverage of mpfr_set_1_2
-
-------------------------------------------------------------------------
-r12406 | zimmerma | 2018-02-22 18:11:44 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tbuildopt.c
-
-[tests/tbuildopt.c] improve coverage
-
-------------------------------------------------------------------------
-r12405 | vlefevre | 2018-02-22 16:11:57 +0000 (Thu, 22 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Corrected a comment.
-------------------------------------------------------------------------
-r12404 | vlefevre | 2018-02-22 16:08:46 +0000 (Thu, 22 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Joined test_overflow3 and test_overflow4 by using a loop.
-Improved the corresponding test and error message. Also run this test
-with the default exponent range.
-------------------------------------------------------------------------
-r12403 | vlefevre | 2018-02-22 15:49:53 +0000 (Thu, 22 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Added FIXME for r12396, which still seems incorrect.
-------------------------------------------------------------------------
-r12402 | vlefevre | 2018-02-22 13:30:11 +0000 (Thu, 22 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Typo in a comment.
-------------------------------------------------------------------------
-r12401 | vlefevre | 2018-02-22 13:25:25 +0000 (Thu, 22 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update about the change of __float128 to _Float128: clarification
-that it is from ISO/IEC TS 18661 ("standard" was too vague); added FIXME
-on a possible fallback to __float128 and ABI considerations.
-------------------------------------------------------------------------
-r12400 | vlefevre | 2018-02-22 13:08:15 +0000 (Thu, 22 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] For --enable-float128, this is still autodetect, e.g.:
- checking if compiler knows _Float128 with C99 constants... no
-Added a FIXME: a fallback to __float128 is necessary to avoid
-regressions.
-------------------------------------------------------------------------
-r12399 | zimmerma | 2018-02-22 13:07:01 +0000 (Thu, 22 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/sqr.c
- M /trunk/tests/tsqr.c
-
-[src/sqr.c] added comments
-[tests/tsqr.c] improve coverage of sqr.c to 100%
-
-------------------------------------------------------------------------
-r12398 | zimmerma | 2018-02-22 12:48:52 +0000 (Thu, 22 Feb 2018) | 6 lines
-Changed paths:
- M /trunk/src/sqr.c
- M /trunk/tests/tsqr.c
-
-[src/sqr.c] fixed a bug in mpfr_sqr_1n in a rare case near underflow,
- only use mpfr_sqr_1, mpfr_sqr_1n, mpfr_sqr_2, mpfr_sqr_3
- when all numbers have same precision (like for mpfr_mul),
- and added comments
-[tests/tsqr.c] added tests, including non-regression for above bug
-
-------------------------------------------------------------------------
-r12397 | zimmerma | 2018-02-22 10:45:53 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] added comments and a FIXME
-
-------------------------------------------------------------------------
-r12396 | zimmerma | 2018-02-22 10:30:25 +0000 (Thu, 22 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/fma.c
- M /trunk/tests/tfma.c
-
-[src/fma.c] fixed last failure
-[tests/tfma.c] removed debug stuff
-
-------------------------------------------------------------------------
-r12395 | zimmerma | 2018-02-22 10:27:29 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] added new failing test
-
-------------------------------------------------------------------------
-r12394 | zimmerma | 2018-02-22 10:23:39 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] fix failure from last test
-
-------------------------------------------------------------------------
-r12393 | zimmerma | 2018-02-22 10:19:52 +0000 (Thu, 22 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/fma.c
- M /trunk/tests/tfma.c
-
-[src/fma.c] added comments
-[tests/tfma.c] added a test (currently failing)
-
-------------------------------------------------------------------------
-r12392 | zimmerma | 2018-02-22 10:01:46 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mips/mparam.h
-
-[mips/mparam.h] updated
-
-------------------------------------------------------------------------
-r12391 | zimmerma | 2018-02-22 09:18:55 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_float128.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/set_float128.c
- M /trunk/tests/tset_float128.c
-
-changed __float128 (gcc specific) into the standard type _Float128
-
-------------------------------------------------------------------------
-r12390 | zimmerma | 2018-02-22 08:50:12 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/arm/mparam.h
-
-[arm/mparam.h] updated
-
-------------------------------------------------------------------------
-r12389 | zimmerma | 2018-02-22 08:27:54 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/x86/mparam.h
-
-[x86/mparam.h] updated
-
-------------------------------------------------------------------------
-r12388 | zimmerma | 2018-02-22 08:14:41 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] amd/k8/mparam.h -> amd/mparam.h
-
-------------------------------------------------------------------------
-r12387 | zimmerma | 2018-02-22 08:14:07 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- D /trunk/src/amd/amdfam10
- D /trunk/src/amd/k8
- A /trunk/src/amd/mparam.h (from /trunk/src/amd/k8/mparam.h:12386)
-
-[amd/mparam.h] updated
-
-------------------------------------------------------------------------
-r12386 | zimmerma | 2018-02-22 08:06:23 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sparc64/mparam.h
-
-[sparc64/mparam.h] updated
-
-------------------------------------------------------------------------
-r12385 | zimmerma | 2018-02-22 08:04:27 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/x86_64/core2/mparam.h
-
-[x86_64/core2/mparam.h] updated
-
-------------------------------------------------------------------------
-r12384 | zimmerma | 2018-02-22 08:02:12 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/powerpc64/mparam.h
-
-[powerpc64/mparam.h] updated
-
-------------------------------------------------------------------------
-r12383 | zimmerma | 2018-02-22 07:42:49 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/x86_64/mparam.h
-
-[x86_64/mparam.h] updated
-
-------------------------------------------------------------------------
-r12382 | zimmerma | 2018-02-22 07:36:02 +0000 (Thu, 22 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] removed dead code
-
-------------------------------------------------------------------------
-r12381 | zimmerma | 2018-02-21 20:52:31 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tune/tuneup.c] ensure k < n in mpfr_divhigh_n[]
-
-------------------------------------------------------------------------
-r12380 | zimmerma | 2018-02-21 17:01:07 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] added __tune_znver1__ for AMD64 (e.g., gcc67.fsffrance.org)
-
-------------------------------------------------------------------------
-r12379 | zimmerma | 2018-02-21 16:08:54 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mips/mparam.h
-
-[src/mips/mparam.h] updated on gcc22
-
-------------------------------------------------------------------------
-r12378 | zimmerma | 2018-02-21 15:07:41 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] added item
-
-------------------------------------------------------------------------
-r12377 | zimmerma | 2018-02-21 15:03:32 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- D /trunk/src/x86/core2
- M /trunk/src/x86/mparam.h
-
-removed tuning for x86/core2, updated tuning for generic x86
-
-------------------------------------------------------------------------
-r12376 | zimmerma | 2018-02-21 14:57:59 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/arm/mparam.h
- M /trunk/src/mparam_h.in
- M /trunk/src/sparc64/mparam.h
-
-[src/sparc64/mparam.h] updated tuning parameters for sparc64
-
-------------------------------------------------------------------------
-r12375 | vlefevre | 2018-02-21 14:32:43 +0000 (Wed, 21 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] Use the generic parameters for x86_64 with Clang.
-------------------------------------------------------------------------
-r12374 | zimmerma | 2018-02-21 14:24:44 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- A /trunk/src/arm
- A /trunk/src/arm/mparam.h
- M /trunk/src/mparam_h.in
-
-added tuning for ARM
-
-------------------------------------------------------------------------
-r12373 | vlefevre | 2018-02-21 14:13:28 +0000 (Wed, 21 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- A /trunk/src/sparc64 (from /trunk/src/sparc64:12367)
-
-Reverted r12368: sparc64 tuning should be updated on gcc202.
-------------------------------------------------------------------------
-r12372 | zimmerma | 2018-02-21 14:09:31 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] generic case for all remaining i386's
-
-------------------------------------------------------------------------
-r12371 | zimmerma | 2018-02-21 13:58:35 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] put back __tune_k8__
-
-------------------------------------------------------------------------
-r12370 | zimmerma | 2018-02-21 13:48:37 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] check __amd64__ before generic __x86_64__
-
-------------------------------------------------------------------------
-r12369 | zimmerma | 2018-02-21 13:25:44 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- D /trunk/src/hppa
- M /trunk/src/mparam_h.in
-
-removed tuning for hppa (gcc61 is offline)
-
-------------------------------------------------------------------------
-r12368 | zimmerma | 2018-02-21 13:24:22 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- D /trunk/src/sparc64
-
-removed tuning parameters for sparc64 (gcc64, gcc200 and gcc201 are offline)
-
-------------------------------------------------------------------------
-r12367 | zimmerma | 2018-02-21 13:23:16 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tune/tuneup.c] for mpfr_div_threshold, start from 3 limbs again
-
-------------------------------------------------------------------------
-r12366 | zimmerma | 2018-02-21 13:06:31 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- D /trunk/src/powerpc32
-
-removed tuning for powerpc32 (no such machine available any more)
-
-------------------------------------------------------------------------
-r12365 | zimmerma | 2018-02-21 12:55:42 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/powerpc64/mparam.h
-
-[src/powerpc64/mparam.h] updated tuning parameters for powerpc64
-
-------------------------------------------------------------------------
-r12364 | zimmerma | 2018-02-21 11:17:39 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/amd/k8/mparam.h
-
-[src/amd/k8/mparam.h] fixed MPFR_DIV_THRESHOLD
-
-------------------------------------------------------------------------
-r12363 | zimmerma | 2018-02-21 11:16:20 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/x86/core2/mparam.h
-
-updated tuning parameters for amd/k8 and x86/core2
-
-------------------------------------------------------------------------
-r12362 | vlefevre | 2018-02-21 11:14:29 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- A /trunk/src/x86/mparam.h (from /trunk/src/x86/mparam.h:12358)
-
-Reverted r12359 and added a comment: tuning for x86 is used when
-building GMP/MPFR with a 32-bit ABI (ABI=32 / -m32).
-------------------------------------------------------------------------
-r12361 | zimmerma | 2018-02-21 11:14:27 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] start from 4 limbs for mpfr_div_threshold
-
-------------------------------------------------------------------------
-r12360 | zimmerma | 2018-02-21 10:45:20 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- D /trunk/src/ia64
- M /trunk/src/mparam_h.in
-
-removed tuning for ia64 (gcc60.fsffrance.org is now offline)
-
-------------------------------------------------------------------------
-r12359 | zimmerma | 2018-02-21 10:42:40 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- D /trunk/src/x86/mparam.h
-
-removed tuning for x86 (no more access to such machine)
-
-------------------------------------------------------------------------
-r12358 | zimmerma | 2018-02-21 10:35:31 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tune/tuneup.c] make tune_simple_func more robust for small precisions
-
-------------------------------------------------------------------------
-r12357 | zimmerma | 2018-02-21 10:32:43 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/x86_64/mparam.h
-
-[src/x86_64/mparam.h] fixed MPFR_DIV_THRESHOLD
-
-------------------------------------------------------------------------
-r12356 | zimmerma | 2018-02-21 10:29:58 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/x86_64/core2/mparam.h
-
-[x86_64/core2/mparam.h] updated on gcc14
-
-------------------------------------------------------------------------
-r12355 | vlefevre | 2018-02-21 09:47:29 +0000 (Wed, 21 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] In the "long double" format recognition, added
-size information for IEEE extended (not used by MPFR, but this
-may be useful information for the user).
-------------------------------------------------------------------------
-r12354 | zimmerma | 2018-02-21 09:44:15 +0000 (Wed, 21 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
- D /trunk/src/amd/athlon
- M /trunk/src/mparam_h.in
-
-removed tuning parameters for amd/athlon (we have no access to such machine
-any more)
-
-------------------------------------------------------------------------
-r12353 | zimmerma | 2018-02-21 09:32:10 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- D /trunk/src/x86_64/pentium4
-
-removed tuning for pentium4
-
-------------------------------------------------------------------------
-r12352 | zimmerma | 2018-02-21 09:16:47 +0000 (Wed, 21 Feb 2018) | 2 lines
-Changed paths:
- D /trunk/src/x86_64/corei5
-
-removed tuning for corei5 (was not used)
-
-------------------------------------------------------------------------
-r12351 | zimmerma | 2018-02-21 09:09:32 +0000 (Wed, 21 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
- A /trunk/src/x86_64/mparam.h
- M /trunk/tune/tuneup.c
-
-[src/x86_64/mparam.h] added tuning for generic x86_64
-[tune/tuneup.c] mpfr_divhigh now wants n >= 2
-
-------------------------------------------------------------------------
-r12350 | zimmerma | 2018-02-21 07:19:56 +0000 (Wed, 21 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
- D /trunk/src/arm
- M /trunk/src/mparam_h.in
-
-removed thresholds for arm since gcc57 is no longer available, thus we cannot
-tune on an ARM machine
-
-------------------------------------------------------------------------
-r12349 | vlefevre | 2018-02-21 02:34:18 +0000 (Wed, 21 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Removed unused variable dinv.
-------------------------------------------------------------------------
-r12348 | zimmerma | 2018-02-20 17:11:58 +0000 (Tue, 20 Feb 2018) | 6 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mulders.c
- M /trunk/tests/tmul.c
- M /trunk/tune/tuneup.c
-
-[src/div.c] added comment
-[src/mpfr-gmp.h] moved definition of MUL_FFT_THRESHOLD
-[src/mulders.c] removed unused code, and force n>=2 in mpfr_divhigh_n_basecase
-[tests/tmul.c] improve coverage
-[tune/tuneup.c] forbid k = n-1 in divhigh_ktab[]
-
-------------------------------------------------------------------------
-r12347 | zimmerma | 2018-02-20 16:37:55 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] improve coverage, now 100% for div.c
-
-------------------------------------------------------------------------
-r12346 | zimmerma | 2018-02-20 16:16:40 +0000 (Tue, 20 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/ai.c
- M /trunk/tests/tai.c
-
-[src/ai.c] revert part of r12312
-[tests/tai.c] added coverage test provided by Sylvain Chevillard
-
-------------------------------------------------------------------------
-r12345 | zimmerma | 2018-02-20 15:36:05 +0000 (Tue, 20 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] revert r12317 since it did not consider UBFs. For the record,
- tfmma was failing with GMP_CHECK_RANDOMIZE=1519138438006416.
-
-------------------------------------------------------------------------
-r12344 | zimmerma | 2018-02-20 15:19:40 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/tests/tdiv.c
-
-[src/div.c] get rid of mpfr_div_with_mpz_tdiv_q
-
-------------------------------------------------------------------------
-r12343 | vlefevre | 2018-02-20 14:54:05 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Fixed a bug in mpfr_cmp_q on NaN rational: the NaN flag
-was set by mpfr_set_q, but the flags were not restored just after.
-------------------------------------------------------------------------
-r12342 | vlefevre | 2018-02-20 14:45:35 +0000 (Tue, 20 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Reverted incorrect change in r12337 for mpfr_cmp_q.
-Explanation in comment. If the code was not tested, it should be by
-using mpq_set_num and mpq_set_den to construct such rationals.
-------------------------------------------------------------------------
-r12341 | zimmerma | 2018-02-20 14:27:22 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] improve coverage
-
-------------------------------------------------------------------------
-r12340 | zimmerma | 2018-02-20 14:08:20 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] improve coverage of mpfr_div_2
-
-------------------------------------------------------------------------
-r12339 | vlefevre | 2018-02-20 13:55:40 +0000 (Tue, 20 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-[src/{add,sub}1sp.c] Updated/added comments for MPFR_WANT_ASSERT >= 2.
-------------------------------------------------------------------------
-r12338 | zimmerma | 2018-02-20 13:53:51 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] removed dead code
-
-------------------------------------------------------------------------
-r12337 | zimmerma | 2018-02-20 13:45:08 +0000 (Tue, 20 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-[src/gmp_op.c] removed dead code
-[tests/tgmpop.c] improve coverage of gmp_op.c to 100%
-
-------------------------------------------------------------------------
-r12336 | vlefevre | 2018-02-20 12:33:38 +0000 (Tue, 20 Feb 2018) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added missing ";;" before "esac" for code robustness.
-------------------------------------------------------------------------
-r12335 | vlefevre | 2018-02-20 12:31:34 +0000 (Tue, 20 Feb 2018) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a FIXME. Added a ";;" for safety.
-------------------------------------------------------------------------
-r12334 | zimmerma | 2018-02-20 11:48:29 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] added comment, and define MPFR_LONG_WITHIN_LIMB when cannot test
-
-------------------------------------------------------------------------
-r12333 | vlefevre | 2018-02-20 09:33:38 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] Improved highest_bit_idx in the case where
-MPFR_LONG_WITHIN_LIMB is not defined (tested with GCC).
-------------------------------------------------------------------------
-r12332 | zimmerma | 2018-02-20 09:17:15 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] resolved FIXME and removed dead code
-
-------------------------------------------------------------------------
-r12331 | zimmerma | 2018-02-20 08:45:20 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] improve coverage
-
-------------------------------------------------------------------------
-r12330 | zimmerma | 2018-02-20 08:31:14 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] highest_bit_idx() assumes x > 0
-
-------------------------------------------------------------------------
-r12329 | zimmerma | 2018-02-20 08:27:35 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] fixed comment
-
-------------------------------------------------------------------------
-r12328 | zimmerma | 2018-02-20 08:24:24 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] redo change r12315 using MPFR_LONG_WITHIN_LIMB
-
-------------------------------------------------------------------------
-r12327 | zimmerma | 2018-02-20 08:09:46 +0000 (Tue, 20 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] added 2 FIXME
-
-------------------------------------------------------------------------
-r12326 | vlefevre | 2018-02-19 23:32:38 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tests/tai.c] Renamed test_near_zero to test_near_m2e, since this is
-"exercise mpfr_ai near m*2^e", as documented. Corrected comments.
-------------------------------------------------------------------------
-r12325 | vlefevre | 2018-02-19 23:29:35 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tests/tai.c] For test_near_zero(), check that the NaN flag was not set
-(useful since such tests don't really check that the result is not NaN).
-------------------------------------------------------------------------
-r12324 | zimmerma | 2018-02-19 20:53:27 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] improve coverage
-
-------------------------------------------------------------------------
-r12323 | zimmerma | 2018-02-19 18:22:00 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] improve coverage
-
-------------------------------------------------------------------------
-r12322 | vlefevre | 2018-02-19 17:35:09 +0000 (Mon, 19 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] Reverted incorrect change r12315: MPFR_LIMB_MAX
-cannot be used with the preprocessor due to the cast. The test should
-be done in "pure" C and the middle-end of the compiler should optimize.
-------------------------------------------------------------------------
-r12321 | vlefevre | 2018-02-19 17:27:03 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Removed an unused label.
-------------------------------------------------------------------------
-r12320 | vlefevre | 2018-02-19 16:36:39 +0000 (Mon, 19 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-[tests/tzeta.c] Check that the NaN flag was not set in some tests
-that do not involve NaN (useful since such tests don't really check
-that the result is not NaN).
-------------------------------------------------------------------------
-r12319 | zimmerma | 2018-02-19 16:28:34 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] removed dead code, now coverage should be 100%
-
-------------------------------------------------------------------------
-r12318 | vlefevre | 2018-02-19 16:26:51 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Avoid more integer overflows.
-------------------------------------------------------------------------
-r12317 | zimmerma | 2018-02-19 16:24:11 +0000 (Mon, 19 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/sub1.c
- M /trunk/tests/tsub.c
-
-[src/sub1.c] removed dead code
-[tests/tsub.c] added coverage test
-
-------------------------------------------------------------------------
-r12316 | vlefevre | 2018-02-19 16:17:03 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Detect some potential integer overflows.
-------------------------------------------------------------------------
-r12315 | zimmerma | 2018-02-19 16:02:44 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] don't compile alternate code if not needed
-
-------------------------------------------------------------------------
-r12314 | vlefevre | 2018-02-19 16:00:44 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Coding style. Corrected comments.
-------------------------------------------------------------------------
-r12313 | zimmerma | 2018-02-19 15:52:02 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-[tests/tzeta.c] improve coverage (and also uceil_exp2.c)
-
-------------------------------------------------------------------------
-r12312 | zimmerma | 2018-02-19 14:37:07 +0000 (Mon, 19 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/ai.c
- M /trunk/tests/tai.c
-
-[src/ai.c] removed dead code, and improved coverage
-[tests/tai.c] exercise mpfr_ai near (negative) zeroes
-
-------------------------------------------------------------------------
-r12311 | zimmerma | 2018-02-19 10:38:48 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] fixed recomputation of wprec (to be confirmed)
-
-------------------------------------------------------------------------
-r12310 | zimmerma | 2018-02-19 07:10:52 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] removed dead code
-
-------------------------------------------------------------------------
-r12309 | vlefevre | 2018-02-19 03:01:53 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Fixed indentation.
-------------------------------------------------------------------------
-r12308 | vlefevre | 2018-02-19 02:55:05 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r12307 | vlefevre | 2018-02-19 02:54:12 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Coding style.
-------------------------------------------------------------------------
-r12306 | vlefevre | 2018-02-19 02:46:30 +0000 (Mon, 19 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/expm1.c
-
-[src/expm1.c] Avoid a potential integer overflow in a type conversion
-for 32-bit mpfr_exp_t and 64-bit long (e.g. with -D_MPFR_PREC_FORMAT=2
-on a 64-bit Linux machine).
-------------------------------------------------------------------------
-r12305 | vlefevre | 2018-02-19 02:19:29 +0000 (Mon, 19 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/src/div_2ui.c
- M /trunk/tests/tmul_2exp.c
-
-[src/div_2ui.c] Reverted incorrect change in r12272 and added comments
- and assertions.
-[tests/tmul_2exp.c] Improved a test to trigger the bug in r12272 also
- when mpfr_exp_t > 32 bits (e.g. on 64-bit Linux machines).
-------------------------------------------------------------------------
-r12304 | vlefevre | 2018-02-19 01:46:30 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for positive).
-------------------------------------------------------------------------
-r12303 | vlefevre | 2018-02-19 01:43:20 +0000 (Mon, 19 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for negative).
-------------------------------------------------------------------------
-r12302 | vlefevre | 2018-02-19 01:10:13 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tsub1sp.c
-
-[tests] Fixed type errors with -D_MPFR_PREC_FORMAT=2 in CFLAGS and the
---enable-assert=full configure option (signaled by GCC's -Wformat).
-------------------------------------------------------------------------
-r12301 | vlefevre | 2018-02-19 01:00:48 +0000 (Mon, 19 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Fixed type error with -D_MPFR_PREC_FORMAT=2 in CFLAGS and
-the --enable-assert=full configure option (signaled by GCC's -Wformat).
-------------------------------------------------------------------------
-r12300 | vlefevre | 2018-02-19 00:38:01 +0000 (Mon, 19 Feb 2018) | 6 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Removed the mention of MPFR_EXT_EMIN and MPFR_EXT_EMAX,
-replacing them by MPFR_EMIN_MIN and MPFR_EMAX_MAX, as done in r12298.
-Note: These old macros had been introduced in r7863 so that one could
-choose different values for the extended exponent range for debugging
-purpose, but they were not used in practice and were adding complexity
-(and potential inconsistency) for no really good reason.
-------------------------------------------------------------------------
-r12299 | zimmerma | 2018-02-18 17:53:00 +0000 (Sun, 18 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/agm.c
- M /trunk/tests/tagm.c
-
-[src/agm.c] added comment about line of code impossible to cover
-
-------------------------------------------------------------------------
-r12298 | zimmerma | 2018-02-18 14:23:01 +0000 (Sun, 18 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/agm.c
- M /trunk/src/div.c
- M /trunk/src/mpfr-impl.h
-
-[src/agm.c,src/div.c,src/mpfr-impl.h] replaced MPFR_EXT_EMIN by MPFR_EMIN_MIN,
- and MPFR_EXT_EMAX by MPFR_EMAX_MAX
-
-------------------------------------------------------------------------
-r12297 | zimmerma | 2018-02-18 14:09:55 +0000 (Sun, 18 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/tests/tsqrt.c
-
-[src/sqrt.c] removed dead code
-[tests/tsqrt.c] improve coverage of mpfr_sqrt, now at 100%
-
-------------------------------------------------------------------------
-r12296 | zimmerma | 2018-02-18 12:48:51 +0000 (Sun, 18 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] improve coverage
-
-------------------------------------------------------------------------
-r12295 | zimmerma | 2018-02-18 12:31:53 +0000 (Sun, 18 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] improve coverage
-
-------------------------------------------------------------------------
-r12294 | zimmerma | 2018-02-17 19:30:39 +0000 (Sat, 17 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] removed dead code
-
-------------------------------------------------------------------------
-r12293 | zimmerma | 2018-02-17 16:53:57 +0000 (Sat, 17 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] improve coverage
-
-------------------------------------------------------------------------
-r12292 | zimmerma | 2018-02-17 12:53:46 +0000 (Sat, 17 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] improved coverage
-[src/sqrt.c] added comments
-
-------------------------------------------------------------------------
-r12291 | vlefevre | 2018-02-17 12:26:01 +0000 (Sat, 17 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/expm1.c
-
-[src/expm1.c] Added a FIXME comment.
-------------------------------------------------------------------------
-r12290 | zimmerma | 2018-02-17 11:53:07 +0000 (Sat, 17 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] improve coverage
-
-------------------------------------------------------------------------
-r12289 | zimmerma | 2018-02-17 11:01:10 +0000 (Sat, 17 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] removed dead code
-
-------------------------------------------------------------------------
-r12287 | vlefevre | 2018-02-17 10:28:33 +0000 (Sat, 17 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Improved a comment.
-------------------------------------------------------------------------
-r12286 | vlefevre | 2018-02-17 10:27:19 +0000 (Sat, 17 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Check reuse of arguments for all mpfr_sub tests, when
-possible.
-------------------------------------------------------------------------
-r12285 | zimmerma | 2018-02-17 09:39:57 +0000 (Sat, 17 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-[src/sub1sp.c] fixed bug in mpfr_sub1sp1n (corner case when a=c)
-[tests/tsub1sp.c] added non-regression test
-
-------------------------------------------------------------------------
-r12284 | zimmerma | 2018-02-17 08:52:47 +0000 (Sat, 17 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed case 2e
-
-------------------------------------------------------------------------
-r12283 | vlefevre | 2018-02-17 03:25:38 +0000 (Sat, 17 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Updated bug20180217 to trigger the bug: one needs to
-reuse the smallest input variable as the output variable.
-------------------------------------------------------------------------
-r12282 | vlefevre | 2018-02-17 03:03:09 +0000 (Sat, 17 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added a test.
-------------------------------------------------------------------------
-r12281 | vlefevre | 2018-02-17 01:36:28 +0000 (Sat, 17 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/expm1.c
-
-[src/expm1.c] Updated a comment.
-------------------------------------------------------------------------
-r12280 | vlefevre | 2018-02-17 01:29:43 +0000 (Sat, 17 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/expm1.c
-
-[src/expm1.c] Fixed an integer overflow from r12276.
-------------------------------------------------------------------------
-r12279 | vlefevre | 2018-02-17 01:12:49 +0000 (Sat, 17 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/expm1.c
-
-[src/expm1.c] Added a log message.
-------------------------------------------------------------------------
-r12278 | zimmerma | 2018-02-16 19:10:57 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] added coverage test
-
-------------------------------------------------------------------------
-r12277 | zimmerma | 2018-02-16 16:30:09 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] improve coverage of add.c (ubf case)
-
-------------------------------------------------------------------------
-r12276 | vlefevre | 2018-02-16 16:11:17 +0000 (Fri, 16 Feb 2018) | 9 lines
-Changed paths:
- M /trunk/src/expm1.c
-
-[src/expm1.c] It seems that code removed in r12273 wasn't necessarily
-dead code with mpfr_exp_t > long (-D_MPFR_EXP_FORMAT=4 needed) because
-for MPFR_SMALL_INPUT_AFTER_SAVE_EXPO, err would be limited to -LONG_MAX
-and precisions larger than LONG_MAX could be problems. The -LONG_MAX
-bound from r4127 was arbitrary and only used to simplify the code due
-to the fact that mpfr_cmp_si compares to a "long" argument. But now we
-have the internal mpfr_get_exp_t function, allowing us to avoid this
-arbitrary bound (fixing the code and making it more efficient for these
-extreme cases) and simplify the code even more.
-------------------------------------------------------------------------
-r12275 | zimmerma | 2018-02-16 15:54:26 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
-
-[mbench] added new option to usage
-
-------------------------------------------------------------------------
-r12274 | zimmerma | 2018-02-16 15:39:59 +0000 (Fri, 16 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
-
-[mbench] added option -d to fix the exponent difference between operands
- (useful for mpfr_add and mpfr_sub, for example use -d0 for operands
- with same exponent, -d1 for operands differing by 1, ...)
-
-------------------------------------------------------------------------
-r12273 | zimmerma | 2018-02-16 15:09:38 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/expm1.c
-
-[src/expm1.c] improve coverage (by removing dead code)
-
-------------------------------------------------------------------------
-r12272 | vlefevre | 2018-02-16 14:35:38 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/div_2ui.c
-
-[src/div_2ui.c] No need for mpfr_uexp_t, due to the constraints on
-the valid exponents.
-------------------------------------------------------------------------
-r12271 | vlefevre | 2018-02-16 14:32:58 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about mpfr_exp_t.
-------------------------------------------------------------------------
-r12270 | vlefevre | 2018-02-16 14:13:15 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/mul_2ui.c
-
-[src/mul_2ui.c] Simplified mpfr_mul_2ui (like mpfr_div_2ui).
-------------------------------------------------------------------------
-r12269 | vlefevre | 2018-02-16 14:09:39 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/div_2ui.c
-
-[src/div_2ui.c] Simplified justification.
-------------------------------------------------------------------------
-r12268 | vlefevre | 2018-02-16 13:50:07 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/div_2ui.c
-
-[src/div_2ui.c] Simplified code as suggested by PZ; added justification.
-------------------------------------------------------------------------
-r12267 | zimmerma | 2018-02-16 12:37:56 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/div_ui.c
- M /trunk/src/sub1sp.c
-
-GNU style: https://www.gnu.org/prep/standards/standards.html#Formatting
-
-------------------------------------------------------------------------
-r12266 | zimmerma | 2018-02-16 12:35:19 +0000 (Fri, 16 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/div_2ui.c
- M /trunk/tests/tmul_2exp.c
-
-[src/div_2ui.c] added comment
-[tests/tmul_2exp.c] added coverage test
-
-------------------------------------------------------------------------
-r12265 | vlefevre | 2018-02-16 11:31:31 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/div_2ui.c
-
-[src/div_2ui.c] Replaced FIXME by an explanation.
-------------------------------------------------------------------------
-r12264 | zimmerma | 2018-02-16 10:55:46 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/div_2ui.c
-
-[src/div_2ui.c] added FIXME
-
-------------------------------------------------------------------------
-r12263 | zimmerma | 2018-02-16 10:43:49 +0000 (Fri, 16 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/cmp_ld.c
-
-[src/cmp_ld.c] simplified code (and avoid useless test when long double is not
- double-double)
-
-------------------------------------------------------------------------
-r12262 | zimmerma | 2018-02-16 10:32:47 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] improve coverage
-
-------------------------------------------------------------------------
-r12261 | zimmerma | 2018-02-16 09:31:31 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] improve coverage of add1sp
-
-------------------------------------------------------------------------
-r12260 | zimmerma | 2018-02-16 08:23:06 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed bug20180216
-
-------------------------------------------------------------------------
-r12259 | zimmerma | 2018-02-16 07:53:26 +0000 (Fri, 16 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] added coverage test
-
-------------------------------------------------------------------------
-r12257 | vlefevre | 2018-02-16 02:22:30 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] More tests in bug20180216.
-------------------------------------------------------------------------
-r12256 | vlefevre | 2018-02-16 02:08:03 +0000 (Fri, 16 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added bug20180216 test currently failing (corresponding
-to the failure mentioned in r12253, r12254 and r12255, but reproducible
-with a simple "./configure").
-------------------------------------------------------------------------
-r12255 | vlefevre | 2018-02-16 01:39:57 +0000 (Fri, 16 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] Note that the internal behavior depends on whether
-MPFR_LONG_WITHIN_LIMB is defined or not (see also r12253). This
-should not matter, possibly except in case of bug, like currently.
-------------------------------------------------------------------------
-r12254 | vlefevre | 2018-02-16 01:29:24 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Updated FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.
-------------------------------------------------------------------------
-r12253 | vlefevre | 2018-02-16 01:23:07 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.
-------------------------------------------------------------------------
-r12252 | vlefevre | 2018-02-16 00:00:13 +0000 (Fri, 16 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Squeezed useless double-space.
-------------------------------------------------------------------------
-r12251 | zimmerma | 2018-02-15 18:42:18 +0000 (Thu, 15 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed bug20180215()
-
-------------------------------------------------------------------------
-r12250 | vlefevre | 2018-02-15 15:10:10 +0000 (Thu, 15 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Updated comment for bug20180215.
-------------------------------------------------------------------------
-r12249 | vlefevre | 2018-02-15 14:51:02 +0000 (Thu, 15 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Use "else" for symmetry with above code.
-------------------------------------------------------------------------
-r12248 | vlefevre | 2018-02-15 14:39:54 +0000 (Thu, 15 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added a comment for bug20180215 (bug in the case
-2 <= d < p in generic code mpfr_sub1sp() introduced in r12242).
-------------------------------------------------------------------------
-r12246 | vlefevre | 2018-02-15 14:27:08 +0000 (Thu, 15 Feb 2018) | 5 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added bug20180215 test currently failing, found from a
-failure using -DMPFR_GENERIC_ABI in CFLAGS and the --enable-assert=full
-configure option; but the test had to be extended so that it also fails
-with a simple "configure", i.e. without -DMPFR_GENERIC_ABI in CFLAGS
-and without the --enable-assert=full configure option.
-------------------------------------------------------------------------
-r12245 | vlefevre | 2018-02-15 14:13:52 +0000 (Thu, 15 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r12243 | zimmerma | 2018-02-14 16:11:04 +0000 (Wed, 14 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] review of case 2 <= d < p in generic code mpfr_sub1sp()
-
-------------------------------------------------------------------------
-r12242 | zimmerma | 2018-02-14 14:41:48 +0000 (Wed, 14 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/src/sub1sp.c
-
-[src/div_ui.c] GNU style
-[src/sub1sp.c] reviewed the code for d>=p in mpfr_sub1sp()
-
-------------------------------------------------------------------------
-r12241 | vlefevre | 2018-02-14 11:10:09 +0000 (Wed, 14 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Much improved the check of the use of GMP internals.
-------------------------------------------------------------------------
-r12240 | zimmerma | 2018-02-14 10:06:46 +0000 (Wed, 14 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed a FIXME
-
-------------------------------------------------------------------------
-r12239 | zimmerma | 2018-02-14 09:50:02 +0000 (Wed, 14 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/sub1sp.c
-
-[src/mpfr-gmp.h] define prototype of __gmpn_rsblsh1_n
-[src/sub1sp.c] changed names of variables to something more readable
-
-------------------------------------------------------------------------
-r12238 | zimmerma | 2018-02-14 09:36:58 +0000 (Wed, 14 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/sub1sp.c
-
-[configure.ac] detect mpn_rsblsh1_n instead of mpn_rsblsh_n
-[src/sub1sp.c] use mpn_rsblsh1_n instead of mpn_rsblsh_n with k=1
-
-------------------------------------------------------------------------
-r12237 | vlefevre | 2018-02-14 03:17:10 +0000 (Wed, 14 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added 2 FIXME's.
-------------------------------------------------------------------------
-r12236 | vlefevre | 2018-02-14 03:03:16 +0000 (Wed, 14 Feb 2018) | 4 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] In mpfr_sub1sp, initialize k only once. This slightly
-simplifies the code and avoids a -Wmaybe-uninitialized warning from
-GCC. The only failure on a 64-bit Linux machine is tsub1sp, due to
-an assertion failure in mpfr_sub1sp, as before this change.
-------------------------------------------------------------------------
-r12235 | vlefevre | 2018-02-14 02:49:07 +0000 (Wed, 14 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Avoid the swapping of the exponents when they are equal.
-------------------------------------------------------------------------
-r12234 | zimmerma | 2018-02-13 16:06:18 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] review of case d=1 in generic code
-
-------------------------------------------------------------------------
-r12233 | zimmerma | 2018-02-13 15:42:28 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] no need of MPFR_TMP_MARK any more
-
-------------------------------------------------------------------------
-r12232 | zimmerma | 2018-02-13 15:19:27 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] end of review of case d=0 in generic code
-
-------------------------------------------------------------------------
-r12231 | zimmerma | 2018-02-13 15:01:34 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] work in progress
-
-------------------------------------------------------------------------
-r12230 | vlefevre | 2018-02-13 14:49:52 +0000 (Tue, 13 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Moved a MPFR_ASSERTD to the right place.
-------------------------------------------------------------------------
-r12229 | zimmerma | 2018-02-13 14:26:57 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] re-enable __gmpn_rsblsh_n (with WANT_GMP_INTERNALS)
-
-------------------------------------------------------------------------
-r12228 | zimmerma | 2018-02-13 14:13:23 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] small improvement
-
-------------------------------------------------------------------------
-r12227 | zimmerma | 2018-02-13 13:59:18 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-[tools/cfarm.sh] updated for 4.0.1-rc2
-
-------------------------------------------------------------------------
-r12226 | zimmerma | 2018-02-13 13:53:19 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] mp_ptr -> mp_limb_t*
-
-------------------------------------------------------------------------
-r12225 | zimmerma | 2018-02-13 13:49:43 +0000 (Tue, 13 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] get rid of MPN_COPY/MPN_ZERO in generic code
-
-------------------------------------------------------------------------
-r12223 | vlefevre | 2018-02-13 02:48:00 +0000 (Tue, 13 Feb 2018) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Improved comments and other minor changes.
-------------------------------------------------------------------------
-r12222 | vlefevre | 2018-02-13 02:39:54 +0000 (Tue, 13 Feb 2018) | 6 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] In the generic code of mpfr_add1sp, fixed the computation
-of the round and sticky bits from r12220. At the same time, improved the
-handling of MPFR_RNDF in this part of the code:
- * The "while" loop to compute the sticky bit is no longer done in this
- case (the sticky bit does not matter).
- * The "goto" is avoided.
-------------------------------------------------------------------------
-r12221 | vlefevre | 2018-02-13 01:22:50 +0000 (Tue, 13 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tadd.c
-
-[tests/tadd.c] Added 2 tests that fail starting with r12220.
-------------------------------------------------------------------------
-r12220 | zimmerma | 2018-02-12 15:40:42 +0000 (Mon, 12 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] cleanup generic code mpfr_add1sp()
-
-------------------------------------------------------------------------
-r12219 | vlefevre | 2018-02-09 14:17:18 +0000 (Fri, 09 Feb 2018) | 7 lines
-Changed paths:
- M /trunk/src/fma.c
- M /trunk/src/hypot.c
-
-[src/fma.c] Added a FIXME comment about overflow/underflow issues in
- corner cases (already caught with MPFR_ASSERTN), fixable with UBF
- like in mpfr_fmma.
-[src/hypot.c] Updated a comment: The problem that would come from an
- underflow in y^2, in particular because x was scaled in order to
- avoid an overflow in x^2, has been avoided by using a FMA (though
- still buggy for these cases, as mentioned just above).
-------------------------------------------------------------------------
-r12215 | vlefevre | 2018-02-08 01:20:13 +0000 (Thu, 08 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tfits.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tversion.c
-
-[tests] Added/updated comments about the config.h inclusion.
-------------------------------------------------------------------------
-r12214 | vlefevre | 2018-02-08 01:07:46 +0000 (Thu, 08 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
-
-[tests/{tset_float128.c,tset_ld.c}] Removed obsolete WITH_FPU_CONTROL
-related code (this should have been done in r12185).
-------------------------------------------------------------------------
-r12212 | vlefevre | 2018-02-07 23:37:29 +0000 (Wed, 07 Feb 2018) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Updated GMP URL.
-------------------------------------------------------------------------
-r12210 | vlefevre | 2018-02-07 23:32:29 +0000 (Wed, 07 Feb 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12208 | vlefevre | 2018-02-07 23:30:03 +0000 (Wed, 07 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/tools/mpfrlint
-
-[doc/mpfr.texi] Corrected minimal GMP version.
-[tools/mpfrlint] Updated test to detect minimal GMP version mismatch.
-------------------------------------------------------------------------
-r12206 | vlefevre | 2018-02-07 23:21:02 +0000 (Wed, 07 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/tools/mpfrlint
-
-[INSTALL] Corrected minimal GMP version (thanks to David Edelsohn).
-[tools/mpfrlint] Added a test to detect minimal GMP version mismatch.
-------------------------------------------------------------------------
-r12198 | vlefevre | 2018-02-07 11:59:15 +0000 (Wed, 07 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] For releases, check the VERSION file of the tag.
-------------------------------------------------------------------------
-r12197 | vlefevre | 2018-02-07 11:39:23 +0000 (Wed, 07 Feb 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": moved a sentence.
-------------------------------------------------------------------------
-r12194 | vlefevre | 2018-02-02 13:06:29 +0000 (Fri, 02 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Forcibly disable value coverage checking if
-mp_limb_t > unsigned long (e.g. on mips64 with the n32 ABI).
-------------------------------------------------------------------------
-r12193 | vlefevre | 2018-02-02 12:46:28 +0000 (Fri, 02 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Corrected comments.
-------------------------------------------------------------------------
-r12190 | vlefevre | 2018-02-02 11:47:35 +0000 (Fri, 02 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/trandom.c
- M /trunk/tests/turandom.c
-
-[tests/t*random*.c]
- * Replaced calloc + free by tests_allocate + tests_free as usual.
- * trandom.c, turandom.c: do bitwise operations in unsigned arithmetic.
-------------------------------------------------------------------------
-r12189 | vlefevre | 2018-02-02 11:27:03 +0000 (Fri, 02 Feb 2018) | 5 lines
-Changed paths:
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
-
-[tests/t*random*.c]
- * Replaced some fprintf with stderr by printf (but not those
- concerning memory allocation errors).
- * Do bitwise operations in unsigned arithmetic.
- * Formatting.
-------------------------------------------------------------------------
-r12188 | vlefevre | 2018-02-02 11:08:16 +0000 (Fri, 02 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tsub_d.c
-
-[tests] Formatting.
-------------------------------------------------------------------------
-r12186 | vlefevre | 2018-02-02 10:53:26 +0000 (Fri, 02 Feb 2018) | 7 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Make stderr unbuffered again.
-Note for the history: both stdout and stderr were made unbuffered in
-r2361, then all stderr were changed to stdout (and the corresponding
-setbuf on stderr removed) in r2449 for consistency, but stderr was
-used later for specific cases (e.g. memory allocation errors or when
-stdout is already used for something else), and it is also used for
-assertion failures. Thus the setbuf on stderr is still needed.
-------------------------------------------------------------------------
-r12185 | vlefevre | 2018-02-02 10:36:50 +0000 (Fri, 02 Feb 2018) | 6 lines
-Changed paths:
- M /trunk/tests/tremquo.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
-
-[tests] Fixed the cases where tests_start_mpfr was called too late,
-i.e. after potential output (to stdout).
- * tremquo.c: moved the call to tests_start_mpfr to the beginning.
- * tset_float128.c, tset_ld.c: removed the optional, obsolete code
- setting the FPU control word; MPFR_FPU_PREC can be used instead
- (see tests.c).
-------------------------------------------------------------------------
-r12183 | vlefevre | 2018-02-02 10:12:38 +0000 (Fri, 02 Feb 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
-
-Reverse-merged r12181 since tests_start_mpfr disables stdout buffering,
-so that the fflush() are unnecessary.
-------------------------------------------------------------------------
-r12181 | vlefevre | 2018-02-02 09:52:45 +0000 (Fri, 02 Feb 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
-
-[tests/tabort_*.c] Flush stdout after a printf(), as an abort() is
-expected. This is needed on platforms where abort() does not flush
-the stdio streams, such as with the GNU C Library (glibc) 2.27.
-------------------------------------------------------------------------
-r12178 | vlefevre | 2018-02-01 14:27:11 +0000 (Thu, 01 Feb 2018) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention "make check-exported-symbols" (experimental).
-------------------------------------------------------------------------
-r12172 | vlefevre | 2018-02-01 13:28:12 +0000 (Thu, 01 Feb 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Portability update, in case MPFR_PREC_MIN > 1.
-------------------------------------------------------------------------
-r12169 | vlefevre | 2018-01-31 15:15:01 +0000 (Wed, 31 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] In corner_cases, test larger values for xn,
-as suggested by Paul, allowing one to cover case 2 for both
-sb=0 and sb=1. Value coverage is now complete.
-------------------------------------------------------------------------
-r12168 | vlefevre | 2018-01-31 15:02:18 +0000 (Wed, 31 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Updated midpoint_exact to also test the divisor
-ULONG_MAX, allowing one to cover cases 3 and 4.
-------------------------------------------------------------------------
-r12167 | vlefevre | 2018-01-31 14:55:17 +0000 (Wed, 31 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Added tests with simple midpoint and exact cases.
-This covers case 9, sb=0.
-------------------------------------------------------------------------
-r12166 | vlefevre | 2018-01-31 13:45:02 +0000 (Wed, 31 Jan 2018) | 7 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/src/mpfr-impl.h
-
-Added a case for the value coverage for tdiv_ui.
-→ Now, on a 64-bit Linux machine:
- mpfr_div_ui not tested on case 2, sb=0
- mpfr_div_ui not tested on case 2, sb=1
- mpfr_div_ui not tested on case 3, sb=0
- mpfr_div_ui not tested on case 4, sb=0
- mpfr_div_ui not tested on case 9, sb=0
-------------------------------------------------------------------------
-r12165 | vlefevre | 2018-01-31 13:34:35 +0000 (Wed, 31 Jan 2018) | 6 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tdiv_ui.c
-
-Added value coverage for tdiv_ui (combinations of rb and sb in the
-different cases of the mpfr_div_ui code).
-→ Currently on a 64-bit Linux machine:
- mpfr_div_ui not tested on case 2, sb=0
- mpfr_div_ui not tested on case 3, sb=0
- mpfr_div_ui not tested on case 8, sb=0
-------------------------------------------------------------------------
-r12163 | vlefevre | 2018-01-31 02:37:05 +0000 (Wed, 31 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Case tmp[yn] != 0: simplified code since u ≥ 2.
-------------------------------------------------------------------------
-r12162 | vlefevre | 2018-01-31 02:30:02 +0000 (Wed, 31 Jan 2018) | 5 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Case tmp[yn] == 0:
- * corrected/improved comments;
- * simplified condition rb && sb to rb (since if rb ≠ 0, then r ≠ 0,
- so that the current sb ≠ 0);
- * replaced "& (~MPFR_LIMB_HIGHBIT)" by "<< 1" (should be simpler).
-------------------------------------------------------------------------
-r12161 | zimmerma | 2018-01-30 20:31:58 +0000 (Tue, 30 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] fixed corner case (hopefully)
-
-------------------------------------------------------------------------
-r12160 | vlefevre | 2018-01-30 17:17:11 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Improved a regexp (avoiding false positives).
-------------------------------------------------------------------------
-r12159 | vlefevre | 2018-01-30 16:57:55 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] corner_cases() requires limbs to fit in unsigned long.
-------------------------------------------------------------------------
-r12158 | vlefevre | 2018-01-30 16:52:57 +0000 (Tue, 30 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Back to a decimal constant (the UL suffix was
-incorrect, but just a U is OK).
-------------------------------------------------------------------------
-r12157 | zimmerma | 2018-01-30 16:38:20 +0000 (Tue, 30 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] added test for corner case (currently fails)
-
-------------------------------------------------------------------------
-r12156 | vlefevre | 2018-01-30 16:25:08 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Fixed a value (from a zsh bug).
-------------------------------------------------------------------------
-r12155 | vlefevre | 2018-01-30 16:21:13 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Comment: now, "i.e." is correct.
-------------------------------------------------------------------------
-r12154 | vlefevre | 2018-01-30 16:17:53 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Added ABI-independent bug20180126 tests.
-------------------------------------------------------------------------
-r12153 | zimmerma | 2018-01-30 15:55:58 +0000 (Tue, 30 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] fixed a comment
-
-------------------------------------------------------------------------
-r12152 | vlefevre | 2018-01-30 13:22:48 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Typo in a comment.
-------------------------------------------------------------------------
-r12151 | vlefevre | 2018-01-30 13:14:13 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Updated a comment.
-------------------------------------------------------------------------
-r12150 | vlefevre | 2018-01-30 13:05:10 +0000 (Tue, 30 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Clarified the notation (this was ambiguous, with two
-possible interpretations). Added comments about mpn_divrem_1.
-------------------------------------------------------------------------
-r12149 | vlefevre | 2018-01-30 09:15:21 +0000 (Tue, 30 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Added a FIXME.
-------------------------------------------------------------------------
-r12148 | zimmerma | 2018-01-30 06:35:31 +0000 (Tue, 30 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] fixed a comment, and added a FIXME
-
-------------------------------------------------------------------------
-r12146 | vlefevre | 2018-01-29 14:11:54 +0000 (Mon, 29 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Clarified a comment.
-------------------------------------------------------------------------
-r12145 | vlefevre | 2018-01-29 14:05:24 +0000 (Mon, 29 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Started to review the code; minor changes.
-------------------------------------------------------------------------
-r12142 | vlefevre | 2018-01-29 01:23:41 +0000 (Mon, 29 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Minor update of comments.
-------------------------------------------------------------------------
-r12141 | vlefevre | 2018-01-29 01:06:44 +0000 (Mon, 29 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Fixed the exact case, which used nexttoinf uninitialized.
-------------------------------------------------------------------------
-r12140 | vlefevre | 2018-01-29 01:03:34 +0000 (Mon, 29 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] bug20180126: enable the test only when a limb fits in
-an unsigned long; clarified a comment.
-------------------------------------------------------------------------
-r12139 | zimmerma | 2018-01-28 09:05:30 +0000 (Sun, 28 Jan 2018) | 4 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/tests/tdiv_ui.c
-
-[src/div_ui.c] fixed bug20180126 (from tdiv.c), with a complete rewrite of
- mpfr_div_ui using the round and sticky bits
-[tests/tdiv_ui.c] added more tests
-
-------------------------------------------------------------------------
-r12137 | vlefevre | 2018-01-27 03:50:48 +0000 (Sat, 27 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] mpfr_div bug bug20180126: also test negative values.
-------------------------------------------------------------------------
-r12136 | vlefevre | 2018-01-27 03:40:19 +0000 (Sat, 27 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Updated comment about mpfr_div bug bug20180126.
-------------------------------------------------------------------------
-r12134 | vlefevre | 2018-01-27 03:19:43 +0000 (Sat, 27 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] mpfr_div bug bug20180126 was introduced by r9086.
-------------------------------------------------------------------------
-r12132 | vlefevre | 2018-01-26 17:03:19 +0000 (Fri, 26 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Completed r12128 test with new comments and an assert.
-------------------------------------------------------------------------
-r12128 | vlefevre | 2018-01-26 15:23:39 +0000 (Fri, 26 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Added test case for a mpfr_div bug of MPFR 4.
-------------------------------------------------------------------------
-r12126 | vlefevre | 2018-01-25 15:17:55 +0000 (Thu, 25 Jan 2018) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added information about symbol checking.
-------------------------------------------------------------------------
-r12122 | vlefevre | 2018-01-23 09:40:06 +0000 (Tue, 23 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Mention a libtool 2.4.6 bug concerning Solaris, yielding
-potential failures if a compatible MPFR version is already installed:
-this MPFR library is tested instead of the one that has just been built.
-------------------------------------------------------------------------
-r12117 | vlefevre | 2018-01-22 12:20:14 +0000 (Mon, 22 Jan 2018) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] + Improved __GMP_CC and __GMP_CFLAGS retrieval.
-------------------------------------------------------------------------
-r12115 | vlefevre | 2018-01-22 01:48:07 +0000 (Mon, 22 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] In the CC and CFLAGS setup from gmp.h, added to the
-cpp list: "clang -E"; "cl -E" and "icl -E" for Windows ICC and MSVC
-(suggested by Alexander).
-------------------------------------------------------------------------
-r12114 | vlefevre | 2018-01-20 13:15:43 +0000 (Sat, 20 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": mention "make check-gmp-symbols"
-and "make check-exported-symbols".
-------------------------------------------------------------------------
-r12113 | vlefevre | 2018-01-20 13:11:23 +0000 (Sat, 20 Jan 2018) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Updated comments.
-------------------------------------------------------------------------
-r12112 | vlefevre | 2018-01-20 12:59:47 +0000 (Sat, 20 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] For check-gmp-symbols and check-exported-symbols, if
-the library is not $(top_builddir)/src/.libs/libmpfr.so, these rules
-do nothing instead of potentially failing.
-------------------------------------------------------------------------
-r12111 | vlefevre | 2018-01-20 12:38:52 +0000 (Sat, 20 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/src/Makefile.am
-
-Added check-exported-symbols make rule to check that MPFR does not
-define symbols with a GMP reserved prefix.
-------------------------------------------------------------------------
-r12108 | vlefevre | 2018-01-18 12:29:58 +0000 (Thu, 18 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/mp_clz_tab.c
-
-[src/mp_clz_tab.c] Fixed a condition (see bug mentioned at r12107).
-------------------------------------------------------------------------
-r12107 | vlefevre | 2018-01-18 12:27:19 +0000 (Thu, 18 Jan 2018) | 11 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Reverse-merged r11969, which yields a build failure
-under MinGW when GMP is built with "--disable-shared --enable-static
---enable-assert --disable-assembly" and MPFR is built using the GMP
-build. Indeed, this commit was incorrect, as if the GMP build is used,
-then this is GMP's longlong.h that is used and GMP's __clz_tab version
-that should be used.
-The real cause of the "multiple definition of `__gmpn_clz_tab'" error
-reported at
- https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00061.html
-is that MPFR defines its own __gmpn_clz_tab while this is not needed
-(and must not be done) when the GMP build is used.
-------------------------------------------------------------------------
-r12104 | vlefevre | 2018-01-16 11:12:30 +0000 (Tue, 16 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/doc/texinfo.tex
-
-Eliding mergeinfo from 'doc/texinfo.tex' (as done after a
-"svn merge -c -12102 .", though this was an unrelated commit).
-------------------------------------------------------------------------
-r12103 | vlefevre | 2018-01-16 11:09:03 +0000 (Tue, 16 Jan 2018) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] - Decide whether multiple calls to mpfr_clear should be allowed.
-------------------------------------------------------------------------
-r12102 | vlefevre | 2018-01-16 08:58:00 +0000 (Tue, 16 Jan 2018) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] + Decide whether multiple calls to mpfr_clear should be allowed.
-------------------------------------------------------------------------
-r12101 | vlefevre | 2018-01-13 13:57:53 +0000 (Sat, 13 Jan 2018) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r12100 | vlefevre | 2018-01-13 13:50:28 +0000 (Sat, 13 Jan 2018) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update. Prepare for new version 4.1.0.
-------------------------------------------------------------------------
-r12099 | vlefevre | 2018-01-13 13:43:02 +0000 (Sat, 13 Jan 2018) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r12092 | vlefevre | 2018-01-10 13:40:31 +0000 (Wed, 10 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-[tests/tlgamma.c] bug20180110: test the ternary value and the flags.
-------------------------------------------------------------------------
-r12091 | vlefevre | 2018-01-10 13:32:58 +0000 (Wed, 10 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Fixed mpfr_lgamma bug for tiny negative x, in case
-emax < exponent of the result (the issue was an overflow in the "fast"
-algorithm, which made it loop with more and more working precision).
-------------------------------------------------------------------------
-r12090 | vlefevre | 2018-01-10 13:24:29 +0000 (Wed, 10 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Removed a useless cast.
-------------------------------------------------------------------------
-r12089 | vlefevre | 2018-01-10 13:17:50 +0000 (Wed, 10 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-[tests/tlgamma.c] Added a test case for a bug found from the tgeneric
-change done in r12088.
-------------------------------------------------------------------------
-r12088 | vlefevre | 2018-01-10 12:22:11 +0000 (Wed, 10 Jan 2018) | 5 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Do several overflow/underflow tests instead of 1, and
-this for each precision. This allows one to detect the mpfr_ai bug found
-and fixed on 2018-01-07 (with 32-bit *and* 64-bit ABI):
- https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html
-Moreover, this makes tlgamma loop with a 32-bit ABI (x86). To be fixed.
-------------------------------------------------------------------------
-r12087 | vlefevre | 2018-01-10 11:49:52 +0000 (Wed, 10 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Added comments for tests in a reduced exponent range.
-------------------------------------------------------------------------
-r12085 | vlefevre | 2018-01-10 10:12:19 +0000 (Wed, 10 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] About r12084, simplified the code, without needing
-strncpy.
-------------------------------------------------------------------------
-r12084 | vlefevre | 2018-01-10 09:59:30 +0000 (Wed, 10 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Fixed strncpy usage, in particular to ensure a
-null-terminated string (bug detected by gcc-snapshot 20180107-1 under
-Debian with -Werror=stringop-truncation).
-------------------------------------------------------------------------
-r12082 | vlefevre | 2018-01-09 14:44:43 +0000 (Tue, 09 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Fixed the @GMPabs macro in tex mode: due to the use of
-the OT1 encoding, the pipe character "|" was giving a wide dash.
-------------------------------------------------------------------------
-r12081 | vlefevre | 2018-01-09 14:06:43 +0000 (Tue, 09 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] For mpfr_custom_get_exp, restored the spec for NaN,
-infinity and zero, with more details.
-------------------------------------------------------------------------
-r12080 | vlefevre | 2018-01-09 13:51:51 +0000 (Tue, 09 Jan 2018) | 5 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved description of mpfr_custom_init_set.
-Note: For the versions of the manual generated with TeX (PDF/DVI/PS),
-"|kind|" appears as "—kind—", and the description of mpfr_ai has
-the same issue (since its introduction in MPFR 3.0.0). The cause
-is unclear, and this will be fixed later.
-------------------------------------------------------------------------
-r12079 | zimmerma | 2018-01-09 13:28:21 +0000 (Tue, 09 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] for mpfr_custom_get_exp, explain the significand is considered
- in [1/2,1) as for mpfr_get_exp
-
-------------------------------------------------------------------------
-r12076 | vlefevre | 2018-01-09 12:19:03 +0000 (Tue, 09 Jan 2018) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/doc/texinfo.tex
-
-[doc]
- * texinfo.tex: update to the latest version 2018-01-09.11, which
- supports @var with script font size without any drawback.
- * mpfr.texi: replaced the now useless @svar by @var.
-------------------------------------------------------------------------
-r12075 | vlefevre | 2018-01-07 20:45:25 +0000 (Sun, 07 Jan 2018) | 1 line
-Changed paths:
- M /trunk/tests/tai.c
-
-[tests/tai.c] In bug20180107, also check the flags.
-------------------------------------------------------------------------
-r12074 | vlefevre | 2018-01-07 20:06:18 +0000 (Sun, 07 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Really fixed the bug.
-------------------------------------------------------------------------
-r12073 | vlefevre | 2018-01-07 19:51:21 +0000 (Sun, 07 Jan 2018) | 1 line
-Changed paths:
- M /trunk/src/check.c
-
-[src/check.c] Typo.
-------------------------------------------------------------------------
-r12072 | zimmerma | 2018-01-07 19:51:20 +0000 (Sun, 07 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] missing call to mpfr_check_range
-
-------------------------------------------------------------------------
-r12071 | zimmerma | 2018-01-07 19:47:02 +0000 (Sun, 07 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tests/tai.c] added test that fails on x86_64
-
-------------------------------------------------------------------------
-r12070 | zimmerma | 2018-01-07 18:51:13 +0000 (Sun, 07 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tests/tai.c] added test for bug in mpfr_ai (see thread
-https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html)
-
-------------------------------------------------------------------------
-r12069 | vlefevre | 2018-01-03 10:58:06 +0000 (Wed, 03 Jan 2018) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r12068 | vlefevre | 2018-01-03 10:56:21 +0000 (Wed, 03 Jan 2018) | 2 lines
-Changed paths:
- M /trunk/tools/ck-mparam
-
-[tools/ck-mparam] In the copyright notice, just keep the year 2011
-since this file is not part of the tarball (just used by mpfrlint).
-------------------------------------------------------------------------
-r12067 | vlefevre | 2018-01-03 10:53:21 +0000 (Wed, 03 Jan 2018) | 6 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/check-typography
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/can_round.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/beta.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fmma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gamma_inc.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_q.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/invert_limb.h
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/log_ui.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/odd_p.c
- M /trunk/src/out_str.c
- M /trunk/src/pool.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/ubf.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc-cache.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbeta.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_q.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_ui.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/trootn_ui.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/Makefile.am
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/ck-clz_tab
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-news
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2018 with
- perl -pi -e 's/ (\d{4}-)?(2017)(?= Free Software)/
- " ".($1||"$2-").($2+1)/e' **/*(^/)
-under zsh, reverting the ck-mparam and timings-mpfr.c files and
-the mbench directory under "tools" (not distributed with MPFR).
-Removed 2017 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r12066 | zimmerma | 2018-01-03 10:20:46 +0000 (Wed, 03 Jan 2018) | 3 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] added comments and FIXME
-
-Note (2019-04-30): a bug has also been introduced (fixed in r13485).
-------------------------------------------------------------------------
-r12056 | vlefevre | 2017-12-25 11:15:53 +0000 (Mon, 25 Dec 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Minor corrections for GNU MPFR 4.0.0.
-------------------------------------------------------------------------
-r12055 | vlefevre | 2017-12-23 21:38:16 +0000 (Sat, 23 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Added a note about gettimeofday() and a cast.
-------------------------------------------------------------------------
-r12054 | vlefevre | 2017-12-23 21:17:25 +0000 (Sat, 23 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Fixed a potential integer overflow from r12053 with
-GMP_CHECK_RANDOMIZE=1, in particular under a 32-bit Linux.
-------------------------------------------------------------------------
-r12053 | zimmerma | 2017-12-23 17:08:06 +0000 (Sat, 23 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] decrease probability of collision with random seed
-
-------------------------------------------------------------------------
-r12048 | zimmerma | 2017-12-23 08:46:50 +0000 (Sat, 23 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/exp_2.c
- M /trunk/src/subnormal.c
-
-[src/exp_2.c] fixed bug from previous commit
-[src/subnormal.c] added assert
-
-------------------------------------------------------------------------
-r12047 | zimmerma | 2017-12-23 08:38:01 +0000 (Sat, 23 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-[tests/texp.c] added test for new bug
-
-------------------------------------------------------------------------
-r12045 | vlefevre | 2017-12-22 11:01:53 +0000 (Fri, 22 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tests/tlngamma.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r12044 | vlefevre | 2017-12-22 10:54:49 +0000 (Fri, 22 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/subnormal.c
-
-[src/subnormal.c] Replaced FIXME.
-------------------------------------------------------------------------
-r12043 | vlefevre | 2017-12-22 10:48:08 +0000 (Fri, 22 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tests/tj1.c
-
-[tests/tj1.c] Avoid a potential integer overflow.
-------------------------------------------------------------------------
-r12042 | zimmerma | 2017-12-22 08:10:22 +0000 (Fri, 22 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/subnormal.c
-
-[src/subnormal.c] added FIXME
-
-------------------------------------------------------------------------
-r12041 | zimmerma | 2017-12-22 08:06:04 +0000 (Fri, 22 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/sin.c
-
-[src/sin.c] simplified code with RNDA
-
-------------------------------------------------------------------------
-r12040 | zimmerma | 2017-12-22 08:03:49 +0000 (Fri, 22 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/hypot.c
-
-[src/hypot.c] mimic mpfr_round_near_x
-
-------------------------------------------------------------------------
-r12039 | zimmerma | 2017-12-22 07:54:59 +0000 (Fri, 22 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tj1.c
-
-[tests/tj1.c] exercise corner case
-
-------------------------------------------------------------------------
-r12038 | zimmerma | 2017-12-22 07:38:25 +0000 (Fri, 22 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tj1.c
-
-[tests/tj1.c] added test for j1(z) with small z
-
-------------------------------------------------------------------------
-r12037 | zimmerma | 2017-12-22 07:36:41 +0000 (Fri, 22 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/hypot.c
-
-[src/hypot.c] fixed issue with overflow flag not correctly set
-
-------------------------------------------------------------------------
-r12036 | vlefevre | 2017-12-21 09:17:04 +0000 (Thu, 21 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/next.c
-
-[src/next.c] Reverted r12035 as per documentation, which follows
-IEEE 754 (with the usual special treatment for the single NaN).
-------------------------------------------------------------------------
-r12035 | zimmerma | 2017-12-21 07:37:30 +0000 (Thu, 21 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/next.c
- M /trunk/tests/thypot.c
-
-[src/next.c] fixed nextinf (missing overflow flag)
-[tests/thypot.c] removed debug call to mpfr_dump in previous commit
-
-------------------------------------------------------------------------
-r12034 | zimmerma | 2017-12-21 07:29:57 +0000 (Thu, 21 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-[tests/thypot.c] another fix...
-
-------------------------------------------------------------------------
-r12033 | zimmerma | 2017-12-21 07:21:29 +0000 (Thu, 21 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-[tests/thypot.c] fixed bug20171221()
-
-------------------------------------------------------------------------
-r12032 | zimmerma | 2017-12-21 07:12:14 +0000 (Thu, 21 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-[tests/thypot.c] new failing test
-
-------------------------------------------------------------------------
-r12031 | zimmerma | 2017-12-21 06:18:05 +0000 (Thu, 21 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/src/lngamma.c
- M /trunk/tests/tlngamma.c
-
-[src/lngamma.c] fixed bug when u=0 in case z0 < 1
-[tests/tlngamma.c] fixed test case which was wrong
-
-
-------------------------------------------------------------------------
-r12030 | zimmerma | 2017-12-20 20:28:49 +0000 (Wed, 20 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tlngamma.c
-
-[tests/tlngamma.c] added test for new failure
-
-------------------------------------------------------------------------
-r12029 | zimmerma | 2017-12-20 10:48:26 +0000 (Wed, 20 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] fixed bug found in previous commit
-
-------------------------------------------------------------------------
-r12028 | zimmerma | 2017-12-20 10:40:34 +0000 (Wed, 20 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tlngamma.c
-
-[tests/tlngamma.c] added failing test with mpfr-4.0.0-rc2
-
-------------------------------------------------------------------------
-r12025 | vlefevre | 2017-12-20 01:54:18 +0000 (Wed, 20 Dec 2017) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/version.c
-
-Updated version to 4.1.0-dev again.
-------------------------------------------------------------------------
-r12023 | vlefevre | 2017-12-20 01:52:21 +0000 (Wed, 20 Dec 2017) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/version.c
-
-Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.
-------------------------------------------------------------------------
-r12022 | vlefevre | 2017-12-20 01:34:49 +0000 (Wed, 20 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Minor improvements. Added an assert.
-------------------------------------------------------------------------
-r12021 | vlefevre | 2017-12-20 01:17:36 +0000 (Wed, 20 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/tanh.c
-
-[src/tanh.c] GNU coding style.
-------------------------------------------------------------------------
-r12020 | vlefevre | 2017-12-20 01:13:09 +0000 (Wed, 20 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Reindentation.
-------------------------------------------------------------------------
-r12019 | vlefevre | 2017-12-20 01:10:54 +0000 (Wed, 20 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/exp2.c
-
-[src/exp2.c] Replaced two MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.
-------------------------------------------------------------------------
-r12018 | vlefevre | 2017-12-19 16:30:09 +0000 (Tue, 19 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/exp2.c
-
-[src/exp2.c] Fixed the double rounding problem in an underflow case,
-triggered by the test added in r12017.
-------------------------------------------------------------------------
-r12017 | vlefevre | 2017-12-19 16:13:48 +0000 (Tue, 19 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/texp2.c
-
-[tests/texp2.c] Added test of underflow in MPFR_RNDN with exact value
-close to 2^(emin-2). Currently fails due to double rounding.
-------------------------------------------------------------------------
-r12016 | vlefevre | 2017-12-19 14:45:00 +0000 (Tue, 19 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Added new non-regression test: the was the real cause of
-the ttanh failure in r11993 without the tanh.c fix in this same commit.
-But this mpfr_div was fixed in r12002.
-------------------------------------------------------------------------
-r12015 | vlefevre | 2017-12-19 08:56:43 +0000 (Tue, 19 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a comment about a bug/limitation in makeinfo 5.2.
-------------------------------------------------------------------------
-r12014 | vlefevre | 2017-12-19 08:21:55 +0000 (Tue, 19 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved svar macro for nottex, in case it is used
-in the future.
-------------------------------------------------------------------------
-r12013 | vlefevre | 2017-12-19 08:20:18 +0000 (Tue, 19 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Define svar even for nottex, though it is not used
-(attempt to avoid a failure with makeinfo 5.2).
-------------------------------------------------------------------------
-r12012 | zimmerma | 2017-12-19 06:51:47 +0000 (Tue, 19 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/fma.c
- M /trunk/tests/tfma.c
-
-[src/fma.c] fixed bug in mpfr_fma
-[tests/tfma.c] added non-regression test
-
-------------------------------------------------------------------------
-r12011 | vlefevre | 2017-12-19 03:38:58 +0000 (Tue, 19 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/exp2.c
-
-[src/exp2.c] Update concerning the underflow/overflow cases.
-Still incomplete.
-------------------------------------------------------------------------
-r12010 | vlefevre | 2017-12-19 02:32:33 +0000 (Tue, 19 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated a comment.
-------------------------------------------------------------------------
-r12009 | vlefevre | 2017-12-19 02:29:51 +0000 (Tue, 19 Dec 2017) | 8 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/doc/texinfo.tex
-
-[doc]
- * texinfo.tex: update to the latest version 2017-12-18.20, which
- reverts the change done in 2017-12-01.13 attempting to support
- @var with script font size (e.g. in exponent); but this change
- didn't work correctly.
- * mpfr.texi: introduced a @svar macro to handle this case. It
- currently disables the use of @var, the other workaround being
- worse.
-------------------------------------------------------------------------
-r12008 | vlefevre | 2017-12-18 17:59:35 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r12007 | vlefevre | 2017-12-18 17:05:28 +0000 (Mon, 18 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/src/tanh.c
-
-[doc/algorithms.tex,src/tanh.c] Fixed the bound, in particular from
-the recent improvements in the error analysis.
-------------------------------------------------------------------------
-r12006 | zimmerma | 2017-12-18 16:21:36 +0000 (Mon, 18 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] we should compare the smaller size and not the larger one to
- MPFR_MUL_THRESHOLD or MPFR_SQR_THRESHOLD for Mulders' short product
-
-------------------------------------------------------------------------
-r12005 | zimmerma | 2017-12-18 16:17:19 +0000 (Mon, 18 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul_d.c
-
-[src/mul.c] with Mulders', convert RNDF to RNDZ
-[tests/tmul_d.c] added a non-regression test
-
-------------------------------------------------------------------------
-r12004 | vlefevre | 2017-12-18 16:04:59 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] mpfr_tanh: corrected bounds (thanks to Paul).
-------------------------------------------------------------------------
-r12003 | vlefevre | 2017-12-18 15:54:05 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] mpfr_tanh: detailed some inequalities.
-------------------------------------------------------------------------
-r12002 | zimmerma | 2017-12-18 15:06:45 +0000 (Mon, 18 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/ttan.c
-
-[src/div.c] fixed bug in mpfr_div2_approx()
-[tests/tdiv.c] added non-regression test
-[tests/ttan.c] added test triggering bug in mpfr_div2_approx()
-
-------------------------------------------------------------------------
-r12001 | vlefevre | 2017-12-18 14:44:33 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] mpfr_tanh: resolved both FIXME's.
-------------------------------------------------------------------------
-r12000 | vlefevre | 2017-12-18 13:37:07 +0000 (Mon, 18 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] mpfr_tanh: corrected a part of the error analysis
-(2^k+4 ≤ |theta_4|^(−1/2) was not necessarily true, since theta_4 can
-be very small). As a consequence, the lemma can be simplified/improved
-(first FIXME). Added a second FIXME on a condition that is not checked.
-------------------------------------------------------------------------
-r11999 | vlefevre | 2017-12-18 12:22:26 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] mpfr_tanh: missing absolute value; added a \cdot.
-------------------------------------------------------------------------
-r11998 | vlefevre | 2017-12-18 12:15:31 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/exp2.c
- M /trunk/tests/texp2.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r11997 | vlefevre | 2017-12-18 12:08:36 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Added another \cdot for readability.
-------------------------------------------------------------------------
-r11996 | zimmerma | 2017-12-18 12:01:41 +0000 (Mon, 18 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/exp2.c
-
-[src/exp2.c] added FIXME
-
-------------------------------------------------------------------------
-r11995 | vlefevre | 2017-12-18 11:55:11 +0000 (Mon, 18 Dec 2017) | 7 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Minor corrections for hyperbolic tangent function:
- * "e" had two different meanings (BTW, the constant e should actually
- be written \mathrm{e} everywhere in the document).
- * Use \left...\right instead of |...| when it contains an expression
- starting with \log (the latter was confusing pdflatex, which added
- a spurious space before \log).
- * Added some \cdot for better readability.
-------------------------------------------------------------------------
-r11994 | zimmerma | 2017-12-18 11:36:15 +0000 (Mon, 18 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/exp2.c
- M /trunk/tests/texp2.c
-
-[src/exp2.c] fixed bug near underflow
-[tests/texp2.c] added non-regression test
-
-------------------------------------------------------------------------
-r11993 | zimmerma | 2017-12-18 08:51:06 +0000 (Mon, 18 Dec 2017) | 9 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/src/tanh.c
- M /trunk/tests/ttanh.c
-
-[tests/ttanh.c] added test for bug in mpfr_tanh
-[doc/algorithms.tex] fixed error analysis for mpfr_tanh
-[src/tanh.c] fixed error analysis
-Note after r12016: Even though mpfr_tanh was incorrect, the failure
-of the test added in ttanh.c was actually *only* due to a bug in the
-mpfr_div code specific to the trunk (fixed in r12002), i.e. this was
-not a non-regression test for the mpfr_tanh bug itself (in particular,
-this test does not introduce a failure in the 3.1 branch, which still
-has the same incorrect mpfr_tanh code but a correct mpfr_div).
-------------------------------------------------------------------------
-r11991 | vlefevre | 2017-12-18 00:04:58 +0000 (Mon, 18 Dec 2017) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/version.c
-
-Updated version to 4.1.0-dev again.
-------------------------------------------------------------------------
-r11989 | vlefevre | 2017-12-17 23:57:39 +0000 (Sun, 17 Dec 2017) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/version.c
-
-Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.
-------------------------------------------------------------------------
-r11988 | vlefevre | 2017-12-17 23:52:26 +0000 (Sun, 17 Dec 2017) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r11987 | zimmerma | 2017-12-17 16:23:21 +0000 (Sun, 17 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] fix bug in mpfr_add1sp3() in case d=GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r11986 | zimmerma | 2017-12-17 15:16:48 +0000 (Sun, 17 Dec 2017) | 14 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] added test for new bug (still to be fixed):
-
-Seed GMP_CHECK_RANDOMIZE=1514385177 (include this in bug reports)
-add1 & add1sp return different values for MPFR_RNDN
-Prec_a = 137, Prec_b = 137, Prec_c = 137
-B = 0.11111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000E-66
-C = 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000110000E-2
-
-add1 : 0.10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000E-1
-add1sp: 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000010000E-2
-Inexact sp = 0 | Inexact = 0
-Flags sp = 8 | Flags = 8
-add1sp.c:89: MPFR assertion failed: 0
-
-------------------------------------------------------------------------
-r11981 | vlefevre | 2017-12-15 02:44:49 +0000 (Fri, 15 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Minor comment correction.
-------------------------------------------------------------------------
-r11980 | vlefevre | 2017-12-15 02:36:50 +0000 (Fri, 15 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/src/root.c
- M /trunk/tests/troot.c
-
-[src/root.c] Completed fix from r11978, as x=-1 was affected too. Also
- added comments explaining that mpfr_root_aux assumes |x| ≠ 1 and why.
- Hence the need of a filter on |x| = 1.
-[tests/troot.c] Added test for x = -1.
-------------------------------------------------------------------------
-r11979 | vlefevre | 2017-12-15 01:44:11 +0000 (Fri, 15 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] Replaced mpfr_root by TF (like in the other tests).
-------------------------------------------------------------------------
-r11978 | zimmerma | 2017-12-14 10:22:32 +0000 (Thu, 14 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/root.c
- M /trunk/tests/troot.c
-
-[src/root.c] fixed bug when x=1
-[tests/troot.c] added non-regression test
-
-------------------------------------------------------------------------
-r11977 | vlefevre | 2017-12-14 07:57:05 +0000 (Thu, 14 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] Corrected a type. And mpfr_equal_p being a predicate
-function, it's better to use Boolean operators on it.
-------------------------------------------------------------------------
-r11976 | zimmerma | 2017-12-14 07:35:35 +0000 (Thu, 14 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] added a generic test for bug20171213()
-
-------------------------------------------------------------------------
-r11975 | vlefevre | 2017-12-14 02:17:05 +0000 (Thu, 14 Dec 2017) | 7 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/src/sqr.c
-
-[src/{mul.c,sqr.c}] Minor changes, making code similar to sub1sp.c.
-Checked with
- grep -A 1 'sb *>>' src/*.c
-that the bug fixed in r11974 does not occur in other parts of the code.
-BTW, there is much duplicate code, as shown by the grep output, and
-using macros could have avoided that, making bugs easier to reproduce
-(since a same bug would be duplicate several times).
-------------------------------------------------------------------------
-r11974 | zimmerma | 2017-12-13 21:18:23 +0000 (Wed, 13 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-[src/sub1sp.c] fixed bug in mpfr_sub1sp2()
-[tests/tsub1sp.c] added non-regression test
-
-------------------------------------------------------------------------
-r11973 | vlefevre | 2017-12-13 18:00:00 +0000 (Wed, 13 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/mpf2mpfr.h
-
-[src/mpf2mpfr.h] Added a comment.
-------------------------------------------------------------------------
-r11972 | zimmerma | 2017-12-13 17:25:07 +0000 (Wed, 13 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpf2mpfr.h
-
-[src/mpf2mpfr.h] missing mpf_inits/mpf_clears
-
-------------------------------------------------------------------------
-r11969 | zimmerma | 2017-12-13 07:05:01 +0000 (Wed, 13 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] redefine __clz_tab also with gmp-build
-
-------------------------------------------------------------------------
-r11968 | vlefevre | 2017-12-12 22:20:41 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved error message.
-------------------------------------------------------------------------
-r11967 | vlefevre | 2017-12-12 15:38:37 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tests/talloc.c
-
-[tests/talloc.c] Added a comment about why talloc requires ISO C99.
-------------------------------------------------------------------------
-r11966 | vlefevre | 2017-12-12 15:35:34 +0000 (Tue, 12 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-cvers.h
-
-[src/mpfr-cvers.h] Removed a useless test for __MPFR_STDC, as one just
-needs to check whether we have a C99, C11, etc. implementation (if not
-done via a configure test). Particular incompatibilities with the C90
-standard should always be checked via a configure test.
-------------------------------------------------------------------------
-r11965 | vlefevre | 2017-12-12 12:04:01 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added *.exe to svn:ignore property (files from MinGW builds).
-------------------------------------------------------------------------
-r11964 | zimmerma | 2017-12-12 11:07:36 +0000 (Tue, 12 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tools/timings-mpfr.c
-
-[tools/timings-mpfr.c] always use clock() [now very accurate under Linux]
-
-------------------------------------------------------------------------
-r11963 | vlefevre | 2017-12-12 10:15:50 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tools/timings-mpfr.c
-
-[tools/timings-mpfr.c] Updated years in copyright notice.
-------------------------------------------------------------------------
-r11962 | vlefevre | 2017-12-12 10:14:08 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tools/timings-mpfr.c
-
-[tools/timings-mpfr.c] Fixed prototypes.
-------------------------------------------------------------------------
-r11961 | vlefevre | 2017-12-12 10:12:48 +0000 (Tue, 12 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tools/timings-mpfr.c
-
-[tools/timings-mpfr.c] Added a defined(_MSC_VER). But clock() is
-standard, so why not always using it?
-------------------------------------------------------------------------
-r11960 | vlefevre | 2017-12-12 01:17:00 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Correction.
-------------------------------------------------------------------------
-r11959 | vlefevre | 2017-12-12 01:11:31 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Made formatting consistent (same as configure --help).
-------------------------------------------------------------------------
-r11958 | vlefevre | 2017-12-12 00:58:43 +0000 (Tue, 12 Dec 2017) | 5 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tsum.c
-
-Completed r11955: There were also DEBUG macros under the "tests"
-directory. Since such macros can still be useful in case a test failure,
-replaced them by MPFR_DEBUG to avoid issues with CI builds that define
-the DEBUG macro. But an environment variable would be a better solution
-(see MPFR_DEBUG_BADCASES as an example).
-------------------------------------------------------------------------
-r11957 | vlefevre | 2017-12-12 00:44:45 +0000 (Tue, 12 Dec 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Removed item on the DEBUG macro (done in r11955).
-------------------------------------------------------------------------
-r11956 | zimmerma | 2017-12-11 17:36:36 +0000 (Mon, 11 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tgeneric.c
-
-DEBUG_TGENERIC -> MPFR_DEBUG_TGENERIC
-XDEBUG -> MPFR_DISABLE_IEEE_FLOATS
-
-------------------------------------------------------------------------
-r11955 | zimmerma | 2017-12-11 17:02:05 +0000 (Mon, 11 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/div.c
- M /trunk/src/exp.c
- M /trunk/src/exp_2.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/zeta.c
-
-get rid of DEBUG macro (but keep corresponding commands in comment to help
-understanding of the code and debugging)
-
-------------------------------------------------------------------------
-r11954 | vlefevre | 2017-12-11 15:33:31 +0000 (Mon, 11 Dec 2017) | 1 line
-Changed paths:
- M /trunk/tests/tget_q.c
-
-[tests/tget_q.c] Removed trailing whitespace.
-------------------------------------------------------------------------
-r11953 | zimmerma | 2017-12-10 07:42:03 +0000 (Sun, 10 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tget_q.c
-
-[tests/tget_q.c] replaced MPFR_ASSERTN(0) by exit(1)
-
-------------------------------------------------------------------------
-r11952 | vlefevre | 2017-12-10 02:02:43 +0000 (Sun, 10 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_q.c
-
-[src/get_q.c] Optimization of r11951 suggested by Trevor Spiteri:
-https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00040.html
-------------------------------------------------------------------------
-r11951 | zimmerma | 2017-12-09 21:59:21 +0000 (Sat, 09 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/get_q.c
- M /trunk/tests/tget_q.c
-
-[src/get_q.c] make result of mpfr_get_q in canonical form
-[tests/tget_q.c] added non-regression test
-
-------------------------------------------------------------------------
-r11950 | zimmerma | 2017-12-09 21:46:01 +0000 (Sat, 09 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] replace call to __gmpfr_ceil_log2 by __gmpfr_int_ceil_log2
-
-------------------------------------------------------------------------
-r11949 | vlefevre | 2017-12-09 11:18:20 +0000 (Sat, 09 Dec 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Rename the DEBUG macro to MPFR_DEBUG?
-------------------------------------------------------------------------
-r11945 | vlefevre | 2017-12-08 16:15:36 +0000 (Fri, 08 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Also distribute generic/coverage/mparam.h
-(at least useful for testing the distributed tarballs).
-------------------------------------------------------------------------
-r11942 | vlefevre | 2017-12-08 14:53:52 +0000 (Fri, 08 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r11939 | vlefevre | 2017-12-08 14:30:37 +0000 (Fri, 08 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r11934 | vlefevre | 2017-12-08 13:56:42 +0000 (Fri, 08 Dec 2017) | 5 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release":
- * Note that this needs to be done in a branch.
- * Swapped (1) and (2), in particular because the coverage might be
- different in -dev versions and it is better to give results closer
- to the release.
-------------------------------------------------------------------------
-r11933 | vlefevre | 2017-12-08 13:40:19 +0000 (Fri, 08 Dec 2017) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/version.c
-
-Updated version to 4.1.0-dev.
-------------------------------------------------------------------------
-r11931 | vlefevre | 2017-12-08 13:17:51 +0000 (Fri, 08 Dec 2017) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r11930 | vlefevre | 2017-12-08 13:09:08 +0000 (Fri, 08 Dec 2017) | 2 lines
-Changed paths:
- D /trunk/tests/timings-mpfr.c
- A /trunk/tools/timings-mpfr.c (from /trunk/tests/timings-mpfr.c:11929)
-
-Moved tests/timings-mpfr.c into directory "tools" as it is not part
-of the test suite.
-------------------------------------------------------------------------
-r11929 | vlefevre | 2017-12-07 15:10:29 +0000 (Thu, 07 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Removed FIXME about the sign bit of NaN: done in
-r11910 and r11920 (documentation + tests).
-------------------------------------------------------------------------
-r11928 | vlefevre | 2017-12-07 14:58:38 +0000 (Thu, 07 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mul.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sub1sp.c
-
-[src] Replaced some "return 0" by "MPFR_RET (0)" (the generated code
-is the same as shown by gcc, thanks to an obvious optimization; this
-is semantically better, which could help provers, and would allow
-code instrumentation in the future, if need be).
-------------------------------------------------------------------------
-r11927 | zimmerma | 2017-12-06 19:54:25 +0000 (Wed, 06 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
-
-got rid of mpz_dump (undocumented in GMP)
-
-------------------------------------------------------------------------
-r11926 | zimmerma | 2017-12-06 17:14:27 +0000 (Wed, 06 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] updated with GMP 6.1.2
-
-------------------------------------------------------------------------
-r11925 | vlefevre | 2017-12-06 17:01:14 +0000 (Wed, 06 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected a Texinfo typography issue.
-------------------------------------------------------------------------
-r11924 | vlefevre | 2017-12-06 16:45:15 +0000 (Wed, 06 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/pool.c
-
-[src/pool.c] Updated description. Corrected copyright years as the
-pool code itself was introduced in 2014.
-------------------------------------------------------------------------
-r11923 | vlefevre | 2017-12-06 16:41:54 +0000 (Wed, 06 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/tests/timings-mpfr.c
-
-[tests/timings-mpfr.c] Removed trailing whitespace, untabified,
-changed GMP_RNDN to MPFR_RNDN.
-------------------------------------------------------------------------
-r11922 | vlefevre | 2017-12-06 16:34:16 +0000 (Wed, 06 Dec 2017) | 15 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/README.dev
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- A /trunk/src/pool.c (from /trunk/src/free_cache.c:11921)
-
-Cleanup and fixes for the mpz_t pool.
- * Split src/free_cache.c to itself and a new source file src/pool.c
- containing pool related code.
- * src/mpfr-impl.h, src/pool.c: cleanup and fixes. In particular:
- - renamed MPFR_MY_MPZ_INIT to MPFR_POOL_NENTRIES;
- - no longer use GMP's symbols __gmpz_init, etc. directly;
- - improved the condition for mpfr_mpz_init2;
- - fixed the condition in mpfr_mpz_clear (we want to consider
- the allocated size, not the size of the current number).
- * src/Makefile.am: added pool.c.
- * src/mpfr.h: added mpfr_free_pool prototype.
- * doc/mpfr.texi: updated pool description in "Memory Handling";
- new function mpfr_free_pool.
- * doc/README.dev: update due to the rename of MPFR_MY_MPZ_INIT.
- * NEWS: better announcement of the mpz_t pool.
-------------------------------------------------------------------------
-r11921 | vlefevre | 2017-12-06 14:45:08 +0000 (Wed, 06 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Small correction concerning the caches.
-------------------------------------------------------------------------
-r11920 | vlefevre | 2017-12-06 14:06:06 +0000 (Wed, 06 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] More details for mpfr_fpif_export and mpfr_fpif_import.
-------------------------------------------------------------------------
-r11919 | zimmerma | 2017-12-06 12:58:31 +0000 (Wed, 06 Dec 2017) | 2 lines
-Changed paths:
- A /trunk/tests/timings-mpfr.c
-
-[timings-mpfr.c] test file for measuring timings (added -p option)
-
-------------------------------------------------------------------------
-r11918 | vlefevre | 2017-12-06 12:45:40 +0000 (Wed, 06 Dec 2017) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/src/rec_sqrt.c
-
-Updated the remaining www.loria.fr URL's.
-------------------------------------------------------------------------
-r11917 | vlefevre | 2017-12-06 12:44:04 +0000 (Wed, 06 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.bib
-
-[doc/algorithms.bib] Updated URL's.
-------------------------------------------------------------------------
-r11916 | vlefevre | 2017-12-06 12:37:48 +0000 (Wed, 06 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] References: typography; updated a URL.
-------------------------------------------------------------------------
-r11914 | zimmerma | 2017-12-06 10:15:40 +0000 (Wed, 06 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] updated reference to "Modern Computer Arithmetic"
-
-------------------------------------------------------------------------
-r11913 | zimmerma | 2017-12-06 09:59:31 +0000 (Wed, 06 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/free_cache.c
-
-[free_cache.c] limit the size of objects in the mpz_t pool
-
-------------------------------------------------------------------------
-r11912 | vlefevre | 2017-12-06 09:43:02 +0000 (Wed, 06 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/free_cache.c
-
-[src/free_cache.c] Added a comment for the mpz_t pool, and a suggestion
-for mpfr_mpz_clear so that the pool will not take too much memory while
-keeping a possible benefit for very small precision.
-------------------------------------------------------------------------
-r11911 | vlefevre | 2017-12-05 23:33:58 +0000 (Tue, 05 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Made box around code examples for clarity and grep.
-------------------------------------------------------------------------
-r11910 | vlefevre | 2017-12-05 16:17:36 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/tests/tfpif.c
-
-[doc/mpfr.texi] For mpfr_fpif_export: the sign of a NaN is stored.
-[tests/tfpif.c] Test the sign of NaN (in particular).
-------------------------------------------------------------------------
-r11909 | vlefevre | 2017-12-05 15:57:33 +0000 (Tue, 05 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated references.
-------------------------------------------------------------------------
-r11908 | vlefevre | 2017-12-05 15:00:52 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Update about 0 of type without signed zeros, as in
-mpfr_div_ui.
-------------------------------------------------------------------------
-r11907 | vlefevre | 2017-12-05 13:43:39 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Document the behavior of mpfr_ui_pow and mpfr_ui_pow_ui
-on the integer 0 (0 does not have a sign here).
-------------------------------------------------------------------------
-r11906 | zimmerma | 2017-12-05 10:24:20 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] added information about result of "make check"
-
-------------------------------------------------------------------------
-r11905 | vlefevre | 2017-12-05 10:21:46 +0000 (Tue, 05 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Removed old code for pre-GMP-5 versions.
-------------------------------------------------------------------------
-r11904 | vlefevre | 2017-12-05 10:20:06 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/urandomb.c
-
-[src/urandomb.c] Removed an obsolete "#if __MPFR_GMP(5,0,0)" as we now
-require GMP 5.0+ and mp_bitcnt_t is also defined by mini-gmp.
-------------------------------------------------------------------------
-r11902 | vlefevre | 2017-12-05 10:01:32 +0000 (Tue, 05 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Removed the code that defined mpn_copyi and mpn_copyd
-macros for GMP < 5, since MPFR now requires GMP 5.0+ and these functions
-are also defined by mini-gmp (these macros were used by mini-gmp only
-because mini-gmp does not define GMP_VERSION).
-------------------------------------------------------------------------
-r11901 | vlefevre | 2017-12-05 09:52:56 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Missing parentheses around parameters in mpn_copyi
-and mpn_copyd macro definitions.
-------------------------------------------------------------------------
-r11900 | zimmerma | 2017-12-05 09:44:49 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-fixed bug in replacement function for copyi and copyd (found with mini-gmp)
-
-------------------------------------------------------------------------
-r11899 | zimmerma | 2017-12-05 09:43:54 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-add --disable-shared for mini-gmp (not tested yet with dynamic linking)
-
-------------------------------------------------------------------------
-r11898 | vlefevre | 2017-12-05 09:09:16 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Explain how to avoid the "... is deprecated" warning when
-testing a deprecated function.
-------------------------------------------------------------------------
-r11897 | vlefevre | 2017-12-05 08:52:43 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Removed a -Wno-error=deprecated-declarations as
-the specific warnings are now avoided (r11896).
-------------------------------------------------------------------------
-r11896 | vlefevre | 2017-12-05 08:47:25 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
- M /trunk/tests/tgrandom.c
- M /trunk/tests/tpow.c
- M /trunk/tests/troot.c
-
-Disable the "deprecated" attribute of deprecated functions *only* for
-the tests of these functions, to avoid the corresponding warnings.
-------------------------------------------------------------------------
-r11895 | vlefevre | 2017-12-05 08:34:13 +0000 (Tue, 05 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/dump.c
- M /trunk/tests/trint.c
-
-Removed trailing whietespace.
-------------------------------------------------------------------------
-r11894 | zimmerma | 2017-12-05 08:16:00 +0000 (Tue, 05 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/tests/terandom.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/trandom.c
- M /trunk/tests/turandom.c
-
-fixed compiler warnings with mini-gmp
-
-------------------------------------------------------------------------
-r11893 | vlefevre | 2017-12-04 22:47:09 +0000 (Mon, 04 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/src/dump.c
- M /trunk/src/fpif.c
- M /trunk/src/inp_str.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/out_str.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tvalist.c
-
-Simplified the use of MPFR_USE_FILE since <stdio.h> (<cstdio> for C++)
-is unconditionally included.
-------------------------------------------------------------------------
-r11892 | vlefevre | 2017-12-04 22:20:08 +0000 (Mon, 04 Dec 2017) | 1 line
-Changed paths:
- R /trunk/doc/texinfo.tex (from /trunk/doc/texinfo.tex:11890)
-
-Restored the history (and mergedinfo) of doc/texinfo.tex
-------------------------------------------------------------------------
-r11891 | zimmerma | 2017-12-04 19:01:20 +0000 (Mon, 04 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
- R /trunk/doc/texinfo.tex
- M /trunk/src/dump.c
- M /trunk/src/fpif.c
- M /trunk/src/get_q.c
- M /trunk/src/gmp_op.c
- M /trunk/src/inp_str.c
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr.h
- M /trunk/src/out_str.c
- M /trunk/src/set_q.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tget_q.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/trint.c
-
-make compilation work again (make + make check) with mini-gmp
-
-------------------------------------------------------------------------
-r11890 | vlefevre | 2017-12-04 15:05:05 +0000 (Mon, 04 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-Improved portability of the check-gmp-symbols make rule.
-------------------------------------------------------------------------
-r11889 | vlefevre | 2017-12-04 13:43:59 +0000 (Mon, 04 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Clarification.
-------------------------------------------------------------------------
-r11888 | vlefevre | 2017-12-04 13:37:19 +0000 (Mon, 04 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfpif_r1.dat
-
-[tests]
- * tfpif.c: in doit(), also test the negative versions of the numbers.
- * tfpif_r1.dat: update.
-------------------------------------------------------------------------
-r11887 | vlefevre | 2017-12-04 11:36:07 +0000 (Mon, 04 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/src/vasprintf.c
-
-[src] Update about the internal use of mpfr_get_str.
- * get_str.c: updated a comment.
- * vasprintf.c: added assertions.
-------------------------------------------------------------------------
-r11886 | vlefevre | 2017-12-04 11:11:37 +0000 (Mon, 04 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11885 | vlefevre | 2017-12-04 10:28:55 +0000 (Mon, 04 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Corrected a comment.
-------------------------------------------------------------------------
-r11884 | vlefevre | 2017-12-04 10:20:34 +0000 (Mon, 04 Dec 2017) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Update about the memory allocation (added references
-to Section "Memory Handling").
-(merged changeset r11632 from the 3.1 branch)
-------------------------------------------------------------------------
-r11883 | vlefevre | 2017-12-04 10:09:02 +0000 (Mon, 04 Dec 2017) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Update for mpfr_get_str:
- * Added a texi comment explaining why m+1 (so that if the mpfr_get_str
- implementation is improved, we know whether this is still the case).
- * Improved the documentation for the case str = null pointer.
-------------------------------------------------------------------------
-r11882 | vlefevre | 2017-12-03 14:16:40 +0000 (Sun, 03 Dec 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated comments about the latest change (r11881).
-------------------------------------------------------------------------
-r11881 | vlefevre | 2017-12-03 14:14:18 +0000 (Sun, 03 Dec 2017) | 5 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typography fixes for TeX (DVI/PS/PDF) in math mode.
- * Corrected the use of \lceil and \rceil.
- * Added missing @var, including 2 in exponent, as allowed by
- texinfo.tex 2017-12-01.13.
- * Removed old comments about Texinfo.
-------------------------------------------------------------------------
-r11880 | vlefevre | 2017-12-03 13:55:51 +0000 (Sun, 03 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/doc/texinfo.tex
-
-[doc/texinfo.tex] Update to the latest version 2017-12-01.13 from
-<https://ftp.gnu.org/gnu/texinfo/>.
-------------------------------------------------------------------------
-r11878 | vlefevre | 2017-12-01 16:27:09 +0000 (Fri, 01 Dec 2017) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] In r11876, forgot to define MPFR_WANT_DECIMAL_FLOATS in
-the cross-compiling case.
-------------------------------------------------------------------------
-r11877 | vlefevre | 2017-12-01 15:04:21 +0000 (Fri, 01 Dec 2017) | 6 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/tests.c
- M /trunk/tests/tversion.c
-
-Solved an output issue on AIX due to the use of setbuf() after output
-in tversion. Indeed, this is disallowed by ISO C.
- * doc/README.dev: added a note about tests_start_mpfr and this issue.
- * tests/tests.c: moved test_version() after setbuf().
- * tests/tversion.c: moved tests_start_mpfr() earlier, before any
- printf().
-------------------------------------------------------------------------
-r11876 | vlefevre | 2017-12-01 14:06:07 +0000 (Fri, 01 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Attempt to fix detection of decimal floats: if _Decimal64
-is known but does not work, no longer fail when --enable-decimal-float
-has not been used; just disable decimal floats.
-------------------------------------------------------------------------
-r11875 | vlefevre | 2017-12-01 13:37:40 +0000 (Fri, 01 Dec 2017) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Attempt to fix detection of decimal floats (BID was
-incorrectly assumed in case of link failure, if ld returned 1, which
-was observed on powerpc-ibm-aix7.2.0.0 [gcc119.fsffrance.org]).
-------------------------------------------------------------------------
-r11874 | vlefevre | 2017-12-01 12:28:45 +0000 (Fri, 01 Dec 2017) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Updated comments about the format.
-------------------------------------------------------------------------
-r11871 | vlefevre | 2017-11-30 17:27:20 +0000 (Thu, 30 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Typo.
-------------------------------------------------------------------------
-r11870 | vlefevre | 2017-11-30 17:13:25 +0000 (Thu, 30 Nov 2017) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/src/Makefile.am
-
-Two fixes for the check-gmp-symbols make rule:
- * Use $(COMPILE) instead of $(CC) to get the usual compilation flags
- (in particular, the -I flags may be important to find gmp.h and to
- get the correct one).
- * Run the test only if libmpfr.so exists.
-------------------------------------------------------------------------
-r11869 | vlefevre | 2017-11-30 15:32:33 +0000 (Thu, 30 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Internal GMP symbols: mention "make check-gmp-symbols".
-------------------------------------------------------------------------
-r11868 | vlefevre | 2017-11-30 15:30:30 +0000 (Thu, 30 Nov 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention "make check-gmp-symbols" (experimental).
-------------------------------------------------------------------------
-r11867 | vlefevre | 2017-11-30 15:27:00 +0000 (Thu, 30 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added an optional step "make check-gmp-symbols" to check
-that MPFR does not use GMP internal symbols.
-------------------------------------------------------------------------
-r11866 | vlefevre | 2017-11-30 15:17:10 +0000 (Thu, 30 Nov 2017) | 1 line
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/src/Makefile.am
-
-Added comment about the check-gmp-symbols make rule (added in r11865).
-------------------------------------------------------------------------
-r11865 | vlefevre | 2017-11-30 15:12:20 +0000 (Thu, 30 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/src/Makefile.am
-
-Added check-gmp-symbols make rule to check that MPFR does not use
-GMP internal symbols.
-------------------------------------------------------------------------
-r11864 | vlefevre | 2017-11-30 13:57:29 +0000 (Thu, 30 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Detailed the note about the list of GMP symbols.
-------------------------------------------------------------------------
-r11863 | vlefevre | 2017-11-30 13:44:10 +0000 (Thu, 30 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Document how to get the list of GMP symbols used
-by MPFR and how to detect GMP internal symbols used by MPFR.
-------------------------------------------------------------------------
-r11862 | vlefevre | 2017-11-30 13:19:03 +0000 (Thu, 30 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added a paragraph about the potential incorrect use of
-GMP internals.
-------------------------------------------------------------------------
-r11861 | vlefevre | 2017-11-29 15:26:52 +0000 (Wed, 29 Nov 2017) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Fixed the sign bug for mpfr_fpif_import.
-------------------------------------------------------------------------
-r11860 | vlefevre | 2017-11-29 15:05:28 +0000 (Wed, 29 Nov 2017) | 4 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] In doit(), before the call to mpfr_fpif_import(), set
-the sign of the target to the opposite of the expected sign. Thus, if
-mpfr_fpif_import forgets to set the sign, this will be detected. And
-a failure actually occurs now!
-------------------------------------------------------------------------
-r11859 | vlefevre | 2017-11-29 14:59:03 +0000 (Wed, 29 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] For mpfr_fpif_import, check the precision too.
-------------------------------------------------------------------------
-r11858 | vlefevre | 2017-11-29 02:37:57 +0000 (Wed, 29 Nov 2017) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/fpif.c
-
-[doc/mpfr.texi,src/fpif.c] For mpfr_fpif_import, in case of failure,
-the argument x is either unchanged or set to NaN, to make sure that
-x has valid contents (otherwise this could yield erratic behavior).
-------------------------------------------------------------------------
-r11857 | vlefevre | 2017-11-29 02:25:19 +0000 (Wed, 29 Nov 2017) | 3 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] For mpfr_fpif_import, replaced an assertion by a failure
-(since the full format is not described in the manual and MPFR cannot
-currently generate such a case, this is OK).
-------------------------------------------------------------------------
-r11856 | vlefevre | 2017-11-29 02:06:02 +0000 (Wed, 29 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfpif_r1.dat
-
-[tests/tfpif_r1.dat] Fixed an obvious error (incorrect sign of 0).
-------------------------------------------------------------------------
-r11855 | vlefevre | 2017-11-29 01:49:34 +0000 (Wed, 29 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Output more information in case of error.
-------------------------------------------------------------------------
-r11853 | vlefevre | 2017-11-28 16:46:55 +0000 (Tue, 28 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Fixed some bugs (though unlikely to occur in practice).
-Added comments. Minor code improvement.
-------------------------------------------------------------------------
-r11852 | vlefevre | 2017-11-28 15:41:17 +0000 (Tue, 28 Nov 2017) | 7 lines
-Changed paths:
- M /trunk/acinclude.m4
- D /trunk/m4/size_max.m4
- M /trunk/src/vasprintf.c
-
-Got rid of the useless SIZE_MAX macro.
- * src/vasprintf.c: replaced SIZE_MAX by (size_t) -1, already used
- in some other files.
- * acinclude.m4: no longer use gl_SIZE_MAX (from m4/size_max.m4).
- * Removed m4/size_max.m4 as it is no longer needed (note that the
- definition of SIZE_MAX by this file was unnecessarily complex
- and potentially incorrect on some platforms).
-------------------------------------------------------------------------
-r11851 | vlefevre | 2017-11-28 15:07:33 +0000 (Tue, 28 Nov 2017) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Added static assertions in mpfr_fpif_import().
-------------------------------------------------------------------------
-r11850 | vlefevre | 2017-11-28 14:41:45 +0000 (Tue, 28 Nov 2017) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Improved a test (mpfr_regular_p → !MPFR_IS_SINGULAR).
-------------------------------------------------------------------------
-r11849 | vlefevre | 2017-11-28 14:38:47 +0000 (Tue, 28 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a note about the use of the MPFR_IS_PURE_*(x)
-and MPFR_IS_SINGULAR*(x) macros.
-------------------------------------------------------------------------
-r11848 | vlefevre | 2017-11-27 16:07:23 +0000 (Mon, 27 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Added format description from past mail messages, to be
-checked in case of change (+ FIXME for NaN). Minor code improvement.
-------------------------------------------------------------------------
-r11847 | vlefevre | 2017-11-27 15:04:59 +0000 (Mon, 27 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Added TODO's (but the failure should be fixed first).
-------------------------------------------------------------------------
-r11846 | vlefevre | 2017-11-27 14:33:53 +0000 (Mon, 27 Nov 2017) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Clarified sign variable.
-------------------------------------------------------------------------
-r11845 | vlefevre | 2017-11-27 14:17:52 +0000 (Mon, 27 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Use SAME_VAL instead of mpfr_cmp. This triggers a bug
-that was not detected yet.
-------------------------------------------------------------------------
-r11844 | vlefevre | 2017-11-27 14:15:52 +0000 (Mon, 27 Nov 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Split the main test function into:
- * doit(): keep only the tests that depend on the precisions.
- * check_bad(): tests for bad file/data; precisions are not involved.
-------------------------------------------------------------------------
-r11843 | vlefevre | 2017-11-27 13:58:24 +0000 (Mon, 27 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Improved a test (NaN checking). Added comments.
-------------------------------------------------------------------------
-r11842 | vlefevre | 2017-11-27 13:53:43 +0000 (Mon, 27 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Removed a TODO done in r10326 and r10338.
-------------------------------------------------------------------------
-r11841 | vlefevre | 2017-11-27 10:31:33 +0000 (Mon, 27 Nov 2017) | 1 line
-Changed paths:
- M /trunk/autogen.sh
-
-Updated autogen.sh so that doc/texinfo.tex isn't replaced.
-------------------------------------------------------------------------
-r11840 | vlefevre | 2017-11-27 10:25:01 +0000 (Mon, 27 Nov 2017) | 3 lines
-Changed paths:
- A /trunk/doc/texinfo.tex
-
-Added doc/texinfo.tex file from Texinfo 6.5 since the version installed
-by Automake (via "autoreconf -i" as called by autogen.sh) is obsolete:
-more than 4 years older than the current version!
-------------------------------------------------------------------------
-r11839 | vlefevre | 2017-11-27 09:17:37 +0000 (Mon, 27 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated a comment about a bug in Texinfo.
-------------------------------------------------------------------------
-r11838 | vlefevre | 2017-11-23 14:33:18 +0000 (Thu, 23 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tset_exp.c
-
-[tests/tset_exp.c] Check mpfr_get_exp too (with two additional tests
-for mpfr_set_exp).
-------------------------------------------------------------------------
-r11837 | vlefevre | 2017-11-23 13:58:12 +0000 (Thu, 23 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/texceptions.c
-
-[tests/texceptions.c] Minor improvements.
-------------------------------------------------------------------------
-r11836 | vlefevre | 2017-11-23 13:53:24 +0000 (Thu, 23 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] For mpfr_get_exp, document that x can be outside of
-the current range of acceptable values (this was ambiguous).
-------------------------------------------------------------------------
-r11835 | vlefevre | 2017-11-21 15:03:59 +0000 (Tue, 21 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected Texinfo typography issues.
-------------------------------------------------------------------------
-r11834 | zimmerma | 2017-11-21 14:11:23 +0000 (Tue, 21 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-added another example where we can have an overflow
-
-------------------------------------------------------------------------
-r11833 | zimmerma | 2017-11-21 13:14:23 +0000 (Tue, 21 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-added pointer to mpfr_subnormalize
-
-------------------------------------------------------------------------
-r11832 | vlefevre | 2017-11-21 12:52:40 +0000 (Tue, 21 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Major update of "MPFR and the IEEE 754 Standard".
-------------------------------------------------------------------------
-r11831 | vlefevre | 2017-11-21 11:44:50 +0000 (Tue, 21 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added "MPFR and the IEEE 754 Standard" to the main menu
-as required. Title capitalization.
-------------------------------------------------------------------------
-r11830 | vlefevre | 2017-11-21 11:41:29 +0000 (Tue, 21 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Correction of a @node.
-------------------------------------------------------------------------
-r11829 | zimmerma | 2017-11-21 10:27:43 +0000 (Tue, 21 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-added section "MPFR and the IEEE 754 standard"
-
-------------------------------------------------------------------------
-r11828 | vlefevre | 2017-11-20 17:48:30 +0000 (Mon, 20 Nov 2017) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] mpfr_can_round: corrected the example; removed
-a reference to "ternary value" as there is already one in the
-previous sentence; clarification.
-------------------------------------------------------------------------
-r11827 | vlefevre | 2017-11-20 17:37:54 +0000 (Mon, 20 Nov 2017) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Faithful rounding (MPFR_RNDF):
- * Document that this feature is experimental and partially supported.
- * Update Section "API Compatibility".
-Note: the NEWS file was up-to-date.
-------------------------------------------------------------------------
-r11822 | vlefevre | 2017-11-15 16:17:14 +0000 (Wed, 15 Nov 2017) | 5 lines
-Changed paths:
- M /trunk/tests/talloc-cache.c
-
-[tests/talloc-cache.c]
- * Replaced test + abort() by the more informative MPFR_ASSERTN().
- * Also check that the allocator is the current GMP one (this would
- fail with MPFR 3.1.6, where the allocation functions are memorized
- the first time they are seen).
-------------------------------------------------------------------------
-r11821 | vlefevre | 2017-11-15 12:35:39 +0000 (Wed, 15 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr.h
- M /trunk/tests/talloc-cache.c
-
-mpfr_mp_memory_cleanup() now returns an error code (currently always 0)
-to avoid a future prototype change in case errors would be possible.
-------------------------------------------------------------------------
-r11820 | vlefevre | 2017-11-10 16:48:39 +0000 (Fri, 10 Nov 2017) | 6 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/src/ai.c
- M /trunk/src/bernoulli.c
- M /trunk/src/clear.c
- M /trunk/src/exp3.c
- M /trunk/src/fpif.c
- M /trunk/src/get_str.c
- M /trunk/src/init2.c
- M /trunk/src/inp_str.c
- M /trunk/src/lngamma.c
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/out_str.c
- M /trunk/src/rndna.c
- M /trunk/src/round_prec.c
- M /trunk/src/set_prec.c
- M /trunk/src/strtofr.c
- M /trunk/src/vasprintf.c
- M /trunk/src/zeta.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
-
-Cleanup: In src/mpfr-gmp.h, exchanged
- mpfr_allocate_func and *__gmp_allocate_func
- mpfr_reallocate_func and *__gmp_reallocate_func
- mpfr_free_func and *__gmp_free_func
-and in the code, replaced *__gmp_{allocate,reallocate,free}_func
-by mpfr_{allocate,reallocate,free}_func; updated TODO file.
-------------------------------------------------------------------------
-r11819 | vlefevre | 2017-11-10 13:58:25 +0000 (Fri, 10 Nov 2017) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] The sign bit of a NaN is now specified for mpfr_abs,
-mpfr_neg and mpfr_set, in order to mimic the IEEE-754 abs, negate
-and copy operations.
-------------------------------------------------------------------------
-r11818 | vlefevre | 2017-11-10 13:13:13 +0000 (Fri, 10 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
-
-[tests/tabs.c] More tests on mpfr_abs, including the ternary value
-and the NaN flag and sign bit for ±NaN.
-------------------------------------------------------------------------
-r11817 | vlefevre | 2017-11-10 12:53:48 +0000 (Fri, 10 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tabs.c
-
-[tests/tabs.c] Coding style.
-------------------------------------------------------------------------
-r11816 | vlefevre | 2017-11-10 12:47:09 +0000 (Fri, 10 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] For mpfr_neg on NaN, also check that the variable is
-set to NaN and that the ternary value is 0.
-------------------------------------------------------------------------
-r11815 | vlefevre | 2017-11-10 12:43:04 +0000 (Fri, 10 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] More NaN tests for mpfr_set.
-------------------------------------------------------------------------
-r11814 | vlefevre | 2017-11-10 12:34:17 +0000 (Fri, 10 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] More tests of the NaN flag and the sign bit for mpfr_neg
-on NaN.
-------------------------------------------------------------------------
-r11813 | vlefevre | 2017-11-10 12:22:26 +0000 (Fri, 10 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] The global variable "error" is better as static.
-------------------------------------------------------------------------
-r11812 | vlefevre | 2017-11-10 12:17:15 +0000 (Fri, 10 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] For mpfr_neg on NaN, check that the sign bit is flipped
-in both ways.
-------------------------------------------------------------------------
-r11811 | vlefevre | 2017-11-10 12:02:02 +0000 (Fri, 10 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added talloc-cache to svn:ignore property.
-------------------------------------------------------------------------
-r11810 | vlefevre | 2017-11-09 14:49:39 +0000 (Thu, 09 Nov 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] In the mpfr_neg test on the sign of NaN:
-C90 compatibility; improved robustness since as specified,
-mpfr_signbit can return any value (not just 0 or 1).
-------------------------------------------------------------------------
-r11809 | vlefevre | 2017-11-09 14:35:17 +0000 (Thu, 09 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/src/neg.c
-
-[src/neg.c] Refactored code (BTW, this was not a bug as the sign of NaN
-is currently unspecified for mpfr_neg).
-------------------------------------------------------------------------
-r11808 | zimmerma | 2017-11-09 13:57:40 +0000 (Thu, 09 Nov 2017) | 3 lines
-Changed paths:
- M /trunk/src/neg.c
- M /trunk/tests/tset.c
-
-fixed bug reported by Trevor Spiteri
-(https://sympa.inria.fr/sympa/arc/mpfr/2017-11/msg00003.html)
-
-------------------------------------------------------------------------
-r11807 | vlefevre | 2017-11-08 17:04:45 +0000 (Wed, 08 Nov 2017) | 7 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/tests/talloc-cache.c
-
-Change the way memory is allocated (as discussed partly in private).
- * src/mpfr-gmp.c, src/mpfr-gmp.h, src/mpfr-impl.h: update.
- * src/free_cache.c, src/mpfr.h: added mpfr_mp_memory_cleanup function.
- * NEWS: describe API change.
- * TODO: added 2 related items (future clean-up and feature).
- * doc/mpfr.texi: update.
- * tests/talloc-cache.c: take API change into account.
-------------------------------------------------------------------------
-r11806 | vlefevre | 2017-11-07 15:59:03 +0000 (Tue, 07 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated Section "Compatibility With MPF".
-------------------------------------------------------------------------
-r11805 | vlefevre | 2017-11-07 15:34:11 +0000 (Tue, 07 Nov 2017) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Removed a paragraph from r2962 concerning mpf2mpfr.h
-and mpf_init / mpf_init2: since r2985, the mpf_init / mpf_init2 macros
-initialize to 0 like MPF, so that users shouldn't see differences from
-MPF.
-------------------------------------------------------------------------
-r11804 | zimmerma | 2017-11-07 15:33:40 +0000 (Tue, 07 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added reference
-
-------------------------------------------------------------------------
-r11803 | vlefevre | 2017-11-07 09:21:02 +0000 (Tue, 07 Nov 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Formatting.
-------------------------------------------------------------------------
-r11802 | vlefevre | 2017-11-07 09:14:30 +0000 (Tue, 07 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] mpfr_free_cache_t: added comments to show that these are
-flags.
-------------------------------------------------------------------------
-r11801 | vlefevre | 2017-11-07 09:09:03 +0000 (Tue, 07 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated mpfr_free_cache / mpfr_free_cache2 description.
-------------------------------------------------------------------------
-r11800 | vlefevre | 2017-11-07 08:31:45 +0000 (Tue, 07 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/src/free_cache.c
-
-[src/free_cache.c] Minor portability improvement for mpfr_free_cache2
-to accept way = 0 (no effect on two's complement machines).
-------------------------------------------------------------------------
-r11799 | vlefevre | 2017-11-06 16:39:40 +0000 (Mon, 06 Nov 2017) | 8 lines
-Changed paths:
- M /trunk/tests/talloc-cache.c
- M /trunk/tests/tests.c
-
-[tests]
- * tests.c: for test programs that use GMP's mp_set_memory_functions,
- tests_rand_start and tests_rand_end also need to be disabled; to do
- that, require that tests_memory_disabled be set to 2 in this case
- (the value 1 is already used for the use with mini-gmp, where only
- tests_memory_start and tests_memory_end need to be disabled).
- * talloc-cache.c: call tests_start_mpfr and tests_end_mpfr as usual,
- with tests_memory_disabled set to 2.
-------------------------------------------------------------------------
-r11798 | vlefevre | 2017-11-06 16:01:32 +0000 (Mon, 06 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11797 | vlefevre | 2017-11-06 14:22:11 +0000 (Mon, 06 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Minor change.
-------------------------------------------------------------------------
-r11796 | vlefevre | 2017-11-06 14:17:51 +0000 (Mon, 06 Nov 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] + explicit information on pools (in addition to caches).
-------------------------------------------------------------------------
-r11795 | vlefevre | 2017-11-06 12:19:43 +0000 (Mon, 06 Nov 2017) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS,doc/mpfr.texi] mpfr_free_cache2 is a new function in MPFR 4.0,
-as a consequence of shared caches for multithreaded applications.
-------------------------------------------------------------------------
-r11794 | vlefevre | 2017-11-06 12:07:28 +0000 (Mon, 06 Nov 2017) | 1 line
-Changed paths:
- M /trunk/src/free_cache.c
-
-[src/free_cache.c] GNU coding style.
-------------------------------------------------------------------------
-r11793 | vlefevre | 2017-11-06 12:03:04 +0000 (Mon, 06 Nov 2017) | 7 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/talloc-cache.c
-
-[tests]
- * Makefile.am: added talloc-cache to check_PROGRAMS.
- * talloc-cache.c: improved the test allocators so that an incorrect
- use is detected by this code instead of relying on the C library
- checking bad use of malloc/realloc/free (which was UB).
- NOTE: The test currently fails in the trunk due to the mpz_t pool.
- But anyway, the memory allocation method will change soon.
-------------------------------------------------------------------------
-r11792 | vlefevre | 2017-11-06 10:29:06 +0000 (Mon, 06 Nov 2017) | 1 line
-Changed paths:
- M /trunk/tests/talloc-cache.c
-
-[tests/talloc-cache.c] Corrected indentation.
-------------------------------------------------------------------------
-r11791 | vlefevre | 2017-10-30 12:46:57 +0000 (Mon, 30 Oct 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved the mpfr_nexttoward description w.r.t. flags.
-------------------------------------------------------------------------
-r11790 | zimmerma | 2017-10-27 19:12:45 +0000 (Fri, 27 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-added note about mpfr_beta
-
-------------------------------------------------------------------------
-r11788 | vlefevre | 2017-10-26 14:39:53 +0000 (Thu, 26 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS,doc/mpfr.texi] mpfr_beta is incomplete, experimental.
-See <https://sympa.inria.fr/sympa/arc/mpfr/2017-10/msg00007.html>.
-------------------------------------------------------------------------
-r11787 | zimmerma | 2017-10-26 09:06:02 +0000 (Thu, 26 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added functions from C++17
-
-------------------------------------------------------------------------
-r11784 | zimmerma | 2017-10-23 07:18:05 +0000 (Mon, 23 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-fixed typo
-
-------------------------------------------------------------------------
-r11782 | vlefevre | 2017-10-11 13:13:32 +0000 (Wed, 11 Oct 2017) | 4 lines
-Changed paths:
- M /trunk/src/get_float128.c
- M /trunk/tests/tset_float128.c
-
-[src/get_float128.c] Fixed failure in mpfr_get_float128 when called with
- a very reduced exponent range.
-[tests/tset_float128.c] Also test mpfr_get_float128 in reduced exponent
- range (triggering a failure before the fix).
-------------------------------------------------------------------------
-r11781 | vlefevre | 2017-10-10 08:09:02 +0000 (Tue, 10 Oct 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": + Check the generic code.
-------------------------------------------------------------------------
-r11779 | vlefevre | 2017-10-09 15:02:46 +0000 (Mon, 09 Oct 2017) | 3 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Fixed the generic code when called with a very reduced
-exponent range. The tset_ld failure could be triggered on x86 by running
-"./configure ... mpfr_cv_c_long_double_format=unknown".
-------------------------------------------------------------------------
-r11778 | vlefevre | 2017-10-09 12:17:18 +0000 (Mon, 09 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Also test mpfr_get_ld in reduced exponent range
-(no failures on x86).
-------------------------------------------------------------------------
-r11777 | vlefevre | 2017-10-09 11:39:32 +0000 (Mon, 09 Oct 2017) | 6 lines
-Changed paths:
- M /trunk/src/get_z.c
- M /trunk/tests/tget_z.c
-
-[src/get_z.c] Fixed failure in mpfr_get_z when called with a very
- reduced exponent range.
-[tests/tget_z.c] Added tests in the various rounding modes (triggering
- a failure before the above fix). Also call check_one() on an integer
- congruent to 1 mod 4 (useful to check even rounding). Fixed 2 issues
- in the error message (for inex and the flags).
-------------------------------------------------------------------------
-r11776 | vlefevre | 2017-10-09 09:17:50 +0000 (Mon, 09 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tget_z.c
-
-[tests/tget_z.c] Also test mpfr_get_z in reduced exponent range
-(no failures though its code seems incorrect).
-------------------------------------------------------------------------
-r11775 | vlefevre | 2017-10-06 15:08:25 +0000 (Fri, 06 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
-
-[src/{get_si.c,get_sj.c}] Minor improvement, removing an obsolete note
-in get_sj.c at the same time.
-------------------------------------------------------------------------
-r11774 | vlefevre | 2017-10-06 14:17:38 +0000 (Fri, 06 Oct 2017) | 3 lines
-Changed paths:
- M /trunk/src/get_sj.c
- M /trunk/src/get_uj.c
- M /trunk/tests/tget_sj.c
-
-[src/{get_sj.c,get_uj.c}] Fixed failure in mpfr_get_sj and mpfr_get_uj
- when called with a very reduced exponent range.
-[tests/tget_sj.c] Added corresponding test cases.
-------------------------------------------------------------------------
-r11773 | vlefevre | 2017-10-06 13:52:29 +0000 (Fri, 06 Oct 2017) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Minor correction in error message.
-------------------------------------------------------------------------
-r11772 | vlefevre | 2017-10-05 12:52:59 +0000 (Thu, 05 Oct 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Function multiversioning (FMV): more details.
-------------------------------------------------------------------------
-r11771 | vlefevre | 2017-10-05 12:47:27 +0000 (Thu, 05 Oct 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Mention function multiversioning (FMV).
-------------------------------------------------------------------------
-r11770 | vlefevre | 2017-10-04 15:25:26 +0000 (Wed, 04 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_si.c
- M /trunk/src/get_ui.c
-
-[src/{get_si.c,get_ui.c}] Fixed failure in mpfr_get_si and mpfr_get_ui
-when called with a very reduced exponent range.
-------------------------------------------------------------------------
-r11769 | vlefevre | 2017-10-04 15:07:56 +0000 (Wed, 04 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] get_tests: added comments and tests in a reduced
-exponent range, which currently trigger an assertion failure.
-------------------------------------------------------------------------
-r11768 | vlefevre | 2017-10-02 08:53:14 +0000 (Mon, 02 Oct 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11767 | vlefevre | 2017-10-02 08:39:52 +0000 (Mon, 02 Oct 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention mpfr_dump.
-------------------------------------------------------------------------
-r11766 | vlefevre | 2017-10-02 08:37:28 +0000 (Mon, 02 Oct 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Describe the current output format of mpfr_dump.
-------------------------------------------------------------------------
-r11765 | vlefevre | 2017-10-02 08:22:37 +0000 (Mon, 02 Oct 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Replaced @code by @samp for things that are not
-actually code, but parts of character strings.
-------------------------------------------------------------------------
-r11764 | vlefevre | 2017-09-29 15:58:51 +0000 (Fri, 29 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/src/dump.c
- M /trunk/tests/toutimpl.c
-
-[src/dump.c] mpfr_dump now outputs specific info for invalid data.
-[tests/toutimpl.c] Added mpfr_dump tests.
-------------------------------------------------------------------------
-r11763 | vlefevre | 2017-09-29 13:44:52 +0000 (Fri, 29 Sep 2017) | 6 lines
-Changed paths:
- M /trunk/src/dump.c
-
-[src/dump.c]
- * Output the sign even for NaN, since this can be useful information
- (the sign of a NaN has an effect with some functions, following
- IEEE 754-2008).
- * This changes allows one to get rid of the mpfr_fprint_binary
- static function at the same time.
-------------------------------------------------------------------------
-r11762 | vlefevre | 2017-09-29 13:31:25 +0000 (Fri, 29 Sep 2017) | 1 line
-Changed paths:
- M /trunk/src/dump.c
- M /trunk/src/print_raw.c
-
-[src/{dump.c,print_raw.c}] Updated the description.
-------------------------------------------------------------------------
-r11761 | vlefevre | 2017-09-29 13:25:34 +0000 (Fri, 29 Sep 2017) | 20 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/dump.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/print_raw.c
- M /trunk/src/sub1sp.c
-
-[src] Clean up of debugging output functions:
- * Replaced the internal function mpfr_fprint_binary by a new
- internal function mpfr_fdump, similar to mpfr_dump, but with
- a FILE * argument.
- * Got rid of mpfr_print_binary entirely (it became internal in
- r2466 for MPFR 2.0.2, released in 2003).
-
-Details:
- * print_raw.c:
- - moved the mpfr_fprint_binary code to dump.c;
- - removed mpfr_print_binary.
- * dump.c:
- - mpfr_fprint_binary (from print_raw.c) is now defined as static;
- - added function mpfr_fdump, using mpfr_fprint_binary;
- - mpfr_dump: use mpfr_fdump instead of the old mpfr_print_binary.
- * mpfr-impl.h:
- - replaced mpfr_fprint_binary declaration by mpfr_fdump;
- - removed mpfr_print_binary declaration.
- * add1sp.c, mul.c, sub1sp.c: replaced mpfr_fprint_binary by mpfr_fdump
- and removed the '\n', now output by mpfr_fdump.
-------------------------------------------------------------------------
-r11759 | vlefevre | 2017-09-28 11:27:54 +0000 (Thu, 28 Sep 2017) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added trootn_ui to svn:ignore property.
-------------------------------------------------------------------------
-r11758 | vlefevre | 2017-09-20 14:11:30 +0000 (Wed, 20 Sep 2017) | 3 lines
-Changed paths:
- M /trunk/tests/toutimpl.c
-
-[tests/toutimpl.c]
- * Check mpfr_print_mant_binary() too.
- * GNU coding style.
-------------------------------------------------------------------------
-r11757 | vlefevre | 2017-09-20 13:57:58 +0000 (Wed, 20 Sep 2017) | 4 lines
-Changed paths:
- M /trunk/src/print_raw.c
-
-[src/print_raw.c] Changes in mpfr_print_mant_binary():
- * Output a ']' when a '[' was output earlier.
- * Correction: putchar() takes an int (or unsigned char), not a char.
- * GNU coding style.
-------------------------------------------------------------------------
-r11756 | zimmerma | 2017-09-18 14:02:23 +0000 (Mon, 18 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-changed .align 64 into .p2align 6 (cf https://trac.sagemath.org/ticket/19233)
-
-------------------------------------------------------------------------
-r11755 | vlefevre | 2017-09-15 11:51:18 +0000 (Fri, 15 Sep 2017) | 21 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tacos.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/terf.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tui_div.c
-
-[tests] Solve issues with the incorrect use of mpfr_sgn, and make sure
-that this cannot happen again without being detected: on zero, +1 or -1
-was sometimes expected to check the sign of zero, but mpfr_sgn actually
-returned 0, so that the check always succeeded whatever the sign of the
-null result.
- * mpfr-test.h: define a new mpfr_sgn macro that fails when used on NaN
- or zero (whose sign is not +1 or -1), except when MPFR_TESTS_TSGN is
- defined.
- * tacos.c, tasin.c, tasinh.c, tatanh.c, tcbrt.c, tdim.c, terf.c,
- texp.c, texp10.c, texp2.c, texpm1.c, tset.c, tset_str.c: replaced
- the incorrect use of mpfr_sgn; some other related improvements.
- Note: in tset.c, a "mpfr_sgn (x) < 0" test had to be replaced by
- "MPFR_IS_POS (x)" since we really want to test whether the sign
- is positive (not negative).
- * tdiv.c, tmul.c, tui_div.c: simplified some tests, in particular to
- avoid a failure with the new mpfr_sgn macro for the tests; here,
- the use of mpfr_sgn was correct, but one could do simpler.
- * tgmpop.c: replaced "mpfr_sgn (z)" by "(mpfr_sgn) (z)" to avoid the
- new mpfr_sgn macro (here, we really want the mathematical sign).
- * tsgn.c: define MPFR_TESTS_TSGN as the goal of this program is to
- test mpfr_sgn itself (both the function and the macro in mpfr.h).
-------------------------------------------------------------------------
-r11754 | vlefevre | 2017-09-15 07:45:21 +0000 (Fri, 15 Sep 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": Enhanced step 5 (tarballs).
-------------------------------------------------------------------------
-r11753 | zimmerma | 2017-09-14 18:55:02 +0000 (Thu, 14 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/Makefile
-
-patch to avoid using the system mpfr.h
-
-------------------------------------------------------------------------
-r11752 | vlefevre | 2017-09-14 15:41:35 +0000 (Thu, 14 Sep 2017) | 4 lines
-Changed paths:
- M /trunk/tests/tfms.c
-
-[tests/tfms.c] Similar changes to what was done in tfma.c:
- * replaced "mpfr_cmp" by "! mpfr_equal_p";
- * code formatting (mainly reindentation);
- * use of SAME_SIGN for better clarity.
-------------------------------------------------------------------------
-r11751 | vlefevre | 2017-09-14 15:39:24 +0000 (Thu, 14 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Similar change to what was done in tfms.c (may be useful
-in the future).
-------------------------------------------------------------------------
-r11750 | vlefevre | 2017-09-14 15:28:21 +0000 (Thu, 14 Sep 2017) | 4 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trint.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tzeta.c
-
-[tests] Got rid of the use of mpfr_print_binary, in general with
-mpfr_dump. Replaced some "mpfr_out_str (stdout, 2, ...)" by mpfr_dump
-for consistency or as improvements. Some other corrections in the
-related error messages.
-------------------------------------------------------------------------
-r11749 | zimmerma | 2017-09-14 14:03:59 +0000 (Thu, 14 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-added info about autoconf-archive
-
-------------------------------------------------------------------------
-r11748 | vlefevre | 2017-09-14 09:23:39 +0000 (Thu, 14 Sep 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
-
-Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed.
-------------------------------------------------------------------------
-r11747 | vlefevre | 2017-09-13 15:06:51 +0000 (Wed, 13 Sep 2017) | 3 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Do the tests_start_mpfr / tests_end_mpfr check only if
-the .c file has a main() function; this avoids an error on trootn_ui.c,
-which just does a #include.
-------------------------------------------------------------------------
-r11746 | vlefevre | 2017-09-13 14:46:00 +0000 (Wed, 13 Sep 2017) | 4 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c]
- * Use mpfr_set_zero instead of mpfr_set_ui / mpfr_neg (like what was
- done for the infinity, using mpfr_set_inf).
- * For exact cases (NaN, ±Inf, ±0), check that the ternary value is 0.
-------------------------------------------------------------------------
-r11745 | vlefevre | 2017-09-13 14:36:25 +0000 (Wed, 13 Sep 2017) | 3 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] For the root(±0,k) tests, before calling the function,
-we set the target y to NaN with the wrong sign, so that if the code of
-the function forgets to do something, this will be detected.
-------------------------------------------------------------------------
-r11744 | vlefevre | 2017-09-13 14:17:46 +0000 (Wed, 13 Sep 2017) | 1 line
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] Also check root(+0,42) and root(-0,17) for completeness.
-------------------------------------------------------------------------
-r11743 | vlefevre | 2017-09-13 14:11:35 +0000 (Wed, 13 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] Really check the sign of the result 0 (the old test
-was always false, thus useless!).
-------------------------------------------------------------------------
-r11742 | vlefevre | 2017-09-13 14:00:15 +0000 (Wed, 13 Sep 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11741 | vlefevre | 2017-09-13 13:59:20 +0000 (Wed, 13 Sep 2017) | 11 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/root.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/troot.c
- A /trunk/tests/trootn_ui.c
-
-New mpfr_rootn_ui function; mpfr_root deprecated.
- * src/root.c: mpfr_rootn_ui is now the main code, and mpfr_root calls
- mpfr_rootn_ui.
- * src/mpfr.h: added mpfr_rootn_ui prototype; marked mpfr_root as
- deprecated.
- * Added tests/trootn_ui.c (includes troot.c).
- * tests/troot.c: made it usable (via #include) by the new trootn_ui.c
- test.
- * tests/Makefile.am: added trootn_ui; at the same time, corrected the
- order of the test programs (lexicographic, with exceptions).
- * NEWS, TODO, doc/mpfr.texi: update.
-------------------------------------------------------------------------
-r11740 | vlefevre | 2017-09-13 13:28:05 +0000 (Wed, 13 Sep 2017) | 1 line
-Changed paths:
- M /trunk/doc/add-with-carry.c
- M /trunk/tests/talloc-cache.c
-
-Removed the text/x-csrc svn:mime-type property present on 2 files.
-------------------------------------------------------------------------
-r11739 | vlefevre | 2017-09-13 13:22:33 +0000 (Wed, 13 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tversion.c
-
-[tests] Avoid duplicate code by defining the MAKE_STR() macro in
-mpfr-test.h only instead of tgeneric.c and tversion.c.
-------------------------------------------------------------------------
-r11734 | vlefevre | 2017-09-08 10:26:37 +0000 (Fri, 08 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": Updated the warning, as the issue
-concerns the .ps file only (the .dvi file has no papersize info).
-------------------------------------------------------------------------
-r11733 | vlefevre | 2017-09-08 10:07:03 +0000 (Fri, 08 Sep 2017) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": Added a warning to check the
-papersize of the generated dvi and ps files, which may be incorrect
-(bug in texinfo(?) reported as Debian bug 874632).
-------------------------------------------------------------------------
-r11729 | vlefevre | 2017-09-08 08:34:24 +0000 (Fri, 08 Sep 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/tests/tstrtofr.c
-
-Switched other gmplib.org URL's to https.
-------------------------------------------------------------------------
-r11728 | vlefevre | 2017-09-08 08:31:36 +0000 (Fri, 08 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated URL:
- http://gmplib.org → https://gmplib.org/
-------------------------------------------------------------------------
-r11727 | vlefevre | 2017-09-08 08:29:52 +0000 (Fri, 08 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated URL:
- ftp://ftp.gnu.org/gnu/mpfr/ → https://ftp.gnu.org/gnu/mpfr/
-------------------------------------------------------------------------
-r11726 | vlefevre | 2017-09-08 08:25:49 +0000 (Fri, 08 Sep 2017) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Switched to https for ftp.gnu.org.
-------------------------------------------------------------------------
-r11724 | vlefevre | 2017-09-07 14:20:45 +0000 (Thu, 07 Sep 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": update about the uploads.
-------------------------------------------------------------------------
-r11715 | vlefevre | 2017-09-06 15:30:04 +0000 (Wed, 06 Sep 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Completed item on thread-safe DLL (shared library) support.
-------------------------------------------------------------------------
-r11714 | vlefevre | 2017-09-06 13:49:07 +0000 (Wed, 06 Sep 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Completed the fix in r11713.
-------------------------------------------------------------------------
-r11713 | vlefevre | 2017-09-06 13:47:45 +0000 (Wed, 06 Sep 2017) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed thread-safe DLL support with ICC and MSVC
-on MS Windows without the GMP build directory (r11712 contained
-inconsistent function names, yielding "unresolved external symbol"
-errors in tabort_defalloc1.obj), second try.
-------------------------------------------------------------------------
-r11712 | vlefevre | 2017-09-06 11:48:21 +0000 (Wed, 06 Sep 2017) | 7 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-[src] Attempt to fix thread-safe DLL support with ICC and MSVC on
-MS Windows without the GMP build directory. See:
- https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00009.html
- https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00014.html
-i.e. for the mpfr_allocate_func, mpfr_reallocate_func & mpfr_free_func
-external TLS variables, one does the same thing as what had been done
-for the other ones (__gmpfr_flags, __gmpfr_emin, __gmpfr_emax, etc.).
-------------------------------------------------------------------------
-r11711 | vlefevre | 2017-09-06 11:11:13 +0000 (Wed, 06 Sep 2017) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added tget_q to svn:ignore property.
-------------------------------------------------------------------------
-r11706 | vlefevre | 2017-09-05 12:48:04 +0000 (Tue, 05 Sep 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] With MPFR_CHECK_LIBC_PRINTF, disable the test of
-the "'" flag with a non-glibc C library (SUS extension in printf).
-In particular, it is not supported by AIX 7.2.
-------------------------------------------------------------------------
-r11705 | vlefevre | 2017-09-05 12:37:19 +0000 (Tue, 05 Sep 2017) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] In case decimal_point and/or thousands_sep are
-non-single-byte characters (as found on FreeBSD 11 in fr_FR.UTF-8),
-revert to the default value. Added a FIXME to support multibyte
-decimal_point and thousands_sep.
-------------------------------------------------------------------------
-r11704 | vlefevre | 2017-09-05 11:46:44 +0000 (Tue, 05 Sep 2017) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Formatting.
-------------------------------------------------------------------------
-r11702 | vlefevre | 2017-09-05 10:33:34 +0000 (Tue, 05 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a paragraph about temporary result files created
-by test programs.
-------------------------------------------------------------------------
-r11701 | vlefevre | 2017-09-05 10:19:58 +0000 (Tue, 05 Sep 2017) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Added tfpif_rw.dat to CLEANFILES.
-------------------------------------------------------------------------
-r11700 | vlefevre | 2017-09-05 10:17:34 +0000 (Tue, 05 Sep 2017) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- D /trunk/tests/mpfrtest.dat
- D /trunk/tests/mpfrtest2.dat
- M /trunk/tests/tfpif.c
- A /trunk/tests/tfpif_r1.dat (from /trunk/tests/mpfrtest.dat:11699)
- A /trunk/tests/tfpif_r2.dat (from /trunk/tests/mpfrtest2.dat:11699)
-
-[tests] Renamed mpfrtest.txt, mpfrtest.dat and mpfrtest2.dat to
-tfpif_rw.dat, tfpif_r1.dat and tfpif_r2.dat respectively.
-------------------------------------------------------------------------
-r11699 | vlefevre | 2017-09-05 09:32:11 +0000 (Tue, 05 Sep 2017) | 8 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/toutimpl.c
-
-[tests]
- * toutimpl.c: Changed the filename of the result file like what
- has been done in other test programs, to make sure that it will
- not be reused by mistake. Removed comments about tmpname (which
- does not exist).
- * Makefile.am: Added this filename to CLEANFILES (even though the
- file is removed by the test program, an error could occur before
- its actual removal).
-------------------------------------------------------------------------
-r11698 | vlefevre | 2017-09-05 09:13:13 +0000 (Tue, 05 Sep 2017) | 10 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tprintf.c
-
-[tests]
- * tfprintf.c, tout_str.c, tprintf.c: Do not use the same filename
- for result files created in these test programs, as this breaks
- parallel tests (note that such files are used only if /dev/null
- does not work, so that Unix-like systems were not affected).
- This should fix the bug reported in
- https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00000.html
- as said in
- https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00005.html
- * Makefile.am: added a CLEANFILES line with these files.
-------------------------------------------------------------------------
-r11695 | vlefevre | 2017-09-01 15:24:42 +0000 (Fri, 01 Sep 2017) | 2 lines
-Changed paths:
- M /trunk
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Added test_underflow().
-(merged changesets r11691-11694 from the 3.1 branch)
-------------------------------------------------------------------------
-r11690 | zimmerma | 2017-08-29 12:26:42 +0000 (Tue, 29 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-update
-
-------------------------------------------------------------------------
-r11688 | zimmerma | 2017-08-29 12:00:05 +0000 (Tue, 29 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-updated for mpfr-3.1.6-rc1
-
-------------------------------------------------------------------------
-r11679 | vlefevre | 2017-08-28 10:29:23 +0000 (Mon, 28 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Run tools/ck-version-info.
-------------------------------------------------------------------------
-r11678 | vlefevre | 2017-08-28 10:27:04 +0000 (Mon, 28 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Updated a message due to the change in r11673.
-------------------------------------------------------------------------
-r11677 | vlefevre | 2017-08-28 10:22:44 +0000 (Mon, 28 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": The DLL version may need to be
-updated too.
-------------------------------------------------------------------------
-r11676 | vlefevre | 2017-08-28 10:18:44 +0000 (Mon, 28 Aug 2017) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added a comment about the DLL version.
-------------------------------------------------------------------------
-r11675 | vlefevre | 2017-08-28 10:12:35 +0000 (Mon, 28 Aug 2017) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated DLL version to 6 (cur - age).
-------------------------------------------------------------------------
-r11674 | vlefevre | 2017-08-28 10:04:47 +0000 (Mon, 28 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-inits-clears
-
-[tools/{ck-copyright-notice,ck-inits-clears}] Ignore Emacs lock files
-(symbolic links) to avoid a failure when a file is being edited.
-------------------------------------------------------------------------
-r11673 | vlefevre | 2017-08-28 09:53:35 +0000 (Mon, 28 Aug 2017) | 5 lines
-Changed paths:
- D /trunk/tools/check_inits_clears
- A /trunk/tools/ck-inits-clears (from /trunk/tools/check_inits_clears:11672)
- M /trunk/tools/mpfrlint
-
-[tools] Clean up.
- * Renamed check_inits_clears to ck-inits-clears (the other "check"
- scripts have a name starting with "ck-").
- * mpfrlint: updated the invocation of this test, simplifying it to
- make it similar to the other ones (it was based on old code).
-------------------------------------------------------------------------
-r11669 | vlefevre | 2017-08-27 22:06:31 +0000 (Sun, 27 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Disabled the reprod_abi test with GMP < 4.2.0
-since the hardcoded values would be different.
-------------------------------------------------------------------------
-r11664 | vlefevre | 2017-08-25 14:11:40 +0000 (Fri, 25 Aug 2017) | 6 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Replaced
- (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),0)
-by
- (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),MPFR_ASSUME(expr),0)
-as a workaround to the fact that mpfr_assert_fail is not marked as
-"no return" (bug 21415). Thus, after this code, expr must be true.
-------------------------------------------------------------------------
-r11663 | vlefevre | 2017-08-25 12:23:31 +0000 (Fri, 25 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Check that the behavior does not depend on the
-platform ABI or MPFR version.
-------------------------------------------------------------------------
-r11662 | vlefevre | 2017-08-25 12:19:08 +0000 (Fri, 25 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Corrected error messages after r11661.
-------------------------------------------------------------------------
-r11661 | vlefevre | 2017-08-25 11:42:36 +0000 (Fri, 25 Aug 2017) | 3 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Renamed "reprod" to "reprod_rnd_exp" (reproducibility
-test with several rounding modes and exponent ranges), because a second
-reproducibility test will be added.
-------------------------------------------------------------------------
-r11660 | vlefevre | 2017-08-25 10:41:21 +0000 (Fri, 25 Aug 2017) | 7 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c]
- * In underflow_tests, test the flags in all cases (not just when the
- returned result is 0), possibly by first computing the result in a
- large exponent range.
- * Since the flags are now well tested in underflow_tests, no longer
- test them in the second test of test_urandom for k = 0, which was
- the incorrect test that was failing (see r11659).
-------------------------------------------------------------------------
-r11659 | vlefevre | 2017-08-25 08:00:19 +0000 (Fri, 25 Aug 2017) | 6 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Do some test several times in order to trigger
-a "mpfr_urandom() returns incorrect flags for emin = 1" failure
-when GMP_CHECK_RANDOMIZE is not set (default).
-Note: It is this test that is actually wrong (it corresponds to the
-old behavior, currently found in the 3.1 branch, and was not updated
-after the mpfr_urandom code was fixed).
-------------------------------------------------------------------------
-r11658 | vlefevre | 2017-08-25 07:56:42 +0000 (Fri, 25 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Code formatting. Added an assertion.
-------------------------------------------------------------------------
-r11657 | vlefevre | 2017-08-24 14:34:33 +0000 (Thu, 24 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Check that the behavior of mpfr_urandom() does not
-depend on the rounding mode.
-------------------------------------------------------------------------
-r11656 | vlefevre | 2017-08-24 07:38:38 +0000 (Thu, 24 Aug 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Completed the description of mpfr_urandom.
-------------------------------------------------------------------------
-r11655 | vlefevre | 2017-08-24 07:32:30 +0000 (Thu, 24 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Completed comment.
-------------------------------------------------------------------------
-r11654 | vlefevre | 2017-08-23 14:30:59 +0000 (Wed, 23 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] In bug20170123, use a local gmp_randstate_t variable
-instead of mpfr_rands, due to the gmp_randseed_ui (see r11653).
-------------------------------------------------------------------------
-r11653 | vlefevre | 2017-08-23 14:26:42 +0000 (Wed, 23 Aug 2017) | 4 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect the use of gmp_randseed* functions on mpfr_rands
-(this is bad practice: this would affect later tests, defeating the
-purpose of GMP_CHECK_RANDOMIZE; another gmp_randstate_t variable should
-be used instead of mpfr_rands).
-------------------------------------------------------------------------
-r11652 | vlefevre | 2017-08-23 14:09:13 +0000 (Wed, 23 Aug 2017) | 3 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
-
-[tests/{mpfr-test.h,tests.c}] Got rid of __gmp_randstate_struct, which
-is internal to GMP: its use came from very old code (r2330 in 2003-06)
-and it is no longer needed.
-------------------------------------------------------------------------
-r11651 | vlefevre | 2017-08-23 13:40:39 +0000 (Wed, 23 Aug 2017) | 3 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Disabled a test with GMP < 4.2.0 since it depends on
-a specific behavior of the random generator, which changed in GMP 4.2.0
-(the test would probably fail with such old GMP versions).
-------------------------------------------------------------------------
-r11650 | vlefevre | 2017-08-23 10:08:57 +0000 (Wed, 23 Aug 2017) | 8 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/urandom.c
-
-[src/urandom.c] Partly rewrote mpfr_urandom() so that the next
- random state no longer depends on the current exponent range
- and the rounding mode, and that the exceptions due to the
- rounding of the random number are now correctly generated.
-[doc/mpfr.texi] Updated the mpfr_urandom() documentation and
- updated Section "API Compatibility / Changed Functions" to
- mention the change in MPFR 4.0.
-[NEWS] Mentioned the change for MPFR 4.0.
-------------------------------------------------------------------------
-r11647 | vlefevre | 2017-08-22 09:24:45 +0000 (Tue, 22 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Minor change about underflow, following the usage.
-------------------------------------------------------------------------
-r11646 | vlefevre | 2017-08-22 09:08:38 +0000 (Tue, 22 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Added inex test for the underflow & overflow tests.
-------------------------------------------------------------------------
-r11645 | vlefevre | 2017-08-22 08:00:54 +0000 (Tue, 22 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Added overflow tests.
-------------------------------------------------------------------------
-r11644 | vlefevre | 2017-08-22 07:46:21 +0000 (Tue, 22 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Indentation.
-------------------------------------------------------------------------
-r11643 | vlefevre | 2017-08-22 07:44:38 +0000 (Tue, 22 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Added underflow tests.
-------------------------------------------------------------------------
-r11642 | vlefevre | 2017-08-22 07:11:23 +0000 (Tue, 22 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] With mini-gmp, omit another test that assumes
-a deterministic random generator.
-------------------------------------------------------------------------
-r11641 | vlefevre | 2017-08-22 06:57:27 +0000 (Tue, 22 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Bug fix: the inexact flag was not set on underflow.
-------------------------------------------------------------------------
-r11640 | vlefevre | 2017-08-22 06:55:11 +0000 (Tue, 22 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Added tests of the flags. This currently yields
-a failure (inexact flag not set on underflow).
-------------------------------------------------------------------------
-r11639 | vlefevre | 2017-08-22 06:40:13 +0000 (Tue, 22 Aug 2017) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Added a test of the underflow flag.
-------------------------------------------------------------------------
-r11638 | vlefevre | 2017-08-21 15:12:51 +0000 (Mon, 21 Aug 2017) | 10 lines
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Set the underflow flag if the drawn exponent is less
-than emin. This corresponds to "underflow before rounding" while the
-normal rule in MPFR is "underflow after rounding". Thus this needs to
-be fixed.
-Note: This simple change has been done so that it can be merged with
-the 3.1 branch. But this will not be fixable in the 3.1 branch since
-the significand is not drawn in this case, and drawing the significand
-to determine whether there is an underflow would change the state of
-the PRNG at the end of the function, breaking the ABI and the users'
-expectations.
-------------------------------------------------------------------------
-r11637 | vlefevre | 2017-08-21 14:17:20 +0000 (Mon, 21 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Updated comments about overflow and its flag.
-------------------------------------------------------------------------
-r11636 | vlefevre | 2017-08-21 14:12:20 +0000 (Mon, 21 Aug 2017) | 5 lines
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Simplified the code, but, except for precision 1,
-without changing the state of the PRNG.
-Note: The code could be simplified even further, but the goal of the
-current change is to allow it to be merged with the 3.1 branch (where
-precision 1 is not supported) without too many conflicts.
-------------------------------------------------------------------------
-r11635 | vlefevre | 2017-08-21 13:54:51 +0000 (Mon, 21 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Moved some code without consequences. Updated comments.
-------------------------------------------------------------------------
-r11634 | vlefevre | 2017-08-21 13:08:47 +0000 (Mon, 21 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Useless parentheses; reformatting.
-------------------------------------------------------------------------
-r11629 | vlefevre | 2017-08-17 11:17:51 +0000 (Thu, 17 Aug 2017) | 6 lines
-Changed paths:
- M /trunk/src/set_float128.c
-
-[src/set_float128.c] No longer depend on the native FP type "double"
-(via mpfr_set_d), avoiding the usual precision issues with the x87
-traditional FPU in particular. Use the internal representation with
-limbs, instead. The code is simpler and should also be faster.
-Note: together with r11627, this avoids the tset_float128 failure
-with the "-m32 -mpc32" GCC options.
-------------------------------------------------------------------------
-r11628 | vlefevre | 2017-08-17 08:49:11 +0000 (Thu, 17 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/get_float128.c
-
-[src/get_float128.c] Removed variable z (no longer useful).
-------------------------------------------------------------------------
-r11627 | vlefevre | 2017-08-17 08:34:45 +0000 (Thu, 17 Aug 2017) | 4 lines
-Changed paths:
- M /trunk/src/get_float128.c
-
-[src/get_float128.c] No longer depend on the native FP type "double"
-(via mpfr_get_d), avoiding the usual precision issues with the x87
-traditional FPU in particular. Use the internal representation with
-limbs, instead. The code is simpler and should also be faster.
-------------------------------------------------------------------------
-r11626 | vlefevre | 2017-08-14 18:19:46 +0000 (Mon, 14 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_float128.c
-
-[src/get_float128.c] Fixed the remaining cases of mpfr_get_float128
-(when the value is below the smallest subnormal in absolute value).
-------------------------------------------------------------------------
-r11625 | vlefevre | 2017-08-14 17:31:33 +0000 (Mon, 14 Aug 2017) | 3 lines
-Changed paths:
- M /trunk/src/get_float128.c
- M /trunk/tests/tset_float128.c
-
-[src/get_float128.c] Partly fixed mpfr_get_float128 when it underflows.
-[tests/tset_float128.c] Added tests for small values, in particular
- involving underflows (and subnormals).
-------------------------------------------------------------------------
-r11624 | vlefevre | 2017-08-13 00:35:17 +0000 (Sun, 13 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_float128.c
-
-[src/get_float128.c] Reverted r11623 (a note mainly for the 3.1 branch,
-which actually doesn't support __float128).
-------------------------------------------------------------------------
-r11623 | vlefevre | 2017-08-12 15:54:07 +0000 (Sat, 12 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/get_float128.c
-
-[src/get_float128.c] Updated the FIXME.
-------------------------------------------------------------------------
-r11622 | vlefevre | 2017-08-08 14:46:54 +0000 (Tue, 08 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_float128.c
-
-[src/get_float128.c] Added a FIXME after a bug report by Rob:
-https://sympa.inria.fr/sympa/arc/mpfr/2017-08/msg00003.html
-------------------------------------------------------------------------
-r11621 | vlefevre | 2017-08-03 16:12:26 +0000 (Thu, 03 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Section "Getting the Best Efficiency Out of MPFR" moved
-from "Installing MPFR" to "MPFR Basics". Added corresponding node.
-------------------------------------------------------------------------
-r11620 | zimmerma | 2017-08-03 14:21:38 +0000 (Thu, 03 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-new section "How to get the best out of MPFR"
-
-------------------------------------------------------------------------
-r11619 | vlefevre | 2017-08-03 08:27:12 +0000 (Thu, 03 Aug 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a FIXME about memory allocation.
-------------------------------------------------------------------------
-r11617 | vlefevre | 2017-08-03 08:16:17 +0000 (Thu, 03 Aug 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11615 | vlefevre | 2017-08-03 08:06:38 +0000 (Thu, 03 Aug 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Removed obsolete comments.
-------------------------------------------------------------------------
-r11614 | vlefevre | 2017-08-03 08:04:20 +0000 (Thu, 03 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated paragraph on the MPFR formatted output functions
-and overflow on the return type int.
-------------------------------------------------------------------------
-r11612 | vlefevre | 2017-08-02 11:15:01 +0000 (Wed, 02 Aug 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention the use of the old dtags under Linux (see r11588).
-------------------------------------------------------------------------
-r11611 | vlefevre | 2017-08-02 09:20:39 +0000 (Wed, 02 Aug 2017) | 3 lines
-Changed paths:
- M /trunk/src/printf.c
- M /trunk/src/vasprintf.c
-
-[src] Moved mpfr_vasprintf from vasprintf.c to printf.c and updated
-file descriptions for consistency (vasprintf.c should probably be
-renamed later to something like printf_aux.c).
-------------------------------------------------------------------------
-r11610 | vlefevre | 2017-08-02 09:05:11 +0000 (Wed, 02 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/printf.c
-
-[src/printf.c] Updated a comment (taking r11269 into account).
-------------------------------------------------------------------------
-r11609 | vlefevre | 2017-08-02 08:55:34 +0000 (Wed, 02 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added an assertion.
-------------------------------------------------------------------------
-r11608 | vlefevre | 2017-08-02 08:53:13 +0000 (Wed, 02 Aug 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Completed mpfr_vasnprintf_aux description.
-------------------------------------------------------------------------
-r11604 | vlefevre | 2017-08-01 09:31:49 +0000 (Tue, 01 Aug 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tstdint.c
- M /trunk/tests/tvalist.c
-
-[tests/{tstdint.c,tvalist.c}] Include "mpfr-test.h" instead of
-"mpfr-impl.h" (this is done only when compiling with mini-gmp).
-------------------------------------------------------------------------
-r11603 | vlefevre | 2017-08-01 09:29:27 +0000 (Tue, 01 Aug 2017) | 3 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect "mpfr-impl.h" inclusion by the test programs:
-"mpfr-test.h" should be included instead; otherwise __MPFR_WITHIN_MPFR
-will be defined, yielding failures under MS Windows with DLL.
-------------------------------------------------------------------------
-r11601 | zimmerma | 2017-07-28 10:30:27 +0000 (Fri, 28 Jul 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-fixed typo
-
-------------------------------------------------------------------------
-r11600 | vlefevre | 2017-07-28 10:12:10 +0000 (Fri, 28 Jul 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added important details for the example from r11595.
-------------------------------------------------------------------------
-r11599 | vlefevre | 2017-07-27 17:27:03 +0000 (Thu, 27 Jul 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Minor changes.
-------------------------------------------------------------------------
-r11598 | vlefevre | 2017-07-27 06:30:53 +0000 (Thu, 27 Jul 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11597 | zimmerma | 2017-07-27 06:24:49 +0000 (Thu, 27 Jul 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-fixed FIXME related to r11595
-
-------------------------------------------------------------------------
-r11596 | vlefevre | 2017-07-27 00:23:22 +0000 (Thu, 27 Jul 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added FIXME on example from r11595.
-------------------------------------------------------------------------
-r11595 | zimmerma | 2017-07-26 10:07:35 +0000 (Wed, 26 Jul 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added example showing how to emulate fixed-point arithmetic
-
-------------------------------------------------------------------------
-r11590 | vlefevre | 2017-07-17 23:10:45 +0000 (Mon, 17 Jul 2017) | 3 lines
-Changed paths:
- M /trunk/src/sin_cos.c
-
-[src/sin_cos.c] Avoid integer overflows with precision 1100000 and
-the 32-bit ABI (32-bit long), fixing bug reported by Simon Byrne:
-https://sympa.inria.fr/sympa/arc/mpfr/2017-07/msg00002.html
-------------------------------------------------------------------------
-r11589 | vlefevre | 2017-07-17 13:55:35 +0000 (Mon, 17 Jul 2017) | 1 line
-Changed paths:
- M /trunk/tests/tcos.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tui_sub.c
-
-[tests] Re-indented some RND_LOOP / RND_LOOP_NO_RNDF blocks.
-------------------------------------------------------------------------
-r11588 | vlefevre | 2017-07-17 12:33:27 +0000 (Mon, 17 Jul 2017) | 5 lines
-Changed paths:
- M /trunk
- M /trunk/configure.ac
-
-[configure.ac] Under Linux, make sure that the old dtags are used
-if LD_LIBRARY_PATH is defined, avoiding the following issue:
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
- https://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
-(merged changeset r11587 from the 3.1 branch)
-------------------------------------------------------------------------
-r11586 | vlefevre | 2017-07-10 11:53:17 +0000 (Mon, 10 Jul 2017) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Forgot casts for printf in r11585.
-------------------------------------------------------------------------
-r11585 | vlefevre | 2017-07-10 11:17:31 +0000 (Mon, 10 Jul 2017) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Added ABI information & tests.
-------------------------------------------------------------------------
-r11584 | vlefevre | 2017-06-20 23:25:49 +0000 (Tue, 20 Jun 2017) | 1 line
-Changed paths:
- M /trunk/src/subnormal.c
-
-[src/subnormal.c] Correction in comment (English).
-------------------------------------------------------------------------
-r11583 | vlefevre | 2017-06-19 13:09:48 +0000 (Mon, 19 Jun 2017) | 4 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c]
- * Better organization; moved MPFR patches info below MPFR version.
- * Output __GMP_CC and __GMP_CFLAGS values.
- * Output GMP ABI info (to be completed with MPFR ABI info).
-------------------------------------------------------------------------
-r11578 | vlefevre | 2017-06-03 09:43:37 +0000 (Sat, 03 Jun 2017) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved some AC_DEFINE comments.
-------------------------------------------------------------------------
-r11577 | vlefevre | 2017-06-03 00:34:15 +0000 (Sat, 03 Jun 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added quotes for clarity.
-------------------------------------------------------------------------
-r11576 | vlefevre | 2017-06-03 00:11:12 +0000 (Sat, 03 Jun 2017) | 1 line
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-[tests/mpf_compat.h] Always use stdout for failure messages.
-------------------------------------------------------------------------
-r11575 | vlefevre | 2017-06-03 00:04:19 +0000 (Sat, 03 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Improved comments (avoid the confusion between a
-negative base argument and a negative base).
-------------------------------------------------------------------------
-r11574 | vlefevre | 2017-06-02 23:52:24 +0000 (Fri, 02 Jun 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Punctuation.
-------------------------------------------------------------------------
-r11573 | zimmerma | 2017-06-02 20:49:29 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-added mpfr_get_q in Added Functions
-
-------------------------------------------------------------------------
-r11572 | zimmerma | 2017-06-02 15:36:52 +0000 (Fri, 02 Jun 2017) | 3 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/tests/tget_str.c
-
-src/get_str.c: fixed for negative base
-tests/tget_str.c: added tests for negative base
-
-------------------------------------------------------------------------
-r11571 | zimmerma | 2017-06-02 15:11:50 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-tests/mpf_compat.h: non-regression tests for bugs fixed in revision 11565
-
-------------------------------------------------------------------------
-r11570 | zimmerma | 2017-06-02 14:52:45 +0000 (Fri, 02 Jun 2017) | 3 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-src/get_str.c: allow -36 <= b <= -2 too (work in progress) with the same
- meaning as in mpf_get_str
-
-------------------------------------------------------------------------
-r11569 | zimmerma | 2017-06-02 14:12:17 +0000 (Fri, 02 Jun 2017) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul.c
-
-fixed a bug in mpfr_mul for RNDF when Mulders' algorithm is used
-(and resolved a FIXME)
-
-------------------------------------------------------------------------
-r11568 | vlefevre | 2017-06-02 14:03:58 +0000 (Fri, 02 Jun 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected mpfr_get_q documentation.
-------------------------------------------------------------------------
-r11567 | vlefevre | 2017-06-02 13:58:47 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_q.c
-
-[src/get_q.c] Added assertions to detect integer overflows, in case
-mpfr_exp_t is larger than mp_bitcnt_t.
-------------------------------------------------------------------------
-r11566 | zimmerma | 2017-06-02 12:15:59 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpf2mpfr.h
-
-src/mpf2mpfr.h: replaced __MPFR_GMP (requires internal mpfr-gmp.h)
-
-------------------------------------------------------------------------
-r11565 | zimmerma | 2017-06-02 11:43:32 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpf2mpfr.h
-
-src/mpf2mpfr.h: fixed fits_s* functions and get_si
-
-------------------------------------------------------------------------
-r11564 | zimmerma | 2017-06-02 11:22:07 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpf2mpfr.h
-
-use macro __MPFR_GMP
-
-------------------------------------------------------------------------
-r11563 | zimmerma | 2017-06-02 10:44:12 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/get_q.c
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_q.c
-
-added new function mpfr_get_q
-
-------------------------------------------------------------------------
-r11562 | zimmerma | 2017-06-02 07:03:25 +0000 (Fri, 02 Jun 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpf2mpfr.h
-
-src/mpf2mpfr.h: added mpf_cmp_z (appeared in GMP 6.1.0)
-
-------------------------------------------------------------------------
-r11561 | vlefevre | 2017-06-01 15:03:24 +0000 (Thu, 01 Jun 2017) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/README
-
-[Makefile.am] Put doc/README.dev in EXTRA_DIST to provide this file in
- tarballs too (it is not installed by "make install", though), since
- it contains information that may be useful for users of tarballs and
- various distributed files mention it.
-[README] Update about the "doc" directory and "doc/README.dev".
-------------------------------------------------------------------------
-r11560 | vlefevre | 2017-06-01 09:15:31 +0000 (Thu, 01 Jun 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] More information about the DEBUG macro.
-------------------------------------------------------------------------
-r11559 | vlefevre | 2017-06-01 00:26:46 +0000 (Thu, 01 Jun 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11558 | vlefevre | 2017-06-01 00:25:16 +0000 (Thu, 01 Jun 2017) | 6 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
-
-Update about MPFR_RNDF (faithful rounding):
- * NEWS: mention that it is partially supported (should be updated
- once MPFR_RNDF is completely supported).
- * TODO: moved an item to the right place (MPFR_RNDF is not removed
- from the TODO because it is not completely supported yet).
- * doc/mpfr.texi: added a FIXME about the partial support.
-------------------------------------------------------------------------
-r11557 | vlefevre | 2017-05-31 23:59:06 +0000 (Wed, 31 May 2017) | 4 lines
-Changed paths:
- M /trunk/src/atanh.c
- M /trunk/src/log1p.c
-
-[src/{atanh.c,log1p.c}]
- * Replaced mpfr_get_exp by MPFR_GET_EXP (so that the exponent is
- checked with --enable-assert).
- * For a test, doing the division first should be better.
-------------------------------------------------------------------------
-r11556 | zimmerma | 2017-05-31 20:37:02 +0000 (Wed, 31 May 2017) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/atanh.c
- M /trunk/src/log1p.c
-
-improved log1p and atanh for small inputs
-
-------------------------------------------------------------------------
-r11555 | zimmerma | 2017-05-31 12:39:19 +0000 (Wed, 31 May 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-added expm1 to mbench
-
-------------------------------------------------------------------------
-r11554 | zimmerma | 2017-05-31 12:33:48 +0000 (Wed, 31 May 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-added log1p to mbench
-
-------------------------------------------------------------------------
-r11553 | vlefevre | 2017-05-29 22:55:34 +0000 (Mon, 29 May 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11552 | vlefevre | 2017-05-29 22:54:46 +0000 (Mon, 29 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r11551 | vlefevre | 2017-05-29 22:48:06 +0000 (Mon, 29 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tests.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tsum.c
-
-[tests] Code simplification and improvement by using SAME_VAL().
-------------------------------------------------------------------------
-r11550 | vlefevre | 2017-05-29 22:39:49 +0000 (Mon, 29 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] Replaced not_same() by the simpler ! SAME_VAL().
-------------------------------------------------------------------------
-r11549 | vlefevre | 2017-05-29 21:48:21 +0000 (Mon, 29 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Code reindentation due to a new test for MPFR_RNDF support,
-and other minor changes in formatting and comments.
-------------------------------------------------------------------------
-r11548 | vlefevre | 2017-05-29 21:37:27 +0000 (Mon, 29 May 2017) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Typo in the MPFR_RNDF text.
-------------------------------------------------------------------------
-r11546 | vlefevre | 2017-05-29 17:26:28 +0000 (Mon, 29 May 2017) | 2 lines
-Changed paths:
- M /trunk
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/doc/sum.txt
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/div.c
- M /trunk/src/div_ui.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_u.h
- M /trunk/src/get_str.c
- M /trunk/src/hypot.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/mul.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sum.c
- M /trunk/src/vasprintf.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta_ui.c
-
-Merged the "faithful" branch into the trunk:
-faithful rounding (MPFR_RNDF).
-------------------------------------------------------------------------
-r11542 | zimmerma | 2017-05-29 09:04:44 +0000 (Mon, 29 May 2017) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new reference
-
-------------------------------------------------------------------------
-r11533 | vlefevre | 2017-05-24 11:33:50 +0000 (Wed, 24 May 2017) | 4 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Fixed setlocale usage (problem detected with MinGW)
-by not using the returned string any longer. Indeed, ISO C99 says that
-this string "may be overwritten by a subsequent call to the setlocale
-function".
-------------------------------------------------------------------------
-r11532 | vlefevre | 2017-05-24 09:15:54 +0000 (Wed, 24 May 2017) | 4 lines
-Changed paths:
- M /trunk/src/printf.c
- M /trunk/src/vasprintf.c
-
-[src] Moved "#include <errno.h>" from printf.c to vasprintf.c
-(this should have been done in r5230, where EOVERFLOW was moved).
-This fixes the "Got r = -1, errno = 0" errors in tprintf with
-MPFR_CHECK_LARGEMEM=1.
-------------------------------------------------------------------------
-r11531 | vlefevre | 2017-05-24 09:09:53 +0000 (Wed, 24 May 2017) | 6 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added overflow detection at the end (due to the switch
-to mpfr_intmax_t for the string length in the string_buffer structure,
-it was no longer detected; however, this bug was not normally visible in
-the tests because here, a negative value was returned thanks to wrapping
-in a type conversion and the negative value was changed to the expected
--1 value in printf.c).
-------------------------------------------------------------------------
-r11530 | vlefevre | 2017-05-24 08:47:36 +0000 (Wed, 24 May 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added log messages.
-------------------------------------------------------------------------
-r11529 | vlefevre | 2017-05-24 08:30:55 +0000 (Wed, 24 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] In case of overflow, do not stop before everything has
-been processed, allowing the %...n arguments to be filled, as decided.
-------------------------------------------------------------------------
-r11528 | vlefevre | 2017-05-24 08:12:56 +0000 (Wed, 24 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] check_long_string() error handling: initialize n2 to
-an invalid value and do all tests before exiting.
-------------------------------------------------------------------------
-r11527 | vlefevre | 2017-05-24 08:01:28 +0000 (Wed, 24 May 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed some parts of overflow tracking.
-------------------------------------------------------------------------
-r11526 | vlefevre | 2017-05-24 07:49:39 +0000 (Wed, 24 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] More detailed error message.
-------------------------------------------------------------------------
-r11525 | vlefevre | 2017-05-24 07:46:26 +0000 (Wed, 24 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Added tests with %ln.
-------------------------------------------------------------------------
-r11524 | vlefevre | 2017-05-24 07:15:40 +0000 (Wed, 24 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Improved check_vprintf_failure().
-------------------------------------------------------------------------
-r11523 | vlefevre | 2017-05-24 07:10:21 +0000 (Wed, 24 May 2017) | 7 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tprintf.c
-
-[src/vasprintf.c] Fixed the handling of the 'n' format specifier
- for size = 0, still allowing its support in case of overflow on
- the return value (i.e. when the number of characters that would
- have been output is > INT_MAX).
- Note: full support in case of overflow is still limited by GMP
- and the C library.
-[tests/tprintf.c] Increased the memory needed in check_long_string().
-------------------------------------------------------------------------
-r11522 | vlefevre | 2017-05-23 13:17:12 +0000 (Tue, 23 May 2017) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-intmax.h
-
-[src/mpfr-intmax.h] Define mpfr_uintmax_t and MPFR_INTMAX_MAX too.
-However, this will not necessarily be used by src/vasprintf.c, as
-this can be regarded as an EOVERFLOW error for which the behavior
-on the %...n values is not specified, i.e. we may not need to
-support size values larger than INT_MAX.
-------------------------------------------------------------------------
-r11521 | vlefevre | 2017-05-22 15:07:36 +0000 (Mon, 22 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] In a macro definition, changed a parameter to
-lowercase so that it doesn't look like a constant to mpfrlint.
-------------------------------------------------------------------------
-r11520 | vlefevre | 2017-05-22 14:08:07 +0000 (Mon, 22 May 2017) | 4 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a FIXME for the percent_n() / mixed() bug due
-to the 'n' format specifier with size = 0. The way to fix this issue
-depends on the specifications in case of overflow on the return value,
-and for POSIX, they are unclear. Waiting for comments...
-------------------------------------------------------------------------
-r11519 | vlefevre | 2017-05-22 12:33:48 +0000 (Mon, 22 May 2017) | 7 lines
-Changed paths:
- M /trunk/src/mpfr-intmax.h
-
-[src/mpfr-intmax.h] Define mpfr_intmax_t as being the largest
-signed integer type available for the MPFR build. It will be
-useful for the formatted output functions (src/vasprintf.c) to
-handle the 'n' format specifier, assuming that the value may
-be larger than INT_MAX, which is possible assuming that the
-C standard has a defect in the corresponding specification:
-https://sourceware.org/bugzilla/show_bug.cgi?id=21360
-------------------------------------------------------------------------
-r11518 | vlefevre | 2017-05-22 11:38:10 +0000 (Mon, 22 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added explanation for the bugs triggered by
-percent_n() and mixed().
-------------------------------------------------------------------------
-r11517 | vlefevre | 2017-05-22 11:31:16 +0000 (Mon, 22 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added percent_n() test to reproduce the bug found
-in mixed(), test without random data.
-------------------------------------------------------------------------
-r11516 | vlefevre | 2017-05-22 10:53:50 +0000 (Mon, 22 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] In partition_number(), complete check for overflow
-on total.
-------------------------------------------------------------------------
-r11515 | vlefevre | 2017-05-22 09:29:51 +0000 (Mon, 22 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Partially fixed check for integer overflow when
-the long and int types have the same size.
-------------------------------------------------------------------------
-r11514 | vlefevre | 2017-05-22 09:23:57 +0000 (Mon, 22 May 2017) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] With assertions enabled, check that the number of
-characters to be written computed in partition_number() corresponds
-to what is really written.
-------------------------------------------------------------------------
-r11513 | vlefevre | 2017-05-22 09:17:51 +0000 (Mon, 22 May 2017) | 7 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed the bug triggered by the da_DK locale test: the
-computation of the number of characters to be written was incorrect in
-partition_number() when the thousands separator was not empty. This bug
-was visible with size = 0 and could be visible near overflow on the
-number of characters.
-Note: the buggy code was introduced in r5288 (2008-02-15), which fixed
-other issues with the thousands separator.
-------------------------------------------------------------------------
-r11512 | vlefevre | 2017-05-22 09:13:33 +0000 (Mon, 22 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Do more tests in the da_DK locale (these are the
-only tests for which the thousands separator is not empty).
-------------------------------------------------------------------------
-r11511 | vlefevre | 2017-05-22 08:56:55 +0000 (Mon, 22 May 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Do more tests involving check_sprintf() in a loop
-(to test mpfr_snprintf with size = 0 more often), and call mixed()
-later in order to get failures without the use of %n first.
-------------------------------------------------------------------------
-r11510 | zimmerma | 2017-05-19 15:04:24 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-get rid of computations with 'double' in mpfr_zeta
-
-------------------------------------------------------------------------
-r11509 | vlefevre | 2017-05-19 14:47:51 +0000 (Fri, 19 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a TODO about %n test.
-------------------------------------------------------------------------
-r11508 | vlefevre | 2017-05-19 14:04:46 +0000 (Fri, 19 May 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added MPFR_TESTS_FPE_TRAP documentation.
-------------------------------------------------------------------------
-r11507 | vlefevre | 2017-05-19 13:59:19 +0000 (Fri, 19 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Corrected comment about MPFR_TESTS_FPE_TRAP.
-------------------------------------------------------------------------
-r11506 | vlefevre | 2017-05-19 13:57:15 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/doc/README.dev
- M /trunk/tests/tests.c
-
-Renamed MPFR_TESTS_DIVBYZERO to MPFR_TESTS_FPE_DIV (less confusing).
-In doc/README.dev, updated the corresponding description.
-------------------------------------------------------------------------
-r11505 | vlefevre | 2017-05-19 13:49:50 +0000 (Fri, 19 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests] Renamed MPFR_RAISE_EXCEPTIONS to MPFR_TESTS_FPE_TRAP.
-------------------------------------------------------------------------
-r11504 | vlefevre | 2017-05-19 13:45:10 +0000 (Fri, 19 May 2017) | 13 lines
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/td_div.c
- M /trunk/tests/tests.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
-
-[tests] Got rid of MPFR_TESTS_EXCEPTIONS (added in r11489 and above),
-which is redundant with MPFR_TESTS_DIVBYZERO and MPFR_ERRDIVZERO. The
-code related to these exceptions is now like r11488 (see the output of
-"svn diff -r11488"), but keeping the following changes:
- * Missing !defined(MPFR_ERRDIVZERO) tests added in r11498,11499.
- * In tests.c:
- - code related to traps (macro MPFR_RAISE_EXCEPTIONS, which will
- be renamed);
- - more detailed output about which FP exceptions occurred;
- - removal of "#ifdef MPFR_ERRDIVZERO" (as in r11493), as this is
- better with Automake 1.13+ (required by MPFR since r9375).
-Note: EXCEPTIONS_FLAG renamed to FPE_FLAGS, since EXCEPTIONS_FLAG is
-reserved by ISO C when <errno.h> is included.
-------------------------------------------------------------------------
-r11503 | vlefevre | 2017-05-19 11:54:29 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Do the locale_da_DK() test several times to yield
-a failure by default once the bug triggered by mixed() is fixed.
-------------------------------------------------------------------------
-r11502 | vlefevre | 2017-05-19 11:24:03 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Updated comment about r11501: the failure occurs
-with %n when the size argument of mpfr_vsnprintf is 0.
-------------------------------------------------------------------------
-r11501 | vlefevre | 2017-05-19 11:08:14 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Do more tests with %n. One now gets a failure
-by default (which occurs when one gets randsize <= 0).
-------------------------------------------------------------------------
-r11500 | vlefevre | 2017-05-19 10:45:25 +0000 (Fri, 19 May 2017) | 4 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Fixed portability issues: The va_end(3) man page
-of Linux Programmer's Manual says: "On some systems, va_end contains
-a closing '}' matching a '{' in va_start, so that both macros must
-occur in the same function, and in a way that allows this."
-------------------------------------------------------------------------
-r11499 | vlefevre | 2017-05-19 09:26:18 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Disable tests with a division by 0 (which now
-occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.
-------------------------------------------------------------------------
-r11498 | vlefevre | 2017-05-19 09:20:19 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Disable an overflow test with a division by 0
-(now occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.
-------------------------------------------------------------------------
-r11497 | vlefevre | 2017-05-19 08:54:32 +0000 (Fri, 19 May 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Details for "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".
-------------------------------------------------------------------------
-r11496 | vlefevre | 2017-05-19 08:34:00 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] In mixed(), initialize n2 to an invalid value
-in order to ease failure analysis.
-------------------------------------------------------------------------
-r11495 | zimmerma | 2017-05-19 08:15:46 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-removed leftover debug statement in last commit
-
-------------------------------------------------------------------------
-r11494 | zimmerma | 2017-05-19 08:14:58 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-fix for clang bug (https://bugs.llvm.org//show_bug.cgi?id=17686)
-
-------------------------------------------------------------------------
-r11493 | vlefevre | 2017-05-19 08:04:05 +0000 (Fri, 19 May 2017) | 8 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Change for MPFR_TESTS_DIVBYZERO: in case of FE_DIVBYZERO
-or FE_INVALID, fail unconditionally, not just when MPFR_ERRDIVZERO is
-defined, otherwise one cannot see the output about the floating-point
-exceptions with "make check" (the test of MPFR_ERRDIVZERO here should
-have been removed after switching to Automake 1.13, which discards the
-output when the test program succeeds).
-Note: defining MPFR_TESTS_DIVBYZERO without MPFR_ERRDIVZERO is just for
-debugging.
-------------------------------------------------------------------------
-r11492 | zimmerma | 2017-05-19 08:03:19 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/td_div.c
- M /trunk/tests/tests.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
-
-more work on MPFR_TESTS_EXCEPTIONS
-
-------------------------------------------------------------------------
-r11491 | vlefevre | 2017-05-19 07:29:24 +0000 (Fri, 19 May 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Re-added code testing FE_DIVBYZERO and FE_INVALID with
--DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO, because MPFR_TESTS_EXCEPTIONS
-is not ready yet.
-------------------------------------------------------------------------
-r11490 | vlefevre | 2017-05-19 07:04:23 +0000 (Fri, 19 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output IEEE floats status.
-------------------------------------------------------------------------
-r11489 | zimmerma | 2017-05-19 06:09:23 +0000 (Fri, 19 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-check for fp exceptions (experimental)
-
-------------------------------------------------------------------------
-r11488 | vlefevre | 2017-05-17 14:08:40 +0000 (Wed, 17 May 2017) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Added/updated comments.
-------------------------------------------------------------------------
-r11487 | vlefevre | 2017-05-17 13:34:28 +0000 (Wed, 17 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-[tests/tcmp2.c] Added tests with equal numbers, possibly of different
-sizes.
-------------------------------------------------------------------------
-r11486 | vlefevre | 2017-05-17 10:15:30 +0000 (Wed, 17 May 2017) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Corrected comments.
-------------------------------------------------------------------------
-r11485 | vlefevre | 2017-05-17 06:46:27 +0000 (Wed, 17 May 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] In the detection of reserved macro names, skip ERR
-from src/mpfr-gmp.h (this is a special case).
-------------------------------------------------------------------------
-r11484 | vlefevre | 2017-05-17 06:31:23 +0000 (Wed, 17 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Made PRINT_ERR_MISC more robust.
-------------------------------------------------------------------------
-r11483 | vlefevre | 2017-05-17 06:27:14 +0000 (Wed, 17 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tsi_op.c
-
-[tests/*.c] Renamed the remaining macros whose names are reserved
-by ISO C when <errno.h> is included.
-------------------------------------------------------------------------
-r11482 | vlefevre | 2017-05-16 13:44:56 +0000 (Tue, 16 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/texceptions.c
-
-[tests/texceptions.c] Made code formatting consistent.
-------------------------------------------------------------------------
-r11481 | vlefevre | 2017-05-16 13:41:49 +0000 (Tue, 16 May 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
-
-[tests/*.c] Renamed "ERROR" macro (macro name reserved by ISO C
-when <errno.h> is included) to "PRINT_ERROR", and made the macro
-more robust.
-------------------------------------------------------------------------
-r11480 | vlefevre | 2017-05-16 13:21:15 +0000 (Tue, 16 May 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_f.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/set_f.c
- M /trunk/tests/tget_f.c
-
-Define the EXP() macro in src/mpfr-gmp.h only when needed (macro name
-reserved by ISO C when <errno.h> is included).
-------------------------------------------------------------------------
-r11479 | vlefevre | 2017-05-16 10:35:35 +0000 (Tue, 16 May 2017) | 5 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Got rid of the EXPM1_STR macro (macro name reserved
-by ISO C when <errno.h> is included), made no longer interesting by
-using mpfr_set_str_binary only once and another temporary variable.
-At the same time, replaced the usual allocation by a GROUP allocation
-(more efficient).
-------------------------------------------------------------------------
-r11478 | vlefevre | 2017-05-15 15:39:18 +0000 (Mon, 15 May 2017) | 1 line
-Changed paths:
- M /trunk/tests/tcheck.c
-
-[tests/tcheck.c] Code reformatting (GNU coding style).
-------------------------------------------------------------------------
-r11477 | vlefevre | 2017-05-15 15:27:29 +0000 (Mon, 15 May 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tcheck.c
-
-[tests/tcheck.c] Renamed "ERROR" macro (macro name reserved by ISO C
-when <errno.h> is included) to "PRINT_ERROR".
-------------------------------------------------------------------------
-r11476 | vlefevre | 2017-05-15 15:19:11 +0000 (Mon, 15 May 2017) | 8 lines
-Changed paths:
- M /trunk/src/jn.c
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tabs.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/terf.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
-
-Do not define macro names starting with "SIG" (+ uppercase letter)
-as they are reserved when <signal.h> is included (ISO C, 7.31.7),
-which happens to be the case in tests/tests.c, which also includes
-tests/mpfr-test.h and src/mpfr-impl.h indirectly.
- * src/mpfr-impl.h, tests/mpfr-test.h: renamed macros:
- SIGN → VSIGN
- SIGN_RAND → RAND_SIGN
- * {src,tests}/*.{c,h}: updated the names in the use of these macros.
-------------------------------------------------------------------------
-r11475 | vlefevre | 2017-05-15 14:53:04 +0000 (Mon, 15 May 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a comment about the definition of reserved
-identifiers (in particular, macro names).
-------------------------------------------------------------------------
-r11474 | vlefevre | 2017-05-15 14:47:06 +0000 (Mon, 15 May 2017) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect the definition of reserved macro names.
-------------------------------------------------------------------------
-r11473 | vlefevre | 2017-05-15 14:20:37 +0000 (Mon, 15 May 2017) | 4 lines
-Changed paths:
- M /trunk/src/bernoulli.c
-
-[src/bernoulli.c] Changed isprime to is_prime in order to avoid obscure
-problems if <ctype.h> is added to mpfr-impl.h in the future (or if this
-function is made external). See ISO C "Future library directions",
-Clause 7.31.2 "Character handling <ctype.h>".
-------------------------------------------------------------------------
-r11472 | vlefevre | 2017-05-12 13:01:17 +0000 (Fri, 12 May 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved comments about assertions and MPFR_ASSUME().
-------------------------------------------------------------------------
-r11471 | vlefevre | 2017-05-09 15:33:20 +0000 (Tue, 09 May 2017) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Mention the problem when almost all the tests fails with a
-message "Incorrect MPFR version! ...".
-------------------------------------------------------------------------
-r11470 | vlefevre | 2017-05-09 13:02:22 +0000 (Tue, 09 May 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tl2b.c
- M /trunk/tests/tpow_all.c
-
-Increase the buffer sizes even more, and added a comment. This may
-be better in case of quick future changes (possibly for debugging),
-without checking carefully. For the tests, optimal code is useless.
-------------------------------------------------------------------------
-r11469 | zimmerma | 2017-05-09 10:47:36 +0000 (Tue, 09 May 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tl2b.c
- M /trunk/tests/tpow_all.c
-
-fixed bugs found by gcc 7.1.0 (-Werror=format-overflow=)
-[VL] The MPFR code was correct. This is actually a bug in GCC:
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79257
-------------------------------------------------------------------------
-r11468 | vlefevre | 2017-05-09 09:11:57 +0000 (Tue, 09 May 2017) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r11461 | vlefevre | 2017-05-05 08:17:09 +0000 (Fri, 05 May 2017) | 6 lines
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-[tools/mbench/timp.h] Updated TIMP_MEASURE() to handle the case where
-the return value is 0: this probably means that timp_overhead was too
-large and incorrect. In this case, TIMP_OVERHEAD() is called again to
-recompute timp_overhead and the timing is redone.
-Note: if we do not call TIMP_OVERHEAD() again, then TIMP_MEASURE()
-loops indefinitely, meaning that timp_overhead was really too large.
-------------------------------------------------------------------------
-r11460 | vlefevre | 2017-05-05 07:42:06 +0000 (Fri, 05 May 2017) | 1 line
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-[tools/mbench/timp.h] Comment at the wrong place. Fixed.
-------------------------------------------------------------------------
-r11459 | vlefevre | 2017-05-05 07:40:54 +0000 (Fri, 05 May 2017) | 1 line
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-[tools/mbench/timp.h] Added a comment about r11458.
-------------------------------------------------------------------------
-r11458 | vlefevre | 2017-05-04 17:07:27 +0000 (Thu, 04 May 2017) | 1 line
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-[tools/mbench/timp.h] Fixed overflows on unsigned arithmetic.
-------------------------------------------------------------------------
-r11457 | vlefevre | 2017-05-04 16:56:59 +0000 (Thu, 04 May 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.h
-
-[tools/mbench/mfv5.h] Increased values from 2^60-1 to 2^64-1
-(it is possible to get more than 2^60-1 cycles in practice!).
-------------------------------------------------------------------------
-r11452 | vlefevre | 2017-05-02 14:28:40 +0000 (Tue, 02 May 2017) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Clarified proof for tiny arguments again.
-------------------------------------------------------------------------
-r11451 | vlefevre | 2017-05-02 14:07:25 +0000 (Tue, 02 May 2017) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Clarified proof for tiny arguments.
-------------------------------------------------------------------------
-r11450 | vlefevre | 2017-05-02 12:38:02 +0000 (Tue, 02 May 2017) | 3 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] In the proof for tiny arguments:
- * Simplification suggested by Paul.
- * Attempt to clarify the end.
-------------------------------------------------------------------------
-r11449 | zimmerma | 2017-05-02 09:23:25 +0000 (Tue, 02 May 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-added comment
-
-------------------------------------------------------------------------
-r11448 | zimmerma | 2017-05-02 08:10:53 +0000 (Tue, 02 May 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-added reference for mbench (rdtsc vs rdtscp)
-
-------------------------------------------------------------------------
-r11447 | vlefevre | 2017-04-28 15:41:36 +0000 (Fri, 28 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Tiny arguments: corrected a typo and added a TODO
-(one might get a better condition).
-------------------------------------------------------------------------
-r11446 | vlefevre | 2017-04-28 15:19:16 +0000 (Fri, 28 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Corrections in a proof for tiny arguments. Added a TODO.
-------------------------------------------------------------------------
-r11445 | vlefevre | 2017-04-27 12:00:50 +0000 (Thu, 27 Apr 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about the MPFR_GENERIC_ABI macro.
-------------------------------------------------------------------------
-r11444 | vlefevre | 2017-04-27 11:45:24 +0000 (Thu, 27 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Corrected a comment.
-------------------------------------------------------------------------
-r11443 | vlefevre | 2017-04-27 11:44:22 +0000 (Thu, 27 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Blank line like in add1sp.c, sub1sp.c, etc.
-------------------------------------------------------------------------
-r11442 | vlefevre | 2017-04-27 11:42:50 +0000 (Thu, 27 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Blank lines and comment like in add1sp.c, sub1sp.c, etc.
-------------------------------------------------------------------------
-r11441 | vlefevre | 2017-04-27 11:38:51 +0000 (Thu, 27 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Like in add1sp.c and sub1sp.c, do not define the specific
-functions for low precision if MPFR_GENERIC_ABI is defined (they are
-not called in such a case).
-------------------------------------------------------------------------
-r11440 | vlefevre | 2017-04-27 11:31:50 +0000 (Thu, 27 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added blank lines for readability (like in add1sp.c).
-------------------------------------------------------------------------
-r11439 | vlefevre | 2017-04-27 11:12:24 +0000 (Thu, 27 Apr 2017) | 1 line
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-s/interruption/interrupt/
-------------------------------------------------------------------------
-r11438 | vlefevre | 2017-04-27 09:23:51 +0000 (Thu, 27 Apr 2017) | 1 line
-Changed paths:
- M /trunk/tools/mbench/Makefile
- M /trunk/tools/mbench/timp.h
-
-[mbench] Updated copyright years. Added a comment.
-------------------------------------------------------------------------
-r11437 | zimmerma | 2017-04-27 08:22:31 +0000 (Thu, 27 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/Makefile
- M /trunk/tools/mbench/timp.h
-
-better detection of rdtscp
-
-------------------------------------------------------------------------
-r11436 | vlefevre | 2017-04-18 17:18:54 +0000 (Tue, 18 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated a comment, with reference to GCC bug 80454.
-------------------------------------------------------------------------
-r11434 | vlefevre | 2017-04-09 13:06:36 +0000 (Sun, 09 Apr 2017) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Avoid integer overflow from r11411 with 32-bit long.
-------------------------------------------------------------------------
-r11433 | vlefevre | 2017-04-07 15:15:34 +0000 (Fri, 07 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Updated test to check that the snprintf function (C99)
-is not used.
-------------------------------------------------------------------------
-r11430 | vlefevre | 2017-04-07 14:52:12 +0000 (Fri, 07 Apr 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected an English error.
-------------------------------------------------------------------------
-r11429 | vlefevre | 2017-04-07 13:59:03 +0000 (Fri, 07 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed bug triggered by the test added in r11428:
-the size field of struct printf_spec must have type size_t, not int,
-because the size argument of mpfr_snprintf has type size_t.
-------------------------------------------------------------------------
-r11428 | vlefevre | 2017-04-07 13:53:58 +0000 (Fri, 07 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a test that fails on 64-bit machines
-(4-byte int, 8-byte size_t), due to the use of mpfr_snprintf
-with required size = (size_t) UINT_MAX + 1.
-------------------------------------------------------------------------
-r11427 | vlefevre | 2017-04-07 08:18:47 +0000 (Fri, 07 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Minor changes.
-------------------------------------------------------------------------
-r11426 | vlefevre | 2017-04-07 08:09:46 +0000 (Fri, 07 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Comment re-indentation.
-------------------------------------------------------------------------
-r11425 | vlefevre | 2017-04-07 07:21:47 +0000 (Fri, 07 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/ubf.c
-
-[src/ubf.c] Renamed mpfr_get_zexp to mpfr_init_get_zexp for clarity.
-------------------------------------------------------------------------
-r11424 | vlefevre | 2017-04-06 23:37:51 +0000 (Thu, 06 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed silly typo in MPFR_UBF_CLEAR_EXP() yielding
-either an obscure memory leak or a crash in some mpfr_fmma calls.
-We would really need formal proofs on the code... Or avoid macros.
-------------------------------------------------------------------------
-r11423 | zimmerma | 2017-04-06 17:51:39 +0000 (Thu, 06 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] added one test
-
-------------------------------------------------------------------------
-r11422 | zimmerma | 2017-04-06 17:15:03 +0000 (Thu, 06 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] fixed test
-
-------------------------------------------------------------------------
-r11421 | vlefevre | 2017-04-06 17:06:12 +0000 (Thu, 06 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Updated comment about underflow.
-------------------------------------------------------------------------
-r11420 | vlefevre | 2017-04-06 17:01:59 +0000 (Thu, 06 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Handling of UBF and overflow/underflow.
- * Added a MPFR_ASSERTD related to the overflow code.
- * Bug fix: handle underflow, possible if UBF input(s).
-------------------------------------------------------------------------
-r11419 | zimmerma | 2017-04-06 16:02:27 +0000 (Thu, 06 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] added another test (currently fails)
-
-------------------------------------------------------------------------
-r11418 | vlefevre | 2017-04-06 15:24:33 +0000 (Thu, 06 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Bug fix: underflow was not detected in the case cancel = 0
-with UBF numbers. At the same time, refactored the related code a bit.
-------------------------------------------------------------------------
-r11417 | vlefevre | 2017-04-06 13:45:27 +0000 (Thu, 06 Apr 2017) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added tbeta to svn:ignore property.
-------------------------------------------------------------------------
-r11416 | vlefevre | 2017-04-06 13:24:35 +0000 (Thu, 06 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Formatting of the mpfr_can_round example for 80-column
-terminals + GNU coding style.
-------------------------------------------------------------------------
-r11415 | vlefevre | 2017-04-06 12:53:23 +0000 (Thu, 06 Apr 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Updated comment about bug20170405 (fixed in r11414).
-------------------------------------------------------------------------
-r11414 | vlefevre | 2017-04-06 12:47:03 +0000 (Thu, 06 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Also corrected the comment about overflow detection.
-------------------------------------------------------------------------
-r11413 | vlefevre | 2017-04-06 12:45:14 +0000 (Thu, 06 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Really fixed overflow detection (r11412 is broken).
-------------------------------------------------------------------------
-r11412 | vlefevre | 2017-04-06 12:43:01 +0000 (Thu, 06 Apr 2017) | 4 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Fixed/improved UBF cases.
- * Added an assertion (usual MPFR limitation with huge precisions,
- affecting 32-bit ABI only in practice).
- * Fixed overflow detection.
-------------------------------------------------------------------------
-r11411 | vlefevre | 2017-04-06 11:56:58 +0000 (Thu, 06 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] In check_long_string(), which is called when
-MPFR_CHECK_LARGEMEM is defined, increase tests_memory_limit if need be
-in order to avoid an obvious failure due to insufficient memory.
-------------------------------------------------------------------------
-r11410 | vlefevre | 2017-04-06 11:47:59 +0000 (Thu, 06 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-[tests/memory.c] Write all error messages to stderr in order to make
-sure that they remain visible when the standard output is redirected
-(e.g. in tprintf). Rewrote the messages in a consistent way.
-------------------------------------------------------------------------
-r11409 | vlefevre | 2017-04-06 11:20:31 +0000 (Thu, 06 Apr 2017) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Fixed return type of test added in r11407.
-------------------------------------------------------------------------
-r11408 | vlefevre | 2017-04-06 11:18:53 +0000 (Thu, 06 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tinits.c
-
-[tests/tinits.c] When MPFR_CHECK_LARGEMEM is defined, increase
-tests_memory_limit if need be in order to avoid an obvious failure
-due to insufficient memory.
-------------------------------------------------------------------------
-r11407 | zimmerma | 2017-04-06 11:00:38 +0000 (Thu, 06 Apr 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-added test that triggers an error
-(see https://sympa.inria.fr/sympa/arc/mpfr/2017-04/msg00016.html)
-
-------------------------------------------------------------------------
-r11406 | vlefevre | 2017-04-05 12:46:15 +0000 (Wed, 05 Apr 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11405 | vlefevre | 2017-04-05 08:35:18 +0000 (Wed, 05 Apr 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] More details about errno.
-------------------------------------------------------------------------
-r11404 | vlefevre | 2017-04-04 14:43:40 +0000 (Tue, 04 Apr 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a paragraph about the use of errno.
-------------------------------------------------------------------------
-r11403 | vlefevre | 2017-04-04 14:19:31 +0000 (Tue, 04 Apr 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Details about EOVERFLOW.
-------------------------------------------------------------------------
-r11402 | zimmerma | 2017-04-04 06:22:46 +0000 (Tue, 04 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] added test in bug20161217()
-
-------------------------------------------------------------------------
-r11401 | vlefevre | 2017-04-03 13:04:23 +0000 (Mon, 03 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Update about functions returning a native floating-point value
-and underflow/overflow.
-------------------------------------------------------------------------
-r11400 | vlefevre | 2017-04-03 11:46:48 +0000 (Mon, 03 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/src/atanh.c
-
-[src/atanh.c] Removed comment giving the "optimal" working precision
-(I do not see any proof in algorithms.tex, and it seems incorrect).
-------------------------------------------------------------------------
-r11399 | vlefevre | 2017-04-03 11:28:24 +0000 (Mon, 03 Apr 2017) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/src/log1p.c
-
-[TODO,src/log1p.c] log1p(x) on small x should also be improved instead
-of computing log(1+x).
-------------------------------------------------------------------------
-r11398 | vlefevre | 2017-04-03 09:16:27 +0000 (Mon, 03 Apr 2017) | 1 line
-Changed paths:
- M /trunk/TODO
- M /trunk/src/atanh.c
-
-[TODO,src/atanh.c] Suggest a faster formula for atanh(x) on small x.
-------------------------------------------------------------------------
-r11397 | vlefevre | 2017-04-03 09:04:04 +0000 (Mon, 03 Apr 2017) | 1 line
-Changed paths:
- M /trunk/src/atanh.c
-
-[src/atanh.c] Cosmetic changes (comments and whitespace).
-------------------------------------------------------------------------
-r11396 | vlefevre | 2017-04-03 08:24:03 +0000 (Mon, 03 Apr 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Update about ERANGE.
-------------------------------------------------------------------------
-r11395 | vlefevre | 2017-03-27 14:57:20 +0000 (Mon, 27 Mar 2017) | 1 line
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] Fixed a macro (use of mpfr_printf, missing cast).
-------------------------------------------------------------------------
-r11390 | vlefevre | 2017-03-09 10:58:49 +0000 (Thu, 09 Mar 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention how to find the full list of bug fixes.
-------------------------------------------------------------------------
-r11388 | vlefevre | 2017-03-09 09:45:02 +0000 (Thu, 09 Mar 2017) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Updated comments about bug20161217 and bug20170308.
-------------------------------------------------------------------------
-r11386 | vlefevre | 2017-03-09 09:28:47 +0000 (Thu, 09 Mar 2017) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added comments about bug20161217 and bug20170308.
-------------------------------------------------------------------------
-r11385 | vlefevre | 2017-03-09 01:34:37 +0000 (Thu, 09 Mar 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Updated comment: bug20170308 checks the same bug
-as bug20161217.
-------------------------------------------------------------------------
-r11384 | vlefevre | 2017-03-09 01:27:39 +0000 (Thu, 09 Mar 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11383 | zimmerma | 2017-03-08 20:58:00 +0000 (Wed, 08 Mar 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-added non-regression test
-
-------------------------------------------------------------------------
-r11382 | zimmerma | 2017-03-07 14:12:39 +0000 (Tue, 07 Mar 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] results should not depend on machine rounding mode/precision
-
-------------------------------------------------------------------------
-r11381 | vlefevre | 2017-03-06 10:55:45 +0000 (Mon, 06 Mar 2017) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor corrections.
-------------------------------------------------------------------------
-r11380 | vlefevre | 2017-03-05 02:11:52 +0000 (Sun, 05 Mar 2017) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added a comment about shiftq.
-------------------------------------------------------------------------
-r11379 | vlefevre | 2017-02-28 11:11:29 +0000 (Tue, 28 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] C89 compatibility and some code reformatting.
-------------------------------------------------------------------------
-r11378 | vlefevre | 2017-02-28 10:10:44 +0000 (Tue, 28 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Slightly improved comments.
-------------------------------------------------------------------------
-r11377 | vlefevre | 2017-02-28 10:06:10 +0000 (Tue, 28 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Fixed a bug in reduced exponent range (not detected by
-the current tests).
-------------------------------------------------------------------------
-r11376 | vlefevre | 2017-02-28 10:02:51 +0000 (Tue, 28 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Added a comment for Beta(0,negative integer).
-------------------------------------------------------------------------
-r11375 | vlefevre | 2017-02-28 09:53:31 +0000 (Tue, 28 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Eventually fixed the case z or w is 0 (note: r11374
-did also other unwanted changes, reverted here).
-------------------------------------------------------------------------
-r11374 | vlefevre | 2017-02-28 09:40:01 +0000 (Tue, 28 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Reverted my changes (this was incorrect).
-------------------------------------------------------------------------
-r11373 | vlefevre | 2017-02-28 09:32:01 +0000 (Tue, 28 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Fixed special cases.
-------------------------------------------------------------------------
-r11372 | vlefevre | 2017-02-28 09:10:28 +0000 (Tue, 28 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Added comments and some corrections (incomplete) for the
-case "z or w is 0".
-------------------------------------------------------------------------
-r11371 | zimmerma | 2017-02-28 08:06:05 +0000 (Tue, 28 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] fixed case z or w is 0
-
-------------------------------------------------------------------------
-r11370 | zimmerma | 2017-02-28 07:11:09 +0000 (Tue, 28 Feb 2017) | 4 lines
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] patch from Cade Brown
-- signed zeros are checked in is_same
-- the case above (summing non-integer negative z, w which sum to a negative integer)
-
-------------------------------------------------------------------------
-r11369 | zimmerma | 2017-02-27 22:00:55 +0000 (Mon, 27 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] added mpfr_beta in "Added Functions"
-
-------------------------------------------------------------------------
-r11368 | vlefevre | 2017-02-27 15:48:12 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Use MPFR_ADD_PREC.
-------------------------------------------------------------------------
-r11367 | vlefevre | 2017-02-27 15:42:30 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Updated comments; added a FIXME.
-------------------------------------------------------------------------
-r11366 | zimmerma | 2017-02-27 15:10:45 +0000 (Mon, 27 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] in case the first Ziv loop failed, take into account the number of
- lost bits
-
-------------------------------------------------------------------------
-r11365 | vlefevre | 2017-02-27 15:06:41 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Use MPFR_ARE_SINGULAR.
-------------------------------------------------------------------------
-r11364 | zimmerma | 2017-02-27 14:22:29 +0000 (Mon, 27 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] fix in case z and w are not integers and z+w is a nonpositive integer
-
-------------------------------------------------------------------------
-r11363 | zimmerma | 2017-02-27 12:07:35 +0000 (Mon, 27 Feb 2017) | 2 lines
-Changed paths:
- A /trunk/src/odd_p.c
-
-[src/odd_p.c] new source file
-
-------------------------------------------------------------------------
-r11362 | zimmerma | 2017-02-27 12:07:15 +0000 (Mon, 27 Feb 2017) | 5 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/beta.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/pow.c
-
-[src/Makefile.am] new file odd_p.c
-[src/beta.c] fixed bug
-[src/mpfr-impl.h] renamed mpfr_is_odd into mpfr_odd_p
-[src/pow.c] moved mpfr_is_odd (renamed mpfr_odd_p) into separate file
-
-------------------------------------------------------------------------
-r11361 | vlefevre | 2017-02-27 11:10:11 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Added a FIXME (test failure with assertions).
-------------------------------------------------------------------------
-r11360 | vlefevre | 2017-02-27 10:48:32 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Removed an unusual space.
-------------------------------------------------------------------------
-r11359 | vlefevre | 2017-02-27 10:42:30 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tbuildopt.c
-
-[tests/tbuildopt.c] Added calls to tests_start_mpfr and tests_end_mpfr.
-------------------------------------------------------------------------
-r11358 | vlefevre | 2017-02-27 10:35:25 +0000 (Mon, 27 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a test to check that the usual test programs
-call tests_start_mpfr and tests_end_mpfr.
-------------------------------------------------------------------------
-r11357 | zimmerma | 2017-02-27 10:27:40 +0000 (Mon, 27 Feb 2017) | 5 lines
-Changed paths:
- M /trunk/src/beta.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/pow.c
- M /trunk/tests/tbeta.c
-
-[src/beta.c] several fixes
-[src/pow.c] renamed is_odd to mpfr_is_odd, and export it
-[src/mpfr-impl.h] export mpfr_is_odd as internal function
-[tests/tbeta.c] added generic tests
-
-------------------------------------------------------------------------
-r11356 | vlefevre | 2017-02-27 09:43:46 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] Added missing void in prototype.
-------------------------------------------------------------------------
-r11355 | vlefevre | 2017-02-27 09:32:39 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/set.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r11354 | vlefevre | 2017-02-27 08:30:31 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] Fixed the usage of MPFR types.
-------------------------------------------------------------------------
-r11353 | vlefevre | 2017-02-27 08:28:03 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] Minor correction. Added a FIXME and a TODO.
-------------------------------------------------------------------------
-r11352 | zimmerma | 2017-02-27 07:11:05 +0000 (Mon, 27 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tbeta.c
-
-[tests/tbeta.c] GNU style and C89 portability
-
-------------------------------------------------------------------------
-r11351 | zimmerma | 2017-02-27 06:56:40 +0000 (Mon, 27 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed beta entry
-
-------------------------------------------------------------------------
-r11350 | zimmerma | 2017-02-27 06:56:03 +0000 (Mon, 27 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
-
-new function mpfr_beta
-
-------------------------------------------------------------------------
-r11349 | zimmerma | 2017-02-27 06:55:23 +0000 (Mon, 27 Feb 2017) | 4 lines
-Changed paths:
- A /trunk/tests/tbeta.c
-
-[tests/tbeta.c] test file for mpfr_beta, contributed by Cade Brown from
- ChemicalDevelopment (this commit is the file as it was
- contributed, except the mpfr-test.h include)
-
-------------------------------------------------------------------------
-r11348 | vlefevre | 2017-02-27 02:25:55 +0000 (Mon, 27 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Portability corrections.
-------------------------------------------------------------------------
-r11347 | zimmerma | 2017-02-26 22:13:00 +0000 (Sun, 26 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] fix for exact case beta(1,2^k) for k negative integer
-
-------------------------------------------------------------------------
-r11346 | zimmerma | 2017-02-26 15:47:17 +0000 (Sun, 26 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] special values are now implemented (should be reviewed)
-
-------------------------------------------------------------------------
-r11343 | vlefevre | 2017-02-25 22:52:23 +0000 (Sat, 25 Feb 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] mpfr_root: replace "obsolete" by "deprecated" (the right word).
-------------------------------------------------------------------------
-r11342 | vlefevre | 2017-02-25 22:46:23 +0000 (Sat, 25 Feb 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Update about rootn.
-------------------------------------------------------------------------
-r11341 | vlefevre | 2017-02-25 22:31:48 +0000 (Sat, 25 Feb 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added some propositions about rootn.
-------------------------------------------------------------------------
-r11340 | zimmerma | 2017-02-25 13:58:10 +0000 (Sat, 25 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] added comment
-
-------------------------------------------------------------------------
-r11339 | zimmerma | 2017-02-25 07:21:08 +0000 (Sat, 25 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-added reference
-
-------------------------------------------------------------------------
-r11338 | vlefevre | 2017-02-23 13:00:06 +0000 (Thu, 23 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Call mpfr_check_range as usual.
-------------------------------------------------------------------------
-r11337 | vlefevre | 2017-02-23 12:18:10 +0000 (Thu, 23 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Extended the exponent range for the generic case.
-------------------------------------------------------------------------
-r11336 | vlefevre | 2017-02-23 12:15:45 +0000 (Thu, 23 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Added a comment.
-------------------------------------------------------------------------
-r11335 | vlefevre | 2017-02-23 12:14:19 +0000 (Thu, 23 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Various code improvement / fixes.
-------------------------------------------------------------------------
-r11334 | vlefevre | 2017-02-23 11:49:35 +0000 (Thu, 23 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/beta.c
-
-[src/beta.c] Added a FIXME.
-------------------------------------------------------------------------
-r11333 | zimmerma | 2017-02-23 11:10:39 +0000 (Thu, 23 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
- A /trunk/src/beta.c
- M /trunk/src/mpfr.h
-
-[src/beta.c] added beta function (work in progress, not yet fully implemented,
- and not tested)
-
-------------------------------------------------------------------------
-r11332 | zimmerma | 2017-02-21 14:06:56 +0000 (Tue, 21 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/fmma.c
- M /trunk/src/set.c
- M /trunk/src/ubf.c
-
-[src/fmma.c] speedup of mpfr_fmma and mpfr_fmms
-
-------------------------------------------------------------------------
-r11331 | zimmerma | 2017-02-21 12:40:52 +0000 (Tue, 21 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/fma.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set.c
-
-[src/fma.c] speedup of mpfr_fma when all operands have the same precision
- (less than one full limb)
-
-------------------------------------------------------------------------
-r11330 | vlefevre | 2017-02-21 10:28:04 +0000 (Tue, 21 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Note that the position of "const" in the mpfr_sum prototype
-has been fixed (in case writers of interfaces for MPFR use that).
-------------------------------------------------------------------------
-r11328 | vlefevre | 2017-02-21 09:44:35 +0000 (Tue, 21 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/get_d64.c
- M /trunk/src/set_d64.c
-
-"a IEEE 754r decimal64 float" → "an IEEE 754-2008 decimal64 float".
-------------------------------------------------------------------------
-r11327 | zimmerma | 2017-02-20 18:03:00 +0000 (Mon, 20 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] speedup mpfr_fma for 1 limb
-
-------------------------------------------------------------------------
-r11326 | zimmerma | 2017-02-20 18:01:15 +0000 (Mon, 20 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/fms.c
-
-754R -> 754-2008
-
-------------------------------------------------------------------------
-r11325 | vlefevre | 2017-02-20 02:36:50 +0000 (Mon, 20 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r11324 | vlefevre | 2017-02-20 02:32:10 +0000 (Mon, 20 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Solved the FIXME for %g on easy cases.
-------------------------------------------------------------------------
-r11323 | vlefevre | 2017-02-17 12:54:47 +0000 (Fri, 17 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] mpfr_reflection_overflow: reverted r11322 as the rounding
-direction was correct; it was a comment that was incorrect, now fixed.
-------------------------------------------------------------------------
-r11322 | vlefevre | 2017-02-17 12:47:41 +0000 (Fri, 17 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] mpfr_reflection_overflow: fixed a rounding direction.
-------------------------------------------------------------------------
-r11321 | vlefevre | 2017-02-17 12:39:56 +0000 (Fri, 17 Feb 2017) | 5 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Improvements of mpfr_reflection_overflow:
- * Moved identical parts of the code at the beginning of if/else blocks
- as a single part before the "if".
- * When the rounding mode doesn't matter (exact result), use MPFR_RNDN.
- * Updated comments (making them more consistent at the same time).
-------------------------------------------------------------------------
-r11320 | zimmerma | 2017-02-16 19:16:58 +0000 (Thu, 16 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] added more comments for the overflow case
-
-------------------------------------------------------------------------
-r11319 | vlefevre | 2017-02-14 15:37:03 +0000 (Tue, 14 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/doc/sum.txt
- M /trunk/src/sum.c
-
-[src/sum.c] Added a note about why one uses "const mpfr_ptr *x" in the
- prototypes instead of "const mpfr_srcptr *x" (old info from r5381).
-[doc/sum.txt] Fixed the const position (see r11316) and added this note.
-------------------------------------------------------------------------
-r11318 | vlefevre | 2017-02-14 11:57:11 +0000 (Tue, 14 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
-
-[src/{mpfr-impl.h,mpfr.h}] Code reformatting and other cosmetic changes.
-------------------------------------------------------------------------
-r11317 | vlefevre | 2017-02-14 11:30:50 +0000 (Tue, 14 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] For mpfr_sum, changed "mpfr_ptr const" to the equivalent
-"const mpfr_ptr" (usual style, less confusing).
-------------------------------------------------------------------------
-r11316 | vlefevre | 2017-02-14 11:28:28 +0000 (Tue, 14 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
- M /trunk/src/sum.c
-
-For mpfr_sum and its auxiliary functions, moved the const type qualifier
-to the right place (mpfr_ptr *const → const mpfr_ptr *). This bug had
-been introduced in r3642 (2005-06-10).
-------------------------------------------------------------------------
-r11315 | vlefevre | 2017-02-13 17:03:16 +0000 (Mon, 13 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] mpfr_reflection_overflow: added comments and FIXME's;
-fixed obvious typos in a comment and the code.
-------------------------------------------------------------------------
-r11314 | vlefevre | 2017-02-13 15:44:56 +0000 (Mon, 13 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] mpfr_reflection_overflow: typo in a comment.
-------------------------------------------------------------------------
-r11313 | vlefevre | 2017-02-13 12:13:11 +0000 (Mon, 13 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Untabified.
-------------------------------------------------------------------------
-r11312 | vlefevre | 2017-02-13 12:11:18 +0000 (Mon, 13 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] mpfr_reflection_overflow: added an assertion and a comment.
-------------------------------------------------------------------------
-r11311 | vlefevre | 2017-02-13 09:37:17 +0000 (Mon, 13 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a comment in a FIXME.
-------------------------------------------------------------------------
-r11310 | vlefevre | 2017-02-13 09:28:06 +0000 (Mon, 13 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added MPFR_ASSERTD's.
-------------------------------------------------------------------------
-r11309 | vlefevre | 2017-02-13 09:17:03 +0000 (Mon, 13 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Avoid some potential integer overflows.
-------------------------------------------------------------------------
-r11308 | zimmerma | 2017-02-13 09:11:19 +0000 (Mon, 13 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] improved overflow detection
-
-------------------------------------------------------------------------
-r11307 | vlefevre | 2017-02-13 08:57:06 +0000 (Mon, 13 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added FIXME's: possible integer overflows.
-------------------------------------------------------------------------
-r11306 | zimmerma | 2017-02-12 08:06:55 +0000 (Sun, 12 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-fix for mpfr_zeta overflow on 32-bit computers
-
-------------------------------------------------------------------------
-r11305 | zimmerma | 2017-02-11 15:26:07 +0000 (Sat, 11 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] revert detection of leading bit in sqr_1 and sqr_2
- (not clear it is faster)
-
-------------------------------------------------------------------------
-r11304 | vlefevre | 2017-02-10 18:25:21 +0000 (Fri, 10 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a mpfr_snprintf test with a null pointer,
-"%#.*RDg" and a large precision (it currently takes too much memory,
-like the similar ones).
-------------------------------------------------------------------------
-r11303 | vlefevre | 2017-02-10 16:03:47 +0000 (Fri, 10 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/vasprintf.c] Added a FIXME for %g on easy cases (too much memory).
-[tests/tsprintf.c] Added corresponding tests.
-------------------------------------------------------------------------
-r11302 | vlefevre | 2017-02-09 17:47:38 +0000 (Thu, 09 Feb 2017) | 4 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fix for mpfr_snprintf with size=0: do not allocate
-a buffer for the output if not needed. This really fixes bug #21056.
-The case size_t < unsigned int could not be solved completely due to
-limitations from the C standard and GMP.
-------------------------------------------------------------------------
-r11301 | vlefevre | 2017-02-09 17:04:03 +0000 (Thu, 09 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Avoid a warning due to an unused variable with
-MPFR_GENERIC_ABI defined or GMP_NUMB_BITS != 64.
-------------------------------------------------------------------------
-r11300 | vlefevre | 2017-02-09 13:45:53 +0000 (Thu, 09 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Added MPFR_ASSERTD's from comments.
-------------------------------------------------------------------------
-r11299 | zimmerma | 2017-02-09 12:03:41 +0000 (Thu, 09 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-[tests/tzeta.c] interm_overflow -> intermediate_overflow
-
-------------------------------------------------------------------------
-r11298 | vlefevre | 2017-02-09 11:34:52 +0000 (Thu, 09 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Updated a FIXME.
-------------------------------------------------------------------------
-r11297 | zimmerma | 2017-02-09 10:48:50 +0000 (Thu, 09 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/Makefile
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-improved detection of fmma and fmms
-
-------------------------------------------------------------------------
-r11296 | zimmerma | 2017-02-09 10:21:54 +0000 (Thu, 09 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] fixed long-standing failure in tzeta
-
-------------------------------------------------------------------------
-r11295 | zimmerma | 2017-02-08 20:55:18 +0000 (Wed, 08 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/tests/tsqrt.c
-
-[src/sqrt.c] fixed a bug, and simplified code (sb=0 implies rb=0)
-
-------------------------------------------------------------------------
-r11294 | vlefevre | 2017-02-08 17:36:48 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Updated FIXME.
-------------------------------------------------------------------------
-r11293 | zimmerma | 2017-02-08 17:22:22 +0000 (Wed, 08 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] new code for prec=GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r11292 | vlefevre | 2017-02-08 17:00:18 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Moved the size_t vs int FIXME, with details added.
-------------------------------------------------------------------------
-r11291 | vlefevre | 2017-02-08 16:51:51 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a MPFR_ASSERTN for security.
-------------------------------------------------------------------------
-r11290 | vlefevre | 2017-02-08 16:44:16 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a FIXME for the case size_t < unsigned int.
-------------------------------------------------------------------------
-r11289 | vlefevre | 2017-02-08 16:34:31 +0000 (Wed, 08 Feb 2017) | 4 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Solved the r11288 FIXME, introducing new ones
-with a more visible failure. Not fixed yet because there seems
-to be another issue (already present at the beginning in r4993),
-which should be considered first.
-------------------------------------------------------------------------
-r11288 | vlefevre | 2017-02-08 16:00:28 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a FIXME (related to the cause of the failure).
-------------------------------------------------------------------------
-r11287 | vlefevre | 2017-02-08 15:44:53 +0000 (Wed, 08 Feb 2017) | 7 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added some precondition assertions, as the buffer_cat
-implementation requires that the current buffer position contains \0.
-Note[VL]: tsprintf is still failing with assertions on my machine in
-the 32-bit Linux/x86 ABI, but now on the new precondition instead of
-postcondition. The behavior with size = 0 actually depends on the state
-of uninitialized memory (even in the 64-bit ABI), so that the failures
-may be random; the problem is detected by valgrind.
-------------------------------------------------------------------------
-r11286 | vlefevre | 2017-02-08 15:33:32 +0000 (Wed, 08 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Declare variables used by GMP_NUMB_BITS == 64 only in the
-related code.
-------------------------------------------------------------------------
-r11285 | zimmerma | 2017-02-08 15:07:28 +0000 (Wed, 08 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mul.c
-
-[src/mul.c] simplified logic for special code
-[src/div.c] fixed bug in mpfr_div_1n when extra=0
-
-------------------------------------------------------------------------
-r11284 | zimmerma | 2017-02-08 14:28:56 +0000 (Wed, 08 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] special code for prec=GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r11283 | zimmerma | 2017-02-08 14:04:11 +0000 (Wed, 08 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/src/sqr.c
-
-[src/sqr.c] new code for p = GMP_NUMB_BITS, and small improvement in mpfr_sqr_1
-[src/mul.c] cosmetic changes
-
-------------------------------------------------------------------------
-r11282 | vlefevre | 2017-02-08 13:28:21 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] Fix: C++ compatibility.
-------------------------------------------------------------------------
-r11281 | zimmerma | 2017-02-08 13:17:45 +0000 (Wed, 08 Feb 2017) | 4 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/mul.c
- M /trunk/src/sub1sp.c
-
-[src/mul.c] added special code for prec=GMP_NUMB_BITS
-[src/add1sp.c] use special code only when MPFR_GENERIC_ABI is not defined
-[src/sub1sp.c] idem as above
-
-------------------------------------------------------------------------
-r11280 | vlefevre | 2017-02-08 13:09:44 +0000 (Wed, 08 Feb 2017) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Declare the mpfr_vasnprintf_aux prototype (which
-uses va_list) only if <stdarg.h> has been included, otherwise the
-build was failing with GCC in C90 mode under Linux (and could fail
-with other C implementations where this header isn't automatically
-included as a consequence of the inclusion of some other header).
-------------------------------------------------------------------------
-r11279 | zimmerma | 2017-02-08 12:58:43 +0000 (Wed, 08 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-[src/sub1sp.c] new function for p=GMP_NUMB_BITS, fixed bug in mpfr_sub1sp3
-[tests/tsub1sp.c] added new tests
-
-------------------------------------------------------------------------
-r11278 | vlefevre | 2017-02-08 12:02:40 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed bug introduced in r11273.
-------------------------------------------------------------------------
-r11277 | vlefevre | 2017-02-08 11:54:14 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Updated the "simple mp_limb_t constants" test.
-------------------------------------------------------------------------
-r11276 | vlefevre | 2017-02-08 11:51:37 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/add_ui.c
- M /trunk/src/div_ui.c
- M /trunk/src/exp_2.c
- M /trunk/src/sub_ui.c
- M /trunk/src/ui_sub.c
-
-Made some assertions a bit more readable.
-------------------------------------------------------------------------
-r11275 | vlefevre | 2017-02-08 11:18:51 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] Fixed mpfr_inits2/mpfr_clears sentinel → (mpfr_ptr) 0
-------------------------------------------------------------------------
-r11274 | vlefevre | 2017-02-08 11:13:57 +0000 (Wed, 08 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] C90 compatibility.
-------------------------------------------------------------------------
-r11273 | zimmerma | 2017-02-08 10:28:58 +0000 (Wed, 08 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/vasprintf.c] avoid memory allocation for snprintf with size=0
-
-------------------------------------------------------------------------
-r11272 | zimmerma | 2017-02-08 08:42:49 +0000 (Wed, 08 Feb 2017) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-[src/sub1sp.c] fixed a bug in mpfr_sub1sp1 and mpfr_sub1sp2 (corner case)
-[tests/tsub1sp.c] added non-regression test
-
-------------------------------------------------------------------------
-r11271 | zimmerma | 2017-02-07 18:42:53 +0000 (Tue, 07 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] added special code for p=GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r11270 | zimmerma | 2017-02-07 16:35:29 +0000 (Tue, 07 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/vasprintf.c] improved also %a and %e
-
-------------------------------------------------------------------------
-r11269 | zimmerma | 2017-02-07 15:07:28 +0000 (Tue, 07 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/printf.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/vasprintf.c] fixed bug #21056
-
-------------------------------------------------------------------------
-r11268 | vlefevre | 2017-02-07 10:44:03 +0000 (Tue, 07 Feb 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] More about the mpz_t pool.
-------------------------------------------------------------------------
-r11267 | vlefevre | 2017-02-07 10:13:35 +0000 (Tue, 07 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/free_cache.c
-
-[src/free_cache.c] Better file description (keeping it short).
-------------------------------------------------------------------------
-r11266 | vlefevre | 2017-02-07 10:10:10 +0000 (Tue, 07 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/free_cache.c
-
-[src/free_cache.c] Updated comments (mpz_t cache → mpz_t pool).
-------------------------------------------------------------------------
-r11265 | vlefevre | 2017-02-07 01:47:16 +0000 (Tue, 07 Feb 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11264 | vlefevre | 2017-02-07 01:46:14 +0000 (Tue, 07 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Clarified mpfr_asprintf & mpfr_vasprintf specification
-in case of error.
-------------------------------------------------------------------------
-r11263 | vlefevre | 2017-02-07 00:59:37 +0000 (Tue, 07 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Code cleanup.
-------------------------------------------------------------------------
-r11262 | zimmerma | 2017-02-06 17:24:23 +0000 (Mon, 06 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-partial solution of bug #21056: a test of mpfr_sprintf still fails
-
-------------------------------------------------------------------------
-r11261 | zimmerma | 2017-02-06 15:09:39 +0000 (Mon, 06 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] added test for underflow corner case
-
-------------------------------------------------------------------------
-r11260 | zimmerma | 2017-02-06 13:48:40 +0000 (Mon, 06 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] simplified underflow in div_1 and div_2 (one case is not possible)
-
-------------------------------------------------------------------------
-r11259 | zimmerma | 2017-02-06 13:10:24 +0000 (Mon, 06 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqr.c
- M /trunk/tests/tsqr.c
-
-[tests/tsqr.c] added another corner case for underflow and mpfr_sqr_2
-
-------------------------------------------------------------------------
-r11258 | zimmerma | 2017-02-06 12:58:48 +0000 (Mon, 06 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqr.c
- M /trunk/tests/tsqr.c
-
-[tests/tsqr.c] added a corner underflow case
-
-------------------------------------------------------------------------
-r11257 | vlefevre | 2017-02-06 12:45:49 +0000 (Mon, 06 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added missing function prototype after r11256.
-------------------------------------------------------------------------
-r11256 | zimmerma | 2017-02-06 12:04:33 +0000 (Mon, 06 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-impl.h
-
-[mpfr-impl.h] now mpz_init2 uses the mpz spool too
-
-------------------------------------------------------------------------
-r11255 | vlefevre | 2017-02-03 14:10:51 +0000 (Fri, 03 Feb 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added: check the small-precision tables in the tests?
-------------------------------------------------------------------------
-r11254 | vlefevre | 2017-02-03 01:28:43 +0000 (Fri, 03 Feb 2017) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/tests/tdiv.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r11253 | vlefevre | 2017-02-03 01:09:38 +0000 (Fri, 03 Feb 2017) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed code for the _mulx_u64 test.
-------------------------------------------------------------------------
-r11252 | vlefevre | 2017-02-02 17:59:51 +0000 (Thu, 02 Feb 2017) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output whether _mulx_u64 is available.
-------------------------------------------------------------------------
-r11251 | vlefevre | 2017-02-02 17:23:20 +0000 (Thu, 02 Feb 2017) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed _mulx_u64 detection to avoid failures in tests
-with ICC 15: we need an AC_RUN_IFELSE, not just an AC_LINK_IFELSE.
-------------------------------------------------------------------------
-r11250 | vlefevre | 2017-01-31 13:43:30 +0000 (Tue, 31 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
-
-[src/invsqrt_limb.h] Improved constants: make their meaning explicit;
-portability with 32-bit long (and 64-bit limb).
-------------------------------------------------------------------------
-r11249 | zimmerma | 2017-01-31 13:08:48 +0000 (Tue, 31 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/sqrt.c
-
-[src/invsqrt_limb.h] new macro __gmpfr_sqrt_limb_approx
-[src/sqrt.c] new sqrt1 code using __gmpfr_sqrt_limb_approx
-
-------------------------------------------------------------------------
-r11248 | zimmerma | 2017-01-30 17:52:19 +0000 (Mon, 30 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] improved slow branch of mpfr_sqrt2
-
-------------------------------------------------------------------------
-r11247 | zimmerma | 2017-01-30 16:43:19 +0000 (Mon, 30 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] improved slow branch of mpfr_div_2
-
-------------------------------------------------------------------------
-r11246 | zimmerma | 2017-01-30 16:06:27 +0000 (Mon, 30 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] fixed TODO: replaced two if-statements by while-loop
-
-------------------------------------------------------------------------
-r11245 | vlefevre | 2017-01-30 15:15:44 +0000 (Mon, 30 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Added TODO's.
-------------------------------------------------------------------------
-r11244 | vlefevre | 2017-01-30 14:04:33 +0000 (Mon, 30 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Added a MPFR_ASSERTD.
-------------------------------------------------------------------------
-r11243 | zimmerma | 2017-01-28 20:16:52 +0000 (Sat, 28 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] added comment
-
-------------------------------------------------------------------------
-r11242 | zimmerma | 2017-01-28 17:38:56 +0000 (Sat, 28 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
-
-[src/invsqrt_limb.h] fixed __gmpfr_sqrt_limb macro
-
-------------------------------------------------------------------------
-r11241 | zimmerma | 2017-01-28 09:20:50 +0000 (Sat, 28 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] small optimization
-
-------------------------------------------------------------------------
-r11240 | zimmerma | 2017-01-27 20:45:45 +0000 (Fri, 27 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] speedup for small precision
-
-------------------------------------------------------------------------
-r11239 | vlefevre | 2017-01-27 10:44:37 +0000 (Fri, 27 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Disable mpfr_mul_{1,2,3} if MPFR_GENERIC_ABI is defined.
-------------------------------------------------------------------------
-r11238 | vlefevre | 2017-01-27 10:39:47 +0000 (Fri, 27 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Removed useless parentheses that can inhibit warnings.
-------------------------------------------------------------------------
-r11237 | vlefevre | 2017-01-26 16:19:34 +0000 (Thu, 26 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Updated TODO.
-------------------------------------------------------------------------
-r11236 | vlefevre | 2017-01-26 16:17:55 +0000 (Thu, 26 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Added a TODO about an optimization.
-------------------------------------------------------------------------
-r11235 | zimmerma | 2017-01-26 10:03:11 +0000 (Thu, 26 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] fixed error bound for mpfr_sqrt2_approx
-
-------------------------------------------------------------------------
-r11234 | vlefevre | 2017-01-25 17:55:47 +0000 (Wed, 25 Jan 2017) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added optimization of test + shift for some processors.
-------------------------------------------------------------------------
-r11233 | vlefevre | 2017-01-25 16:04:38 +0000 (Wed, 25 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added MPFR_FULLSUB code for mpfr_sub1sp2.
-------------------------------------------------------------------------
-r11232 | zimmerma | 2017-01-25 13:49:11 +0000 (Wed, 25 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] changed error bound back from 16 to 15
-
-------------------------------------------------------------------------
-r11231 | vlefevre | 2017-01-25 13:44:42 +0000 (Wed, 25 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/doc/add-with-carry.c
-
-[doc/add-with-carry.c] Added reference to my bug report about Clang's
-carry detection missed optimization in chained add-with-carry.
-------------------------------------------------------------------------
-r11230 | zimmerma | 2017-01-25 13:16:19 +0000 (Wed, 25 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] updated error bound for __gmpfr_invsqrt_limb_approx
-
-------------------------------------------------------------------------
-r11229 | vlefevre | 2017-01-25 12:40:00 +0000 (Wed, 25 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added refs to missed/broken optimization with Clang/LLVM.
-------------------------------------------------------------------------
-r11228 | vlefevre | 2017-01-25 09:23:08 +0000 (Wed, 25 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Use the FULLSUB only. Added a comment about the change
-in r11227.
-------------------------------------------------------------------------
-r11227 | zimmerma | 2017-01-25 07:20:57 +0000 (Wed, 25 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] changed MPFR_FULLSUB variant into faster code
-
-------------------------------------------------------------------------
-r11226 | vlefevre | 2017-01-24 15:46:52 +0000 (Tue, 24 Jan 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Texinfo typography correction.
-------------------------------------------------------------------------
-r11225 | vlefevre | 2017-01-24 14:37:58 +0000 (Tue, 24 Jan 2017) | 7 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improvements concerning the exponent range.
- * mpfr_get_exp: added a FIXME in a comment (documented behavior?).
- * mpfr_set_emin / mpfr_set_emax: more specification and details.
- * mpfr_subnormalize: clarification; added a warning about emin.
- * Example of mpfr_subnormalize: added a note.
-In particular, this follows a confusion:
- https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00024.html
-------------------------------------------------------------------------
-r11224 | zimmerma | 2017-01-24 10:34:36 +0000 (Tue, 24 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
-
-[src/invsqrt_limb.h] changed slightly definition of d10 and d37 (does not
- change final error analysis)
-
-------------------------------------------------------------------------
-r11223 | vlefevre | 2017-01-23 15:41:35 +0000 (Mon, 23 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Updated comments about subtraction with borrow; the first
-one from r11213 was incorrect (bad interpretation of the generated code
-for GCC, potentially on a different alternate source code for Clang).
-------------------------------------------------------------------------
-r11222 | zimmerma | 2017-01-23 14:11:17 +0000 (Mon, 23 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] simplified mpfr_sub1sp1()
-
-------------------------------------------------------------------------
-r11221 | zimmerma | 2017-01-23 11:38:04 +0000 (Mon, 23 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] added non-regression test
-
-------------------------------------------------------------------------
-r11220 | vlefevre | 2017-01-23 10:23:40 +0000 (Mon, 23 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Added a FIXME as mpfr_urandom does not always set flags.
-------------------------------------------------------------------------
-r11219 | vlefevre | 2017-01-23 09:46:50 +0000 (Mon, 23 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Simplified code (no changes in the behavior).
-------------------------------------------------------------------------
-r11218 | zimmerma | 2017-01-23 07:27:10 +0000 (Mon, 23 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] fixed bug reported by Trevor Spiteri
-(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00020.html)
-
-------------------------------------------------------------------------
-r11217 | zimmerma | 2017-01-21 12:58:34 +0000 (Sat, 21 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mulders.c
- M /trunk/src/sqr.c
-
-changed mpn_sqr_n into mpn_sqr
-
-------------------------------------------------------------------------
-r11216 | zimmerma | 2017-01-20 17:21:15 +0000 (Fri, 20 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/sqrt.c
- D /trunk/src/sqrt_tab.h
-
-new version of mpfr_sqrt2_approx (no longer needs sqrt_tab.h)
-
-------------------------------------------------------------------------
-r11215 | vlefevre | 2017-01-20 16:24:56 +0000 (Fri, 20 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Updated TODO, mentioning an optimization bug in LLVM.
-------------------------------------------------------------------------
-r11214 | vlefevre | 2017-01-20 16:13:45 +0000 (Fri, 20 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Updated TODO about full subtraction with borrow.
-------------------------------------------------------------------------
-r11213 | vlefevre | 2017-01-20 13:58:11 +0000 (Fri, 20 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added alternate code (enabled with -DMPFR_FULLSUB, until
-fully tested) to replace a test + correction by a 2-limb subtraction,
-recognized by GCC and Clang.
-------------------------------------------------------------------------
-r11212 | zimmerma | 2017-01-20 13:56:05 +0000 (Fri, 20 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
- M /trunk/src/sqrt.c
-
-renamed __gmpfr_invsqrt_limb into __gmpfr_invsqrt_limb_approx to better reflect
-it only gives an approximation
-
-------------------------------------------------------------------------
-r11211 | vlefevre | 2017-01-20 11:59:39 +0000 (Fri, 20 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[src/invert_limb.h] Just like for invsqrt_limb.h (r11210), in 1UL << 60,
-replaced 1UL by MPFR_LIMB_ONE to make the code valid with 32-bit long.
-------------------------------------------------------------------------
-r11210 | vlefevre | 2017-01-20 11:54:33 +0000 (Fri, 20 Jan 2017) | 4 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
-
-[src/invsqrt_limb.h] Bug fix: replaced 1UL by MPFR_LIMB_ONE since the
-computations are done on limbs, which are expected to have 64 bits in
-this context (the old code would fail on MS Windows / MinGW, where limbs
-are 64-bit unsigned long long and unsigned long is a 32-bit type).
-------------------------------------------------------------------------
-r11209 | vlefevre | 2017-01-20 11:47:59 +0000 (Fri, 20 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invsqrt_limb.h
-
-[src/invsqrt_limb.h] Portability correction: avoid lines longer than the
-POSIX line-length limit of 2047 characters; actually fit on 80 columns.
-------------------------------------------------------------------------
-r11208 | zimmerma | 2017-01-20 11:15:54 +0000 (Fri, 20 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/invert_limb.h
- A /trunk/src/invsqrt_limb.h
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_tab.h
-
-faster version of mpfr_sqrt1(), with smaller table
-
-------------------------------------------------------------------------
-r11207 | zimmerma | 2017-01-20 08:09:20 +0000 (Fri, 20 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[src/invert_limb.h] improved __gmpfr_invert_limb* for 64-bit limb
-
-------------------------------------------------------------------------
-r11206 | zimmerma | 2017-01-17 11:04:25 +0000 (Tue, 17 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] use ADD_LIMB macro, and fixed comment
-
-------------------------------------------------------------------------
-r11205 | vlefevre | 2017-01-17 10:51:28 +0000 (Tue, 17 Jan 2017) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] MPFR_PARSE_DIRECTORY macro definition: workaround if
-the realpath command is not found. Suggestion by Trevor Spiteri:
- https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00013.html
-Note: I had to modify the patch to use quadrigraphs, otherwise the
-generated configure file was invalid.
-------------------------------------------------------------------------
-r11204 | zimmerma | 2017-01-17 10:35:43 +0000 (Tue, 17 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tdiv.c] added code to exercise mpfr_div2_approx
-
-------------------------------------------------------------------------
-r11203 | zimmerma | 2017-01-16 16:49:01 +0000 (Mon, 16 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] new variant of mpfr_div2_approx()
-
-------------------------------------------------------------------------
-r11202 | vlefevre | 2017-01-13 23:59:23 +0000 (Fri, 13 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[src/invert_limb.h] Fit on 80 columns (one line was over the
-POSIX line-length limit of 2047 characters).
-------------------------------------------------------------------------
-r11201 | vlefevre | 2017-01-13 23:43:26 +0000 (Fri, 13 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[src/invert_limb.h] Correction in __gmpfr_invert_limb for 32-bit ABI:
-_d was used before being defined.
-------------------------------------------------------------------------
-r11200 | zimmerma | 2017-01-13 23:24:20 +0000 (Fri, 13 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[invert_limb.h] added invert_limb code for 32-bit
-
-------------------------------------------------------------------------
-r11199 | vlefevre | 2017-01-13 15:18:34 +0000 (Fri, 13 Jan 2017) | 4 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Improved a line based on analysis (+ timings I've done
-on x86_64 with GCC and Clang give better results, though they cannot
-be conclusive since the gain is too small compared to other possible
-causes of variations).
-------------------------------------------------------------------------
-r11198 | vlefevre | 2017-01-13 14:40:29 +0000 (Fri, 13 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/tools/mbench/Makefile
-
-[tools/mbench/Makefile] Added -static to CFLAGS in order to avoid
-a link error when MPFR has been built with Clang (linking is done
-with .a libraries, i.e. static libraries).
-------------------------------------------------------------------------
-r11197 | vlefevre | 2017-01-13 10:53:51 +0000 (Fri, 13 Jan 2017) | 4 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Replaced "return 0;" by "MPFR_RET(0);" to emphasize on
-the fact that we return a ternary value (code instrumentation may also
-be easier later). Note: this is equivalent since the macro expands to
-0 != 0 ? ... : 0, which gives 0 via trivial optimization.
-------------------------------------------------------------------------
-r11196 | vlefevre | 2017-01-13 10:44:44 +0000 (Fri, 13 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Improvements in mpfr_add1sp1; added a TODO.
-Note for rb -> bp[0]: the generated code is the same, but the source
-is more readable (-> rb has only one meaning).
-------------------------------------------------------------------------
-r11195 | vlefevre | 2017-01-13 00:51:29 +0000 (Fri, 13 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] C90 compatibility (avoid initializer elements not computable
-at load time).
-------------------------------------------------------------------------
-r11194 | zimmerma | 2017-01-12 23:20:22 +0000 (Thu, 12 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] added some alternate code for mpfr_div2_approx (disabled for now)
-
-------------------------------------------------------------------------
-r11193 | zimmerma | 2017-01-12 21:40:50 +0000 (Thu, 12 Jan 2017) | 4 lines
-Changed paths:
- M /trunk/src/frac.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/round_raw_generic.c
- M /trunk/src/set_uj.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sum.c
-
-fixed bug in urandomb.c reported by Dominic Chen
-(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00011.html)
-and replaced MPN_COPY_INCR/MPN_COPY_DECR by mpn_copyi/mpn_copyd
-
-------------------------------------------------------------------------
-r11192 | zimmerma | 2017-01-12 21:19:12 +0000 (Thu, 12 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] small improvement in div_1 and div_2: force all precisions to be
- equal, then we cannot have rb <> 0 and sb = 0
-
-------------------------------------------------------------------------
-r11191 | zimmerma | 2017-01-12 17:24:36 +0000 (Thu, 12 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] improved case p=127 (or two-limb case with hard to round case)
-
-------------------------------------------------------------------------
-r11190 | vlefevre | 2017-01-12 14:26:36 +0000 (Thu, 12 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Added a TODO: slightly better code?
-------------------------------------------------------------------------
-r11189 | zimmerma | 2017-01-12 13:30:28 +0000 (Thu, 12 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] improve mpfr_div_1 for precision 63
-
-------------------------------------------------------------------------
-r11188 | vlefevre | 2017-01-12 10:17:49 +0000 (Thu, 12 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/rndna.c
-
-[src/rndna.c] Updated comments.
-------------------------------------------------------------------------
-r11187 | zimmerma | 2017-01-12 10:16:40 +0000 (Thu, 12 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] improved mpfr_sqrt2_approx()
-
-------------------------------------------------------------------------
-r11186 | vlefevre | 2017-01-12 08:59:23 +0000 (Thu, 12 Jan 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typographic correction (including generated spaces).
-------------------------------------------------------------------------
-r11185 | vlefevre | 2017-01-10 16:17:05 +0000 (Tue, 10 Jan 2017) | 5 lines
-Changed paths:
- A /trunk/doc/add-with-carry.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sqr.c
-
-Improvement of additions with carry.
- * Added doc/add-with-carry.c showing how to do an addition with carry
- in C (to make the compiler understand the code).
- * src/mpfr-impl.h: added ADD_LIMB macro (addition with carry).
- * src/sqr.c: use this ADD_LIMB macro to improve the generated code.
-------------------------------------------------------------------------
-r11184 | zimmerma | 2017-01-10 15:20:00 +0000 (Tue, 10 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] 2 calls to umul_ppmm are enough in mpfr_sqr_2 in most cases
-
-------------------------------------------------------------------------
-r11183 | zimmerma | 2017-01-10 13:56:38 +0000 (Tue, 10 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/sub1sp.c
-
-[src/div.c] added FIXME
-[src/sub1sp.c] added comments
-
-------------------------------------------------------------------------
-r11182 | zimmerma | 2017-01-10 10:10:32 +0000 (Tue, 10 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] made code coherent with comment
-
-------------------------------------------------------------------------
-r11181 | vlefevre | 2017-01-10 09:58:49 +0000 (Tue, 10 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Improved comment from r11180.
-------------------------------------------------------------------------
-r11180 | zimmerma | 2017-01-10 09:48:30 +0000 (Tue, 10 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] improved error bound for mpfr_sqrt2_approx, with known direction
- of error
-
-------------------------------------------------------------------------
-r11178 | vlefevre | 2017-01-10 02:35:23 +0000 (Tue, 10 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Fixed other two bugs in special code for 3 limbs.
-TODO: non-regression tests should be added for both.
-------------------------------------------------------------------------
-r11177 | vlefevre | 2017-01-10 02:17:03 +0000 (Tue, 10 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Fixed some bugs in special code for 3 limbs.
-------------------------------------------------------------------------
-r11176 | vlefevre | 2017-01-10 01:17:54 +0000 (Tue, 10 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Simplified a test.
-------------------------------------------------------------------------
-r11173 | zimmerma | 2017-01-09 21:10:56 +0000 (Mon, 09 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] added special code for 3 limbs
-
-------------------------------------------------------------------------
-r11171 | vlefevre | 2017-01-09 16:58:51 +0000 (Mon, 09 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Fixed too large shift count in r11170 (code for 3 limbs).
-------------------------------------------------------------------------
-r11170 | zimmerma | 2017-01-09 16:32:29 +0000 (Mon, 09 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] added special code for 3 limbs
-
-------------------------------------------------------------------------
-r11169 | zimmerma | 2017-01-09 14:41:14 +0000 (Mon, 09 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] added special code for 3 limbs
-
-------------------------------------------------------------------------
-r11167 | vlefevre | 2017-01-09 13:57:41 +0000 (Mon, 09 Jan 2017) | 1 line
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] Fixed a return type.
-------------------------------------------------------------------------
-r11166 | vlefevre | 2017-01-09 13:46:44 +0000 (Mon, 09 Jan 2017) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated note added in r11165.
-------------------------------------------------------------------------
-r11165 | vlefevre | 2017-01-09 13:44:44 +0000 (Mon, 09 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about cross-compilation and test
-under Wine, with references to bugs in autoconf and dash.
-------------------------------------------------------------------------
-r11164 | zimmerma | 2017-01-09 10:53:20 +0000 (Mon, 09 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] fixed typo
-
-------------------------------------------------------------------------
-r11162 | zimmerma | 2017-01-09 08:51:42 +0000 (Mon, 09 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-[src/sub1sp.c] fixed bug in mpfr_sub1sp2 when exponent diff. is GMP_NUMB_BITS
-[tests/tsub1sp.c] added testcase
-
-------------------------------------------------------------------------
-r11161 | vlefevre | 2017-01-09 01:22:26 +0000 (Mon, 09 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Bug fix in mpfr_mul_3; tmul no longer fails (64-bit ABI).
-------------------------------------------------------------------------
-r11160 | vlefevre | 2017-01-09 01:17:03 +0000 (Mon, 09 Jan 2017) | 1 line
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] Added test of mpfr_mul on 1 to 3 limbs. Currently fails.
-------------------------------------------------------------------------
-r11159 | vlefevre | 2017-01-08 23:45:49 +0000 (Sun, 08 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Define aq = MPFR_GET_PREC (a), and use this.
-------------------------------------------------------------------------
-r11158 | zimmerma | 2017-01-08 22:22:36 +0000 (Sun, 08 Jan 2017) | 4 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/src/sqrt.c
- M /trunk/src/sub1sp.c
-
-[src/mul.c] added mpfr_mul_3
-[src/sqrt.c] renamed internal functions
-[src/sub1sp.c] cosmetic change
-
-------------------------------------------------------------------------
-r11157 | zimmerma | 2017-01-07 07:57:37 +0000 (Sat, 07 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/exp.c
- M /trunk/src/sqrt.c
-
-[src/exp.c] avoid using a full limb as precision
-[src/sqrt.c] removed obsolete comment
-
-------------------------------------------------------------------------
-r11156 | zimmerma | 2017-01-07 07:46:02 +0000 (Sat, 07 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] avoid precision = GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r11155 | zimmerma | 2017-01-07 07:26:12 +0000 (Sat, 07 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] added comment
-
-------------------------------------------------------------------------
-r11154 | vlefevre | 2017-01-06 15:17:12 +0000 (Fri, 06 Jan 2017) | 1 line
-Changed paths:
- M /trunk/tools/mbench/README
-
-[tools/mbench/README] Say how to disable a non-working library.
-------------------------------------------------------------------------
-r11152 | zimmerma | 2017-01-06 06:59:41 +0000 (Fri, 06 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] fixed previous commit: mpfr_div_1 and mpfr_div_2 also work for
- GMP_NUMB_BITS <> 64, only some fast code inside is not defined
-
-------------------------------------------------------------------------
-r11150 | vlefevre | 2017-01-05 23:29:35 +0000 (Thu, 05 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Use mpfr_limb_ptr instead of mp_ptr.
-------------------------------------------------------------------------
-r11149 | vlefevre | 2017-01-05 23:27:43 +0000 (Thu, 05 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Fix for GMP_NUMB_BITS != 64.
-------------------------------------------------------------------------
-r11148 | zimmerma | 2017-01-05 21:13:50 +0000 (Thu, 05 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/invert_limb.h
-
-[src/div.c] faster division for 2 limbs
-
-------------------------------------------------------------------------
-r11147 | vlefevre | 2017-01-05 12:28:53 +0000 (Thu, 05 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Coding style.
-------------------------------------------------------------------------
-r11146 | vlefevre | 2017-01-05 12:25:59 +0000 (Thu, 05 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Simplification.
-------------------------------------------------------------------------
-r11145 | vlefevre | 2017-01-05 12:22:47 +0000 (Thu, 05 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Replaced a MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.
-------------------------------------------------------------------------
-r11144 | vlefevre | 2017-01-05 12:17:32 +0000 (Thu, 05 Jan 2017) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Correction for 64-bit limb with 32-bit unsigned long.
-------------------------------------------------------------------------
-r11143 | vlefevre | 2017-01-05 11:27:53 +0000 (Thu, 05 Jan 2017) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Fix when GMP_NUMB_BITS != 64.
-------------------------------------------------------------------------
-r11142 | zimmerma | 2017-01-05 10:38:44 +0000 (Thu, 05 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/tests/tdiv_ui.c
-
-last fix was incomplete
-
-------------------------------------------------------------------------
-r11141 | zimmerma | 2017-01-05 09:43:59 +0000 (Thu, 05 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
-
-[src/div_ui.c] fixed a bug in mpfr_div_ui (also affects mpfr_div since it calls
- mpfr_div_ui when the divisor has a few bits)
-
-------------------------------------------------------------------------
-r11140 | zimmerma | 2017-01-05 07:51:15 +0000 (Thu, 05 Jan 2017) | 4 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/round_near_x.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/tests/tdiv_ui.c
-
-fixed underflow bug by replacing !MPFR_IS_LIKE_RNDZ by new macro
-MPFR_IS_LIKE_RNDA: for RNDN, !MPFR_IS_LIKE_RNDZ was true, while new macro
-MPFR_IS_LIKE_RNDA is false
-
-------------------------------------------------------------------------
-r11139 | vlefevre | 2017-01-04 19:39:41 +0000 (Wed, 04 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Added a test that triggers an assertion failure
-in a reduced exponent range (found from the generic tests with
-GMP_CHECK_RANDOMIZE=1483628702).
-------------------------------------------------------------------------
-r11138 | vlefevre | 2017-01-04 19:28:48 +0000 (Wed, 04 Jan 2017) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Added debug messages for overflow & underflow tests.
-------------------------------------------------------------------------
-r11137 | vlefevre | 2017-01-04 19:03:49 +0000 (Wed, 04 Jan 2017) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tests/tdiv_ui.c] Added a comment on new test (doesn't fail).
-------------------------------------------------------------------------
-r11136 | zimmerma | 2017-01-04 18:04:18 +0000 (Wed, 04 Jan 2017) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-[tdiv_ui.c] added new test
-
-------------------------------------------------------------------------
-r11130 | vlefevre | 2017-01-03 11:46:41 +0000 (Tue, 03 Jan 2017) | 1 line
-Changed paths:
- M /trunk/src/invert_limb.h
-
-[src/invert_limb.h] Removed an unused variable.
-------------------------------------------------------------------------
-r11129 | zimmerma | 2017-01-03 10:58:02 +0000 (Tue, 03 Jan 2017) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/div.c
- D /trunk/src/invert_limb.c
- A /trunk/src/invert_limb.h
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-use a macro instead of a function for __gmpfr_invert_limb and
-__gmpfr_invert_limb_approx saves 2-3 cycles
-
-------------------------------------------------------------------------
-r11118 | vlefevre | 2017-01-01 01:35:42 +0000 (Sun, 01 Jan 2017) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11117 | vlefevre | 2017-01-01 01:34:35 +0000 (Sun, 01 Jan 2017) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/check-typography
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/can_round.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fmma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gamma_inc.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/invert_limb.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/log_ui.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_tab.h
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/ubf.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc-cache.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_ui.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/Makefile.am
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/ck-clz_tab
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-news
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2017 with
- perl -pi -e 's/ (\d{4}-)?(2016)(?= Free Software)/
- " ".($1||"$2-").($2+1)/e' **/*(^/)
-under zsh, reverting the tools/mbench directory (not distributed with
-MPFR). Removed 2016 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r11116 | vlefevre | 2016-12-31 04:01:05 +0000 (Sat, 31 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqr.c
-
-[src/sqr.c] Bug fixes (portability): replaced left shift of a value
-that can be negative by a multiplication by 2.
-------------------------------------------------------------------------
-r11115 | vlefevre | 2016-12-31 03:40:00 +0000 (Sat, 31 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] C90 compatibility.
-------------------------------------------------------------------------
-r11114 | vlefevre | 2016-12-31 03:28:01 +0000 (Sat, 31 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] C90 compatibility.
-------------------------------------------------------------------------
-r11113 | vlefevre | 2016-12-31 03:17:51 +0000 (Sat, 31 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/invert_limb.c
-
-[src/invert_limb.c] Removed unused variable.
-------------------------------------------------------------------------
-r11112 | zimmerma | 2016-12-30 17:23:49 +0000 (Fri, 30 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] small speedup in mpfr_mul_2 by not computing the product b0*c0
-
-------------------------------------------------------------------------
-r11111 | zimmerma | 2016-12-30 16:39:13 +0000 (Fri, 30 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/src/sqr.c
-
-[src/mul.c] fixed typo in comment
-[src/sqr.c] likewise
-
-------------------------------------------------------------------------
-r11110 | zimmerma | 2016-12-30 15:56:31 +0000 (Fri, 30 Dec 2016) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/sqr.c
-
-[src/mul.c] fixed regression for 1/2 limbs introduced in revision 11098:
- critical routines should not be exported, otherwise we lose a few
- cycles (maybe they are inlined by the compiler)
-
-------------------------------------------------------------------------
-r11109 | zimmerma | 2016-12-30 14:25:47 +0000 (Fri, 30 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/invert_limb.c
- M /trunk/src/mpfr-impl.h
-
-[src/div.c] further improvement in mpfr_div_1()
-
-------------------------------------------------------------------------
-r11108 | zimmerma | 2016-12-30 13:16:21 +0000 (Fri, 30 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] use an approximate quotient in mpfr_div_1()
-
-------------------------------------------------------------------------
-r11107 | zimmerma | 2016-12-30 12:19:40 +0000 (Fri, 30 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] simplify mpfr_div_1()
-
-------------------------------------------------------------------------
-r11106 | zimmerma | 2016-12-30 09:10:24 +0000 (Fri, 30 Dec 2016) | 5 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/div.c
- A /trunk/src/invert_limb.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-[src/invert_limb.c] new file for __gmpfr_invert_limb internal function
- (only provided so far for 64-bit limb)
-[src/div.c] mpfr_div_1 and mpfr_div_2 don't require --enable-gmp-internals
- any more
-
-------------------------------------------------------------------------
-r11105 | zimmerma | 2016-12-30 07:51:35 +0000 (Fri, 30 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt_tab.h
-
-[sqrt_tab.h] better file description
-
-------------------------------------------------------------------------
-r11104 | vlefevre | 2016-12-29 15:32:45 +0000 (Thu, 29 Dec 2016) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/div.c
-
-Improvement concerning the _mulx_u64 intrinsic.
-------------------------------------------------------------------------
-r11103 | zimmerma | 2016-12-29 11:05:18 +0000 (Thu, 29 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/div.c
-
-[src/div.c] replace GMP's invert_limb (internal) by own code
-
-------------------------------------------------------------------------
-r11101 | vlefevre | 2016-12-29 03:06:30 +0000 (Thu, 29 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Replaced constant MPFR_ASSERTD by MPFR_STAT_STATIC_ASSERT.
-------------------------------------------------------------------------
-r11098 | zimmerma | 2016-12-28 12:24:13 +0000 (Wed, 28 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/sqr.c
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-[src/sqr.c] use special code for 1 and 2 limbs
-[mbench] added mpfr_sqr
-
-------------------------------------------------------------------------
-r11097 | zimmerma | 2016-12-28 10:25:31 +0000 (Wed, 28 Dec 2016) | 4 lines
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_tab.h
-
-[src/sqrt.c] faster sqrt code for 2 limbs and 64-bit limb (removed special code
- for 32-bit limb)
-[src/sqrt_tab.h] new table for mpn_sqrtrem4_approx
-
-------------------------------------------------------------------------
-r11096 | zimmerma | 2016-12-28 09:20:24 +0000 (Wed, 28 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-[tlog.c] missing printf()
-
-------------------------------------------------------------------------
-r11095 | vlefevre | 2016-12-27 10:53:16 +0000 (Tue, 27 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention that mpfr_get_str now also sets the inexact flag when
-the conversion is inexact (completing r11073).
-------------------------------------------------------------------------
-r11094 | vlefevre | 2016-12-27 10:33:09 +0000 (Tue, 27 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] Be stronger in mpfr_round_nearest_away documentation
-(as the ternary value is used each time the last bit on p+1 bits
-is not 0, i.e. in about half cases).
-------------------------------------------------------------------------
-r11093 | zimmerma | 2016-12-27 08:18:54 +0000 (Tue, 27 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added stuff in mpfr_round_nearest_away documentation
-
-------------------------------------------------------------------------
-r11092 | vlefevre | 2016-12-27 02:33:59 +0000 (Tue, 27 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/log.c
-
-[src/log.c] Added another FIXME concerning the error analysis.
-------------------------------------------------------------------------
-r11091 | vlefevre | 2016-12-27 02:20:57 +0000 (Tue, 27 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/log.c
-
-[src/log.c] Added an assertion and a FIXME: error in the MPFR code or
-in the proof (error analysis).
-------------------------------------------------------------------------
-r11090 | vlefevre | 2016-12-27 01:58:54 +0000 (Tue, 27 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/log.c
-
-[src/log.c] Slight simplification / improvement.
-------------------------------------------------------------------------
-r11089 | vlefevre | 2016-12-27 01:16:53 +0000 (Tue, 27 Dec 2016) | 7 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] In Section "The logarithm function" (from r9046),
-removed everything concerning the AGM since this is not what is done
-in the MPFR code, where mpfr_agm is simply called (and this function
-already has its own description later).
-Note: The error analysis of mpfr_log can only be found in log.c, but
-seems incorrect (though the bounds may be valid); it was introduced
-in r416.
-------------------------------------------------------------------------
-r11087 | vlefevre | 2016-12-26 02:43:56 +0000 (Mon, 26 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/log.c
-
-[src/log.c] Group constant terms together (GCC takes advantage of this,
-at least on x86_64).
-------------------------------------------------------------------------
-r11086 | vlefevre | 2016-12-26 02:30:02 +0000 (Mon, 26 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/log.c
-
-[src/log.c] Check for integer overflow (no visible changes in
-standard configuration) + explanations.
-------------------------------------------------------------------------
-r11085 | vlefevre | 2016-12-26 02:17:10 +0000 (Mon, 26 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/log.c
-
-[src/log.c] Get the exponent of the input only once.
-------------------------------------------------------------------------
-r11075 | vlefevre | 2016-12-20 12:57:31 +0000 (Tue, 20 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Delay some assignments so that they are done just before
-the variables are used (this should have been done in r10467).
-------------------------------------------------------------------------
-r11073 | vlefevre | 2016-12-20 11:41:54 +0000 (Tue, 20 Dec 2016) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] For mpfr_get_str, explicitly say that the inexact flag
-is set iff the result is inexact (since this may not be obvious and this
-wasn't the case until now). In the compatibility section, mention this
-change.
-------------------------------------------------------------------------
-r11072 | vlefevre | 2016-12-20 11:35:11 +0000 (Tue, 20 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] For mpfr_get_str, removed the note saying that
-the inexact flag is not set when the conversion is inexact:
-this is fixed in r11071.
-------------------------------------------------------------------------
-r11071 | vlefevre | 2016-12-20 11:17:31 +0000 (Tue, 20 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Corrected a comment and a test for inexactness
-(→ the new tget_str.c test no longer fails).
-------------------------------------------------------------------------
-r11068 | vlefevre | 2016-12-19 16:05:20 +0000 (Mon, 19 Dec 2016) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added a comment.
-------------------------------------------------------------------------
-r11067 | vlefevre | 2016-12-19 15:46:38 +0000 (Mon, 19 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Better indentation.
-------------------------------------------------------------------------
-r11066 | vlefevre | 2016-12-19 15:36:30 +0000 (Mon, 19 Dec 2016) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Replaced mpfr_cmp() == 0 by mpfr_equal_p().
-------------------------------------------------------------------------
-r11065 | vlefevre | 2016-12-19 15:04:12 +0000 (Mon, 19 Dec 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r11064 | vlefevre | 2016-12-19 14:17:11 +0000 (Mon, 19 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Removed an obsolete comment, which came from r2757
-(and even before, under another form); this comment no longer made
-any sense as the sign of dir is no longer tested.
-------------------------------------------------------------------------
-r11063 | vlefevre | 2016-12-19 14:00:20 +0000 (Mon, 19 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Indentation fixed.
-------------------------------------------------------------------------
-r11062 | vlefevre | 2016-12-19 13:59:35 +0000 (Mon, 19 Dec 2016) | 6 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Setting the inexact flag as done in r11060 was incorrect
-since the flags are restored. Moreover, this was done even when the Ziv
-loop was going to fail (it's not clear whether this was expected). Moved
-the test out of the Ziv loop, and update the copy of the flags instead
-of the flags that will be overwritten.
-Note: this still fails, but now for another reason.
-------------------------------------------------------------------------
-r11061 | vlefevre | 2016-12-19 13:36:28 +0000 (Mon, 19 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] Check the inexact flag for mpfr_get_str.
-The test currently fails.
-------------------------------------------------------------------------
-r11060 | zimmerma | 2016-12-19 08:26:26 +0000 (Mon, 19 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[get_str.c] inexact flag should now be correct in mpfr_get_str
-
-------------------------------------------------------------------------
-r11059 | zimmerma | 2016-12-19 08:08:19 +0000 (Mon, 19 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[strtofr.c] updated comment
-
-------------------------------------------------------------------------
-r11058 | vlefevre | 2016-12-18 22:47:20 +0000 (Sun, 18 Dec 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a short note about the default precision for Re.
-------------------------------------------------------------------------
-r11057 | zimmerma | 2016-12-18 18:27:18 +0000 (Sun, 18 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added emin in comment about mpfr_round_nearest_away
-
-------------------------------------------------------------------------
-r11056 | zimmerma | 2016-12-18 09:01:59 +0000 (Sun, 18 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/src/strtofr.c
-
-fixed bug in mpfr_strtofr (and likely similar bug in mpfr_get_str)
-
-------------------------------------------------------------------------
-r11055 | zimmerma | 2016-12-17 22:22:54 +0000 (Sat, 17 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tstrtofr.c] added test for bug in mpfr_strtofr()
-
-------------------------------------------------------------------------
-r11054 | vlefevre | 2016-12-17 02:27:05 +0000 (Sat, 17 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Added "do ... while (0)" in macro definition.
-------------------------------------------------------------------------
-r11053 | vlefevre | 2016-12-16 15:04:26 +0000 (Fri, 16 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r11052 | vlefevre | 2016-12-16 14:54:14 +0000 (Fri, 16 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Completed the support for MPFR_RNDNA (set
-*inexp if use_inexp is true), from a patch by John P. Hartmann.
-------------------------------------------------------------------------
-r11051 | zimmerma | 2016-12-16 11:15:14 +0000 (Fri, 16 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_tab.h
-
-new mpn_sqrtrem4_approx function (unused so far)
-
-------------------------------------------------------------------------
-r11048 | vlefevre | 2016-12-15 15:18:42 +0000 (Thu, 15 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sin.c
-
-[src/sin.c] Handled a FIXME.
-------------------------------------------------------------------------
-r11047 | vlefevre | 2016-12-15 14:53:27 +0000 (Thu, 15 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt_tab.h
-
-[src/sqrt_tab.h] Added copyright notice.
-------------------------------------------------------------------------
-r11044 | zimmerma | 2016-12-15 08:28:05 +0000 (Thu, 15 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] simplify code for GMP_NUMB_BITS = 64
-
-------------------------------------------------------------------------
-r11042 | zimmerma | 2016-12-14 21:07:34 +0000 (Wed, 14 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-better fix than r11025
-
-------------------------------------------------------------------------
-r11041 | zimmerma | 2016-12-14 16:42:32 +0000 (Wed, 14 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/sqrt.c
- A /trunk/src/sqrt_tab.h
-
-[sqrt_tab.h] new header file with table for mpn_sqrtrem2_approx()
-[sqrt.c] new version of mpn_sqrtrem2_approx()
-
-------------------------------------------------------------------------
-r11039 | zimmerma | 2016-12-14 10:52:58 +0000 (Wed, 14 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] added mathematical error in mpn_sqrtrem2_approx()
-
-------------------------------------------------------------------------
-r11038 | zimmerma | 2016-12-14 07:40:46 +0000 (Wed, 14 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-added non-regression test for bug fix in r11037
-
-------------------------------------------------------------------------
-r11037 | vlefevre | 2016-12-14 03:22:12 +0000 (Wed, 14 Dec 2016) | 4 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed a bug as spec.prec can be a negative number
-other than -1 (if such a value is given as an argument with ".*").
-This is the probable cause of the assertion failure on:
-https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21056&group_id=136
-------------------------------------------------------------------------
-r11036 | zimmerma | 2016-12-13 17:42:05 +0000 (Tue, 13 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] faster version of mpn_sqrtrem2 for 64-bit limb
-
-------------------------------------------------------------------------
-r11035 | zimmerma | 2016-12-13 11:36:56 +0000 (Tue, 13 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] approximate version of mpn_sqrtrem2, saves a few cycles in mpfr_sqrt1
-
-------------------------------------------------------------------------
-r11034 | zimmerma | 2016-12-13 08:09:07 +0000 (Tue, 13 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-[add/sub] added MPFR_UNLIKELY when adding one ulp changes the binade
-
-------------------------------------------------------------------------
-r11033 | vlefevre | 2016-12-12 17:53:57 +0000 (Mon, 12 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sin.c
-
-[src/sin.c] Added missing word in r11032 comment.
-------------------------------------------------------------------------
-r11032 | vlefevre | 2016-12-12 17:53:02 +0000 (Mon, 12 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sin.c
-
-[src/sin.c] Common/related subexpressions. Added a FIXME.
-------------------------------------------------------------------------
-r11031 | zimmerma | 2016-12-12 17:32:09 +0000 (Mon, 12 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/cos.c
- M /trunk/src/exp_2.c
- M /trunk/src/log.c
-
-[cos.c,exp_2.c,log.c] improved initial precision for Ziv's strategy
-
-------------------------------------------------------------------------
-r11030 | zimmerma | 2016-12-12 17:01:19 +0000 (Mon, 12 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sin.c
-
-[sin.c] improved strategy for initial precision
-
-------------------------------------------------------------------------
-r11029 | zimmerma | 2016-12-12 16:43:39 +0000 (Mon, 12 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] updated code and comments
-
-------------------------------------------------------------------------
-r11028 | zimmerma | 2016-12-12 15:26:22 +0000 (Mon, 12 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] slightly improve mpn_rsqrtrem1() (and detailed error analysis)
-
-------------------------------------------------------------------------
-r11027 | zimmerma | 2016-12-12 10:25:51 +0000 (Mon, 12 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] removed mpn_sqrtrem1 (no longer needed since r11023)
-
-------------------------------------------------------------------------
-r11026 | zimmerma | 2016-12-12 10:23:39 +0000 (Mon, 12 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] fixed comments to be coherent with the code
-
-------------------------------------------------------------------------
-r11025 | zimmerma | 2016-12-12 09:04:19 +0000 (Mon, 12 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-fixed https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21053&group_id=136
-
-------------------------------------------------------------------------
-r11024 | vlefevre | 2016-12-09 19:55:12 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Corrected a comment (1 has exponent 1 and we support
-precision 1).
-------------------------------------------------------------------------
-r11023 | zimmerma | 2016-12-09 16:59:46 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[sqrt.c] no more special case for prec <= GMP_NUMB_BITS/2, and added comments
-
-------------------------------------------------------------------------
-r11022 | vlefevre | 2016-12-09 15:13:10 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Bug fix (replaced = by ==). Note: this kind of bug could
-be detected by avoiding extra parentheses.
-------------------------------------------------------------------------
-r11021 | vlefevre | 2016-12-09 15:01:25 +0000 (Fri, 09 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/sqrt.c
-
-[src] Simplified ~MPFR_LIMB_ZERO to MPFR_LIMB_MAX.
-------------------------------------------------------------------------
-r11020 | zimmerma | 2016-12-09 14:55:31 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] simplified mpfr_div_1 and mpfr_div_2
-
-------------------------------------------------------------------------
-r11019 | zimmerma | 2016-12-09 14:34:20 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] added comments and simplified code
-
-------------------------------------------------------------------------
-r11018 | zimmerma | 2016-12-09 13:53:45 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] simplified code
-
-------------------------------------------------------------------------
-r11017 | zimmerma | 2016-12-09 13:50:55 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul.c
-
-likewise for mpfr_mul_2()
-
-------------------------------------------------------------------------
-r11016 | zimmerma | 2016-12-09 13:44:45 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul.c
-
-fixed bug in mpfr_mul_1() introduced in r11004 and added test case
-
-------------------------------------------------------------------------
-r11015 | zimmerma | 2016-12-09 13:14:56 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] simplified underflow test in mpfr_div_1()
-
-------------------------------------------------------------------------
-r11014 | vlefevre | 2016-12-09 12:51:17 +0000 (Fri, 09 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] underflow is unlikely!
-------------------------------------------------------------------------
-r11013 | vlefevre | 2016-12-09 12:48:20 +0000 (Fri, 09 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] overflow and underflow are unlikely!
-------------------------------------------------------------------------
-r11012 | zimmerma | 2016-12-09 12:42:08 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] overflow and underflow are unlikely!
-
-------------------------------------------------------------------------
-r11011 | zimmerma | 2016-12-09 12:30:39 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] slightly better code (less dependencies) for mpfr_div_1 when u0 >= v0
-
-------------------------------------------------------------------------
-r11010 | zimmerma | 2016-12-09 12:02:19 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] simplified mpfr_div_1() code
-
-------------------------------------------------------------------------
-r11009 | zimmerma | 2016-12-09 11:52:44 +0000 (Fri, 09 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/src/div.c
-
-[div.c] in mpfr_div_1, do not deal with the case where the precision is
- <= GMP_NUMB_BITS/2, to not slow down the general case
-
-------------------------------------------------------------------------
-r11008 | vlefevre | 2016-12-09 11:45:35 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Slight improvement (but shouldn't affect the generated code
-with an optimizing compiler).
-------------------------------------------------------------------------
-r11007 | zimmerma | 2016-12-09 11:34:58 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[mul.c] likewise for mpfr_mul_2()
-
-------------------------------------------------------------------------
-r11006 | zimmerma | 2016-12-09 11:31:52 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[mul.c] simplified mpfr_mul_1()
-
-------------------------------------------------------------------------
-r11005 | zimmerma | 2016-12-09 10:50:30 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul.c
-
-fixed similar bug in mpfr_mul_2() + non-regression test
-
-------------------------------------------------------------------------
-r11004 | zimmerma | 2016-12-09 10:30:53 +0000 (Fri, 09 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul.c
-
-[mul.c] simplified the code and fixed a bug
-[tmul.c] added non-regression test for fixed bug
-
-------------------------------------------------------------------------
-r11003 | zimmerma | 2016-12-09 10:10:42 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[sub1sp.c] added comment + assert
-
-------------------------------------------------------------------------
-r11002 | vlefevre | 2016-12-09 08:59:15 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-[src] Fixed bug introduced in r10964 with --with-gmp-build: move
-the numberof_const() definition from mpfr-gmp.h to mpfr-impl.h.
-------------------------------------------------------------------------
-r11001 | zimmerma | 2016-12-09 08:46:20 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[add1sp.c] added comment
-
-------------------------------------------------------------------------
-r11000 | zimmerma | 2016-12-09 08:26:54 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[add1sp.c] simplified mpfr_add1sp2()
-
-------------------------------------------------------------------------
-r10999 | zimmerma | 2016-12-09 07:54:55 +0000 (Fri, 09 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[sub1sp.c] in mpfr_sub1sp2(), compute a0 before a1 whenever possible
-
-------------------------------------------------------------------------
-r10998 | vlefevre | 2016-12-09 00:33:52 +0000 (Fri, 09 Dec 2016) | 1 line
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-[tools/mbench/mfv5.cc] Fixed type.
-------------------------------------------------------------------------
-r10997 | zimmerma | 2016-12-08 17:16:48 +0000 (Thu, 08 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-[mbench] fixed typo
-
-------------------------------------------------------------------------
-r10995 | vlefevre | 2016-12-08 12:34:52 +0000 (Thu, 08 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tcheck.c
-
-Replaced two ~0 with mp_limb_t target by MPFR_LIMB_MAX.
-------------------------------------------------------------------------
-r10994 | vlefevre | 2016-12-08 12:25:17 +0000 (Thu, 08 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a test detecting code like ~0 (either an error
-or poorly written code).
-------------------------------------------------------------------------
-r10993 | zimmerma | 2016-12-08 11:00:19 +0000 (Thu, 08 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-improved add1sp.c and sub1sp.c like in r10991
-
-------------------------------------------------------------------------
-r10992 | zimmerma | 2016-12-08 10:59:09 +0000 (Thu, 08 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-[mbench] set default max_exp to 1 (independent of number of bits per limb)
-
-------------------------------------------------------------------------
-r10991 | zimmerma | 2016-12-08 10:32:38 +0000 (Thu, 08 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[sub1sp.c] improved further
-
-------------------------------------------------------------------------
-r10990 | zimmerma | 2016-12-08 08:46:31 +0000 (Thu, 08 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-[mbench] use mpfr_printf to print test numbers
-
-------------------------------------------------------------------------
-r10989 | zimmerma | 2016-12-08 08:23:26 +0000 (Thu, 08 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-fixed bug in mfv5 (numbers used were 10 times too large)
-
-------------------------------------------------------------------------
-r10987 | zimmerma | 2016-12-07 16:21:48 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[sub1sp.c] corrected a comment, added another one
-
-------------------------------------------------------------------------
-r10986 | vlefevre | 2016-12-07 15:46:22 +0000 (Wed, 07 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Typo in a comment.
-------------------------------------------------------------------------
-r10985 | vlefevre | 2016-12-07 15:35:15 +0000 (Wed, 07 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Punctuation to make clear that there are 2 sentences.
-------------------------------------------------------------------------
-r10984 | zimmerma | 2016-12-07 15:29:27 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-likewise r10983
-
-------------------------------------------------------------------------
-r10983 | zimmerma | 2016-12-07 15:06:48 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[add1sp.c] improved a conditional (if compiler is not smart enough)
-
-------------------------------------------------------------------------
-r10982 | zimmerma | 2016-12-07 13:14:33 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/exp_2.c
-
-[exp_2.c] small improvements
-
-------------------------------------------------------------------------
-r10981 | vlefevre | 2016-12-07 12:13:21 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] MPFR_INT_CEIL_LOG2(x) macro: added a FIXME and an
-assertion concerning whether x <= ULONG_MAX or not.
-------------------------------------------------------------------------
-r10980 | vlefevre | 2016-12-07 11:52:48 +0000 (Wed, 07 Dec 2016) | 1 line
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Added an assertion.
-------------------------------------------------------------------------
-r10979 | zimmerma | 2016-12-07 11:51:24 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[algorithms.tex] fixed typo
-
-------------------------------------------------------------------------
-r10978 | zimmerma | 2016-12-07 11:10:01 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[pow.c] tuned starting precision (and removed obsolete comment)
-
-------------------------------------------------------------------------
-r10977 | zimmerma | 2016-12-07 10:42:04 +0000 (Wed, 07 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-use MPFR_INT_CEIL_LOG2
-
-------------------------------------------------------------------------
-r10973 | zimmerma | 2016-12-06 17:12:59 +0000 (Tue, 06 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
-
-[mfv5] added option -e, for example use -e1 to avoid over/underflow in mpfr_pow
-
-------------------------------------------------------------------------
-r10972 | zimmerma | 2016-12-06 17:11:42 +0000 (Tue, 06 Dec 2016) | 3 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[pow.c] reduced overhead of special cases (gives speedup of a factor of two
- for 53 bits of precision)
-
-------------------------------------------------------------------------
-r10970 | zimmerma | 2016-12-06 14:16:33 +0000 (Tue, 06 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-added mpfr_pow
-
-------------------------------------------------------------------------
-r10969 | vlefevre | 2016-12-06 08:22:02 +0000 (Tue, 06 Dec 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Correction for zsh change after v5.2 (POSIX compat:
-"set -e; f() { false && true; }; f; echo OK" no longer prints OK).
-------------------------------------------------------------------------
-r10964 | vlefevre | 2016-11-29 16:06:33 +0000 (Tue, 29 Nov 2016) | 8 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mulders.c
-
-Check that the numberof() macro is used on an array.
- * src/mpfr-gmp.h: define numberof_const() macro, equivalent to the
- old numberof() macro: no check, but constant expression; improved
- the numberof() macro to check that it is used on an array (since
- an array can silently be converted to a pointer in C). Note that
- potential failures are currently reported at run time.
- * src/mulders.c: replaced numberof by numberof_const in #define's
- (also removed a useless cast at the same time).
-------------------------------------------------------------------------
-r10963 | vlefevre | 2016-11-17 22:28:27 +0000 (Thu, 17 Nov 2016) | 2 lines
-Changed paths:
- M /trunk/src/set_ld.c
- M /trunk/tests/tset_ld.c
-
-[src/set_ld.c,tests/tset_ld.c] Updated comments, in particular
-concerning LDBL_MAX.
-------------------------------------------------------------------------
-r10961 | vlefevre | 2016-11-15 13:59:58 +0000 (Tue, 15 Nov 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Added an overflow test that triggers a bug for
-double-double (IBM long double format). See:
- https://sympa.inria.fr/sympa/arc/mpfr/2016-11/msg00006.html
-------------------------------------------------------------------------
-r10960 | vlefevre | 2016-11-15 13:48:27 +0000 (Tue, 15 Nov 2016) | 5 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Fixed bugs for double-double (IBM long double format):
- * one from r8650, which could yield a spurious assertion failure
- in debug mode in case of underflow (with result 0);
- * one from r8972, which used the variable sign uninitialized and
- could yield a result with an incorrect sign.
-------------------------------------------------------------------------
-r10959 | vlefevre | 2016-11-15 13:16:04 +0000 (Tue, 15 Nov 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Added a missing exit(1).
-------------------------------------------------------------------------
-r10958 | vlefevre | 2016-11-15 09:44:27 +0000 (Tue, 15 Nov 2016) | 7 lines
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tset_ld.c
-
-[tests] _GMP_IEEE_FLOATS was got rid of in r10150, but still used in
-the tests, meaning that some tests were no longer done. So, get rid of
-_GMP_IEEE_FLOATS also in the tests. Testing !defined(MPFR_ERRDIVZERO)
-or defined(HAVE_SIGNEDZ) should be sufficient, depending on the context
-(they were already used alone at some other places, so that new failures
-are unlikely); anyway, _GMP_IEEE_FLOATS was not the right macro to test.
-Only tget_set_d64.c has a specific change to use _MPFR_IEEE_FLOATS.
-------------------------------------------------------------------------
-r10957 | vlefevre | 2016-11-15 08:43:19 +0000 (Tue, 15 Nov 2016) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] For double-double (IBM long double format): test other
-special values, as this may be useful.
-------------------------------------------------------------------------
-r10956 | vlefevre | 2016-11-15 07:41:32 +0000 (Tue, 15 Nov 2016) | 4 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] For double-double (IBM long double format), the code
-was incorrect on large finite values, which are infinite as a double:
-(+inf) + (-inf) was computed, which is NaN (thanks to Rob for the
-report). Fixed this bug, with code clean up (not tested).
-------------------------------------------------------------------------
-r10954 | vlefevre | 2016-11-10 15:45:24 +0000 (Thu, 10 Nov 2016) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added a note about MinGW and libtool error "libobj name ...
-may not contain shell special characters.", with a solution.
-------------------------------------------------------------------------
-r10953 | vlefevre | 2016-11-09 04:27:57 +0000 (Wed, 09 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Final corrections.
-------------------------------------------------------------------------
-r10952 | vlefevre | 2016-11-09 03:52:03 +0000 (Wed, 09 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Another correction due to the rewrite for reuse support.
-------------------------------------------------------------------------
-r10951 | vlefevre | 2016-11-09 03:20:29 +0000 (Wed, 09 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Correction.
-------------------------------------------------------------------------
-r10944 | vlefevre | 2016-11-08 10:07:52 +0000 (Tue, 08 Nov 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added a short explanation for halfway cases.
-------------------------------------------------------------------------
-r10943 | vlefevre | 2016-11-08 01:04:49 +0000 (Tue, 08 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Improved an example (from my ARITH-23 slides).
-------------------------------------------------------------------------
-r10942 | vlefevre | 2016-11-08 00:59:47 +0000 (Tue, 08 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] English usage.
-------------------------------------------------------------------------
-r10941 | vlefevre | 2016-11-07 14:17:28 +0000 (Mon, 07 Nov 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Explained the handling of halfway cases for sq = 1
-(since the explanations for sq ≥ 2 are not valid for sq = 1).
-------------------------------------------------------------------------
-r10940 | vlefevre | 2016-11-07 14:06:50 +0000 (Mon, 07 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor update.
-------------------------------------------------------------------------
-r10939 | vlefevre | 2016-11-07 03:47:24 +0000 (Mon, 07 Nov 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Last corrections. Concerning the setting of the sign of
-the result, this changed with the support for precision 1 (see r10068).
-------------------------------------------------------------------------
-r10938 | vlefevre | 2016-11-07 03:03:06 +0000 (Mon, 07 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Correction (English).
-------------------------------------------------------------------------
-r10937 | vlefevre | 2016-11-07 02:41:11 +0000 (Mon, 07 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Correction about neg / sgn.
-------------------------------------------------------------------------
-r10936 | vlefevre | 2016-11-07 01:47:17 +0000 (Mon, 07 Nov 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added details about the handling of halfway cases, as
-the rule is not obvious due to two's complement representation.
-------------------------------------------------------------------------
-r10935 | vlefevre | 2016-11-06 23:46:57 +0000 (Sun, 06 Nov 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Cosmetic change for consistency between lbit and rbit.
-------------------------------------------------------------------------
-r10934 | vlefevre | 2016-11-06 22:39:38 +0000 (Sun, 06 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor update.
-------------------------------------------------------------------------
-r10933 | vlefevre | 2016-11-04 13:55:53 +0000 (Fri, 04 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] A bit more explanations.
-------------------------------------------------------------------------
-r10932 | vlefevre | 2016-11-04 12:52:58 +0000 (Fri, 04 Nov 2016) | 3 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Corrected the usage of the HYPHEN-MINUS character (-):
- * If it is a minus sign, use U+2212 MINUS SIGN (as already done).
- * Do not use "-" after the "non" and "pre" prefixes.
-------------------------------------------------------------------------
-r10931 | vlefevre | 2016-11-04 10:32:55 +0000 (Fri, 04 Nov 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor improvement.
-------------------------------------------------------------------------
-r10929 | vlefevre | 2016-10-27 15:25:34 +0000 (Thu, 27 Oct 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Replaced "TZ=UTC" by "TZ=GMT0" for portability.
-------------------------------------------------------------------------
-r10928 | vlefevre | 2016-10-27 13:54:43 +0000 (Thu, 27 Oct 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added a note.
-------------------------------------------------------------------------
-r10927 | vlefevre | 2016-10-27 13:51:11 +0000 (Thu, 27 Oct 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update for the current code (support of reused arguments);
-some other improvements.
-------------------------------------------------------------------------
-r10926 | vlefevre | 2016-10-27 13:47:16 +0000 (Thu, 27 Oct 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Corrected 2 typos.
-------------------------------------------------------------------------
-r10925 | vlefevre | 2016-10-27 12:30:01 +0000 (Thu, 27 Oct 2016) | 5 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Changed a MPN_COPY_DECR to MPN_COPY, which may be more
-efficient: as of r10464 (support for reused arguments), the memory
-used by the accumulator for the TMD resolution is no longer a part
-of the main accumulator, so that we now know that the memory blocks
-do not overlap.
-------------------------------------------------------------------------
-r10924 | vlefevre | 2016-10-26 13:46:28 +0000 (Wed, 26 Oct 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Corrected a comment from r10503.
-------------------------------------------------------------------------
-r10923 | vlefevre | 2016-10-26 13:39:20 +0000 (Wed, 26 Oct 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Moved/rewrote a comment (should have been done in r10467).
-------------------------------------------------------------------------
-r10922 | vlefevre | 2016-10-25 14:49:00 +0000 (Tue, 25 Oct 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Started the update for the code supporting reuse.
-------------------------------------------------------------------------
-r10920 | vlefevre | 2016-10-25 06:57:56 +0000 (Tue, 25 Oct 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed r10916 (thanks to Eli Zaretskii for the report).
-------------------------------------------------------------------------
-r10918 | vlefevre | 2016-10-24 13:30:10 +0000 (Mon, 24 Oct 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved a macro from r10916 (just in case...).
-------------------------------------------------------------------------
-r10916 | vlefevre | 2016-10-24 12:53:55 +0000 (Mon, 24 Oct 2016) | 7 lines
-Changed paths:
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/exceptions.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_rnd.c
-
-[src] Support build as thread-safe DLL on Windows: clean-up.
- * Increased the use of macros to avoid some code duplication
- (with risks of typos) and to prevent the problems related
- to thread-safe DLL from appearing in the .c files.
- * The prototypes of the functions to access the address of a
- TLS variable are now defined. Otherwise one gets warnings:
- https://sympa.inria.fr/sympa/arc/mpfr/2016-10/msg00004.html
-------------------------------------------------------------------------
-r10915 | vlefevre | 2016-10-20 15:00:30 +0000 (Thu, 20 Oct 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor correction and improvement (English).
-------------------------------------------------------------------------
-r10914 | vlefevre | 2016-10-20 14:22:35 +0000 (Thu, 20 Oct 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] "a" → "an" before "additional iteration".
-------------------------------------------------------------------------
-r10912 | vlefevre | 2016-10-18 08:06:35 +0000 (Tue, 18 Oct 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Updated a comment about bit-fields.
-------------------------------------------------------------------------
-r10902 | vlefevre | 2016-09-27 15:10:30 +0000 (Tue, 27 Sep 2016) | 8 lines
-Changed paths:
- M /trunk/src/init2.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/round_prec.c
- M /trunk/src/set_prec.c
-
-[src]
- * mpfr-impl.h: document the memory allocated for a significand;
- added a cast to avoid a direct conversion from mp_limb_t * to
- mp_size_t *.
- * init2.c, round_prec.c, set_prec.c: code clean-up by correcting
- the type expected for the second argument of MPFR_SET_MANT_PTR
- (this macro has a cast, so that this should not change anything,
- but the old type mpfr_limb_ptr was meaningless and confusing).
-------------------------------------------------------------------------
-r10890 | vlefevre | 2016-09-23 14:19:16 +0000 (Fri, 23 Sep 2016) | 1 line
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c] For MPFR >= 4, output float128 support info.
-------------------------------------------------------------------------
-r10888 | vlefevre | 2016-09-23 14:06:48 +0000 (Fri, 23 Sep 2016) | 1 line
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c] A bit more output.
-------------------------------------------------------------------------
-r10886 | vlefevre | 2016-09-23 13:47:14 +0000 (Fri, 23 Sep 2016) | 4 lines
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c]
- * Really support C++ compilers (tested with g++ 6.2.0).
- * Output information about the C implementation.
- * Detect MPIR (→ output information on MPIR instead of GMP).
-------------------------------------------------------------------------
-r10885 | vlefevre | 2016-09-23 13:14:12 +0000 (Fri, 23 Sep 2016) | 5 lines
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c]
- * Code simplification: support for MPFR versions less than 3.0 had
- already been dropped with the use of MPFR_RNDN.
- * For MPFR patches, output "[none]" when there are no patches.
- * Output mpfr_ptr size.
-------------------------------------------------------------------------
-r10884 | vlefevre | 2016-09-21 15:11:16 +0000 (Wed, 21 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/sin_cos.c
-
-[src/sin_cos.c] Avoid the reuse of variables for two completely
-different things (with different orders of magnitude)! Changed types.
-------------------------------------------------------------------------
-r10883 | vlefevre | 2016-09-21 15:06:52 +0000 (Wed, 21 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/src/exp3.c
-
-[src/exp3.c] Avoid the reuse of variables for two completely different
-things (with different orders of magnitude)! Added a cast to avoid a
-potential integer overflow (like in r10881).
-------------------------------------------------------------------------
-r10882 | vlefevre | 2016-09-21 15:05:07 +0000 (Wed, 21 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Avoid the reuse of variables for two completely different
-things (with different orders of magnitude)! Changed types.
-------------------------------------------------------------------------
-r10881 | vlefevre | 2016-09-21 13:54:01 +0000 (Wed, 21 Sep 2016) | 6 lines
-Changed paths:
- M /trunk/src/atan.c
- M /trunk/src/sin_cos.c
-
-[src/{atan.c,sin_cos.c}] Added casts to avoid potential integer
-overflows. Possible issue reported by David Binderman:
- https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00029.html
-Note: From tests I've done on mpfr_atan, there would be issues with
-16-bit int, but for 32-bit int, one could need several hundreds of
-billions of bits for the target precision.
-------------------------------------------------------------------------
-r10880 | vlefevre | 2016-09-21 11:34:52 +0000 (Wed, 21 Sep 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": updated paragraph about warnings.
-------------------------------------------------------------------------
-r10879 | vlefevre | 2016-09-21 11:12:23 +0000 (Wed, 21 Sep 2016) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] In the MPFR_RET macro, avoid the use of an integer
-in a boolean context (even though that this is not wrong in C). Fix
-after a bug report from David Binderman. Explanations:
- https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00028.html
-------------------------------------------------------------------------
-r10878 | vlefevre | 2016-09-16 13:34:49 +0000 (Fri, 16 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
-paragraph on the sin(...) term of the reflection formula.
-------------------------------------------------------------------------
-r10877 | vlefevre | 2016-09-16 13:05:04 +0000 (Fri, 16 Sep 2016) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] More work on the Riemann Zeta function.
-------------------------------------------------------------------------
-r10876 | vlefevre | 2016-09-15 13:31:39 +0000 (Thu, 15 Sep 2016) | 4 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
-paragraph briefly describing how the precisions of the variables
-will be chosen (this is much more efficient than the current code
-when the target precision is much lower than the input precision).
-------------------------------------------------------------------------
-r10875 | vlefevre | 2016-09-15 13:17:58 +0000 (Thu, 15 Sep 2016) | 10 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/src/zeta.c
-
-Some improvements / corrections in the description / proof of the
-algorithm for the Riemann Zeta function.
- * doc/algorithms.tex, section on the Riemann Zeta function: the case
- s < 1/2 (reflection formula) is now in a new section, which needs
- to be completed (with the detailed algorithm and error analysis);
- case "s close to 0" added and now properly proved.
- * src/zeta.c: update of the comment for s close to 0 (the brief
- explanations were wrong for precision 1, and this was apparently
- not checked when we allowed this precision!), adding a reference
- to algorithms.tex for details.
-------------------------------------------------------------------------
-r10874 | vlefevre | 2016-09-14 14:35:33 +0000 (Wed, 14 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] In "[[…]]" conditional expressions, replaced "="
-by the preferred (and equivalent) form "==".
-Discussion: http://www.zsh.org/mla/workers/2016/msg01711.html
-------------------------------------------------------------------------
-r10872 | vlefevre | 2016-09-14 07:59:27 +0000 (Wed, 14 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Improved code readability (related to r10871).
-------------------------------------------------------------------------
-r10871 | zimmerma | 2016-09-14 06:39:43 +0000 (Wed, 14 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] improved code (found by David Binderman using cppcheck)
-
-------------------------------------------------------------------------
-r10870 | vlefevre | 2016-09-14 01:09:00 +0000 (Wed, 14 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Use the 64-bit key ID instead of the 32-bit one
-since there are known collisions for 32-bit key ID's:
-https://evil32.com/
-------------------------------------------------------------------------
-r10865 | vlefevre | 2016-09-13 15:11:11 +0000 (Tue, 13 Sep 2016) | 4 lines
-Changed paths:
- M /trunk/src/zeta.c
- M /trunk/tests/tzeta.c
-
-[src/zeta.c] Added a FIXME: bug in the error computation due to the
- use of the native double C type, which can yield an overflow.
-[tests/tzeta.c] Added a corresponding test case, which gives an
- assertion failure.
-------------------------------------------------------------------------
-r10864 | vlefevre | 2016-09-13 14:53:46 +0000 (Tue, 13 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
-
-[src/{uceil_log2.c,ufloor_log2.c}] Added "MPFR_ASSERTN (exp < 1023);"
-to get an assertion failure on infinities (which do not have an
-exponent).
-------------------------------------------------------------------------
-r10863 | vlefevre | 2016-09-13 14:50:38 +0000 (Tue, 13 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/uceil_log2.c
-
-[src/uceil_log2.c] Code style.
-------------------------------------------------------------------------
-r10862 | vlefevre | 2016-09-13 14:46:08 +0000 (Tue, 13 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/ufloor_log2.c
-
-[src/ufloor_log2.c] Code style.
-------------------------------------------------------------------------
-r10861 | vlefevre | 2016-09-13 14:05:24 +0000 (Tue, 13 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Make explicit that we need to use lngamma.
-------------------------------------------------------------------------
-r10860 | vlefevre | 2016-09-13 13:58:51 +0000 (Tue, 13 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Updated comments on overflows / underflows.
-------------------------------------------------------------------------
-r10859 | vlefevre | 2016-09-13 09:02:16 +0000 (Tue, 13 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] About internal underflows / cancellation:
- * Added comments to FIXME's.
- * Detect a potential integer overflow with MPFR_ASSERTN.
-------------------------------------------------------------------------
-r10851 | vlefevre | 2016-09-12 10:11:31 +0000 (Mon, 12 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Moved a comment.
-------------------------------------------------------------------------
-r10850 | vlefevre | 2016-09-12 10:05:12 +0000 (Mon, 12 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Fixed print_binary (and no longer any failure with
-gcc -mpc64 on x86).
-------------------------------------------------------------------------
-r10849 | vlefevre | 2016-09-12 09:44:19 +0000 (Mon, 12 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Corrected note in print_binary.
-------------------------------------------------------------------------
-r10848 | vlefevre | 2016-09-12 09:42:56 +0000 (Mon, 12 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Reverted r10847 (it was incomplete and I was testing
-the wrong code).
-------------------------------------------------------------------------
-r10847 | vlefevre | 2016-09-12 09:40:34 +0000 (Mon, 12 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Fixed print_binary.
-------------------------------------------------------------------------
-r10846 | vlefevre | 2016-09-12 09:13:52 +0000 (Mon, 12 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Added a FIXME in print_binary, which can yield an
-incorrect output and return a wrong precision (causing the failure).
-------------------------------------------------------------------------
-r10845 | vlefevre | 2016-09-12 09:08:38 +0000 (Mon, 12 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Added a test that triggers a failure with gcc -mpc64
-on x86 (64-bit ABI).
-------------------------------------------------------------------------
-r10844 | vlefevre | 2016-09-12 08:48:04 +0000 (Mon, 12 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Added some tests in case the rounding precision is
-smaller than MPFR_LDBL_MANT_DIG (e.g. with gcc -mpc64 on x86).
-------------------------------------------------------------------------
-r10843 | vlefevre | 2016-09-12 08:09:24 +0000 (Mon, 12 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] In print_binary, added an assertion that may fail
-with flush-to-zero on underflow (avoiding an infinite loop).
-------------------------------------------------------------------------
-r10842 | vlefevre | 2016-09-12 08:03:58 +0000 (Mon, 12 Sep 2016) | 4 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Simplified a condition in print_binary (BTW, the old
-condition was based on the fact that the rounding depended only on the
-exact result, which may not be the case when rounding is not completely
-specified, e.g. with double-double arithmetic like on PowerPC).
-------------------------------------------------------------------------
-r10841 | vlefevre | 2016-09-12 07:15:30 +0000 (Mon, 12 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Replaced a condition by a simpler, equivalent one.
-------------------------------------------------------------------------
-r10840 | zimmerma | 2016-09-10 05:55:31 +0000 (Sat, 10 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] added note
-
-------------------------------------------------------------------------
-r10839 | zimmerma | 2016-09-09 14:41:49 +0000 (Fri, 09 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] get rid of C99-only stuff
-
-------------------------------------------------------------------------
-r10838 | vlefevre | 2016-09-09 14:32:14 +0000 (Fri, 09 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Removed a variable that is no longer used.
-------------------------------------------------------------------------
-r10837 | vlefevre | 2016-09-09 12:49:59 +0000 (Fri, 09 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] FIXME: nextafterl and ilogbl are C99 only.
-------------------------------------------------------------------------
-r10836 | zimmerma | 2016-09-09 11:13:31 +0000 (Fri, 09 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] fixed computation of smallest subnormal using nextafterl
-
-------------------------------------------------------------------------
-r10835 | zimmerma | 2016-09-09 11:09:48 +0000 (Fri, 09 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] added warning
-
-------------------------------------------------------------------------
-r10834 | zimmerma | 2016-09-09 10:52:27 +0000 (Fri, 09 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] fixed print_binary() for when the rounding precision is less
- than the precision of long double
-
-------------------------------------------------------------------------
-r10833 | vlefevre | 2016-09-09 09:02:16 +0000 (Fri, 09 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
- M /trunk/tests/tset_ld.c
-
-[src/get_ld.c] Replaced FIXME by an explanation of the current behavior.
-[tests/tset_ld.c] Added a FIXME as a consequence.
-------------------------------------------------------------------------
-r10832 | vlefevre | 2016-09-09 00:23:59 +0000 (Fri, 09 Sep 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about NetBSD.
-------------------------------------------------------------------------
-r10829 | vlefevre | 2016-09-08 16:37:56 +0000 (Thu, 08 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Corrected a spelling mistake.
-------------------------------------------------------------------------
-r10828 | vlefevre | 2016-09-08 16:15:18 +0000 (Thu, 08 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Updated FIXME (mention subnormals).
-------------------------------------------------------------------------
-r10827 | vlefevre | 2016-09-08 15:48:59 +0000 (Thu, 08 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Updated FIXME (this is NetBSD 5.1).
-------------------------------------------------------------------------
-r10826 | vlefevre | 2016-09-08 15:35:19 +0000 (Thu, 08 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Added a FIXME, in particular for NetBSD.
-------------------------------------------------------------------------
-r10825 | vlefevre | 2016-09-08 15:17:10 +0000 (Thu, 08 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Avoid a freeze in print_binary under NetBSD due to
-excess precision in LDBL_MAX (we do not run the test in this case).
-------------------------------------------------------------------------
-r10824 | zimmerma | 2016-09-08 14:22:04 +0000 (Thu, 08 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/tests/tsqrt.c
-
-[src/sqrt.c] fixed bug in mpfr_sqrt2
-[tests/tsqrt.c] added non-regression test
-
-------------------------------------------------------------------------
-r10823 | vlefevre | 2016-09-08 13:57:26 +0000 (Thu, 08 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] The print_binary function is freezing on a NetBSD
-machine; let's start with some improvements (assertions...).
-------------------------------------------------------------------------
-r10822 | vlefevre | 2016-09-08 13:31:38 +0000 (Thu, 08 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tabs.c
-
-[tests/tabs.c] Removed mpfr_test_init (not needed here).
-------------------------------------------------------------------------
-r10821 | vlefevre | 2016-09-08 13:30:35 +0000 (Thu, 08 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Moved mpfr_test_init at the right place (like
-tget_d.c, tset_d.c, etc.).
-------------------------------------------------------------------------
-r10820 | zimmerma | 2016-09-08 13:30:14 +0000 (Thu, 08 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] divsp1 -> div_1
-
-------------------------------------------------------------------------
-r10819 | vlefevre | 2016-09-08 13:24:00 +0000 (Thu, 08 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Fixed a loop in case an extended range is used
-(there are issues on a NetBSD machine, and this could be a cause).
-------------------------------------------------------------------------
-r10818 | vlefevre | 2016-09-08 13:19:12 +0000 (Thu, 08 Sep 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Corrected a type (due to a printf with %ld).
-------------------------------------------------------------------------
-r10817 | zimmerma | 2016-09-08 13:14:30 +0000 (Thu, 08 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] divsp1 -> div_1, divsp2 -> div_2 (not necessarily same precision)
-
-------------------------------------------------------------------------
-r10816 | zimmerma | 2016-09-08 13:12:14 +0000 (Thu, 08 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] mulsp1 -> mul_1, mulsp2 -> mul_2 (the precision of operands is not
- necessarily the same)
-
-------------------------------------------------------------------------
-r10813 | vlefevre | 2016-09-08 00:15:19 +0000 (Thu, 08 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/get_d.c
- M /trunk/src/get_ld.c
-
-[src/{get_d,get_ld}.c] Use MPFR_ALIAS.
-------------------------------------------------------------------------
-r10812 | vlefevre | 2016-09-07 12:35:33 +0000 (Wed, 07 Sep 2016) | 9 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Improved the fix done in r10808: The mpfr_set_emin value
-is not changed, but let's make the LDBL_MIN_EXP and LDBL_MAX_EXP values
-appear as expected.
-Note: The code for x86 extended precision first appeared in r3226 with
-the usual emin and emax values, as found in the IEEE 754-1985 standard
-(bounds) or on <https://en.wikipedia.org/wiki/IEEE_floating_point>. But
-MPFR uses a different convention, with a significand between 1/2 and 1
-instead of between 1 and 2, so that these values were off by 1. The
-emax one was fixed in r6101, but the error on emin remained undetected.
-------------------------------------------------------------------------
-r10811 | vlefevre | 2016-09-07 09:39:52 +0000 (Wed, 07 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] The bug_20160907 test is valid only with
-HAVE_LDOUBLE_IEEE_EXT_LITTLE.
-------------------------------------------------------------------------
-r10810 | vlefevre | 2016-09-07 08:20:28 +0000 (Wed, 07 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Updated FIXME: also suggest a scaling.
-------------------------------------------------------------------------
-r10809 | zimmerma | 2016-09-07 07:58:43 +0000 (Wed, 07 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] check more numbers in bug_20160907()
-
-------------------------------------------------------------------------
-r10808 | zimmerma | 2016-09-07 07:38:09 +0000 (Wed, 07 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] fixed bug reported by Walter Mascarenhas
-
-------------------------------------------------------------------------
-r10807 | zimmerma | 2016-09-07 07:28:32 +0000 (Wed, 07 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] added test that triggers bug in mpfr_get_ld
- (https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00005.html)
-
-------------------------------------------------------------------------
-r10806 | vlefevre | 2016-09-07 01:12:06 +0000 (Wed, 07 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Updated FIXME with a suggestion.
-------------------------------------------------------------------------
-r10805 | vlefevre | 2016-09-07 01:05:34 +0000 (Wed, 07 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/src/zeta.c
- M /trunk/tests/tzeta.c
-
-[src/zeta.c] Added a FIXME: An overflow in gamma(s1) does not imply
- that Zeta(s) will overflow.
-[tests/tzeta.c] Added a test that triggers this bug with a 32-bit ABI.
-------------------------------------------------------------------------
-r10804 | vlefevre | 2016-09-07 00:25:25 +0000 (Wed, 07 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Concerning GCC's AddressSanitizer (-fsanitize=address),
-mention that LD_PRELOAD needs to be unset (or -static-libasan needs to
-be used, but does not work yet).
-------------------------------------------------------------------------
-r10802 | zimmerma | 2016-09-06 14:04:02 +0000 (Tue, 06 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] l -> \ell
-
-------------------------------------------------------------------------
-r10801 | zimmerma | 2016-09-06 13:58:27 +0000 (Tue, 06 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] du -> {\mathrm d}u
-
-------------------------------------------------------------------------
-r10800 | zimmerma | 2016-09-06 13:45:18 +0000 (Tue, 06 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] added FIXME
-
-------------------------------------------------------------------------
-r10799 | vlefevre | 2016-09-06 13:08:38 +0000 (Tue, 06 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Avoid a warning due to an unused variable with
-GMP_NUMB_BITS == 32.
-------------------------------------------------------------------------
-r10798 | vlefevre | 2016-09-06 12:33:16 +0000 (Tue, 06 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed m4_pattern_forbid argument to avoid an error with
-recent ax_pthread.m4 (such as in Debian's autoconf-archive 20160320-1,
-which has just appeared in unstable).
-------------------------------------------------------------------------
-r10797 | vlefevre | 2016-09-06 11:46:31 +0000 (Tue, 06 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Updated FIXME.
-------------------------------------------------------------------------
-r10796 | zimmerma | 2016-09-06 11:10:56 +0000 (Tue, 06 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] added FIXME
-
-------------------------------------------------------------------------
-r10795 | zimmerma | 2016-09-06 06:57:17 +0000 (Tue, 06 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] added alternate code for mpn_sqrtrem4 (disabled for now)
-
-------------------------------------------------------------------------
-r10794 | zimmerma | 2016-09-05 15:46:32 +0000 (Mon, 05 Sep 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mpfr-gmp.h
-
-move macros from div.c to mpfr-gmp.h
-
-------------------------------------------------------------------------
-r10790 | vlefevre | 2016-09-05 09:07:28 +0000 (Mon, 05 Sep 2016) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/tests/tzeta.c
-
-About the tzeta timing issue (since r9848):
- * TODO: updated item on tzeta.
- * tests/tzeta.c: updated FIXME for test_generic.
-------------------------------------------------------------------------
-r10789 | vlefevre | 2016-09-05 08:50:16 +0000 (Mon, 05 Sep 2016) | 7 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Updated item on tzeta:
- * removed the old problem: the fact that the traces for the trunk and
- for r9954 are different is normal (fixes in mpfr_can_round affecting
- tgeneric.c), and the timings depend on GMP_CHECK_RANDOMIZE and seem
- equivalent in average with "test_generic (..., 5);" in both cases;
- * added the fact that tzeta has been much slower since r9848, at least
- with the x86 32-bit ABI.
-------------------------------------------------------------------------
-r10775 | vlefevre | 2016-09-02 07:07:31 +0000 (Fri, 02 Sep 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r10774 | zimmerma | 2016-09-01 08:45:19 +0000 (Thu, 01 Sep 2016) | 13 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] new code for 2 limbs on 64-bit machines, giving speedup of almost
- a factor of two:
-
-bavette.loria.fr (Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz)
-numactl --physcpubind=0 ./mfv5 -p113 mpfr_sqrt
-
-3.1.4:
- mpfr_sqrt: 234 / 243.72 / 258
-
-4.0-dev:
- mpfr_sqrt: 122 / 127.63 / 136
-
-
-------------------------------------------------------------------------
-r10773 | zimmerma | 2016-08-31 08:54:41 +0000 (Wed, 31 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] fixed error triggered by previous commit
-
-------------------------------------------------------------------------
-r10772 | zimmerma | 2016-08-31 08:50:17 +0000 (Wed, 31 Aug 2016) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/tests/tdiv.c
-
-[src/div.c] added missing assertion
-[tests/tdiv.c] added test case that make new assertion fail (with --enable-assert --enable-gmp-internals on a 64-bit machine)
-
-------------------------------------------------------------------------
-r10771 | zimmerma | 2016-08-31 06:38:33 +0000 (Wed, 31 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] fixed bug found by Vincent
-
-------------------------------------------------------------------------
-r10770 | vlefevre | 2016-08-31 00:06:31 +0000 (Wed, 31 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Added a test triggering an assertion failure with
-"--enable-assert --enable-gmp-internals".
-------------------------------------------------------------------------
-r10769 | vlefevre | 2016-08-30 23:01:03 +0000 (Tue, 30 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Update.
-------------------------------------------------------------------------
-r10768 | vlefevre | 2016-08-30 22:58:50 +0000 (Tue, 30 Aug 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Untabified. Clarified a comment.
-------------------------------------------------------------------------
-r10767 | zimmerma | 2016-08-30 14:18:00 +0000 (Tue, 30 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] document mpn_sqrtrem2()
-
-------------------------------------------------------------------------
-r10766 | zimmerma | 2016-08-30 14:09:59 +0000 (Tue, 30 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] don't use mpfr_divsp1 and mpfr_divsp2 when MPFR_GENERIC_ABI is defined
-
-------------------------------------------------------------------------
-r10765 | zimmerma | 2016-08-30 12:10:24 +0000 (Tue, 30 Aug 2016) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/tests/tdiv.c
-
-[src/div.c] faster code for 2 limbs
-[tests/tdiv.c] added special test for 2 limbs
-
-------------------------------------------------------------------------
-r10764 | vlefevre | 2016-08-30 07:21:07 +0000 (Tue, 30 Aug 2016) | 7 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
-
-[tests] Define global variable tests_memory_disabled, which needs to
-be set when the memory.c allocators (to track memory leaks) must not
-be used; i.e., setting it disables the calls to tests_memory_start()
-and tests_memory_end(). In tests.c, it is initialized to 0 (unset),
-except when mini-gmp is used (same behavior as before this commit).
-Programs that test GMP's mp_set_memory_functions() need to set this
-variable before calling tests_start_mpfr().
-------------------------------------------------------------------------
-r10763 | vlefevre | 2016-08-29 15:35:16 +0000 (Mon, 29 Aug 2016) | 4 lines
-Changed paths:
- A /trunk/tests/talloc-cache.c
-
-Added tests/talloc-cache.c (not run by "make check") testing multiple
-calls to mp_set_memory_functions. It yields a crash in the MPFR trunk,
-which is unexpected with the current code. However, in the 3.1 branch,
-r9467 fixed the crash as expected.
-------------------------------------------------------------------------
-r10762 | zimmerma | 2016-08-29 14:20:09 +0000 (Mon, 29 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] added Sage code used to generate the bipartite tables
-
-------------------------------------------------------------------------
-r10761 | vlefevre | 2016-08-29 13:50:47 +0000 (Mon, 29 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/talloc.c
-
-[tests/talloc.c] Added a warning about new tests.
-------------------------------------------------------------------------
-r10760 | zimmerma | 2016-08-29 13:20:14 +0000 (Mon, 29 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] fixed TODOs, and simplified code
-
-------------------------------------------------------------------------
-r10759 | vlefevre | 2016-08-29 13:09:50 +0000 (Mon, 29 Aug 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a FIXME comment about memory allocation.
-------------------------------------------------------------------------
-r10758 | vlefevre | 2016-08-29 12:55:26 +0000 (Mon, 29 Aug 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r10757 | vlefevre | 2016-08-29 12:54:47 +0000 (Mon, 29 Aug 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Done in r10756: unify is_power_of_two() and mpfr_powerof2_raw().
-------------------------------------------------------------------------
-r10756 | zimmerma | 2016-08-29 08:15:17 +0000 (Mon, 29 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/powerof2.c
- M /trunk/src/round_prec.c
-
-unified is_power_of_two() and mpfr_powerof2_raw()
-
-------------------------------------------------------------------------
-r10755 | zimmerma | 2016-08-29 07:49:12 +0000 (Mon, 29 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] improved documentation of mpfr_free_cache()
-
-------------------------------------------------------------------------
-r10754 | vlefevre | 2016-08-28 17:48:57 +0000 (Sun, 28 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Improved a test now that mpfr_can_round is exact.
-------------------------------------------------------------------------
-r10753 | vlefevre | 2016-08-28 00:12:04 +0000 (Sun, 28 Aug 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Added a warning about r10749.
-------------------------------------------------------------------------
-r10752 | vlefevre | 2016-08-27 23:53:19 +0000 (Sat, 27 Aug 2016) | 6 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Various corrections/improvements:
- * Unified the return, making sure that temporary memory is no longer
- used after MPFR_TMP_FREE(marker), which was not the case in some
- places.
- * C90 compatibility.
- * Minor improvements (use of MPFR_PREC2LIMBS, code on 78 columns...).
-------------------------------------------------------------------------
-r10751 | vlefevre | 2016-08-27 23:01:59 +0000 (Sat, 27 Aug 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added: unify is_power_of_two() and mpfr_powerof2_raw()?
-------------------------------------------------------------------------
-r10750 | vlefevre | 2016-08-27 22:58:07 +0000 (Sat, 27 Aug 2016) | 3 lines
-Changed paths:
- M /trunk/src/atan2.c
- M /trunk/src/mpfr-impl.h
-
-[src/atan2.c] Replaced the use of the MPFR_IS_POWER_OF_2(x) macro by
- a more efficient solution based on mpfr_powerof2_raw().
-[src/mpfr-impl.h] Removed the now obsolete MPFR_IS_POWER_OF_2 macro.
-------------------------------------------------------------------------
-r10749 | zimmerma | 2016-08-26 12:49:48 +0000 (Fri, 26 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] added comment about GMP memory allocation functions
-
-------------------------------------------------------------------------
-r10748 | zimmerma | 2016-08-25 07:22:38 +0000 (Thu, 25 Aug 2016) | 3 lines
-Changed paths:
- M /trunk/src/round_p.c
-
-[src/round_p.c] since mpfr_can_round is now always correct, we cannot compare
- it blindly to mpfr_round_p any more
-
-------------------------------------------------------------------------
-r10747 | zimmerma | 2016-08-24 15:48:39 +0000 (Wed, 24 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] fixed mpfr_can_round() so that all tests of tcan_round pass
-
-------------------------------------------------------------------------
-r10746 | zimmerma | 2016-08-23 12:38:22 +0000 (Tue, 23 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] more information in case of error in check_can_round()
-
-------------------------------------------------------------------------
-r10744 | vlefevre | 2016-08-22 18:53:46 +0000 (Mon, 22 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-[tools/mbench/mfv5.cc] Fixed code (C++11 compatibility).
-------------------------------------------------------------------------
-r10743 | vlefevre | 2016-08-22 13:57:53 +0000 (Mon, 22 Aug 2016) | 4 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Added a comprehensive test of mpfr_can_round,
-based on a naive implementation.
-Note: if the exit() is removed, many cases are failing, for both kinds
-of answers (there might also remain an error in my test...).
-------------------------------------------------------------------------
-r10741 | vlefevre | 2016-08-19 14:34:01 +0000 (Fri, 19 Aug 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] More thoughts about mpz_t caching (mpz_t pool).
-------------------------------------------------------------------------
-r10740 | vlefevre | 2016-08-19 13:59:11 +0000 (Fri, 19 Aug 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Issues with mpz_t caching.
-------------------------------------------------------------------------
-r10739 | vlefevre | 2016-08-19 12:07:55 +0000 (Fri, 19 Aug 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Update about mpz_t caching (mpz_t pool).
-------------------------------------------------------------------------
-r10738 | vlefevre | 2016-08-19 11:55:31 +0000 (Fri, 19 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Added TODO's to use mpz_init2 instead mpz_init: I could
-check that without "mpz_t cache" (pool), this makes the code faster.
-------------------------------------------------------------------------
-r10737 | vlefevre | 2016-08-19 11:52:01 +0000 (Fri, 19 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about memory reallocations; recommend
-mpz_init2 with the estimated maximum size instead of mpz_init.
-------------------------------------------------------------------------
-r10736 | vlefevre | 2016-08-19 08:54:30 +0000 (Fri, 19 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Updated the error message on incorrect MPFR version.
-------------------------------------------------------------------------
-r10735 | vlefevre | 2016-08-19 08:36:16 +0000 (Fri, 19 Aug 2016) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added note on Solaris and the LD_OPTIONS environment variable.
-------------------------------------------------------------------------
-r10734 | vlefevre | 2016-08-11 16:32:23 +0000 (Thu, 11 Aug 2016) | 3 lines
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] Added a warning: on a machine shared with other users,
-by running this script, the account can easily be compromised due to a
-libtool bug.
-------------------------------------------------------------------------
-r10732 | vlefevre | 2016-08-06 23:24:24 +0000 (Sat, 06 Aug 2016) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Moved MPFR_DEPRECATED before __MPFR_DECLSPEC for
-compatibility with MSVC (and documented this requirement).
-Thanks to Brian Gladman for the information.
-------------------------------------------------------------------------
-r10731 | vlefevre | 2016-08-04 23:31:17 +0000 (Thu, 04 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about the C++11 compatibility issue
-with a string literal immediately followed by a macro name.
-------------------------------------------------------------------------
-r10727 | vlefevre | 2016-08-04 15:06:52 +0000 (Thu, 04 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/rec_sqrt.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/taway.c
-
-Fixed remaining macros with missing "do" … "while (0)", detected with
-mpfrlint. There were no consequences except spurious null statements.
-------------------------------------------------------------------------
-r10726 | vlefevre | 2016-08-04 15:02:00 +0000 (Thu, 04 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a comment.
-------------------------------------------------------------------------
-r10725 | vlefevre | 2016-08-04 13:43:31 +0000 (Thu, 04 Aug 2016) | 5 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a test detecting (unsafe) macros of the form:
- #define FOO { ... }
-The following form is preferred in most of the cases to avoid spurious
-null statements:
- #define FOO do { ... } while (0)
-------------------------------------------------------------------------
-r10724 | vlefevre | 2016-08-04 13:17:31 +0000 (Thu, 04 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsi_op.c
-
-[tests/tsi_op.c] Fixed a macro. There were no consequences except
-spurious null statements.
-------------------------------------------------------------------------
-r10723 | vlefevre | 2016-08-04 12:30:53 +0000 (Thu, 04 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
-
-[tests/tset_{si,sj}.c] Style improvements. Added a comment.
-------------------------------------------------------------------------
-r10721 | vlefevre | 2016-08-04 12:17:34 +0000 (Thu, 04 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
-
-[tests/tset_{si,sj}.c] Fixed macros. There were no consequences except
-spurious null statements.
-------------------------------------------------------------------------
-r10719 | vlefevre | 2016-08-04 01:48:33 +0000 (Thu, 04 Aug 2016) | 5 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsi_op.c
-
-[tests] C++ compatibility: avoid errors with "g++ -std=c++11" or later.
-Note that as of GCC 6, "the default mode for C++ is now -std=gnu++14
-instead of -std=gnu++98" <https://gcc.gnu.org/gcc-6/changes.html>.
-So, this fixes the failures in the build of the MPFR tests with g++
-from GCC 6 without particular options.
-------------------------------------------------------------------------
-r10718 | vlefevre | 2016-08-03 16:23:55 +0000 (Wed, 03 Aug 2016) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] mpfr_can_round_raw: added another FIXME.
-------------------------------------------------------------------------
-r10717 | vlefevre | 2016-08-03 16:02:40 +0000 (Wed, 03 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] mpfr_can_round_raw: added an assertion, corrected
-a condition in a comment, and added comments, showing a new bug.
-------------------------------------------------------------------------
-r10716 | vlefevre | 2016-08-02 15:25:58 +0000 (Tue, 02 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] Various corrections and improvements in test_underflow.
-------------------------------------------------------------------------
-r10714 | vlefevre | 2016-08-02 11:04:48 +0000 (Tue, 02 Aug 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Mark mpfr_grandom as deprecated (this had already been done
-in mpfr.texi r8548).
-------------------------------------------------------------------------
-r10713 | vlefevre | 2016-08-02 10:29:36 +0000 (Tue, 02 Aug 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Suggest MPFR_EXPERIMENTAL for experimental functions.
-------------------------------------------------------------------------
-r10712 | vlefevre | 2016-08-01 12:40:38 +0000 (Mon, 01 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Correction in the info about the C implementation.
-------------------------------------------------------------------------
-r10711 | vlefevre | 2016-08-01 12:26:15 +0000 (Mon, 01 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Corrections in the info about the C implementation.
-------------------------------------------------------------------------
-r10710 | vlefevre | 2016-08-01 09:56:19 +0000 (Mon, 01 Aug 2016) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Corrected a bound in the proof of mpfr_sqrt1 (one-limb
-precisions), related to the right shift of a negative value. Added
-a warning and a TODO about such an operation.
-------------------------------------------------------------------------
-r10709 | vlefevre | 2016-08-01 09:06:06 +0000 (Mon, 01 Aug 2016) | 6 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Enable mpfr_sqrt1 code for one-limb precisions (which
-depends on implementation-defined features of the C standard) only
-when __GNUC__ is defined, as it is known to be correct with GCC and
-compatible compilers, but nothing is known yet for other compilers.
-Removed the corresponding FIXME and added a note. In the future, a
-configure test could be used as an alternative solution.
-------------------------------------------------------------------------
-r10708 | vlefevre | 2016-08-01 08:37:09 +0000 (Mon, 01 Aug 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output more information about the C implementation.
-------------------------------------------------------------------------
-r10707 | vlefevre | 2016-07-31 17:39:38 +0000 (Sun, 31 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Fixed some portability issues.
-------------------------------------------------------------------------
-r10706 | vlefevre | 2016-07-31 17:32:32 +0000 (Sun, 31 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Fix if mp_limb_t > unsigned long (this fixed failures
-with mingw-w64).
-------------------------------------------------------------------------
-r10705 | vlefevre | 2016-07-31 17:30:28 +0000 (Sun, 31 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/cos.c
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Fix in case mp_limb_t is more than twice as large
- as unsigned long (that would make it at least 128 bits).
-[src/cos.c] Made code similar to the rest of the code.
-------------------------------------------------------------------------
-r10704 | vlefevre | 2016-07-31 17:19:43 +0000 (Sun, 31 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Improved a comment (to make it closer to what correct
-C code should be), avoiding a false positive with mpfrlint.
-------------------------------------------------------------------------
-r10703 | vlefevre | 2016-07-31 17:15:31 +0000 (Sun, 31 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect possibly wrong code with some C/GMP
-implementations, related to shifts and integer types.
-------------------------------------------------------------------------
-r10702 | vlefevre | 2016-07-31 16:17:46 +0000 (Sun, 31 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Completed the FIXME (another portability issue).
-------------------------------------------------------------------------
-r10701 | vlefevre | 2016-07-31 00:39:14 +0000 (Sun, 31 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Added a FIXME. The current code for prec < GMP_NUMB_BITS
-is not portable.
-------------------------------------------------------------------------
-r10700 | vlefevre | 2016-07-31 00:27:31 +0000 (Sun, 31 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Fixed code for implementations with 16-bit int's.
-------------------------------------------------------------------------
-r10699 | vlefevre | 2016-07-31 00:23:11 +0000 (Sun, 31 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] Fixed output bug in a test.
-------------------------------------------------------------------------
-r10698 | zimmerma | 2016-07-29 13:46:09 +0000 (Fri, 29 Jul 2016) | 10 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/mul.c
-
-[src/mul.c] speedup for 2 limbs: numactl --physcpubind=0 ./mfv5 -p113 mpfr_mul
-
-3.1.5-dev:
- mpfr_mul: 45 / 61.60 / 84
-
-4.0-dev:
- mpfr_mul: 30 / 32.15 / 36
-
-[NEWS] mention that speedup
-
-------------------------------------------------------------------------
-r10697 | zimmerma | 2016-07-29 13:42:10 +0000 (Fri, 29 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed bug in mpfr_sub1sp2
-
-------------------------------------------------------------------------
-r10696 | zimmerma | 2016-07-29 12:44:56 +0000 (Fri, 29 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] removed useless code
-
-------------------------------------------------------------------------
-r10695 | zimmerma | 2016-07-29 12:33:12 +0000 (Fri, 29 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] code simplification
-
-------------------------------------------------------------------------
-r10694 | zimmerma | 2016-07-29 12:21:15 +0000 (Fri, 29 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] another code simplification
-
-------------------------------------------------------------------------
-r10693 | zimmerma | 2016-07-29 12:16:38 +0000 (Fri, 29 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] code simplification
-
-------------------------------------------------------------------------
-r10692 | zimmerma | 2016-07-29 12:06:05 +0000 (Fri, 29 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] mention speedup in mpfr_add and mpfr_sub for 2 limbs
-
-------------------------------------------------------------------------
-r10691 | zimmerma | 2016-07-29 12:03:28 +0000 (Fri, 29 Jul 2016) | 10 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] faster code for 2 limbs. Results with mbench
-(numactl --physcpubind=0 ./mfv5 -p113 mpfr_sub):
-
-3.1.5-dev:
- mpfr_sub: 36 / 65.33 / 81
-
-4.0-dev:
- mpfr_sub: 24 / 33.00 / 36
-
-
-------------------------------------------------------------------------
-r10690 | zimmerma | 2016-07-28 15:09:21 +0000 (Thu, 28 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] fixed wrong test
-
-------------------------------------------------------------------------
-r10689 | vlefevre | 2016-07-28 13:50:35 +0000 (Thu, 28 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-[tests/reuse.c] Perform each reuse test on 1 to 5 limbs, with a random
-number of trailing bits. This allows one to test code specific to 1 or
-2 limbs.
-------------------------------------------------------------------------
-r10688 | zimmerma | 2016-07-28 11:39:10 +0000 (Thu, 28 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] fixed issues found with --enable-assert=full
-
-------------------------------------------------------------------------
-r10687 | zimmerma | 2016-07-27 19:53:02 +0000 (Wed, 27 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] new code to deal with p in [GMP_NUMB_BITS+1,2*GMP_NUMB_BITS-1]
-
-------------------------------------------------------------------------
-r10686 | vlefevre | 2016-07-27 15:05:21 +0000 (Wed, 27 Jul 2016) | 9 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Various minor improvements:
- * Added a MPFR_ASSERTN since mpfr_can_round is a function in the API.
- * Changed error variables to be more consistent with the context.
- * Removed unnecessary code (casts...) about the error: it came from
- round.c r1574, where types were different at that time.
- * Made err2 (the old err) local to a small block to make sure that it
- will not be used by mistake instead of err in future changes.
- * Made equivalent expressions appear under the same form:
- (rnd1 == rnd2 || rnd2 == MPFR_RNDN) && err - 2 >= prec
-------------------------------------------------------------------------
-r10685 | vlefevre | 2016-07-27 14:28:44 +0000 (Wed, 27 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Changed precision variables to be like SSA.
-------------------------------------------------------------------------
-r10684 | vlefevre | 2016-07-27 14:17:36 +0000 (Wed, 27 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Simplified code, making it more similar to code
-that has just been fixed.
-------------------------------------------------------------------------
-r10683 | vlefevre | 2016-07-27 14:08:48 +0000 (Wed, 27 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Removed useless parentheses.
-------------------------------------------------------------------------
-r10682 | vlefevre | 2016-07-27 14:05:16 +0000 (Wed, 27 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Added an assertion for "default:".
-------------------------------------------------------------------------
-r10681 | vlefevre | 2016-07-27 13:28:39 +0000 (Wed, 27 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] In test_simple, output p (which is variable),
-not prec (which is always 4).
-------------------------------------------------------------------------
-r10680 | zimmerma | 2016-07-27 13:21:14 +0000 (Wed, 27 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/round_prec.c
- M /trunk/tests/tcan_round.c
-
-[src/round_prec.c] fixed bug in mpfr_can_round for 2^e when rnd1=rnd2
- and err > prec + 1 (was returning 0 instead of 1)
-
-------------------------------------------------------------------------
-r10679 | vlefevre | 2016-07-27 09:30:13 +0000 (Wed, 27 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Added a simple test that fails as a consequence of
-r9883 (this could be observed on tzeta before r10678 in tgeneric.c).
-------------------------------------------------------------------------
-r10678 | vlefevre | 2016-07-27 02:36:08 +0000 (Wed, 27 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Improvement: When the result is exact, it can always
-be rounded (while mpfr_can_round can fail).
-------------------------------------------------------------------------
-r10677 | vlefevre | 2016-07-27 01:47:43 +0000 (Wed, 27 Jul 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Updated item about tzeta.
-------------------------------------------------------------------------
-r10676 | zimmerma | 2016-07-26 18:03:08 +0000 (Tue, 26 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] update (feedback from Bill Hart)
-
-------------------------------------------------------------------------
-r10675 | vlefevre | 2016-07-26 17:12:59 +0000 (Tue, 26 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
-------------------------------------------------------------------------
-r10674 | zimmerma | 2016-07-26 16:24:09 +0000 (Tue, 26 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-[mbench/mfv5-mpfr.cc] patch to allow using it with older versions of MPFR (say branch 3.1)
-
-------------------------------------------------------------------------
-r10673 | zimmerma | 2016-07-26 15:04:35 +0000 (Tue, 26 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] fixed mpn_sqrtrem2 for 32-bit limb
-
-------------------------------------------------------------------------
-r10672 | vlefevre | 2016-07-26 14:26:58 +0000 (Tue, 26 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tzeta.c
-
-[tests/tzeta.c] Added a FIXME so that r10667 can be reverted.
-------------------------------------------------------------------------
-r10671 | vlefevre | 2016-07-26 14:24:04 +0000 (Tue, 26 Jul 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Updated item about tzeta.
-------------------------------------------------------------------------
-r10670 | vlefevre | 2016-07-26 14:06:10 +0000 (Tue, 26 Jul 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added item about the fix of mpfr_can_round in r9883 and tzeta.
-------------------------------------------------------------------------
-r10669 | vlefevre | 2016-07-26 12:26:57 +0000 (Tue, 26 Jul 2016) | 7 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/sqrt.c
-
-New MPFR_GENERIC_ABI macro to test the generic code, not tied to a
-particular ABI (e.g. GMP_NUMB_BITS value), so that such code has a
-chance to be tested on current machines.
- * doc/README.dev: added brief documentation.
- * src/sqrt.c: enable mpfr_sqrt1 (optimization for one-limb precisions,
- currently when GMP_NUMB_BITS is 32 or 64) only when MPFR_GENERIC_ABI
- is not defined.
-------------------------------------------------------------------------
-r10668 | vlefevre | 2016-07-26 12:16:38 +0000 (Tue, 26 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c]
- * Changed mp_ptr to mpfr_limb_ptr.
- * Untabified and removed trailing spaces.
-------------------------------------------------------------------------
-r10667 | zimmerma | 2016-07-26 11:34:38 +0000 (Tue, 26 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-[tests/tzeta.c] reduced test time
-
-------------------------------------------------------------------------
-r10666 | zimmerma | 2016-07-26 11:30:00 +0000 (Tue, 26 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] adapted mpn_sqrtrem1 for GMP_NUMB_BITS=32
-
-------------------------------------------------------------------------
-r10665 | vlefevre | 2016-07-25 14:36:06 +0000 (Mon, 25 Jul 2016) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Corrected hint for mingw (use --build instead of --host).
-------------------------------------------------------------------------
-r10664 | zimmerma | 2016-07-25 13:22:25 +0000 (Mon, 25 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added hint for mingw
-
-------------------------------------------------------------------------
-r10662 | zimmerma | 2016-07-25 11:51:11 +0000 (Mon, 25 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] fixed temporary patch for 32-bit computers
-
-------------------------------------------------------------------------
-r10661 | vlefevre | 2016-07-25 10:01:24 +0000 (Mon, 25 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Typo in comment.
-------------------------------------------------------------------------
-r10660 | vlefevre | 2016-07-25 09:58:38 +0000 (Mon, 25 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Updated FIXME's. This is still incorrect with 32-bit limbs.
-------------------------------------------------------------------------
-r10659 | zimmerma | 2016-07-25 08:18:29 +0000 (Mon, 25 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] temporary fix for 32-bit limbs
-
-------------------------------------------------------------------------
-r10657 | vlefevre | 2016-07-22 15:17:56 +0000 (Fri, 22 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-[tests/tadd.c] Improved coding style and messages (do not mix up
-"inexact flag" and "ternary value"!).
-------------------------------------------------------------------------
-r10642 | vlefevre | 2016-07-22 10:34:40 +0000 (Fri, 22 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Added another FIXME comment for 32-bit machines.
-------------------------------------------------------------------------
-r10641 | vlefevre | 2016-07-22 10:32:47 +0000 (Fri, 22 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Added other FIXME comments for 32-bit machines.
-------------------------------------------------------------------------
-r10640 | vlefevre | 2016-07-20 15:26:40 +0000 (Wed, 20 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Added FIXME comments for 32-bit machines.
-------------------------------------------------------------------------
-r10639 | vlefevre | 2016-07-20 15:11:11 +0000 (Wed, 20 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] C90 compatibility.
-------------------------------------------------------------------------
-r10638 | vlefevre | 2016-07-20 14:47:22 +0000 (Wed, 20 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Fixed minor (mainly style) issues found by mpfrlint.
-------------------------------------------------------------------------
-r10637 | vlefevre | 2016-07-20 14:35:16 +0000 (Wed, 20 Jul 2016) | 5 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint]
- * Added --msg option to err-if-output function to optionally output
- a message explaining what to do in case of error.
- * Added this option to 3 err-if-output calls (errors with src/sqrt.c
- r10636).
-------------------------------------------------------------------------
-r10636 | zimmerma | 2016-07-20 13:57:32 +0000 (Wed, 20 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] new speedup for 1/2 and 1 limb
-
-------------------------------------------------------------------------
-r10632 | zimmerma | 2016-07-19 16:09:37 +0000 (Tue, 19 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] mention speedup in mpfr_sqrt
-
-------------------------------------------------------------------------
-r10631 | zimmerma | 2016-07-19 16:08:38 +0000 (Tue, 19 Jul 2016) | 4 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] faster code for small precision (on tomate.loria.fr, 45 cycles
-for prec=24 instead of 161 before, and 108 cycles for prec=53 instead of
-165 with 3.1.4)
-
-------------------------------------------------------------------------
-r10628 | zimmerma | 2016-07-18 08:10:24 +0000 (Mon, 18 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] removed duplicate prototype (cf revision 10625)
-
-------------------------------------------------------------------------
-r10627 | zimmerma | 2016-07-18 08:04:21 +0000 (Mon, 18 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] yet another speedup
-
-------------------------------------------------------------------------
-r10626 | zimmerma | 2016-07-18 07:19:29 +0000 (Mon, 18 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] small improvement
-
-------------------------------------------------------------------------
-r10625 | vlefevre | 2016-07-18 00:46:29 +0000 (Mon, 18 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Declare __gmpn_invert_limb if used (in order to avoid
-an error with g++ for the tests).
-------------------------------------------------------------------------
-r10624 | zimmerma | 2016-07-17 19:46:38 +0000 (Sun, 17 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] removed wrong assertions (and added comments to explain why)
-
-------------------------------------------------------------------------
-r10623 | vlefevre | 2016-07-15 12:57:18 +0000 (Fri, 15 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Added a FIXME (assertion failure).
-------------------------------------------------------------------------
-r10622 | vlefevre | 2016-07-15 12:43:03 +0000 (Fri, 15 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Untabified.
-------------------------------------------------------------------------
-r10621 | vlefevre | 2016-07-15 12:40:22 +0000 (Fri, 15 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Update concerning GMP internals.
-------------------------------------------------------------------------
-r10620 | zimmerma | 2016-07-15 10:07:06 +0000 (Fri, 15 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] implement use of __gmpn_rsblsh_n (disabled for now)
-
-------------------------------------------------------------------------
-r10619 | zimmerma | 2016-07-15 09:12:54 +0000 (Fri, 15 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/src/div.c
-
-[src/div.c] only use __gmpn_invert_limb with --enable-gmp-internals
-
-------------------------------------------------------------------------
-r10618 | vlefevre | 2016-07-14 20:54:00 +0000 (Thu, 14 Jul 2016) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tcmp_ld.c
-
-[src/mpfr-impl.h] Require <float.h> to be included in order to be
- able to use the "long double macros and typedef" part. Moved the
- IEEE_FLOAT128_MANT_DIG macro definition out of this part.
-[tests/tcmp_ld.c] Added missing #include <float.h>.
-------------------------------------------------------------------------
-r10617 | vlefevre | 2016-07-14 16:04:42 +0000 (Thu, 14 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Added a FIXME as __gmpn_invert_limb is a GMP internal.
-------------------------------------------------------------------------
-r10616 | zimmerma | 2016-07-14 14:56:00 +0000 (Thu, 14 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] speedup for precision < GMP_NUMB_BITS/2 (by almost a factor 2)
-
-------------------------------------------------------------------------
-r10615 | zimmerma | 2016-07-14 14:31:21 +0000 (Thu, 14 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] added comment
-
-------------------------------------------------------------------------
-r10614 | zimmerma | 2016-07-14 14:14:48 +0000 (Thu, 14 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mpfr-longlong.h
-
-[src/div.c] new faster code for 1 limb
-
-------------------------------------------------------------------------
-r10613 | zimmerma | 2016-07-14 07:44:07 +0000 (Thu, 14 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/cmp_ld.c
- M /trunk/src/get_ld.c
- M /trunk/src/set_ld.c
-
-[src/cmp_ld.c] include float.h so that MPFR_LDBL_MANT_DIG is correctly defined
-[src/get_ld.c,src/set_ld.c] added comment
-
-------------------------------------------------------------------------
-r10612 | zimmerma | 2016-07-13 15:03:21 +0000 (Wed, 13 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] removed obsolete comment since we no longer use __udiv_qrnnd_ld
-
-------------------------------------------------------------------------
-r10611 | zimmerma | 2016-07-13 14:22:34 +0000 (Wed, 13 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mpfr-longlong.h
-
-[src/div.c] changed __udiv_qrnnd_ld into __udiv_qrnnd_preinv (no dependency
- any more on long double)
-
-------------------------------------------------------------------------
-r10610 | vlefevre | 2016-07-09 07:38:22 +0000 (Sat, 09 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Do not use __udiv_qrnnd_ld for MPFR_LDBL_MANT_DIG > 64.
-Added a comment about __udiv_qrnnd_ld.
-------------------------------------------------------------------------
-r10609 | vlefevre | 2016-07-09 07:27:06 +0000 (Sat, 09 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] Typo.
-------------------------------------------------------------------------
-r10608 | vlefevre | 2016-07-09 07:24:15 +0000 (Sat, 09 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] C89 compatibility.
-------------------------------------------------------------------------
-r10607 | zimmerma | 2016-07-08 15:34:15 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] speedup using __udiv_qrnnd_ld
-
-------------------------------------------------------------------------
-r10606 | zimmerma | 2016-07-08 15:26:19 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] contributed __udiv_qrnnd_ld variant
-
-------------------------------------------------------------------------
-r10605 | zimmerma | 2016-07-08 13:50:01 +0000 (Fri, 08 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mul.c
-
-[src/div.c] new special code for 1 limb
-[src/mul.c] fixed corner case near underflow
-
-------------------------------------------------------------------------
-r10604 | zimmerma | 2016-07-08 13:10:12 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] fixed detection of rounding away
-
-------------------------------------------------------------------------
-r10603 | zimmerma | 2016-07-08 12:50:31 +0000 (Fri, 08 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul.c
-
-[src/mul.c] fixed underflow *after* rounding
-[tests/tmul.c] fixed a test
-
-------------------------------------------------------------------------
-r10602 | zimmerma | 2016-07-08 12:45:05 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] added underflow test for directed rounding too
-
-------------------------------------------------------------------------
-r10601 | zimmerma | 2016-07-08 12:24:28 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-[tests/tmul.c] added test for underflow after rounding (reveals bug in mul.c)
-
-------------------------------------------------------------------------
-r10600 | vlefevre | 2016-07-08 11:57:26 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Clarified comment (it's better not to mention underflow
-before rounding because it is not considered at all in MPFR).
-------------------------------------------------------------------------
-r10599 | zimmerma | 2016-07-08 11:36:15 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] added comment about underflow before/after rounding
-
-------------------------------------------------------------------------
-r10598 | zimmerma | 2016-07-08 08:27:48 +0000 (Fri, 08 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] changed MPFR_PREC into MPFR_GET_PREC
-
-------------------------------------------------------------------------
-r10597 | zimmerma | 2016-07-07 12:35:28 +0000 (Thu, 07 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] removed a call to MPFR_LIKELY which is unlikely...
-
-------------------------------------------------------------------------
-r10596 | vlefevre | 2016-07-07 11:36:33 +0000 (Thu, 07 Jul 2016) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] i.e. → e.g.
-------------------------------------------------------------------------
-r10595 | vlefevre | 2016-07-07 11:26:32 +0000 (Thu, 07 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
-------------------------------------------------------------------------
-r10594 | vlefevre | 2016-07-07 11:22:04 +0000 (Thu, 07 Jul 2016) | 4 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Added tests with EXP(b) < EXP(c), as there are
- no such restrictions on the exponents for mpfr_add1sp.
-[src/add1sp.c] Fixed mpfr_add1sp when b and c have different signs
- and EXP(b) < EXP(c).
-------------------------------------------------------------------------
-r10593 | zimmerma | 2016-07-07 11:08:04 +0000 (Thu, 07 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] speedup in mpfr_mul for one limb (minus 1 bit)
-
-------------------------------------------------------------------------
-r10592 | zimmerma | 2016-07-07 11:01:33 +0000 (Thu, 07 Jul 2016) | 9 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] speed-up of mpfr_mul for 1 limb (1 limb - 1 bit for the result).
- Results of mbench for 53 bits on Intel i5-4590:
-
-before:
- mpfr_mul: 33 / 37.12 / 42
-after:
- mpfr_mul: 18 / 20.63 / 24
-
-
-------------------------------------------------------------------------
-r10591 | vlefevre | 2016-07-07 10:23:34 +0000 (Thu, 07 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Corrected a comment as in practice, b and c do not
-necessarily have the same sign (when called by mpfr_sub).
-------------------------------------------------------------------------
-r10590 | zimmerma | 2016-07-07 08:15:00 +0000 (Thu, 07 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] added assertions
-
-------------------------------------------------------------------------
-r10589 | vlefevre | 2016-07-06 23:32:19 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tadd.c
-
-[tests/tadd.c] C++ compatibility.
-------------------------------------------------------------------------
-r10588 | vlefevre | 2016-07-06 23:29:08 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Do not use != 0 on predicate function.
-------------------------------------------------------------------------
-r10587 | zimmerma | 2016-07-06 20:03:26 +0000 (Wed, 06 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] removed special code for n = 1, now that we have a special
- function mpfr_sub1sp1
-
-------------------------------------------------------------------------
-r10586 | zimmerma | 2016-07-06 14:30:09 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-[tests/tadd.c] revert mpfr_add to test_add
-
-------------------------------------------------------------------------
-r10585 | zimmerma | 2016-07-06 14:16:37 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] fixed two bugs in mpfr_add1sp1
-
-------------------------------------------------------------------------
-r10584 | zimmerma | 2016-07-06 14:15:43 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] added one hard-coded test
-
-------------------------------------------------------------------------
-r10583 | zimmerma | 2016-07-06 14:07:34 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-[tests/tadd.c] last commit was wrong
-
-------------------------------------------------------------------------
-r10582 | zimmerma | 2016-07-06 13:54:52 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-improved check_overflow()
-
-------------------------------------------------------------------------
-r10581 | vlefevre | 2016-07-06 13:38:53 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] Fixed uninitialized emin for nbits == 1
-(thanks GCC's -Werror=maybe-uninitialized).
-------------------------------------------------------------------------
-r10580 | zimmerma | 2016-07-06 13:02:48 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] should now be ok for nbits = 1
-
-------------------------------------------------------------------------
-r10579 | vlefevre | 2016-07-06 12:30:34 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Change most mpfr_urandomb to mpfr_urandom in the tests?
-------------------------------------------------------------------------
-r10578 | vlefevre | 2016-07-06 12:16:04 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Improved an error message.
-------------------------------------------------------------------------
-r10577 | vlefevre | 2016-07-06 12:13:03 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Corrected English usage in error message.
-------------------------------------------------------------------------
-r10576 | vlefevre | 2016-07-06 12:03:37 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Small precision check: replaced 2 by MPFR_PREC_MIN.
-------------------------------------------------------------------------
-r10575 | zimmerma | 2016-07-06 11:47:20 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/urandom.c
-
-[src/urandom.c] fixed urandom for a precision of 1 bit
-
-------------------------------------------------------------------------
-r10574 | vlefevre | 2016-07-06 11:14:42 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] About random tests: avoid mpfr_urandomb!!!
-------------------------------------------------------------------------
-r10573 | vlefevre | 2016-07-06 11:09:59 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Use mpfr_urandom instead of mpfr_urandomb.
-This triggers an assertion failure in urandomb.c.
-------------------------------------------------------------------------
-r10572 | vlefevre | 2016-07-06 11:03:20 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Reordered variables. Removed a redundant test.
-------------------------------------------------------------------------
-r10571 | vlefevre | 2016-07-06 10:30:13 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] In check_random, check the flags too.
-------------------------------------------------------------------------
-r10570 | vlefevre | 2016-07-06 10:26:40 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-[tests/tadd1sp.c] Test negative numbers too.
-------------------------------------------------------------------------
-r10569 | vlefevre | 2016-07-06 10:15:17 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r10568 | zimmerma | 2016-07-06 09:02:12 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-added comment
-
-------------------------------------------------------------------------
-r10567 | zimmerma | 2016-07-06 08:58:06 +0000 (Wed, 06 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] removed special cases for n=1 in mpfr_add1sp, now that we have
- a special routine mpfr_add1sp1
-
-------------------------------------------------------------------------
-r10566 | zimmerma | 2016-07-06 07:31:04 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-[mbench/mfv5.cc] added RNDA and fixed typo
-
-------------------------------------------------------------------------
-r10565 | vlefevre | 2016-07-06 01:52:11 +0000 (Wed, 06 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
-
-The rounding mode can now be passed in argument with the -r option
-(patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r10564 | vlefevre | 2016-07-06 01:43:45 +0000 (Wed, 06 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-Removed MPFR_HOT_FUNCTION_ATTR for mpfr_add1sp1 and mpfr_sub1sp1.
-------------------------------------------------------------------------
-r10563 | vlefevre | 2016-07-05 19:15:18 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-[tests/tadd.c] Added FIXME comment: there are many tests, but the
-ternary value and the flags are not tested!
-------------------------------------------------------------------------
-r10562 | vlefevre | 2016-07-05 19:06:28 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sub1sp.c
-
-Functions mpfr_add1sp1 and mpfr_sub1sp1 are called only from the files
-where they are defined, thus can be static.
-------------------------------------------------------------------------
-r10561 | vlefevre | 2016-07-05 19:02:43 +0000 (Tue, 05 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Removed unused variable.
-------------------------------------------------------------------------
-r10560 | zimmerma | 2016-07-05 15:09:25 +0000 (Tue, 05 Jul 2016) | 9 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] new special code for 1 limb. In 3.1.4 we add with mfv5:
-
- mpfr_add: 30 / 49.30 / 90
-
-now we have:
-
- mpfr_add: 24 / 28.18 / 30
-
-
-------------------------------------------------------------------------
-r10559 | zimmerma | 2016-07-05 15:07:58 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] added comment
-
-------------------------------------------------------------------------
-r10558 | vlefevre | 2016-07-05 14:08:11 +0000 (Tue, 05 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Another improvement (suggested by Paul).
-------------------------------------------------------------------------
-r10557 | vlefevre | 2016-07-05 13:34:01 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Improved readability. With Debian's gcc-snapshot, this
-is equivalent, and with tcc, the generated code is shorter.
-------------------------------------------------------------------------
-r10556 | vlefevre | 2016-07-05 13:19:11 +0000 (Tue, 05 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] No longer depend on the representation of 0.
-------------------------------------------------------------------------
-r10555 | vlefevre | 2016-07-05 13:15:10 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Various improvements in the coding style: readability,
-consistency, GNU coding style.
-------------------------------------------------------------------------
-r10554 | zimmerma | 2016-07-05 12:38:42 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[README.dev] added documentation about mpfr-gfx
-
-------------------------------------------------------------------------
-r10553 | zimmerma | 2016-07-05 12:35:00 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mpfr-gfx.c
-
-[mbench/mpfr-gfx.c] change of syntax of gnuplot
-
-------------------------------------------------------------------------
-r10552 | zimmerma | 2016-07-05 12:07:48 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-[src/sub1sp.c] removed dead code, and improved coverage to 100%
-
-------------------------------------------------------------------------
-r10551 | vlefevre | 2016-07-05 09:45:01 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Removed incorrect MPFR_SET_EXP (the value was incorrect
-and the real MPFR_SET_EXP is done later, after underflow checking).
-------------------------------------------------------------------------
-r10550 | vlefevre | 2016-07-05 09:35:33 +0000 (Tue, 05 Jul 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-[tests/tsub1sp.c] Added missing printf arguments.
-------------------------------------------------------------------------
-r10548 | zimmerma | 2016-07-05 06:58:19 +0000 (Tue, 05 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] fixed some FIXMEs
-
-------------------------------------------------------------------------
-r10547 | vlefevre | 2016-07-04 23:05:29 +0000 (Mon, 04 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added a FIXME.
-------------------------------------------------------------------------
-r10546 | vlefevre | 2016-07-04 22:58:52 +0000 (Mon, 04 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Avoid a -Wmaybe-uninitialized warning from GCC
-by declaring a variable as initialized (the code is correct,
-GCC isn't just smart enough).
-------------------------------------------------------------------------
-r10545 | vlefevre | 2016-07-04 22:28:43 +0000 (Mon, 04 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r10544 | vlefevre | 2016-07-04 22:27:44 +0000 (Mon, 04 Jul 2016) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/tools/ck-clz_tab
- M /trunk/tools/mpfrlint
-
-Added tools/ck-clz_tab sh script to check the __clz_tab sizes
-(to detect issues like the one fixed in r10542). Run this script
-in dist-hook (Makefile.am) and in mpfrlint.
-------------------------------------------------------------------------
-r10543 | zimmerma | 2016-07-04 16:00:22 +0000 (Mon, 04 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-resolved a FIXME
-
-------------------------------------------------------------------------
-r10542 | zimmerma | 2016-07-04 14:50:53 +0000 (Mon, 04 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/mp_clz_tab.c
-
-fixed bug reported by <sisyphus1@optusnet.com.au>
-
-------------------------------------------------------------------------
-r10541 | vlefevre | 2016-07-04 13:39:10 +0000 (Mon, 04 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/exceptions.c
-
-[src/exceptions.c] Added a comment for mpfr_underflow: historical reason
-for the choice of the behavior with MPFR_RNDN.
-------------------------------------------------------------------------
-r10540 | zimmerma | 2016-07-04 11:09:26 +0000 (Mon, 04 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-code simplification (suggested by Vincent)
-
-------------------------------------------------------------------------
-r10539 | zimmerma | 2016-07-04 10:36:16 +0000 (Mon, 04 Jul 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sub1sp.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/tsub1sp.c
-
-speedup of mpfr_sub for same precision < GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r10538 | vlefevre | 2016-07-01 00:56:37 +0000 (Fri, 01 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Corrected indentation.
-------------------------------------------------------------------------
-r10537 | vlefevre | 2016-07-01 00:51:59 +0000 (Fri, 01 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Added comments.
-------------------------------------------------------------------------
-r10536 | vlefevre | 2016-07-01 00:47:19 +0000 (Fri, 01 Jul 2016) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Added comments.
-------------------------------------------------------------------------
-r10535 | zimmerma | 2016-06-30 07:57:08 +0000 (Thu, 30 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-optimize mpfr_add (and mpfr_sub, not yet finished) for 1 limb
-
-------------------------------------------------------------------------
-r10534 | vlefevre | 2016-06-29 12:17:49 +0000 (Wed, 29 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sub.c
-
-Renamed macro MPFR_EXP_LESS_P to MPFR_UBF_EXP_LESS_P.
-------------------------------------------------------------------------
-r10533 | vlefevre | 2016-06-29 12:16:16 +0000 (Wed, 29 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] Fixed bug introduced in r10530 when MPFR_WANT_ASSERT >= 2
-(--enable-assert=full).
-------------------------------------------------------------------------
-r10532 | vlefevre | 2016-06-29 12:11:44 +0000 (Wed, 29 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Re-added the MPFR_ASSERTD. The culprit seems to be r10530.
-------------------------------------------------------------------------
-r10531 | vlefevre | 2016-06-29 12:09:05 +0000 (Wed, 29 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Reverted r10529, which now fails. That's strange.
-------------------------------------------------------------------------
-r10530 | zimmerma | 2016-06-29 12:00:06 +0000 (Wed, 29 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/add.c
- M /trunk/src/add1sp.c
-
-mpfr_add1sp does not assume any more EXP(b) >= EXP(c)
-
-------------------------------------------------------------------------
-r10529 | vlefevre | 2016-06-29 11:49:30 +0000 (Wed, 29 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Added a MPFR_ASSERTD.
-------------------------------------------------------------------------
-r10528 | zimmerma | 2016-06-29 09:56:17 +0000 (Wed, 29 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-still faster code for 1 limb
-
-------------------------------------------------------------------------
-r10527 | zimmerma | 2016-06-29 09:14:57 +0000 (Wed, 29 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-merged r10522 from faithful branch + other special-code for 1 limb:
-the worst case for mpfr_add in 53 limbs decreases from 70 to 60 cycles
-
-------------------------------------------------------------------------
-r10525 | zimmerma | 2016-06-29 08:08:35 +0000 (Wed, 29 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
-
-added comment that EXP(b) >= EXP(c)
-
-------------------------------------------------------------------------
-r10523 | vlefevre | 2016-06-27 17:08:25 +0000 (Mon, 27 Jun 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Changed "hole" to "gap".
-------------------------------------------------------------------------
-r10519 | vlefevre | 2016-06-25 00:47:35 +0000 (Sat, 25 Jun 2016) | 1 line
-Changed paths:
- M /trunk/autogen.sh
-
-[autogen.sh] Treat autoreconf warnings as errors.
-------------------------------------------------------------------------
-r10518 | vlefevre | 2016-06-24 23:55:21 +0000 (Fri, 24 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Some improvements. In particular, avoid two successive
-calls to mpfr_cmpabs on the same arguments (the compiler doesn't know
-that it could optimize, as the function is not pure).
-------------------------------------------------------------------------
-r10509 | vlefevre | 2016-06-24 14:21:13 +0000 (Fri, 24 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-Cosmetic change (whitespace).
-------------------------------------------------------------------------
-r10506 | vlefevre | 2016-06-24 14:06:17 +0000 (Fri, 24 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/sub1sp.c
-
-[src/add1sp.c] For MPFR_WANT_ASSERT >= 2 (--enable-assert=full), test
- the flags too and replaced "mpfr_cmp" by "! mpfr_equal_p".
-[src/sub1sp.c] Make it similar to add1sp.c for MPFR_WANT_ASSERT >= 2.
-------------------------------------------------------------------------
-r10504 | vlefevre | 2016-06-24 13:44:21 +0000 (Fri, 24 Jun 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r10503 | vlefevre | 2016-06-24 12:17:25 +0000 (Fri, 24 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Made the code a bit more natural: change of pos to neg
-(an indirect consequence of the support of reused arguments). Some
-other minor related changes.
-------------------------------------------------------------------------
-r10501 | vlefevre | 2016-06-24 10:17:40 +0000 (Fri, 24 Jun 2016) | 5 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/sum.c
-
-The support of reused arguments in mpfr_sum is now complete, without
-any visible regressions in the timings (which are unfortunately too
-inaccurate to see anything).
- * doc/mpfr.texi: removed sentences about the previous limitation.
- * src/sum.c: removed the corresponding FIXME/TODO comment.
-------------------------------------------------------------------------
-r10500 | vlefevre | 2016-06-24 10:11:10 +0000 (Fri, 24 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Test the support of reused arguments.
-------------------------------------------------------------------------
-r10493 | vlefevre | 2016-06-23 11:17:51 +0000 (Thu, 23 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment for MPFR_RNDRAW_GEN about the use
-of the exponent field of the destination.
-------------------------------------------------------------------------
-r10477 | vlefevre | 2016-06-17 15:38:51 +0000 (Fri, 17 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Coding style: added spaces.
-------------------------------------------------------------------------
-r10476 | vlefevre | 2016-06-17 15:17:34 +0000 (Fri, 17 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Suggest the use the keyword "static" in array indices of
-parameter declarations with C99 compilers (6.7.5.3p7) when the
-pointer is expected not to be null.
-------------------------------------------------------------------------
-r10468 | vlefevre | 2016-06-15 09:46:29 +0000 (Wed, 15 Jun 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update (GCC trunk → GCC 5).
-------------------------------------------------------------------------
-r10467 | vlefevre | 2016-06-13 09:06:29 +0000 (Mon, 13 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Copy the significand to the destination after resolving
-the TMD in order to support reused arguments.
-------------------------------------------------------------------------
-r10466 | vlefevre | 2016-06-13 06:40:25 +0000 (Mon, 13 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Improved a comment.
-------------------------------------------------------------------------
-r10465 | vlefevre | 2016-06-10 13:58:34 +0000 (Fri, 10 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Corrected a MPFR_LOG_MSG modified in the latest change.
-------------------------------------------------------------------------
-r10464 | vlefevre | 2016-06-10 13:47:29 +0000 (Fri, 10 Jun 2016) | 5 lines
-Changed paths:
- M /trunk/doc/sum.txt
- M /trunk/src/sum.c
-
-[src/sum.c] For the future support of reused arguments: TMD resolution
-is now done in a specific TMD accumulator, allocated at the same time
-as the main accumulator. This TMD accumulator currently just takes at
-most 2 limbs in practice, so that's not a problem.
-[doc/sum.txt] Added TODO for things that will change.
-------------------------------------------------------------------------
-r10463 | vlefevre | 2016-06-09 14:30:32 +0000 (Thu, 09 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Define mpfr_ueexp_t (needed for r10462).
-------------------------------------------------------------------------
-r10462 | vlefevre | 2016-06-09 14:09:11 +0000 (Thu, 09 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Do not use "%zu" with printf (added in r10460).
-------------------------------------------------------------------------
-r10461 | vlefevre | 2016-06-09 12:41:16 +0000 (Thu, 09 Jun 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Document environment variables that affect the tests.
-------------------------------------------------------------------------
-r10460 | vlefevre | 2016-06-09 12:15:14 +0000 (Thu, 09 Jun 2016) | 6 lines
-Changed paths:
- M /trunk/tests/memory.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tversion.c
-
-Other changes concerning the memory limit for the tests.
- * Export the tests_memory_limit variable so that it can be accessed in
- test programs (e.g. read by tversion as mentioned below, or modified
- by a test program when executed with particular arguments).
- * In tversion, print a warning when the memory limit has been modified
- (with the MPFR_TESTS_MEMORY_LIMIT environment variable).
-------------------------------------------------------------------------
-r10459 | vlefevre | 2016-06-09 11:51:52 +0000 (Thu, 09 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-[tests/memory.c] The MPFR_TESTS_MEMORY_LIMIT environment variable can
-now contain an integer specifying the memory limit for the tests, or 0
-for unlimited, the default still being 2^22 = 4 MB.
-------------------------------------------------------------------------
-r10457 | vlefevre | 2016-06-08 12:28:43 +0000 (Wed, 08 Jun 2016) | 4 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Improved check3:
- * Also do the tests with output precision MPFR_PREC_MIN;
- this completes the value coverage for tsum.
- * Also compare the flags.
-------------------------------------------------------------------------
-r10456 | vlefevre | 2016-06-08 12:06:57 +0000 (Wed, 08 Jun 2016) | 4 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-Value coverage for tsum: After r9984 to differentiate sq > MPFR_PREC_MIN
-and sq == MPFR_PREC_MIN, 42 tests were not done for sq == MPFR_PREC_MIN
-on a 64-bit machine. In the check4 test, changed a 2 to MPFR_PREC_MIN.
-This reduces to 12 tests that are not done.
-------------------------------------------------------------------------
-r10454 | vlefevre | 2016-06-07 17:27:04 +0000 (Tue, 07 Jun 2016) | 18 lines
-Changed paths:
- M /trunk
- M /trunk/src/Makefile.am
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/cmp2.c
- M /trunk/src/fmma.c
- M /trunk/src/log_ui.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/print_raw.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- A /trunk/src/ubf.c (from /branches/ubf/src/ubf.c:10453)
- M /trunk/src/vasprintf.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsub1sp.c
-
-Merged the "ubf" branch into the trunk:
- * limited implementation of "unbounded floats" (numbers with a mpz_t
- exponent), which could be completed in the future, in particular to
- handle intermediate overflows/underflows in polynomial evaluation;
- * rewrote mpfr_fmma and mpfr_fmms to use them, and added tests;
- * restored the MPFR 3.1- exponent range for compatibility;
- * restored some tests that were based on this exponent range.
-The choice for the UBF implementation was to use a compatible structure:
-the same as the mpfr_t one, with an additional field at the end, used
-only when the exponent field _mpfr_exp has some special value. Thus some
-functions such as addition and subtraction just needed minor changes to
-support UBF, and no code was duplicated. This means that on MPFR numbers
-(the usual case), one has a few more tests than before, but with known
-branch probabilities. In practice, this should not be visible, at least
-in most applications. This was more or less confirmed by timings (even
-with many additions/subtractions in low precision, this was difficult
-to say, as timings were influenced by various parameters that we cannot
-control).
-------------------------------------------------------------------------
-r10452 | vlefevre | 2016-06-07 10:22:03 +0000 (Tue, 07 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tools/mbench/Makefile
-
-[tools/mbench/Makefile] Added multiarch support for GMP.
-------------------------------------------------------------------------
-r10449 | vlefevre | 2016-06-07 07:26:52 +0000 (Tue, 07 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Removed tests of native %'g and %'f (from r8292)
-as the ' flag is an extension from Single UNIX Specification and
-in particular, they fail with MinGW under Wine.
-------------------------------------------------------------------------
-r10447 | vlefevre | 2016-06-07 00:44:17 +0000 (Tue, 07 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-[tests/tlgamma.c] Typo in comment.
-------------------------------------------------------------------------
-r10446 | vlefevre | 2016-06-07 00:23:13 +0000 (Tue, 07 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/uceil_log2.c
-
-[src/uceil_log2.c] Added a comment. Cosmetic changes.
-------------------------------------------------------------------------
-r10445 | vlefevre | 2016-06-07 00:18:47 +0000 (Tue, 07 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-[tests/tlgamma.c] Corrected updated comment from r10444.
-------------------------------------------------------------------------
-r10444 | vlefevre | 2016-06-06 23:45:31 +0000 (Mon, 06 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-[tests/tlgamma.c] Updated comment of the test added in r10442.
-------------------------------------------------------------------------
-r10443 | vlefevre | 2016-06-06 23:43:44 +0000 (Mon, 06 Jun 2016) | 7 lines
-Changed paths:
- M /trunk/src/uceil_log2.c
-
-[src/uceil_log2.c] Correction in __gmpfr_ceil_log2, avoiding an
-incorrect result with tcc: x.s.exp is declared as an unsigned
-bit-field, so that tcc considers that x.s.exp - 1023 is unsigned.
-However, since all the values of x.s.exp are representable in an
-int, according to the integer promotion rules, x.s.exp should be
-converted to an int, so that the subtraction is signed. So, this
-appears to be a bug in tcc.
-------------------------------------------------------------------------
-r10442 | vlefevre | 2016-06-06 23:09:17 +0000 (Mon, 06 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-[tests/tlgamma.c] Added a test causing a "too much memory" error with
-tcc 0.9.27~git20151227.933c223-1 (there's already one in special(),
-but this one is a simpler, standalone test).
-------------------------------------------------------------------------
-r10440 | vlefevre | 2016-06-06 16:19:21 +0000 (Mon, 06 Jun 2016) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] When checking if __float128 is available, we now also
-check whether C99 constants (in particular the __float128 ones, such
-as 0x1.fp+16383q) are supported since this is now required with the
-__float128 support.
-------------------------------------------------------------------------
-r10435 | vlefevre | 2016-06-06 12:15:56 +0000 (Mon, 06 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[src/add1.c] Simplified code: removed fb = 1 since it was already 1
-in the "if (fb > 0)" branch.
-------------------------------------------------------------------------
-r10434 | vlefevre | 2016-06-06 10:59:02 +0000 (Mon, 06 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/src/set_float128.c
-
-[src/set_float128.c] Fix: removed the divisions by zero, replacing them
-by comparisons with the maximum finite binary128 number. Changes to be
-similar to the handling of infinities in "src/set_ld.c".
-------------------------------------------------------------------------
-r10433 | vlefevre | 2016-06-06 10:07:47 +0000 (Mon, 06 Jun 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Faithful rounding: small correction.
-------------------------------------------------------------------------
-r10432 | vlefevre | 2016-06-06 09:28:17 +0000 (Mon, 06 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added "faithful rounding", with information about its definition
-and implementation.
-------------------------------------------------------------------------
-r10431 | vlefevre | 2016-06-03 15:51:24 +0000 (Fri, 03 Jun 2016) | 1 line
-Changed paths:
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
-
-[src/{fits_intmax.c,fits_s.h}] In comments, fit → fits.
-------------------------------------------------------------------------
-r10430 | vlefevre | 2016-06-03 15:30:53 +0000 (Fri, 03 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/src/set_float128.c
-
-[src/set_float128.c] Added FIXME comment: The mpfr_set_float128 code
-generates a divide-by-zero exception. Suggest a solution.
-Note: this is detected with "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".
-------------------------------------------------------------------------
-r10429 | vlefevre | 2016-06-03 15:02:05 +0000 (Fri, 03 Jun 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tset_float128.c
-
-[tests/tset_float128.c] Take into account failures in division by 0
-and absence of signed zeros. Also fixed the code checking the sign
-of 0 (mpfr_sgn cannot be used for that since it returns 0 for ±0).
-------------------------------------------------------------------------
-r10426 | vlefevre | 2016-06-03 14:19:33 +0000 (Fri, 03 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Added some assertions and fixed a 32-bit shift count
-when GMP_NUMB_BITS == 32.
-------------------------------------------------------------------------
-r10424 | vlefevre | 2016-06-03 13:54:29 +0000 (Fri, 03 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_float128.c
-
-[tests/tset_float128.c] C++ compatibility.
-------------------------------------------------------------------------
-r10423 | vlefevre | 2016-06-03 13:50:17 +0000 (Fri, 03 Jun 2016) | 1 line
-Changed paths:
- M /trunk/tests/tlog.c
-
-[tests/tlog.c] Added a cast to mpfr_rnd_t for C++ compatibility.
-------------------------------------------------------------------------
-r10417 | zimmerma | 2016-06-03 12:26:21 +0000 (Fri, 03 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added reference for Lambert W function
-
-------------------------------------------------------------------------
-r10396 | vlefevre | 2016-06-02 14:34:35 +0000 (Thu, 02 Jun 2016) | 2 lines
-Changed paths:
- M /trunk/src/exceptions.c
-
-[src/exceptions.c] Fixed the MPFR_LOG_FUNC in mpfr_underflow and
-mpfr_overflow (x is not an input in these functions).
-------------------------------------------------------------------------
-r10395 | vlefevre | 2016-06-02 14:26:51 +0000 (Thu, 02 Jun 2016) | 4 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] In r10347, logging was introduced instead of #ifdef DEBUG
-and printf. Removed 2 MPFR_LOG_VAR, as the variable is not normalized
-yet. Re-added #ifdef DEBUG for the MPFR_LOG_MSG's since this may be
-too low level and not much useful except in case of bugs.
-------------------------------------------------------------------------
-r10390 | zimmerma | 2016-05-30 14:06:51 +0000 (Mon, 30 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-fixed typos
-
-------------------------------------------------------------------------
-r10386 | vlefevre | 2016-05-30 07:53:27 +0000 (Mon, 30 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added comments for check_max_almosteven (latest
-test case, added in r10383).
-------------------------------------------------------------------------
-r10383 | vlefevre | 2016-05-29 18:40:42 +0000 (Sun, 29 May 2016) | 10 lines
-Changed paths:
- M /trunk/src/sub1.c
- M /trunk/tests/tsub.c
-
-[src/sub1.c] Fixed bug in mpfr_sub1 (real subtraction a = b - c, with
- |b| > |c|): In MPFR_RNDN (round-to-nearest mode), when
- * |b| is the midpoint between the maximum finite number in the
- precision of a and 2^emax (the maximum finite number + 1 ulp),
- which is possible only if PREC(b) > PREC(a),
- * c is small enough (i.e. no overlap with a and b),
- mpfr_sub1 returns an infinity (with overflow flag set) instead of
- ± the maximum number (no overflow). The cause is that an overflow
- is generated too early, in an intermediate rounding.
-[tests/tsub.c] Added test cases.
-------------------------------------------------------------------------
-r10378 | vlefevre | 2016-05-25 20:16:08 +0000 (Wed, 25 May 2016) | 1 line
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Changes for ISO C90 compatibility.
-------------------------------------------------------------------------
-r10377 | vlefevre | 2016-05-25 20:13:30 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] For _MPFR_IEEE_FLOATS, changed bit-field type from
-unsigned long, which is implementation-defined, to unsigned int.
-------------------------------------------------------------------------
-r10376 | vlefevre | 2016-05-25 19:46:12 +0000 (Wed, 25 May 2016) | 1 line
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Added an assertion.
-------------------------------------------------------------------------
-r10375 | vlefevre | 2016-05-25 19:44:17 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed bug introduced in r10327, giving:
-error: ISO C does not allow extra ';' outside of a function [-Wpedantic]
-------------------------------------------------------------------------
-r10374 | zimmerma | 2016-05-25 18:39:24 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/log_ui.c
-
-improved mpfr_log_ui
-
-------------------------------------------------------------------------
-r10373 | zimmerma | 2016-05-25 17:26:55 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-added comment
-
-------------------------------------------------------------------------
-r10372 | vlefevre | 2016-05-25 11:46:34 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] mpfr_ai efficiency: also mention mpfr.texi (the issue with large
-arguments has always been documented).
-------------------------------------------------------------------------
-r10371 | vlefevre | 2016-05-25 11:42:32 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] mpfr_ai efficiency: mention tests/tai.c (the REDUCE_EMAX was
-added in r6734).
-------------------------------------------------------------------------
-r10370 | zimmerma | 2016-05-25 09:59:51 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item about efficiency of mpfr_ai for large arguments
-
-------------------------------------------------------------------------
-r10369 | vlefevre | 2016-05-25 07:57:59 +0000 (Wed, 25 May 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Also clarified the use of "configure".
-------------------------------------------------------------------------
-r10368 | vlefevre | 2016-05-25 07:55:48 +0000 (Wed, 25 May 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Clarified the use of "autogen.sh".
-------------------------------------------------------------------------
-r10367 | zimmerma | 2016-05-25 07:32:01 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-use autogen.sh
-
-------------------------------------------------------------------------
-r10366 | zimmerma | 2016-05-25 07:03:11 +0000 (Wed, 25 May 2016) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-added libtoolize (needed for AX_PTHREAD)
-
-------------------------------------------------------------------------
-r10365 | vlefevre | 2016-05-24 23:44:24 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/tests/tlog_ui.c
-
-[tests/tlog_ui.c] Improved a test function.
-------------------------------------------------------------------------
-r10364 | vlefevre | 2016-05-24 23:01:42 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed the use of m4_pattern_forbid: the argument must
-be quoted, otherwise the macro is expanded when defined.
-------------------------------------------------------------------------
-r10363 | zimmerma | 2016-05-24 21:37:31 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/log_ui.c
-
-small improvements to log_ui (still slower than log for large precision)
-
-------------------------------------------------------------------------
-r10362 | vlefevre | 2016-05-24 20:47:59 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Detect whether the AX_PTHREAD macro is left unexpanded.
-------------------------------------------------------------------------
-r10361 | zimmerma | 2016-05-24 19:27:42 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_log2.c
-
-use rounding to nearest by default in "tconst_log2 prec"
-
-------------------------------------------------------------------------
-r10360 | zimmerma | 2016-05-24 19:02:07 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-minor changes to allow ./tlog xxx prec
-
-------------------------------------------------------------------------
-r10359 | zimmerma | 2016-05-24 18:46:35 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tlog_ui.c
-
-added generic tests for mpfr_log_ui + compare with mpfr_log
-
-------------------------------------------------------------------------
-r10356 | vlefevre | 2016-05-24 15:48:56 +0000 (Tue, 24 May 2016) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/random_deviate.h
- M /trunk/tests/mpfr-test.h
-
-Removed _MPFR_PROTO with the following Perl script on the .h files.
- while (<>) { if ($c) { die if /_MPFR_PROTO/; s/^( {$c}) */$1/;
- s/\) *\)/)/ and undef $c } elsif (s/^(.*)(_MPFR_PROTO *\()\(/$1(/)
- { s/\) *\)/)/ or $c = 1 + length $1 } print }
-------------------------------------------------------------------------
-r10355 | vlefevre | 2016-05-24 15:26:21 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Re-added AM_PROG_AR in case Microsoft lib.exe is used
-(without this, "automake --warnings=all" gives a warning).
-------------------------------------------------------------------------
-r10354 | vlefevre | 2016-05-24 15:13:15 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Replaced the obsolete ACX_PTHREAD by AX_PTHREAD
-(done with "autoupdate acinclude.m4").
-------------------------------------------------------------------------
-r10353 | vlefevre | 2016-05-24 15:03:30 +0000 (Tue, 24 May 2016) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Moved LT_INIT near the top for --enable-lto, and removed
-AM_PROG_AR (no longer needed as done by LT_INIT) and AC_PROG_RANLIB
-(obsoleted by LT_INIT).
-------------------------------------------------------------------------
-r10352 | vlefevre | 2016-05-24 14:41:52 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/src/ieee_floats.h
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-Avoid some warnings with "gcc -Wundef".
-------------------------------------------------------------------------
-r10351 | vlefevre | 2016-05-24 14:27:06 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Removed a FIXME fixed in r4482.
-------------------------------------------------------------------------
-r10349 | vlefevre | 2016-05-24 13:58:57 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] Update from GMP 6.1.0.
-------------------------------------------------------------------------
-r10348 | vlefevre | 2016-05-24 12:55:15 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-cvers.h
-
-[src/mpfr-cvers.h] Fixed typo in a macro (thanks to Patrick Pélissier).
-------------------------------------------------------------------------
-r10347 | vlefevre | 2016-05-24 12:47:22 +0000 (Tue, 24 May 2016) | 4 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Various minor improvements:
- * Some changes related to the exponents and diff_exp.
- * Coding style + use of IS_POW2.
- * Use logging instead of #ifdef DEBUG and printf.
-------------------------------------------------------------------------
-r10346 | zimmerma | 2016-05-24 12:26:13 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/cmp2.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_ui.c
- M /trunk/src/rint.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/set.c
- M /trunk/src/set_prec.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
-
-removed too aggressive MPFR_LIKELY/MPFR_UNLIKELY (see README.dev)
-
-------------------------------------------------------------------------
-r10345 | vlefevre | 2016-05-24 10:47:12 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-Added optional LTO support (from a patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r10344 | vlefevre | 2016-05-24 10:27:33 +0000 (Tue, 24 May 2016) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/free_cache.c
-
-Corrected mpfr_free_cache behavior when WANT_SHARED_CACHE is defined
-to make it consistent with the behavior when WANT_SHARED_CACHE is not
-defined (patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r10342 | vlefevre | 2016-05-24 10:00:00 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Correction on r10338: use src_fopen instead of fopen
-and check fp (just like with FILE_NAME_R).
-------------------------------------------------------------------------
-r10339 | zimmerma | 2016-05-24 09:19:44 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/mpfrtest2.dat
-
-added new (read-only) test file for mpfr_fpif_import
-
-------------------------------------------------------------------------
-r10338 | zimmerma | 2016-05-24 09:18:36 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/tests/tfpif.c
-
-added tests for mpfr_fpif_import with precision > MPFR_PREC_MAX
-
-------------------------------------------------------------------------
-r10336 | vlefevre | 2016-05-24 08:19:17 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-Updated NEWS about shared caches.
-------------------------------------------------------------------------
-r10335 | vlefevre | 2016-05-24 08:17:02 +0000 (Tue, 24 May 2016) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/NEWS
- M /trunk/VERSION
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/mpfr.h
- M /trunk/src/version.c
-
-MPFR 3.2(.x) → 4.0(.x)
-------------------------------------------------------------------------
-r10334 | vlefevre | 2016-05-24 00:31:26 +0000 (Tue, 24 May 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS] New function mpfr_buildopt_sharedcache_p in MPFR 3.2.
-[doc/mpfr.texi] New function mpfr_buildopt_sharedcache_p. Minor changes.
-------------------------------------------------------------------------
-r10333 | vlefevre | 2016-05-23 23:52:58 +0000 (Mon, 23 May 2016) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] About the MPFR_DECL_INIT_CACHE macro:
- * Added a FIXME comment about a possible warning due to a missing
- field initializer; suggest 2 possible solutions.
- * Improved code readability.
-------------------------------------------------------------------------
-r10332 | vlefevre | 2016-05-23 22:41:26 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/src/free_cache.c
-
-[src/free_cache.c] Avoid duplicated source code for maintainability.
-------------------------------------------------------------------------
-r10331 | vlefevre | 2016-05-23 22:27:29 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrections about caches.
-------------------------------------------------------------------------
-r10330 | vlefevre | 2016-05-23 22:13:44 +0000 (Mon, 23 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-thread.h
-
-[src/mpfr-thread.h] For #error, use a string literal as a single
-preprocessing-token.
-------------------------------------------------------------------------
-r10329 | vlefevre | 2016-05-23 22:06:24 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-thread.h
-
-[src/mpfr-thread.h] Coding style.
-------------------------------------------------------------------------
-r10328 | vlefevre | 2016-05-23 22:02:48 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/src/cache.c
- M /trunk/src/free_cache.c
- M /trunk/tests/tconst_pi.c
-
-Minor comment & coding style corrections on r10327.
-------------------------------------------------------------------------
-r10327 | vlefevre | 2016-05-23 16:12:32 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/doc/mpfr.texi
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/tests/memory.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tests.c
-
-Added shared cache support (from a patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r10326 | zimmerma | 2016-05-23 15:55:42 +0000 (Mon, 23 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-added tests for mpfr_fpif in precision 1
-
-------------------------------------------------------------------------
-r10321 | vlefevre | 2016-05-23 14:17:58 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/src/gmp_op.c
- M /trunk/src/pow_z.c
- M /trunk/src/set_f.c
- M /trunk/src/set_q.c
- M /trunk/src/set_z_exp.c
-
-ABS(SIZ(x)) → ABSIZ(x)
-------------------------------------------------------------------------
-r10319 | zimmerma | 2016-05-23 13:08:04 +0000 (Mon, 23 May 2016) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-redefine mpfr_init_set_xxx with mpz_t pool, otherwise the pool is not
-used for those calls
-
-------------------------------------------------------------------------
-r10313 | zimmerma | 2016-05-23 09:59:58 +0000 (Mon, 23 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-added comment about MPFR_MY_MPZ_INIT
-
-------------------------------------------------------------------------
-r10312 | vlefevre | 2016-05-23 09:54:47 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.
-------------------------------------------------------------------------
-r10311 | vlefevre | 2016-05-23 09:46:33 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Code simplification.
-------------------------------------------------------------------------
-r10310 | vlefevre | 2016-05-23 09:36:14 +0000 (Mon, 23 May 2016) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.
-------------------------------------------------------------------------
-r10309 | vlefevre | 2016-05-23 08:28:07 +0000 (Mon, 23 May 2016) | 5 lines
-Changed paths:
- M /trunk/src/print_raw.c
-
-[src/print_raw.c] Changes for mpfr_print_binary / mpfr_dump:
- * Support out-of-range exponents as this function is mainly for
- debugging purpose (TODO: add some warning for such exponents).
- See: https://sympa.inria.fr/sympa/arc/mpfr/2016-01/msg00061.html
- * Support _MPFR_EXP_FORMAT == 4 (format used for testing).
-------------------------------------------------------------------------
-r10308 | vlefevre | 2016-05-22 22:27:26 +0000 (Sun, 22 May 2016) | 3 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/BUGS
- M /trunk/COPYING
- M /trunk/COPYING.LESSER
- M /trunk/ChangeLog
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/VERSION
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/README.dev
- M /trunk/doc/algorithms.bib
- M /trunk/doc/algorithms.tex
- M /trunk/doc/faq.xsl
- M /trunk/doc/fdl.texi
- M /trunk/doc/mpfr.texi
- M /trunk/doc/update-faq
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/other/cputime.h
- M /trunk/other/div-short.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/RRTest.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/inp_str.dat
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/check_inits_clears
- M /trunk/tools/coverage
- M /trunk/tools/mbench/generate.c
- M /trunk/tools/mbench/mfv5.h
- M /trunk/tools/mbench/mpfr-gfx.c
- M /trunk/tools/mbench/mpfr-v4.c
- M /trunk/tools/mbench/mpfr-v6.c
- M /trunk/tools/mbench/timp.h
- M /trunk/tools/update-version
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Removed svn:keywords properties: they are not used, we do not plan
-to use them (such a feature does not exist in other VCS), and they
-may break things if used by mistake.
-------------------------------------------------------------------------
-r10307 | vlefevre | 2016-05-22 22:06:00 +0000 (Sun, 22 May 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Corrections and improvements in random_test.
-------------------------------------------------------------------------
-r10306 | vlefevre | 2016-05-22 21:55:56 +0000 (Sun, 22 May 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Replaced mpfr_cmp by the stronger mpfr_equal_p.
-------------------------------------------------------------------------
-r10303 | vlefevre | 2016-05-22 09:58:51 +0000 (Sun, 22 May 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tsub_ui.c
-
-[tests]
- * tadd_ui.c: clean-up (a boolean test doesn't need "!= 0").
- * tsub_ui.c: check that the NaN flag is set on NaN.
-------------------------------------------------------------------------
-r10302 | vlefevre | 2016-05-22 09:31:34 +0000 (Sun, 22 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added IS_SIGNED macro to check whether an integer type
-(after integer promotion) is signed; and use it for MPFR_EXP_IN_RANGE.
-------------------------------------------------------------------------
-r10301 | vlefevre | 2016-05-20 14:26:39 +0000 (Fri, 20 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/ui_sub.c
-
-[src/ui_sub.c] Improved code style and assertions, making mpfr_ui_sub
-more like mpfr_add_ui and mpfr_sub_ui. Added comments.
-------------------------------------------------------------------------
-r10300 | vlefevre | 2016-05-20 14:17:57 +0000 (Fri, 20 May 2016) | 2 lines
-Changed paths:
- M /trunk/src/add_ui.c
- M /trunk/src/sub_ui.c
-
-Partly rewrote mpfr_add_ui and mpfr_sub_ui (more similar to the
-mpfr_ui_sub code), solving the failures.
-------------------------------------------------------------------------
-r10299 | vlefevre | 2016-05-20 11:43:07 +0000 (Fri, 20 May 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Check NaN argument, mainly in order to check the NaN
-flag when the result is NaN (almost all cases). This makes both tadd_ui
-(ignoring the new test done in r10298) and tsub_ui fail.
-------------------------------------------------------------------------
-r10298 | zimmerma | 2016-05-19 15:52:25 +0000 (Thu, 19 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
-
-added test case for bug reported by Rob (sisyphus1@optusnet.com.au)
-
-------------------------------------------------------------------------
-r10297 | vlefevre | 2016-05-19 14:34:44 +0000 (Thu, 19 May 2016) | 1 line
-Changed paths:
- M /trunk/src/fmma.c
-
-[src/fmma.c] Added FIXME comments.
-------------------------------------------------------------------------
-r10296 | vlefevre | 2016-05-18 15:31:02 +0000 (Wed, 18 May 2016) | 1 line
-Changed paths:
- M /trunk/src/check.c
- M /trunk/src/fpif.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/urandomb.c
-
-Added MPFR_EXP_IN_RANGE macro, and replaced some tests to use it.
-------------------------------------------------------------------------
-r10295 | vlefevre | 2016-05-18 15:26:17 +0000 (Wed, 18 May 2016) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Minor code simplification.
-------------------------------------------------------------------------
-r10294 | vlefevre | 2016-05-17 23:34:48 +0000 (Tue, 17 May 2016) | 4 lines
-Changed paths:
- M /trunk/src/exp.c
- M /trunk/src/get_str.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/pow.c
-
-Improved code related to mpfr_set_exp_t:
- * Define MPFR_EXP_LIMB_SIZE macro (size of mpfr_exp_t in limbs)
- and use it.
- * src/pow.c: replaced a mpfr_init2 by MPFR_TMP_INIT1.
-------------------------------------------------------------------------
-r10293 | zimmerma | 2016-05-17 09:40:21 +0000 (Tue, 17 May 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-added comment about printing decimal floats
-
-------------------------------------------------------------------------
-r10292 | vlefevre | 2016-05-13 15:24:50 +0000 (Fri, 13 May 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Minor improvements.
-------------------------------------------------------------------------
-r10291 | vlefevre | 2016-05-12 00:29:43 +0000 (Thu, 12 May 2016) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added a comment about GMP CC/CFLAGS detection.
-------------------------------------------------------------------------
-r10290 | vlefevre | 2016-05-12 00:16:35 +0000 (Thu, 12 May 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Better GMP CC/CFLAGS detection (based on a patch by
-Patrick Pélissier).
-------------------------------------------------------------------------
-r10289 | zimmerma | 2016-05-11 14:38:59 +0000 (Wed, 11 May 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-add -P option to cpp when detecting CC/CFLAGS in gmp.h (workaround for gcc-5)
-
-------------------------------------------------------------------------
-r10288 | vlefevre | 2016-05-04 15:54:30 +0000 (Wed, 04 May 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r10286 | vlefevre | 2016-05-04 14:14:23 +0000 (Wed, 04 May 2016) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/doc/Makefile.am
-
-[doc/Makefile.am] Reverted the change done in r10283 as the mpfr.info
- file was always rebuilt.
-[Makefile.am] Execute check-typography from dist-hook instead.
-------------------------------------------------------------------------
-r10285 | vlefevre | 2016-05-04 14:01:31 +0000 (Wed, 04 May 2016) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/doc/check-typography
-
-[Makefile.am] Add doc/check-typography to the tarball as it is needed
- to rebuild the mpfr.info file if the mpfr.texi file is modified.
-[doc/check-typography] Added copyright notice and explanations.
-------------------------------------------------------------------------
-r10284 | vlefevre | 2016-05-04 13:44:59 +0000 (Wed, 04 May 2016) | 1 line
-Changed paths:
- M /trunk/doc/check-typography
-
-[doc/check-typography] Removed useless parentheses.
-------------------------------------------------------------------------
-r10283 | vlefevre | 2016-05-04 13:41:11 +0000 (Wed, 04 May 2016) | 10 lines
-Changed paths:
- M /trunk/doc/Makefile.am
- A /trunk/doc/check-typography
- M /trunk/doc/mpfr.texi
- M /trunk/tools/mpfrlint
-
-Detect typography ambiguities in doc/mpfr.texi ASAP: to avoid errors
-due to implicit rules, it is better to explicitly make clear whether
-a punctuation mark ends or does not end a sentence.
- * Added doc/check-typography sh script to detect such typography
- ambiguities.
- * doc/Makefile.am: automatically execute this script before mpfr.info
- is rebuilt; fail with explanations in case there are ambiguities.
- * doc/mpfr.texi: avoid typography ambiguities.
- * tools/mpfrlint: replaced the old typography check by a call to the
- check-typography script (which does more checks).
-------------------------------------------------------------------------
-r10282 | vlefevre | 2016-05-04 11:20:28 +0000 (Wed, 04 May 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typographic correction on the latest addition.
-------------------------------------------------------------------------
-r10281 | vlefevre | 2016-05-04 11:17:11 +0000 (Wed, 04 May 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] The MPFR_ and mpfr_ prefixes are reserved for MPFR.
-------------------------------------------------------------------------
-r10278 | vlefevre | 2016-04-25 13:11:11 +0000 (Mon, 25 Apr 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Clean-up.
-------------------------------------------------------------------------
-r10276 | vlefevre | 2016-04-21 12:36:10 +0000 (Thu, 21 Apr 2016) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved the GMP CC/CFLAGS detection: the test for $cpp
-was not checking whether gmp.h could actually be included, so that the
-code was outputting "yes" even when gmp.h was not installed.
-------------------------------------------------------------------------
-r10273 | vlefevre | 2016-04-21 09:23:27 +0000 (Thu, 21 Apr 2016) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added: Limited pkg-config support.
-------------------------------------------------------------------------
-r10272 | vlefevre | 2016-04-21 08:37:29 +0000 (Thu, 21 Apr 2016) | 1 line
-Changed paths:
- M /trunk
- M /trunk/Makefile.am
- M /trunk/README
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- A /trunk/mpfr.pc.in
-
-Added pkg-config support (patch from Kip Warner + some changes).
-------------------------------------------------------------------------
-r10271 | zimmerma | 2016-04-20 11:48:14 +0000 (Wed, 20 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-typo
-
-------------------------------------------------------------------------
-r10270 | vlefevre | 2016-04-20 11:47:20 +0000 (Wed, 20 Apr 2016) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Improved warning message for the "long double" test.
-------------------------------------------------------------------------
-r10269 | vlefevre | 2016-04-20 11:44:45 +0000 (Wed, 20 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] "double format" test: changed the AC_MSG_ERROR (when
-not recognized) to AC_MSG_WARN (like with long double).
-------------------------------------------------------------------------
-r10268 | vlefevre | 2016-04-20 11:39:31 +0000 (Wed, 20 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] No longer include <stdint.h> in the "double format" test
-(it is unnecessary and doesn't exist everywhere).
-------------------------------------------------------------------------
-r10267 | vlefevre | 2016-04-20 11:35:26 +0000 (Wed, 20 Apr 2016) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Typo.
-------------------------------------------------------------------------
-r10263 | vlefevre | 2016-04-13 19:37:36 +0000 (Wed, 13 Apr 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Updated a comment about Cygwin and Unix.
-------------------------------------------------------------------------
-r10262 | vlefevre | 2016-04-09 11:20:32 +0000 (Sat, 09 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Fixed bug triggered when the command for err-if-output
-has empty arguments (this does not occur yet).
-------------------------------------------------------------------------
-r10261 | vlefevre | 2016-04-08 23:39:28 +0000 (Fri, 08 Apr 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output the status of the __GMP_LIBGMP_DLL and
-MPFR_WIN_THREAD_SAFE_DLL macros (since unreliable consistency checks
-have been removed in r10260).
-------------------------------------------------------------------------
-r10260 | vlefevre | 2016-04-08 23:17:07 +0000 (Fri, 08 Apr 2016) | 8 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Removed the detection of possible inconsistencies
-under Unix because the tests could yield spurious errors with Cygwin32
-or other similar implementations. Moreover, such tests were used for
-debugging purpose or to detect potential problems in the environment,
-thus were not really useful for the end user. They were initially
-added in the win-thread-safe-dll branch (r9682, following a problem
-found in r9680). One alternative for checking by the MPFR developers
-would be to output the status of some internal macros in tversion.
-------------------------------------------------------------------------
-r10259 | vlefevre | 2016-04-08 16:02:39 +0000 (Fri, 08 Apr 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Use err-if-output also for external checkers.
-------------------------------------------------------------------------
-r10258 | vlefevre | 2016-04-08 15:56:20 +0000 (Fri, 08 Apr 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Better choice of a variable name.
-------------------------------------------------------------------------
-r10257 | zimmerma | 2016-04-08 15:55:03 +0000 (Fri, 08 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-revert changeset 10255
-
-------------------------------------------------------------------------
-r10256 | vlefevre | 2016-04-08 15:28:59 +0000 (Fri, 08 Apr 2016) | 4 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint]
- * Switched to zsh.
- * Much more meaningful error messages.
- * Fix: in the mpfr.texi punctuation test, ignore the comments.
-------------------------------------------------------------------------
-r10255 | zimmerma | 2016-04-08 14:10:47 +0000 (Fri, 08 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-patch for Cygwin (cf http://trac.sagemath.org/ticket/20380)
-
-------------------------------------------------------------------------
-r10254 | vlefevre | 2016-04-08 07:58:49 +0000 (Fri, 08 Apr 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r10253 | vlefevre | 2016-04-07 15:10:30 +0000 (Thu, 07 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/dump.c
-
-[doc/mpfr.texi] Document mpfr_dump (which has always been there).
-[src/dump.c] Added a comment (with TODO).
-------------------------------------------------------------------------
-r10252 | vlefevre | 2016-04-07 13:59:37 +0000 (Thu, 07 Apr 2016) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tzeta.c
-
-Replaced various instances of mpfr_print_binary + newline (sometimes
-missing) by mpfr_dump.
-------------------------------------------------------------------------
-r10251 | vlefevre | 2016-04-07 13:43:13 +0000 (Thu, 07 Apr 2016) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tset_q.c
-
-[tests] Fixed typo in error messages.
-------------------------------------------------------------------------
-r10249 | vlefevre | 2016-04-01 13:44:10 +0000 (Fri, 01 Apr 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Mention ISO/IEC JTC 1/SC 22/WG 21 N3060 (C++ special functions).
-------------------------------------------------------------------------
-r10247 | vlefevre | 2016-03-29 01:37:38 +0000 (Tue, 29 Mar 2016) | 9 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Removed incorrect note about NetBSD/alpha: The configure
-script distributed with the MPFR 3.1.4 tarball does not contain anything
-related to the -mieee GCC option; this just seems to be a particular
-pkgsrc issue for NetBSD:
- http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/mk/platform/NetBSD.mk?rev=1.48&content-type=text/x-cvsweb-markup
- https://www.google.fr/search?q=pkgsrc+%22mieee%22
-where -mieee is added. The -mieee-with-inexact option added in the MPFR
-3.1 branch might yield the same error with the buggy GCC versions, but
-this is now obsolete in the trunk (the code was removed in r10152).
-------------------------------------------------------------------------
-r10246 | zimmerma | 2016-03-25 09:09:41 +0000 (Fri, 25 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added note about NetBSD/alpha
-
-------------------------------------------------------------------------
-r10245 | vlefevre | 2016-03-16 15:22:31 +0000 (Wed, 16 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added a summary of the timings, copied from:
- ^/misc/sum-timings/results/ReadMe@10244
-------------------------------------------------------------------------
-r10235 | vlefevre | 2016-03-15 12:28:46 +0000 (Tue, 15 Mar 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Updated comment of bug20160315 after fix in 3.1 branch.
-------------------------------------------------------------------------
-r10233 | vlefevre | 2016-03-15 11:58:47 +0000 (Tue, 15 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added bug20160315 (this bug appears when porting sum.c
-for MPFR 3.1.4 but does not appear in the trunk).
-------------------------------------------------------------------------
-r10232 | vlefevre | 2016-03-14 16:11:12 +0000 (Mon, 14 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Some clarification in the TMD case.
-------------------------------------------------------------------------
-r10231 | vlefevre | 2016-03-14 13:59:53 +0000 (Mon, 14 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added a proof that the choice for the size ts of the
-temporary area is sufficient.
-------------------------------------------------------------------------
-r10230 | vlefevre | 2016-03-14 01:48:55 +0000 (Mon, 14 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Replaced e by ε for the error (e is already used).
-------------------------------------------------------------------------
-r10229 | vlefevre | 2016-03-14 01:24:52 +0000 (Mon, 14 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update about t' in the error analysis.
-------------------------------------------------------------------------
-r10228 | vlefevre | 2016-03-14 00:43:03 +0000 (Mon, 14 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] More about the notion of exponent in two's complement.
-------------------------------------------------------------------------
-r10227 | vlefevre | 2016-03-13 23:59:54 +0000 (Sun, 13 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update about sum_raw (with a correction of a typo).
-------------------------------------------------------------------------
-r10226 | vlefevre | 2016-03-10 17:05:09 +0000 (Thu, 10 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Rewrote paragraph about limitations.
-------------------------------------------------------------------------
-r10225 | vlefevre | 2016-03-10 16:33:10 +0000 (Thu, 10 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Corrected comment: 32/64-bit machine → 32/64-bit ABI.
-------------------------------------------------------------------------
-r10224 | vlefevre | 2016-03-10 16:20:29 +0000 (Thu, 10 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Use UPDATE_MINEXP when necessary; added comments.
-------------------------------------------------------------------------
-r10223 | vlefevre | 2016-03-10 16:09:38 +0000 (Thu, 10 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added a comment about corner cases involving huge
-precisions, which should never occur in practice.
-------------------------------------------------------------------------
-r10222 | vlefevre | 2016-03-10 15:10:51 +0000 (Thu, 10 Mar 2016) | 5 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c]
- * Added some MPFR_ASSERTD that correspond to properties used in the
- proof corrected in doc/sum.txt r10221.
- * Added a test for corner cases that will/can probably never occur
- in practice.
-------------------------------------------------------------------------
-r10221 | vlefevre | 2016-03-10 15:05:04 +0000 (Thu, 10 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Improved explanations and corrected a proof.
-------------------------------------------------------------------------
-r10220 | vlefevre | 2016-03-10 12:47:09 +0000 (Thu, 10 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added a figure.
-------------------------------------------------------------------------
-r10219 | vlefevre | 2016-03-10 10:37:18 +0000 (Thu, 10 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Clarifications.
-------------------------------------------------------------------------
-r10218 | vlefevre | 2016-03-09 16:21:44 +0000 (Wed, 09 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] GMP → the current version of GMP (6.1.0).
-------------------------------------------------------------------------
-r10217 | vlefevre | 2016-03-09 15:48:16 +0000 (Wed, 09 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Another clarification.
-------------------------------------------------------------------------
-r10216 | vlefevre | 2016-03-09 15:44:38 +0000 (Wed, 09 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Clarification about a reiteration in sum_raw with
-explanation closer to the code.
-------------------------------------------------------------------------
-r10215 | vlefevre | 2016-03-09 15:07:02 +0000 (Wed, 09 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Clarification of comments about "sum.txt".
-------------------------------------------------------------------------
-r10214 | vlefevre | 2016-03-09 14:59:16 +0000 (Wed, 09 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added comments and an MPFR_ASSERTD for sum_raw().
-------------------------------------------------------------------------
-r10213 | vlefevre | 2016-03-09 14:37:33 +0000 (Wed, 09 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Clarification.
-------------------------------------------------------------------------
-r10212 | vlefevre | 2016-03-09 13:34:09 +0000 (Wed, 09 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update (mainly related to two's complement).
-------------------------------------------------------------------------
-r10211 | vlefevre | 2016-03-09 09:17:27 +0000 (Wed, 09 Mar 2016) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] More information about MinGW and __USE_MINGW_ANSI_STDIO.
-------------------------------------------------------------------------
-r10210 | vlefevre | 2016-03-08 15:57:43 +0000 (Tue, 08 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Corrected 2 typos found by PZ.
-------------------------------------------------------------------------
-r10209 | vlefevre | 2016-03-08 14:50:02 +0000 (Tue, 08 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added commas.
-------------------------------------------------------------------------
-r10208 | vlefevre | 2016-03-08 14:45:41 +0000 (Tue, 08 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added info about an exact zero result and IEEE 754 / 1788.
-------------------------------------------------------------------------
-r10207 | vlefevre | 2016-03-08 09:55:59 +0000 (Tue, 08 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] A bit more about the choice of two's complement for the
-accumulator.
-------------------------------------------------------------------------
-r10206 | vlefevre | 2016-03-08 09:22:27 +0000 (Tue, 08 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Explanation concerning the choice of two's complement for
-the accumulator.
-------------------------------------------------------------------------
-r10198 | vlefevre | 2016-03-04 14:30:37 +0000 (Fri, 04 Mar 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about MinGW and __USE_MINGW_ANSI_STDIO.
-------------------------------------------------------------------------
-r10196 | vlefevre | 2016-03-04 14:07:22 +0000 (Fri, 04 Mar 2016) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Some improvement about MinGW and __USE_MINGW_ANSI_STDIO.
-------------------------------------------------------------------------
-r10195 | vlefevre | 2016-03-04 13:58:05 +0000 (Fri, 04 Mar 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] With MinGW, build with -D__USE_MINGW_ANSI_STDIO by default?
-------------------------------------------------------------------------
-r10194 | vlefevre | 2016-03-03 10:13:32 +0000 (Thu, 03 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved --help messages for decimal-float and float128
-(a bit like what was done for thread-safe).
-------------------------------------------------------------------------
-r10193 | zimmerma | 2016-03-03 10:00:06 +0000 (Thu, 03 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-updated NEWS for decimal floats and __float128
-
-------------------------------------------------------------------------
-r10192 | zimmerma | 2016-03-03 09:56:24 +0000 (Thu, 03 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-set --enable-float128 to "autodetect" by default (like --enable-decimal-float)
-
-------------------------------------------------------------------------
-r10191 | vlefevre | 2016-03-02 17:15:13 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] For testing the lack of subnormal support.
-------------------------------------------------------------------------
-r10190 | vlefevre | 2016-03-02 16:56:27 +0000 (Wed, 02 Mar 2016) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Also fixed the test for subnormal double-precision
-numbers, in case an extended precision / exponent range is used
-(however the test is not guaranteed with non-conforming compilers).
-------------------------------------------------------------------------
-r10189 | vlefevre | 2016-03-02 16:51:19 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed test for subnormal single-precision numbers.
-------------------------------------------------------------------------
-r10188 | zimmerma | 2016-03-02 16:47:54 +0000 (Wed, 02 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tget_flt.c
-
-added a separate configure test for subnormals in the "float" format
-
-------------------------------------------------------------------------
-r10187 | vlefevre | 2016-03-02 16:39:38 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4,configure.ac] Various fixes in error messages.
-------------------------------------------------------------------------
-r10186 | vlefevre | 2016-03-02 15:52:47 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Update ICC detection.
-------------------------------------------------------------------------
-r10185 | zimmerma | 2016-03-02 15:24:12 +0000 (Wed, 02 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-autodetect support for decimal floats (as suggested in revision 10179)
-
-------------------------------------------------------------------------
-r10183 | vlefevre | 2016-03-02 14:56:01 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/ieee_floats.h
-
-[src/ieee_floats.h] Comment update.
-------------------------------------------------------------------------
-r10182 | vlefevre | 2016-03-02 14:47:32 +0000 (Wed, 02 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Another improvement, just in case Clang no longer
-defines __GNUC__ in the future.
-------------------------------------------------------------------------
-r10181 | vlefevre | 2016-03-02 14:43:31 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Improved output of compiler information.
-------------------------------------------------------------------------
-r10180 | vlefevre | 2016-03-02 14:18:27 +0000 (Wed, 02 Mar 2016) | 4 lines
-Changed paths:
- M /trunk/src/ieee_floats.h
-
-[src/ieee_floats.h] No longer use a NaN memory representation because
-it was fixed thus could be either a qNaN or a sNaN, depending on the
-machine. Moreover the choice is to generate a qNaN, in particular due
-to lack of sNaN support by compilers.
-------------------------------------------------------------------------
-r10179 | vlefevre | 2016-03-02 13:59:12 +0000 (Wed, 02 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-Do not build with decimal float by default as it is not standard
-(a better behavior could be to auto-detect).
-------------------------------------------------------------------------
-r10178 | vlefevre | 2016-03-02 10:02:37 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/ieee_floats.h
- M /trunk/src/mpfr-impl.h
-
-Updated comments about DBL_NAN, dbl_nan.d and qNaN / sNaN encoding.
-------------------------------------------------------------------------
-r10177 | vlefevre | 2016-03-02 01:03:56 +0000 (Wed, 02 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/get_flt.c
-
-[src/get_flt.c] Updated FIXME comment: idea of a solution...
-------------------------------------------------------------------------
-r10175 | vlefevre | 2016-03-02 00:49:43 +0000 (Wed, 02 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/src/get_flt.c
-
-[src/get_flt.c] FIXME: The code assumes the IEEE-754 binary32 format
-with subnormal support.
-------------------------------------------------------------------------
-r10173 | vlefevre | 2016-03-02 00:29:46 +0000 (Wed, 02 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tests/tget_flt.c] Do tests that may involve subnormals only
-if HAVE_DENORMS is defined.
-------------------------------------------------------------------------
-r10172 | vlefevre | 2016-03-01 17:17:13 +0000 (Tue, 01 Mar 2016) | 5 lines
-Changed paths:
- M /trunk/src/set_d64.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_ld.c
-
-[src/set_*.c] Use the DOUBLE_ISNAN macro for _Decimal64, __float128 and
-long double like what is done for double; on platforms where d != d is
-not wrongly optimized to false, this should not change anything. Also
-added some MPFR_UNLIKELY for special cases of _Decimal64 and __float128,
-as this is already done for double and long double.
-------------------------------------------------------------------------
-r10171 | vlefevre | 2016-03-01 16:59:07 +0000 (Tue, 01 Mar 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect some uses of "x != x" and "x == x".
-------------------------------------------------------------------------
-r10170 | zimmerma | 2016-03-01 16:34:35 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-recognize icc (which might define __GNUC__)
-
-------------------------------------------------------------------------
-r10169 | vlefevre | 2016-03-01 16:07:33 +0000 (Tue, 01 Mar 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment about non-IEEE-754 environment.
-------------------------------------------------------------------------
-r10168 | zimmerma | 2016-03-01 15:46:05 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/src/ieee_floats.h
-
-HAVE_DOUBLE_IEEE_LITTLE_SWAPPED is not supported
-
-------------------------------------------------------------------------
-r10165 | vlefevre | 2016-03-01 15:37:17 +0000 (Tue, 01 Mar 2016) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Quote the argument of all AC_MSG_RESULT and AC_MSG_ERROR
-when it is longer than a word, as already done in most cases (this is
-safer in case we modify the text and add a comma).
-------------------------------------------------------------------------
-r10164 | vlefevre | 2016-03-01 15:19:46 +0000 (Tue, 01 Mar 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_float128.c
-
-[tests/tset_float128.c] Better cast.
-------------------------------------------------------------------------
-r10163 | zimmerma | 2016-03-01 15:08:50 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tset_float128.c
-
-use DOUBLE_ISNAN() instead of f == f
-
-------------------------------------------------------------------------
-r10162 | zimmerma | 2016-03-01 14:31:01 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-updated
-
-------------------------------------------------------------------------
-r10161 | zimmerma | 2016-03-01 14:23:02 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-updated paragraph on AIX/PowerPC
-
-------------------------------------------------------------------------
-r10160 | zimmerma | 2016-03-01 14:19:57 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-added more details in case of error
-
-------------------------------------------------------------------------
-r10159 | zimmerma | 2016-03-01 14:08:10 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-harmonize configure message against GMP
-
-------------------------------------------------------------------------
-r10158 | zimmerma | 2016-03-01 12:16:25 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-updated with mpfr-3.1.4-rc2
-
-------------------------------------------------------------------------
-r10157 | zimmerma | 2016-03-01 10:48:18 +0000 (Tue, 01 Mar 2016) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/mpfr-gmp.h
-
-fixed detection of "double" format, and removed
-HAVE_DOUBLE_IEEE_LITTLE_SWAPPED, since we have no machine to test it
-
-------------------------------------------------------------------------
-r10156 | zimmerma | 2016-03-01 10:19:54 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-removed leftover debug statement
-
-------------------------------------------------------------------------
-r10155 | vlefevre | 2016-03-01 10:14:28 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-Removed "The IEEE code for double needs GMP internal files." from
-doc/README.dev as this is no longer the case since r10150.
-------------------------------------------------------------------------
-r10154 | zimmerma | 2016-03-01 08:53:40 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-speedup in mpfr_set_d and mpfr_get_d
-
-------------------------------------------------------------------------
-r10153 | zimmerma | 2016-03-01 08:52:21 +0000 (Tue, 01 Mar 2016) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-improved detection of decimal floats
-removed (obsolete?) #define XDEBUG in mpfr-gmp.h
-
-------------------------------------------------------------------------
-r10152 | vlefevre | 2016-03-01 02:11:41 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Removed old code for Alpha (as suggested by Paul).
-It was no longer tested.
-------------------------------------------------------------------------
-r10151 | vlefevre | 2016-03-01 02:00:47 +0000 (Tue, 01 Mar 2016) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added a FIXME comment about a possible misuse of
-AC_RUN_IFELSE programs that can return several values.
-------------------------------------------------------------------------
-r10150 | zimmerma | 2016-02-29 20:57:06 +0000 (Mon, 29 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/get_d64.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/scale2.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
-
-get rid of dependency from GMP for _GMP_IEEE_FLOATS and ieee_double_extract
-enable decimal float by default
-
-------------------------------------------------------------------------
-r10147 | vlefevre | 2016-02-29 17:56:38 +0000 (Mon, 29 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Also detect the use of ASSERT_ALWAYS (forbidden).
-------------------------------------------------------------------------
-r10145 | vlefevre | 2016-02-29 17:44:12 +0000 (Mon, 29 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_ld_2exp.c
-
-Replaced the remaining ASSERT_ALWAYS by MPFR_ASSERTN.
-------------------------------------------------------------------------
-r10141 | vlefevre | 2016-02-29 09:49:50 +0000 (Mon, 29 Feb 2016) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Removed a useless note (as the ABI has already changed).
-------------------------------------------------------------------------
-r10137 | vlefevre | 2016-02-29 04:06:04 +0000 (Mon, 29 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update about MinGW: "Added support for thread-safe DLL" as
-this was more than a fix of the test suite with r9684,9778.
-------------------------------------------------------------------------
-r10135 | vlefevre | 2016-02-29 03:52:18 +0000 (Mon, 29 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added "MinGW: Avoid failures in the test suite for shared builds
-with TLS." (fix in r9891).
-------------------------------------------------------------------------
-r10134 | vlefevre | 2016-02-29 03:48:45 +0000 (Mon, 29 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Removed an obsolete sentence about MinGW and shared builds
-with TLS (the failures in the test suite were avoided in r9891).
-------------------------------------------------------------------------
-r10132 | vlefevre | 2016-02-29 00:55:52 +0000 (Mon, 29 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Comment update.
-------------------------------------------------------------------------
-r10128 | vlefevre | 2016-02-25 15:24:32 +0000 (Thu, 25 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/clears.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_uj.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/printf.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_uj.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/tests.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_sj.c
-
-About "config.h" inclusion: code consistency; removed obsolete comment.
-------------------------------------------------------------------------
-r10127 | vlefevre | 2016-02-25 15:10:34 +0000 (Thu, 25 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output availability of intmax_t/uintmax_t based
-functions and *printf functions.
-------------------------------------------------------------------------
-r10126 | vlefevre | 2016-02-25 15:02:06 +0000 (Thu, 25 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/printf.c
-
-[src/printf.c] Added a blank line for more readability.
-------------------------------------------------------------------------
-r10125 | vlefevre | 2016-02-25 14:52:16 +0000 (Thu, 25 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about the "config.h" inclusion.
-------------------------------------------------------------------------
-r10124 | vlefevre | 2016-02-25 14:37:12 +0000 (Thu, 25 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Let's group the features together.
-------------------------------------------------------------------------
-r10123 | vlefevre | 2016-02-25 14:35:26 +0000 (Thu, 25 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output support status of modifiers in gmp_printf.
-------------------------------------------------------------------------
-r10122 | vlefevre | 2016-02-25 10:36:36 +0000 (Thu, 25 Feb 2016) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/buildopt.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tversion.c
-
-Added mpfr_buildopt_float128_p function.
-------------------------------------------------------------------------
-r10121 | vlefevre | 2016-02-25 10:25:46 +0000 (Thu, 25 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Removed old comments.
-------------------------------------------------------------------------
-r10118 | vlefevre | 2016-02-24 16:21:47 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tset_str.c
-
-[tests/tset_str.c] Correction (with no noticeable effect).
-------------------------------------------------------------------------
-r10115 | vlefevre | 2016-02-24 14:11:12 +0000 (Wed, 24 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] For codespell, skip the openout.* files, which are
-created by "make pdf".
-------------------------------------------------------------------------
-r10113 | vlefevre | 2016-02-24 11:15:44 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Minor FIXME comment update.
-------------------------------------------------------------------------
-r10112 | vlefevre | 2016-02-24 10:36:02 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Updated introduction.
-------------------------------------------------------------------------
-r10111 | vlefevre | 2016-02-24 03:10:09 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Check the files on the mpfr.org web server.
-------------------------------------------------------------------------
-r10110 | vlefevre | 2016-02-24 02:41:10 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Added a comment.
-------------------------------------------------------------------------
-r10109 | vlefevre | 2016-02-24 02:34:29 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Update for release candidates.
-------------------------------------------------------------------------
-r10105 | vlefevre | 2016-02-24 01:39:52 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Fixed a warning with "make info".
-------------------------------------------------------------------------
-r10101 | vlefevre | 2016-02-24 01:15:08 +0000 (Wed, 24 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/tools/ck-news
-
-Added tools/ck-news Perl script to check the NEWS file.
-In Makefile.am:
- * run this script in dist-hook for "make dist";
- * added this script to EXTRA_DIST as it is used in dist-hook.
-------------------------------------------------------------------------
-r10100 | vlefevre | 2016-02-24 00:14:35 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Take into account $vers setting.
-------------------------------------------------------------------------
-r10099 | vlefevre | 2016-02-24 00:05:37 +0000 (Wed, 24 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Replaced MD5 by SHA256.
-------------------------------------------------------------------------
-r10093 | vlefevre | 2016-02-23 22:08:16 +0000 (Tue, 23 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/update-version
-
-[tools/update-version] Correction for new perl versions.
-------------------------------------------------------------------------
-r10092 | zimmerma | 2016-02-23 14:41:11 +0000 (Tue, 23 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-unified description of mpfr_eint
-
-------------------------------------------------------------------------
-r10089 | vlefevre | 2016-02-23 12:15:16 +0000 (Tue, 23 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
-
-[src/{cmp_d.c,cmp_ld.c}] Bug fixes: mpfr_cmp_d (resp. mpfr_cmp_ld) was
-setting the NaN flag when the double (resp. long double) was a NaN and
-could return an incorrect result (assertion failure in debug mode) in
-reduced exponent range.
-------------------------------------------------------------------------
-r10088 | vlefevre | 2016-02-23 12:05:41 +0000 (Tue, 23 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
-
-[tests/{tcmp_d.c,tcmp_ld.c}] Added a test in reduced exponent range.
-------------------------------------------------------------------------
-r10087 | vlefevre | 2016-02-23 11:56:19 +0000 (Tue, 23 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
-
-[tests/{tcmp_d.c,tcmp_ld.c}] Full test of the flags for NaN → failure.
-------------------------------------------------------------------------
-r10086 | vlefevre | 2016-02-23 09:28:01 +0000 (Tue, 23 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
-
-[tests/{tcmp_d.c,tcmp_ld.c}] GNU coding style.
-------------------------------------------------------------------------
-r10085 | vlefevre | 2016-02-23 09:24:50 +0000 (Tue, 23 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcmp_d.c
-
-[tests/tcmp_d.c] GNU coding style.
-------------------------------------------------------------------------
-r10084 | vlefevre | 2016-02-23 08:38:47 +0000 (Tue, 23 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update about the suggestion to split the inputs for
-Demmel's algorithm.
-------------------------------------------------------------------------
-r10082 | vlefevre | 2016-02-22 14:13:07 +0000 (Mon, 22 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a reference to the build-multi script.
-------------------------------------------------------------------------
-r10080 | vlefevre | 2016-02-22 14:03:36 +0000 (Mon, 22 Feb 2016) | 1 line
-Changed paths:
- D /trunk/tools/build-multi
-
-Removed the tools/build-multi script (already in ^/misc).
-------------------------------------------------------------------------
-r10079 | vlefevre | 2016-02-22 13:59:11 +0000 (Mon, 22 Feb 2016) | 2 lines
-Changed paths:
- A /trunk/tools/build-multi
-
-Added tools/build-multi zsh script to build and install multiple MPFR
-versions, and add XML library descriptors for ABI Compliance Checker.
-------------------------------------------------------------------------
-r10077 | vlefevre | 2016-02-22 12:34:37 +0000 (Mon, 22 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-[tests/tagm.c] Also do the test with a = b in precision 2 (since the
-same bug occurs in the 3.1 branch, which doesn't support precision 1).
-------------------------------------------------------------------------
-r10076 | zimmerma | 2016-02-22 11:00:48 +0000 (Mon, 22 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-fixed error analysis for gamma_inc continued fraction
-
-------------------------------------------------------------------------
-r10074 | vlefevre | 2016-02-19 16:53:29 +0000 (Fri, 19 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tfmod.c
-
-[tests/tfmod.c] Test that triggers the bug fixed in r10054: run it
-also in the extended exponent range in order to make the test fail
-when ported to the 3.1 branch.
-------------------------------------------------------------------------
-r10073 | vlefevre | 2016-02-19 16:35:48 +0000 (Fri, 19 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfmod.c
-
-[tests/tfmod.c] Renamed a variable since it is not always NaN.
-------------------------------------------------------------------------
-r10072 | vlefevre | 2016-02-19 16:29:37 +0000 (Fri, 19 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tfmod.c
-
-[tests/tfmod.c] Added a test that triggers the bug fixed in r10054
-without relying on test_generic failure.
-------------------------------------------------------------------------
-r10070 | zimmerma | 2016-02-19 08:02:46 +0000 (Fri, 19 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-added references in comment
-
-------------------------------------------------------------------------
-r10069 | zimmerma | 2016-02-18 17:52:47 +0000 (Thu, 18 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.bib
- M /trunk/doc/algorithms.tex
-
-added error analysis for gamma_inc with continued fraction (to be reviewed)
-
-------------------------------------------------------------------------
-r10068 | vlefevre | 2016-02-18 13:52:16 +0000 (Thu, 18 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
- M /trunk/src/sum.c
-
-[doc/sum.txt,src/sum.c] mpfr_sum: added support for precision 1.
-------------------------------------------------------------------------
-r10067 | zimmerma | 2016-02-18 12:08:46 +0000 (Thu, 18 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-more precision about gamma_inc
-
-------------------------------------------------------------------------
-r10066 | zimmerma | 2016-02-18 09:31:53 +0000 (Thu, 18 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-added reference to series for incomplete gamma function
-
-------------------------------------------------------------------------
-r10065 | zimmerma | 2016-02-17 19:36:55 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-added tests for negative integer a
-
-------------------------------------------------------------------------
-r10064 | vlefevre | 2016-02-17 17:51:14 +0000 (Wed, 17 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tfmod.c
-
-[tests/tfmod.c] Do not use a variable named nan to avoid confusion
-with the nan function of C99 (and possible obscure failures in the
-future, if we include <math.h>).
-------------------------------------------------------------------------
-r10063 | zimmerma | 2016-02-17 17:46:17 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-added reference to gamma_inc(-n,x) for current code
-
-------------------------------------------------------------------------
-r10062 | zimmerma | 2016-02-17 17:29:31 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tremquo.c
-
-added test to exercise bug fixed in revision 10056
-
-------------------------------------------------------------------------
-r10061 | zimmerma | 2016-02-17 17:28:47 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tfmod.c
-
-fixed one test
-
-------------------------------------------------------------------------
-r10060 | zimmerma | 2016-02-17 16:25:25 +0000 (Wed, 17 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/agm.c
- M /trunk/tests/tagm.c
-
-fixed bug in mpfr_agm in case a=b but result cannot be exactly represented
-in the target precision: ternary value was wrongly set to 0
-
-------------------------------------------------------------------------
-r10059 | vlefevre | 2016-02-17 16:12:57 +0000 (Wed, 17 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/rem1.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r10058 | zimmerma | 2016-02-17 15:53:37 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-reduce the time of tgamma_inc
-
-------------------------------------------------------------------------
-r10057 | zimmerma | 2016-02-17 15:53:24 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-fixed the number of special tests for 2-argument functions
-
-------------------------------------------------------------------------
-r10056 | zimmerma | 2016-02-17 15:39:49 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/rem1.c
-
-fixed stupid error in revision 10054
-
-------------------------------------------------------------------------
-r10055 | vlefevre | 2016-02-17 15:23:25 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Removed mpfr_sum_sort declaration, as this internal
-function had been removed in r9370.
-------------------------------------------------------------------------
-r10054 | zimmerma | 2016-02-17 15:17:20 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/rem1.c
- M /trunk/tests/tfmod.c
-
-avoid computing with huge integers in mpfr_fmod when x/y is very small
-
-------------------------------------------------------------------------
-r10053 | vlefevre | 2016-02-17 15:00:01 +0000 (Wed, 17 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update about the old mpfr_sum implementation.
-------------------------------------------------------------------------
-r10052 | zimmerma | 2016-02-17 14:19:48 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-Clarify the status of mpfr_gamma_inc for the MPFR 3.2 release.
-
-------------------------------------------------------------------------
-r10051 | vlefevre | 2016-02-17 13:06:46 +0000 (Wed, 17 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Fixed a typo in latest commit, and added min/max
-and max/min special tests for functions with 2 arguments.
-This triggers a failure in tfmod on 64-bit machines at least.
-------------------------------------------------------------------------
-r10050 | vlefevre | 2016-02-17 12:47:48 +0000 (Wed, 17 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Improved assertions.
-------------------------------------------------------------------------
-r10049 | zimmerma | 2016-02-17 12:34:05 +0000 (Wed, 17 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tgeneric.c
-
-now mpfr_gamma_inc(a,x) also works for 'a' a negative integer
-(however a and x should not be too large, we should implement
-Legendre's continued fraction for the general case)
-
-------------------------------------------------------------------------
-r10048 | zimmerma | 2016-02-17 12:26:53 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/eint.c
- M /trunk/tests/teint.c
-
-fixed issue in mpfr_eint
-
-------------------------------------------------------------------------
-r10047 | vlefevre | 2016-02-17 12:25:30 +0000 (Wed, 17 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Added another assertion.
-------------------------------------------------------------------------
-r10046 | vlefevre | 2016-02-17 12:17:27 +0000 (Wed, 17 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Added assertions and a comment.
-------------------------------------------------------------------------
-r10045 | vlefevre | 2016-02-17 12:07:49 +0000 (Wed, 17 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Removed useless saved_flags as flags are already saved
-by MPFR_SAVE_EXPO_MARK. Removed the comment about about emin/emax as
-emin <= 2 <= emax may not be sufficient (or may be suboptimal).
-After all, MPFR_SAVE_EXPO_* is the usual thing to do...
-------------------------------------------------------------------------
-r10044 | zimmerma | 2016-02-17 11:42:15 +0000 (Wed, 17 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-previous commit was incomplete
-
-------------------------------------------------------------------------
-r10043 | zimmerma | 2016-02-17 11:09:33 +0000 (Wed, 17 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed bug in mpfr_gamma: flags might be corrupted in case the argument was
-an integer fitting in an unsigned long
-
-------------------------------------------------------------------------
-r10042 | vlefevre | 2016-02-15 19:12:11 +0000 (Mon, 15 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about patches.
-------------------------------------------------------------------------
-r10038 | vlefevre | 2016-02-15 12:17:30 +0000 (Mon, 15 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] Compare root(x,2^h) with pow(x,2^(-h)).
-------------------------------------------------------------------------
-r10037 | vlefevre | 2016-02-15 11:45:26 +0000 (Mon, 15 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-Added bad_cases tests for mpfr_pow_ui and mpfr_pow_si.
-------------------------------------------------------------------------
-r10036 | vlefevre | 2016-02-15 11:37:34 +0000 (Mon, 15 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/troot.c
-
-Added bad_cases tests for mpfr_root.
-------------------------------------------------------------------------
-r10034 | vlefevre | 2016-02-15 09:39:49 +0000 (Mon, 15 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_u.h
-
-[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions
-in a reduced exponent range and debug mode for non-integer numbers
-just above the positive limit.
-------------------------------------------------------------------------
-r10033 | vlefevre | 2016-02-15 09:36:58 +0000 (Mon, 15 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] Check a non-integer number just below a power of two.
-------------------------------------------------------------------------
-r10032 | vlefevre | 2016-02-15 09:17:47 +0000 (Mon, 15 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] Also run the tests in reduced exponent range.
-------------------------------------------------------------------------
-r10031 | vlefevre | 2016-02-15 01:50:08 +0000 (Mon, 15 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] Added tests of non-integer values near the type limits.
-This triggers a flags failure for src/fits_* r9649, corresponding to
-the bug fixed in r9650 (there were no tests for this bug yet).
-------------------------------------------------------------------------
-r10030 | vlefevre | 2016-02-15 01:23:34 +0000 (Mon, 15 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] Increased code reuse so that tests could be improved
-more easily (not everything is tested yet).
-------------------------------------------------------------------------
-r10028 | vlefevre | 2016-02-12 13:52:48 +0000 (Fri, 12 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tconst_log2.c
-
-[tests/tconst_log2.c] Correction for C++ compilers.
-------------------------------------------------------------------------
-r10027 | vlefevre | 2016-02-12 13:50:03 +0000 (Fri, 12 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Correction for C++ compilers. Code formatting.
-------------------------------------------------------------------------
-r10025 | vlefevre | 2016-02-12 13:20:59 +0000 (Fri, 12 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Coding style.
-------------------------------------------------------------------------
-r10024 | vlefevre | 2016-02-12 13:18:16 +0000 (Fri, 12 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Added a TODO for value coverage tests.
-------------------------------------------------------------------------
-r10022 | vlefevre | 2016-02-12 11:42:12 +0000 (Fri, 12 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a comment about mpfr_gamma_inc.
-------------------------------------------------------------------------
-r10021 | vlefevre | 2016-02-12 10:33:13 +0000 (Fri, 12 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-[tests/tgamma_inc.c] Added a TODO.
-------------------------------------------------------------------------
-r10020 | vlefevre | 2016-02-12 10:07:36 +0000 (Fri, 12 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Detect internal overflow in order to avoid taking
-all the memory of the machine, but it is currently not supported:
-assertion failure. This was occurring with a = 2^32 and x = 2^(-32)
-on 32-bit machines (see change in r10019).
-------------------------------------------------------------------------
-r10019 | zimmerma | 2016-02-12 09:21:57 +0000 (Fri, 12 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-reduced a test with large arguments
-
-------------------------------------------------------------------------
-r10018 | vlefevre | 2016-02-11 13:59:33 +0000 (Thu, 11 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Improved type consistency to avoid integer overflow.
-------------------------------------------------------------------------
-r10017 | vlefevre | 2016-02-11 13:54:47 +0000 (Thu, 11 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Added some assertions to detect integer overflow.
-------------------------------------------------------------------------
-r10016 | vlefevre | 2016-02-11 12:46:30 +0000 (Thu, 11 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-[tests/tgamma_inc.c] C++/C99 comment → C89 comment.
-------------------------------------------------------------------------
-r10015 | vlefevre | 2016-02-11 12:44:49 +0000 (Thu, 11 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Fixed an assertion that made tgmpop fail on 32-bit
-machines (it became wrong with r9964 and --enable-assert).
-------------------------------------------------------------------------
-r10014 | vlefevre | 2016-02-10 09:31:39 +0000 (Wed, 10 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Added a FIXME for precision 1 (recently added).
-------------------------------------------------------------------------
-r10013 | zimmerma | 2016-02-10 08:39:20 +0000 (Wed, 10 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-added formula for gamma_inc(-n,x)
-
-------------------------------------------------------------------------
-r10012 | zimmerma | 2016-02-09 14:16:17 +0000 (Tue, 09 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/TODO
-
-removed item about speeding up const_euler: done since now for x=1.1,
-prec=16610, mpfr_const_euler takes only about 40% of the total time.
-For x=1.1 and prec=100000 it takes only about 14% of the total time.
-
-------------------------------------------------------------------------
-r10011 | zimmerma | 2016-02-09 14:06:42 +0000 (Tue, 09 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
- M /trunk/tests/tgamma_inc.c
-
-fixed the call to mpfr_eint() in gamma_inc, added some tests for gamma_inc
-
-------------------------------------------------------------------------
-r10010 | zimmerma | 2016-02-09 13:35:39 +0000 (Tue, 09 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/eint.c
- M /trunk/tests/teint.c
-
-now mpfr_eint() returns -E1(-x) for x < 0
-
-------------------------------------------------------------------------
-r10008 | vlefevre | 2016-02-09 09:55:51 +0000 (Tue, 09 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/eint.c
- M /trunk/tests/teint.c
-
-[src/eint.c] Fixed eint(-inf).
-[tests/teint.c] Added a corresponding test.
-------------------------------------------------------------------------
-r10007 | vlefevre | 2016-02-09 02:17:21 +0000 (Tue, 09 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/si_op.c
-
-[src/si_op.c] Unified coding style and added logging.
-------------------------------------------------------------------------
-r10006 | vlefevre | 2016-02-09 02:10:22 +0000 (Tue, 09 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/src/mul_ui.c
- M /trunk/src/si_op.c
- M /trunk/src/ui_div.c
-
-[src] Moved si ops from mul_ui.c, div_ui.c and ui_div.c to si_op.c.
-------------------------------------------------------------------------
-r10005 | vlefevre | 2016-02-09 02:07:23 +0000 (Tue, 09 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/src/ui_div.c
-
-[src/ui_div.c] Fixed bug in mpfr_si_div when the integer is LONG_MIN,
-visible when using an UB sanitizer (see r9999).
-Note: this integer value is not tested yet in the test suite due to
-the lack of generic tests for mpfr_si_div.
-------------------------------------------------------------------------
-r10004 | vlefevre | 2016-02-09 02:03:32 +0000 (Tue, 09 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tsi_op.c
-
-[tests/{tgeneric.c,tsi_op.c}] Added TODO.
-------------------------------------------------------------------------
-r10003 | vlefevre | 2016-02-09 01:44:53 +0000 (Tue, 09 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/src/mul_ui.c
-
-[src/{div,mul}_ui.c] Fixed bug in mpfr_div_si and mpfr_mul_si when the
-integer is LONG_MIN, visible when using an UB sanitizer (see r9999).
-------------------------------------------------------------------------
-r10001 | vlefevre | 2016-02-09 01:31:17 +0000 (Tue, 09 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric_ui.c
-
-[tests/tgeneric_ui.c] Added tests of the extreme integer values,
-so that tsi_op fails with a runtime error in si_op.c r9998 when
-using an UB sanitizer (bug fixed in r9999).
-------------------------------------------------------------------------
-r10000 | vlefevre | 2016-02-09 01:17:01 +0000 (Tue, 09 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/eint.c
-
-[src/eint.c] Code simplification.
-------------------------------------------------------------------------
-r9999 | vlefevre | 2016-02-09 01:08:25 +0000 (Tue, 09 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/si_op.c
-
-[src/si_op.c] Fixed bug in mpfr_add_si, mpfr_sub_si and mpfr_si_sub
-when the integer is LONG_MIN, visible when using an UB sanitizer.
-------------------------------------------------------------------------
-r9998 | vlefevre | 2016-02-09 01:03:01 +0000 (Tue, 09 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/si_op.c
-
-[src/si_op.c] Code formatting.
-------------------------------------------------------------------------
-r9997 | vlefevre | 2016-02-09 01:01:01 +0000 (Tue, 09 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/tests/teint.c
-
-[tests/teint.c] Added a test that triggers a runtime error
-at si_op.c:42:31 on an x86-64 Linux machine, using:
- CFLAGS="-fsanitize=undefined -fno-sanitize-recover"
-------------------------------------------------------------------------
-r9996 | vlefevre | 2016-02-09 00:33:32 +0000 (Tue, 09 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typographic correction.
-------------------------------------------------------------------------
-r9995 | vlefevre | 2016-02-09 00:27:35 +0000 (Tue, 09 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Avoid false positives in mp_exp_t check.
-------------------------------------------------------------------------
-r9994 | vlefevre | 2016-02-09 00:18:19 +0000 (Tue, 09 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/eint.c
-
-[src/eint.c] Updated a FIXME (mpfr_set_exp_t was added in r4333 and
-completed in r5455), with typo from r6789 corrected.
-------------------------------------------------------------------------
-r9993 | vlefevre | 2016-02-09 00:02:40 +0000 (Tue, 09 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated Section "API Compatibility / Changed Functions":
-mpfr_eint changed in MPFR 3.2.
-------------------------------------------------------------------------
-r9992 | zimmerma | 2016-02-08 18:52:44 +0000 (Mon, 08 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
-
-update NEWS/TODO with respect to E1
-
-------------------------------------------------------------------------
-r9991 | zimmerma | 2016-02-08 18:41:55 +0000 (Mon, 08 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/eint.c
- M /trunk/tests/teint.c
-
-oops, eint(x) was wrong for negative x with |x| >= 0.5
-
-------------------------------------------------------------------------
-r9990 | zimmerma | 2016-02-08 18:30:52 +0000 (Mon, 08 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/doc/mpfr.texi
- M /trunk/src/eint.c
- M /trunk/src/gamma_inc.c
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/teint.c
-
-now mpfr_eint(x) returns E1(x) for negative x
-
-------------------------------------------------------------------------
-r9989 | vlefevre | 2016-02-08 16:16:01 +0000 (Mon, 08 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Correction (spelling).
-------------------------------------------------------------------------
-r9988 | vlefevre | 2016-02-08 11:47:21 +0000 (Mon, 08 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Clarified a bit more.
-------------------------------------------------------------------------
-r9986 | vlefevre | 2016-02-08 09:59:11 +0000 (Mon, 08 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added explanations concerning the check1 test.
-------------------------------------------------------------------------
-r9985 | vlefevre | 2016-02-08 09:39:13 +0000 (Mon, 08 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-Value coverage for tsum: reduce output length.
-------------------------------------------------------------------------
-r9984 | vlefevre | 2016-02-08 09:13:05 +0000 (Mon, 08 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sum.c
- M /trunk/tests/tsum.c
-
-Value coverage for tsum: differentiate sq > MPFR_PREC_MIN and not.
-------------------------------------------------------------------------
-r9983 | vlefevre | 2016-02-07 11:09:39 +0000 (Sun, 07 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Source on 80 columns.
-------------------------------------------------------------------------
-r9982 | zimmerma | 2016-02-07 09:37:23 +0000 (Sun, 07 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-extended the check1() test, gives failure on 64-bit processor
-
-------------------------------------------------------------------------
-r9981 | zimmerma | 2016-02-07 09:04:52 +0000 (Sun, 07 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-fixed note
-
-------------------------------------------------------------------------
-r9980 | zimmerma | 2016-02-06 09:42:06 +0000 (Sat, 06 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/doc/mpfr.texi
- M /trunk/src/gamma_inc.c
-
-more work on gamma_inc
-
-------------------------------------------------------------------------
-r9979 | zimmerma | 2016-02-06 09:24:54 +0000 (Sat, 06 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-note about memory usage
-
-------------------------------------------------------------------------
-r9978 | vlefevre | 2016-02-05 17:09:48 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Corrected protection against integer overflow
-(MPFR_PREC_IN_RANGE is just for debug mode).
-------------------------------------------------------------------------
-r9977 | vlefevre | 2016-02-05 17:03:04 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Added protection against integer overflow
-(i.e. abort instead of getting incorrect results).
-------------------------------------------------------------------------
-r9976 | zimmerma | 2016-02-05 16:35:22 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/doc/mpfr.texi
- M /trunk/src/gamma_inc.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tpow.c
-
-more work on gamma_inc (only remains the case a=0 and x>0 to implement)
-
-------------------------------------------------------------------------
-r9975 | vlefevre | 2016-02-05 16:20:10 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r9974 | vlefevre | 2016-02-05 16:13:46 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] In exact_powers, check negative values too.
-------------------------------------------------------------------------
-r9973 | vlefevre | 2016-02-05 16:00:02 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Code simplification.
-------------------------------------------------------------------------
-r9972 | vlefevre | 2016-02-05 15:45:47 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO update for fmma.
-------------------------------------------------------------------------
-r9971 | zimmerma | 2016-02-05 15:34:38 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
- M /trunk/tests/tset_str.c
-
-reduced emax
-
-------------------------------------------------------------------------
-r9970 | zimmerma | 2016-02-05 15:19:37 +0000 (Fri, 05 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/root.c
- M /trunk/tests/troot.c
-
-added a test for exact powers for mpfr_root
-and fixed mpfr_root for negative x (and odd k)
-
-------------------------------------------------------------------------
-r9969 | vlefevre | 2016-02-05 14:19:10 +0000 (Fri, 05 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Corrected(?) the check for exact root by adding an
-exactness test for the inverse operation z^k (if unnecessary, it
-needs to be properly proved and documented).
-------------------------------------------------------------------------
-r9968 | vlefevre | 2016-02-05 14:09:48 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Corrected a comment.
-------------------------------------------------------------------------
-r9967 | vlefevre | 2016-02-05 14:01:25 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Some minor changes. Updated comments.
-------------------------------------------------------------------------
-r9966 | zimmerma | 2016-02-05 13:50:42 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/root.c
-
-check for an exact root in mpfr_root_aux
-
-------------------------------------------------------------------------
-r9965 | zimmerma | 2016-02-05 13:19:16 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/root.c
- M /trunk/tests/troot.c
-
-fixed bug in mpfr_root and inefficiency problem with large k
-
-------------------------------------------------------------------------
-r9964 | vlefevre | 2016-02-05 12:17:01 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] For MPFR_IS_PURE_FP(x), when x is a pure FP number,
-check that EXP(x) is in the current exponent range (debug mode).
-------------------------------------------------------------------------
-r9963 | vlefevre | 2016-02-05 12:15:10 +0000 (Fri, 05 Feb 2016) | 10 lines
-Changed paths:
- M /trunk/src/exceptions.c
-
-[src/exceptions.c] Some changes concerning mpfr_check_range:
- * Added a note about the case EXP(x) < MPFR_EMIN_MIN.
- * Do not use the MPFR_IS_PURE_FP() macro as this macro assumes that
- if the number is not a singular number, then it is really a pure
- FP number (some assertion checking may be done in debug mode),
- but this is not necessarily the case here.
- * Removed an incorrect comment and re-added the MPFR_UNLIKELY for
- the cases where EXP(x) is outside the exponent range. Indeed,
- mpfr_check_range is called at the end of most functions, and
- in most cases, there are no underflows / overflows.
-------------------------------------------------------------------------
-r9962 | vlefevre | 2016-02-05 11:44:26 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-[tests/texp.c] Added FIXME, as the overflow test, which was specific
-to the 32-bit ABI, is no longer run.
-------------------------------------------------------------------------
-r9961 | vlefevre | 2016-02-05 11:38:46 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tacosh.c
-
-[tests/tacosh.c] Added a FIXME (huge values no longer tested at all).
-------------------------------------------------------------------------
-r9960 | vlefevre | 2016-02-05 11:23:30 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/fmma.c
-
-[src/fmma.c] Removed unused code.
-------------------------------------------------------------------------
-r9959 | zimmerma | 2016-02-05 11:10:20 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-added code to compare mpfr_root with exp(log(x)/k)
-
-------------------------------------------------------------------------
-r9958 | zimmerma | 2016-02-05 10:21:25 +0000 (Fri, 05 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
- M /trunk/tests/tacosh.c
- M /trunk/tests/texp.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tsub1sp.c
-
-reduce MPFR_EMAX_DEFAULT by 2, and modify some tests cases assuming
-MPFR_EMAX_DEFAULT=2^30-1
-
-------------------------------------------------------------------------
-r9957 | zimmerma | 2016-02-05 09:54:31 +0000 (Fri, 05 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/fmma.c
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tsprintf.c
-
-fixed fmma failure
-
-------------------------------------------------------------------------
-r9956 | vlefevre | 2016-02-05 08:57:06 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/exp.c
-
-[src/exp.c] Simplified exponent range setting in special case.
-------------------------------------------------------------------------
-r9955 | zimmerma | 2016-02-05 08:24:01 +0000 (Fri, 05 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/exp.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/terf.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tzeta.c
-
-changed test_generic() calls to start from MPFR_PREC_MIN instead of 2;
-this revealed a special-case code in mpfr_exp which didn't work for prec=1
-
-------------------------------------------------------------------------
-r9954 | vlefevre | 2016-02-05 01:07:29 +0000 (Fri, 05 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Do the significand parity test only for precision > 1.
-------------------------------------------------------------------------
-r9953 | zimmerma | 2016-02-04 20:01:26 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-updated NEWS and mpfr.texi for MPFR_PREC_MIN=1
-
-------------------------------------------------------------------------
-r9952 | zimmerma | 2016-02-04 19:03:05 +0000 (Thu, 04 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tui_div.c
-
-MPFR_PREC_MIN is now 1, in accordance with the next revision of IEEE-754
-fixed tests to start at MPFR_PREC_MIN instead of hard-coded value of 2
-
-------------------------------------------------------------------------
-r9951 | zimmerma | 2016-02-04 18:31:40 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsi_op.c
-
-fixed test which was assuming MPFR_PREC_MIN=2
-
-------------------------------------------------------------------------
-r9950 | zimmerma | 2016-02-04 18:24:16 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-fixed to correctly check prec=1
-
-------------------------------------------------------------------------
-r9949 | zimmerma | 2016-02-04 18:11:11 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-prepare for MPFR_PREC_MIN=1
-
-------------------------------------------------------------------------
-r9948 | zimmerma | 2016-02-04 18:01:47 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tcheck.c
-
-fixed tcheck for MPFR_PREC_MIN=1
-
-------------------------------------------------------------------------
-r9947 | zimmerma | 2016-02-04 17:54:02 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-prepare mpfr_pow to work for precision 1
-
-------------------------------------------------------------------------
-r9942 | vlefevre | 2016-02-04 15:09:06 +0000 (Thu, 04 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Mention the Caramba project-team.
-------------------------------------------------------------------------
-r9941 | vlefevre | 2016-02-04 15:04:52 +0000 (Thu, 04 Feb 2016) | 4 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/examples/can_round.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fmma.c
- M /trunk/src/fms.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gamma_inc.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/log_ui.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/modf.c
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgamma_inc.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_ui.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/get_patches.sh
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Replaced
- Contributed by the AriC and Caramel projects
-by
- Contributed by the AriC and Caramba projects
-------------------------------------------------------------------------
-r9940 | zimmerma | 2016-02-04 13:42:12 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-added comment about gamma_inc
-
-------------------------------------------------------------------------
-r9939 | vlefevre | 2016-02-04 12:42:29 +0000 (Thu, 04 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Added assertions.
-------------------------------------------------------------------------
-r9938 | zimmerma | 2016-02-04 11:36:53 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/gamma_inc.c
-
-more work on gamma_inc
-
-------------------------------------------------------------------------
-r9937 | zimmerma | 2016-02-04 11:14:14 +0000 (Thu, 04 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-fixed some special values for gamma_inc
-
-------------------------------------------------------------------------
-r9936 | vlefevre | 2016-02-03 18:27:47 +0000 (Wed, 03 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] FIXME: Clarify the status of mpfr_gamma_inc for
-the MPFR 3.2 release.
-------------------------------------------------------------------------
-r9935 | vlefevre | 2016-02-03 18:14:00 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- R /trunk/src/fmma.c (from /trunk/src/fmma.c:9933)
- R /trunk/src/log_ui.c (from /trunk/src/log_ui.c:9933)
-
-Retrieve the src/fmma.c and src/log_ui.c history.
-------------------------------------------------------------------------
-r9934 | zimmerma | 2016-02-03 17:58:35 +0000 (Wed, 03 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- R /trunk/src/fmma.c
- R /trunk/src/log_ui.c
-
-completed "Added Functions" section
-
-------------------------------------------------------------------------
-r9933 | vlefevre | 2016-02-03 17:51:11 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typographic correction.
-------------------------------------------------------------------------
-r9932 | vlefevre | 2016-02-03 17:26:47 +0000 (Wed, 03 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Fixed bug introduced in r9902 and visible in the tests
-on 32-bit machines.
-------------------------------------------------------------------------
-r9931 | vlefevre | 2016-02-03 15:27:03 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Added TODO for code rewrite (discussion between VL and PZ).
-------------------------------------------------------------------------
-r9930 | vlefevre | 2016-02-03 15:16:03 +0000 (Wed, 03 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] Also check that root(0,0) is NaN to make sure that such
-special cases are considered in the right order in the implementation.
-------------------------------------------------------------------------
-r9929 | vlefevre | 2016-02-03 15:09:06 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Completed mpfr_root description: the 0th root gives NaN.
-------------------------------------------------------------------------
-r9928 | vlefevre | 2016-02-03 15:03:20 +0000 (Wed, 03 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/root.c
- M /trunk/tests/troot.c
-
-[src/root.c,tests/troot.c] Removed obsolete code that was commented out;
-some cleanup.
-------------------------------------------------------------------------
-r9927 | vlefevre | 2016-02-03 14:55:55 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Comment correction (again).
-------------------------------------------------------------------------
-r9926 | vlefevre | 2016-02-03 14:39:19 +0000 (Wed, 03 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Comment correction to avoid a variable name with several
-meanings.
-------------------------------------------------------------------------
-r9925 | vlefevre | 2016-02-03 14:26:09 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Simplified code and corrected comment.
-------------------------------------------------------------------------
-r9924 | vlefevre | 2016-02-03 14:04:20 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Corrected a comment and added an assertion (see r9923).
-------------------------------------------------------------------------
-r9923 | vlefevre | 2016-02-03 11:21:18 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/root.c
-
-[src/root.c] Added a FIXME comment.
-------------------------------------------------------------------------
-r9922 | vlefevre | 2016-02-03 10:29:22 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] Typo in a comment.
-------------------------------------------------------------------------
-r9921 | vlefevre | 2016-02-03 10:17:03 +0000 (Wed, 03 Feb 2016) | 3 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-[tests/troot.c] Added tests showing a bug in mpfr_root on large
-integer arguments (found thanks to a bug in GNOME Calculator:
-<https://bugzilla.gnome.org/show_bug.cgi?id=756960>).
-------------------------------------------------------------------------
-r9920 | vlefevre | 2016-02-03 01:59:06 +0000 (Wed, 03 Feb 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tconst_log2.c
-
-Style: use RND_LOOP; mpfr_can_round returns a Boolean-like value.
-------------------------------------------------------------------------
-r9919 | vlefevre | 2016-02-02 17:30:33 +0000 (Tue, 02 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/erandom.c
- M /trunk/src/nrandom.c
-
-[src/{erandom.c,nrandom.c}] Updated a reference.
-------------------------------------------------------------------------
-r9917 | zimmerma | 2016-02-02 16:24:28 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/sin_cos.c
-
-mpfr_can_round -> MPFR_CAN_ROUND
-
-------------------------------------------------------------------------
-r9916 | vlefevre | 2016-02-02 16:13:57 +0000 (Tue, 02 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated FIXME for mpfr_can_round.
-------------------------------------------------------------------------
-r9915 | vlefevre | 2016-02-02 16:05:26 +0000 (Tue, 02 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a FIXME for mpfr_can_round. Still incorrect...
-------------------------------------------------------------------------
-r9914 | vlefevre | 2016-02-02 15:53:35 +0000 (Tue, 02 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9913 | vlefevre | 2016-02-02 15:52:57 +0000 (Tue, 02 Feb 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected note about mpfr_can_round.
-------------------------------------------------------------------------
-r9912 | zimmerma | 2016-02-02 15:50:04 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/const_log2.c
- M /trunk/tests/tconst_log2.c
-
-refactor the exhaustive search code in mpfr_const_log2
-
-------------------------------------------------------------------------
-r9911 | zimmerma | 2016-02-02 14:24:16 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/atan2.c
-
-mpfr_round_p -> MPFR_CAN_ROUND
-
-------------------------------------------------------------------------
-r9910 | zimmerma | 2016-02-02 14:15:44 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-mpfr_can_round -> MPFR_CAN_ROUND
-
-------------------------------------------------------------------------
-r9909 | zimmerma | 2016-02-02 14:13:04 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/factorial.c
-
-mpfr_can_round -> MPFR_CAN_ROUND
-
-------------------------------------------------------------------------
-r9908 | zimmerma | 2016-02-02 14:10:10 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/const_log2.c
- M /trunk/src/exp3.c
-
-use MPFR_CAN_ROUND instead of mpfr_can_round/mpfr_round_p
-
-------------------------------------------------------------------------
-r9907 | zimmerma | 2016-02-02 14:02:26 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/const_log2.c
-
-rounding test was wrong for rounding to nearest
-
-------------------------------------------------------------------------
-r9906 | zimmerma | 2016-02-02 13:43:07 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/const_log2.c
-
-replace mpfr_can_round by mpfr_round_p
-
-------------------------------------------------------------------------
-r9905 | vlefevre | 2016-02-02 13:26:59 +0000 (Tue, 02 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Added a TODO to improve the mpfr_can_round_raw
-efficiency by only doing a bit inspection (no mpn operations).
-------------------------------------------------------------------------
-r9904 | vlefevre | 2016-02-01 17:13:43 +0000 (Mon, 01 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Added test of mpfr_round_p with powers of two
-(similar to the one done in src/round_p.c for MPFR_WANT_ASSERT >= 2).
-------------------------------------------------------------------------
-r9903 | vlefevre | 2016-02-01 16:43:57 +0000 (Mon, 01 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Updated description: mpfr_round_p is also tested
-in check_round_p (and will be in test_pow2).
-------------------------------------------------------------------------
-r9902 | zimmerma | 2016-02-01 16:06:36 +0000 (Mon, 01 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/round_p.c
-
-now mpfr_round_p() always requires normalized input
-
-------------------------------------------------------------------------
-r9901 | vlefevre | 2016-02-01 12:10:57 +0000 (Mon, 01 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Added an assert based on comments in the code.
-------------------------------------------------------------------------
-r9900 | vlefevre | 2016-02-01 09:20:47 +0000 (Mon, 01 Feb 2016) | 1 line
-Changed paths:
- M /trunk/src/round_p.c
-
-[src/round_p.c] Some corrections in comment.
-------------------------------------------------------------------------
-r9899 | zimmerma | 2016-02-01 09:09:12 +0000 (Mon, 01 Feb 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_p.c
-
-added a comment
-
-------------------------------------------------------------------------
-r9898 | vlefevre | 2016-01-31 23:59:34 +0000 (Sun, 31 Jan 2016) | 3 lines
-Changed paths:
- M /trunk/src/round_p.c
-
-[src/round_p.c] Fixed mpfr_round_p for MPFR_WANT_ASSERT >= 2, as
-mpfr_round_p accepts non-normalized inputs (as decided in r9897),
-but not mpfr_can_round_raw (as decided in r9883).
-------------------------------------------------------------------------
-r9897 | zimmerma | 2016-01-31 17:01:37 +0000 (Sun, 31 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/round_p.c
-
-the inputs of mpfr_round_p might not always be normalized
-
-------------------------------------------------------------------------
-r9896 | zimmerma | 2016-01-29 17:29:03 +0000 (Fri, 29 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-fixed FIXME
-
-------------------------------------------------------------------------
-r9893 | vlefevre | 2016-01-29 14:26:51 +0000 (Fri, 29 Jan 2016) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved consistency in messages.
-------------------------------------------------------------------------
-r9892 | vlefevre | 2016-01-29 14:07:18 +0000 (Fri, 29 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated instructions on how to cross-compile MPFR
-for MinGW (i586-mingw32msvc) and test it under Wine.
-------------------------------------------------------------------------
-r9891 | vlefevre | 2016-01-29 13:45:57 +0000 (Fri, 29 Jan 2016) | 10 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/memory.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/terandom.c
- M /trunk/tests/tests.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsum.c
- M /trunk/tools/mpfrlint
-
-Cleanup of memory allocation in the tests:
- * only tests_allocate, tests_reallocate and tests_free should be used
- (now exported instead of mpfr_default_allocate, etc.);
- * this is now mentioned in doc/README.dev;
- * added checks to tools/mpfrlint (heuristics as usual).
-
-Note: This follows the discussion at
- https://sympa.inria.fr/sympa/arc/mpfr/2015-12/msg00055.html
-and should solve these problems under MS Windows (mingw32), though this
-cleanup is more general than an attempt to fix a Windows issue.
-------------------------------------------------------------------------
-r9890 | zimmerma | 2016-01-29 10:11:08 +0000 (Fri, 29 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_prec.c
-
-fixed case when prec > bn * GMP_NUMB_BITS and directed rounding
-
-------------------------------------------------------------------------
-r9889 | zimmerma | 2016-01-29 07:13:37 +0000 (Fri, 29 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-typo
-
-------------------------------------------------------------------------
-r9888 | vlefevre | 2016-01-28 14:26:01 +0000 (Thu, 28 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Updated comment and corrected condition on prec.
-------------------------------------------------------------------------
-r9887 | vlefevre | 2016-01-28 13:56:53 +0000 (Thu, 28 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Updated comments.
-------------------------------------------------------------------------
-r9886 | vlefevre | 2016-01-28 13:27:09 +0000 (Thu, 28 Jan 2016) | 5 lines
-Changed paths:
- M /trunk/src/round_p.c
-
-[src/round_p.c] Added an assertion (similar to what was added to
-mpfr_can_round_raw). This triggers failures, which could also be
-detected with MPFR_WANT_ASSERT >= 2, due to the fact that mpfr_div
-can internally generate a number that is not normalized before a
-rounding test.
-------------------------------------------------------------------------
-r9885 | vlefevre | 2016-01-28 13:17:52 +0000 (Thu, 28 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
-
-[src/round_prec.c] Updated comments.
-------------------------------------------------------------------------
-r9884 | zimmerma | 2016-01-28 12:17:32 +0000 (Thu, 28 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/round_prec.c
- M /trunk/tests/tcan_round.c
-
-more work on mpfr_can_round
-
-------------------------------------------------------------------------
-r9883 | zimmerma | 2016-01-28 09:20:45 +0000 (Thu, 28 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/exp3.c
- M /trunk/src/round_prec.c
- M /trunk/tests/tcan_round.c
-
-fixed bug in mpfr_can_round for input = 2^k
-
-------------------------------------------------------------------------
-r9882 | vlefevre | 2016-01-27 16:24:48 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Replaced "Rounding Related Functions" by
-"Rounding-Related Functions" (thanks to Keith Briggs for the remark).
-------------------------------------------------------------------------
-r9881 | vlefevre | 2016-01-27 16:05:28 +0000 (Wed, 27 Jan 2016) | 3 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Added tests for powers of two. This triggers
-errors. I may have done mistakes, but at least x = 2^32, j = 32,
-r1=MPFR_RNDN, r2=MPFR_RNDN seems buggy.
-------------------------------------------------------------------------
-r9880 | zimmerma | 2016-01-27 15:12:56 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/examples/can_round.c
-
-simplified
-
-------------------------------------------------------------------------
-r9879 | zimmerma | 2016-01-27 14:28:25 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-another detail
-
-------------------------------------------------------------------------
-r9878 | vlefevre | 2016-01-27 14:27:26 +0000 (Wed, 27 Jan 2016) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected mpfr_can_round description again as the
-possible difference is on 0+ = 2^(emin-1), not about overflow.
-Let's just say "assuming an unbounded exponent range".
-------------------------------------------------------------------------
-r9877 | vlefevre | 2016-01-27 13:57:12 +0000 (Wed, 27 Jan 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected mpfr_can_round description (about overflow).
-------------------------------------------------------------------------
-r9876 | zimmerma | 2016-01-27 13:43:16 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-yet another improvement
-
-------------------------------------------------------------------------
-r9875 | zimmerma | 2016-01-27 13:37:09 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-improved documentation
-
-------------------------------------------------------------------------
-r9874 | vlefevre | 2016-01-27 13:24:42 +0000 (Wed, 27 Jan 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Clarified change in r9873.
-------------------------------------------------------------------------
-r9873 | zimmerma | 2016-01-27 12:48:07 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-improve documentation of mpfr_can_round
-
-------------------------------------------------------------------------
-r9872 | zimmerma | 2016-01-27 12:03:22 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/examples/can_round.c
-
-also print the rounded value
-
-------------------------------------------------------------------------
-r9871 | zimmerma | 2016-01-27 11:15:01 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-added pointer to examples/can_round.c
-
-------------------------------------------------------------------------
-r9870 | vlefevre | 2016-01-27 10:51:08 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/examples/can_round.c
-
-[examples/can_round.c] Removed the useless #include <gmp.h> and
-replaced the internal mpfr_dump by mpfr_printf.
-------------------------------------------------------------------------
-r9869 | zimmerma | 2016-01-27 10:50:12 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-improved documentation of mpfr_can_round
-
-------------------------------------------------------------------------
-r9868 | zimmerma | 2016-01-27 10:44:29 +0000 (Wed, 27 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/examples/can_round.c
-
-added example on how to use mpfr_can_round
-
-------------------------------------------------------------------------
-r9865 | zimmerma | 2016-01-21 21:50:49 +0000 (Thu, 21 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-mention mpfr_set/get_decimal128 for the future (low priority for now)
-
-------------------------------------------------------------------------
-r9864 | vlefevre | 2016-01-21 15:43:35 +0000 (Thu, 21 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/round_p.c
-
-[src/round_p.c] Code formatting.
-------------------------------------------------------------------------
-r9863 | zimmerma | 2016-01-21 13:12:33 +0000 (Thu, 21 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added remark about Ei vs E1
-
-------------------------------------------------------------------------
-r9861 | vlefevre | 2016-01-21 09:13:26 +0000 (Thu, 21 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] Improved bug20160120.
-------------------------------------------------------------------------
-r9859 | vlefevre | 2016-01-21 00:31:32 +0000 (Thu, 21 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] In bug20160120, check the validity of the result with
-mpfr_check first, because the mpfr_sqrt was generating invalid data.
-------------------------------------------------------------------------
-r9858 | zimmerma | 2016-01-20 21:08:21 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
- M /trunk/tests/tsqrt.c
-
-fixed bug in mpfr_sqrt reported by Fredrik Johansson
-
-------------------------------------------------------------------------
-r9857 | zimmerma | 2016-01-20 17:05:02 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added test case for bug reported by Fredrik Johansson
-
-------------------------------------------------------------------------
-r9856 | zimmerma | 2016-01-20 15:36:35 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-added FIXME
-
-------------------------------------------------------------------------
-r9854 | vlefevre | 2016-01-20 15:25:01 +0000 (Wed, 20 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tzeta.c
-
-[tests/tzeta.c] Added casts for printf.
-------------------------------------------------------------------------
-r9853 | vlefevre | 2016-01-20 15:19:23 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-[tests/tzeta.c] Some corrections. Made the input value of the latest
-test clear (avoiding a long string at the same time).
-------------------------------------------------------------------------
-r9852 | zimmerma | 2016-01-20 15:03:30 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/src/zeta.c
- M /trunk/tests/tzeta.c
-
-fixed bug for zeta(s) with s near an even negative integer
-
-------------------------------------------------------------------------
-r9851 | vlefevre | 2016-01-20 14:52:31 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Instructions on how to cross-compile MPFR for MinGW
-(i586-mingw32msvc) and test it under Wine.
-------------------------------------------------------------------------
-r9850 | vlefevre | 2016-01-20 14:27:43 +0000 (Wed, 20 Jan 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Typo.
-------------------------------------------------------------------------
-r9848 | vlefevre | 2016-01-20 13:52:38 +0000 (Wed, 20 Jan 2016) | 8 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Improved the generic tests in order to trigger the
-mpfr_jn bug found by Fredrik Johansson (r9841) and potential similar
-bugs: For half cases, the precision of the inputs was modified to be
-smaller than the base precision (for the result). Here, this rule is
-changed so that if the base precision is small (< 16), then the
-precision of the inputs is chosen to be significantly *larger* than
-the base precision in general.
-Note: With this improvement, both tj0 and tj1 fail in r9840.
-------------------------------------------------------------------------
-r9847 | zimmerma | 2016-01-20 10:11:48 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added references
-
-------------------------------------------------------------------------
-r9846 | zimmerma | 2016-01-20 09:58:51 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-added section about gamma_inc
-
-------------------------------------------------------------------------
-r9844 | zimmerma | 2016-01-20 08:54:09 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/src/jyn_asympt.c
- M /trunk/tests/tj0.c
-
-fixed bug found by Fredrik Johansson
-
-------------------------------------------------------------------------
-r9843 | zimmerma | 2016-01-20 08:11:55 +0000 (Wed, 20 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-added reference for eint
-
-------------------------------------------------------------------------
-r9842 | vlefevre | 2016-01-20 02:57:40 +0000 (Wed, 20 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tj0.c
-
-[tests/tj0.c] Avoid mpfr_set_d.
-------------------------------------------------------------------------
-r9841 | zimmerma | 2016-01-19 21:53:16 +0000 (Tue, 19 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tj0.c
-
-added bug found by Fredrik Johansson in mpfr_j0
-
-------------------------------------------------------------------------
-r9840 | zimmerma | 2016-01-19 21:25:55 +0000 (Tue, 19 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-added mpfr_gamma_inc
-
-------------------------------------------------------------------------
-r9839 | vlefevre | 2016-01-19 15:28:24 +0000 (Tue, 19 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Use MPFR_ARE_SINGULAR.
-------------------------------------------------------------------------
-r9838 | zimmerma | 2016-01-19 13:29:47 +0000 (Tue, 19 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-deal with the case where one of a or x is not regular
-
-------------------------------------------------------------------------
-r9837 | vlefevre | 2016-01-19 09:59:16 +0000 (Tue, 19 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tools/nightly-test
-
-[tools/nightly-test] Corrected tests.
-------------------------------------------------------------------------
-r9835 | zimmerma | 2016-01-19 08:42:53 +0000 (Tue, 19 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added reference
-
-------------------------------------------------------------------------
-r9834 | zimmerma | 2016-01-18 13:41:18 +0000 (Mon, 18 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added the incomplete beta function
-
-------------------------------------------------------------------------
-r9833 | zimmerma | 2016-01-18 08:50:53 +0000 (Mon, 18 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-incomplete Gamma is now available
-
-------------------------------------------------------------------------
-r9832 | zimmerma | 2016-01-18 08:28:50 +0000 (Mon, 18 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-switch to bash and add --enable-decimal-float
-
-------------------------------------------------------------------------
-r9831 | zimmerma | 2016-01-18 08:25:25 +0000 (Mon, 18 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
-
-minor modification of documentation for mini-gmp
-
-------------------------------------------------------------------------
-r9830 | zimmerma | 2016-01-18 08:23:53 +0000 (Mon, 18 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added target "make bench"
-
-------------------------------------------------------------------------
-r9829 | zimmerma | 2016-01-17 19:27:09 +0000 (Sun, 17 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgamma_inc.c
-
-allow tgamma x prec to print gamma(x) to prec bits
-
-------------------------------------------------------------------------
-r9828 | vlefevre | 2016-01-17 01:05:44 +0000 (Sun, 17 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added tgamma_inc to svn:ignore property.
-------------------------------------------------------------------------
-r9827 | vlefevre | 2016-01-17 00:55:54 +0000 (Sun, 17 Jan 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO update.
-------------------------------------------------------------------------
-r9826 | vlefevre | 2016-01-17 00:48:16 +0000 (Sun, 17 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/fmma.c
-
-[src/fmma.c] Removed trailing spaces.
-------------------------------------------------------------------------
-r9825 | vlefevre | 2016-01-17 00:46:30 +0000 (Sun, 17 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tgamma_inc.c
-
-[tests/tgamma_inc.c] Portability correction.
-------------------------------------------------------------------------
-r9824 | vlefevre | 2016-01-17 00:43:48 +0000 (Sun, 17 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Improved a comment.
-------------------------------------------------------------------------
-r9823 | vlefevre | 2016-01-17 00:37:32 +0000 (Sun, 17 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/gamma_inc.c
-
-[src/gamma_inc.c] Various corrections.
-------------------------------------------------------------------------
-r9822 | zimmerma | 2016-01-16 09:37:34 +0000 (Sat, 16 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/gamma_inc.c
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
- M /trunk/tests/tgamma.c
- A /trunk/tests/tgamma_inc.c
-
-first version of incomplete Gamma function (work in progress)
-
-------------------------------------------------------------------------
-r9821 | vlefevre | 2016-01-16 09:24:34 +0000 (Sat, 16 Jan 2016) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO for correctly rounded polynomials (like fmma).
-------------------------------------------------------------------------
-r9820 | zimmerma | 2016-01-16 08:29:34 +0000 (Sat, 16 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/fmma.c
- M /trunk/tests/tfmma.c
-
-try to fix bugs in fmma (work in progress)
-
-------------------------------------------------------------------------
-r9819 | vlefevre | 2016-01-15 16:30:07 +0000 (Fri, 15 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Added a FIXME comment: mpfr_log_ui is much slower than
-mpfr_log on some values of n, e.g. around ULONG_MAX/3.
-------------------------------------------------------------------------
-r9818 | vlefevre | 2016-01-15 16:18:35 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tlog_ui.c
-
-[tests/tlog_ui.c] Added tests for n around ULONG_MAX/3.
-------------------------------------------------------------------------
-r9817 | vlefevre | 2016-01-15 16:06:29 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Fixed the computation of p.
-------------------------------------------------------------------------
-r9816 | vlefevre | 2016-01-15 15:13:07 +0000 (Fri, 15 Jan 2016) | 4 lines
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Removed a mpz_sub_ui(...,1) to match the comment.
-This -1 came from the previous code, but this doesn't change the
-value of k because a multiple of 3 cannot be a power of 2. Also
-renamed a variable.
-------------------------------------------------------------------------
-r9815 | vlefevre | 2016-01-15 15:07:32 +0000 (Fri, 15 Jan 2016) | 3 lines
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Compute the value of k without rounding (if n was larger
-than 2^53 or even 2^24 due to dynamic x87 precision, the result could
-be wrong) and overflow (3 * n doesn't always fit in a limb).
-------------------------------------------------------------------------
-r9814 | vlefevre | 2016-01-15 11:30:54 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Added assertions.
-------------------------------------------------------------------------
-r9813 | vlefevre | 2016-01-15 11:14:08 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tlog_ui.c
-
-[tests/tlog_ui.c] Added tests for n around LONG_MAX.
-------------------------------------------------------------------------
-r9812 | vlefevre | 2016-01-15 09:59:26 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Replaced a comment by an assertion.
-------------------------------------------------------------------------
-r9811 | vlefevre | 2016-01-15 09:52:33 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/log_ui.c
-
-[src/log_ui.c] Added a FIXME (integer overflow for large n).
-------------------------------------------------------------------------
-r9810 | vlefevre | 2016-01-15 09:50:55 +0000 (Fri, 15 Jan 2016) | 14 lines
-Changed paths:
- M /trunk/tests/tlog_ui.c
-
-[tests/tlog_ui.c]
- * In the loop, do not test n = 0 and n = 1, because mpfr_can_round
- always fails for these values, so that the test is pointless.
- * Check that mpfr_can_round no longer fails (this is possible as
- we are not doing random tests, i.e. the tested values are known);
- the additional precision for y had to be increased.
- * Also test large values of n (ULONG_MAX down to ULONG_MAX-19). When
- GCC's run-time sanitizer -fsanitize=undefined -fno-sanitize-recover
- is used, it signals an error for large values of n.
- * The reference values y are obtained with mpfr_log instead of
- mpfr_log_ui: indeed we need a different implementation from the
- tested function, otherwise only the rounding is tested! Without
- GCC's run-time sanitizer, this shows that mpfr_log_ui is buggy
- for large values of n.
-------------------------------------------------------------------------
-r9809 | vlefevre | 2016-01-15 02:26:55 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added tfmma and tlog_ui to svn:ignore property.
-------------------------------------------------------------------------
-r9808 | vlefevre | 2016-01-15 02:21:43 +0000 (Fri, 15 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/fmma.c
-
-[src/fmma.c] Use MPFR_SET_EXP to get an assertion failure in case of
-out-of-range exponent instead of uncontrolled behavior.
-------------------------------------------------------------------------
-r9807 | vlefevre | 2016-01-15 02:11:51 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Added tests that trigger an error.
-------------------------------------------------------------------------
-r9806 | vlefevre | 2016-01-15 01:39:44 +0000 (Fri, 15 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Added a comment for the new code.
-------------------------------------------------------------------------
-r9805 | vlefevre | 2016-01-14 23:06:22 +0000 (Thu, 14 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Tests in lexicographic order.
-------------------------------------------------------------------------
-r9804 | zimmerma | 2016-01-14 20:46:59 +0000 (Thu, 14 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/taway.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tzeta_ui.c
-
-in tests, removed #if MPFR_VERSION >= MPFR_VERSION_NUM(2,x,y)
-
-------------------------------------------------------------------------
-r9803 | zimmerma | 2016-01-14 20:45:36 +0000 (Thu, 14 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-forgot in last commit
-
-------------------------------------------------------------------------
-r9802 | zimmerma | 2016-01-14 20:43:39 +0000 (Thu, 14 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/log_ui.c
- M /trunk/src/mpfr.h
- A /trunk/tests/tlog_ui.c
-
-added new function mpfr_log_ui
-
-------------------------------------------------------------------------
-r9801 | zimmerma | 2016-01-13 09:18:05 +0000 (Wed, 13 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-adapted to 3- and 4-argument functions (using patch from Patrick Pelissier)
-
-------------------------------------------------------------------------
-r9800 | vlefevre | 2016-01-12 17:44:31 +0000 (Tue, 12 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] C++ compatibility.
-------------------------------------------------------------------------
-r9799 | vlefevre | 2016-01-12 17:39:15 +0000 (Tue, 12 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-[tests/tfmma.c] Fixed type in printf.
-------------------------------------------------------------------------
-r9798 | vlefevre | 2016-01-12 17:36:29 +0000 (Tue, 12 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/fmma.c
-
-[src/fmma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
-------------------------------------------------------------------------
-r9797 | vlefevre | 2016-01-12 16:38:21 +0000 (Tue, 12 Jan 2016) | 1 line
-Changed paths:
- M /trunk/tests/tfmma.c
-
-Really replaced mpfr_printf by printf.
-------------------------------------------------------------------------
-r9796 | zimmerma | 2016-01-12 15:50:48 +0000 (Tue, 12 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/fmma.c
-
-give copyright to FSF
-
-------------------------------------------------------------------------
-r9795 | zimmerma | 2016-01-12 14:13:09 +0000 (Tue, 12 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tests/tfmma.c
-
-replaced mpfr_printf calls
-
-------------------------------------------------------------------------
-r9794 | zimmerma | 2016-01-12 14:12:52 +0000 (Tue, 12 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/src/fmma.c
-
-changed copyright (I'm the sole author of this part of the code)
-
-------------------------------------------------------------------------
-r9793 | zimmerma | 2016-01-12 12:29:04 +0000 (Tue, 12 Jan 2016) | 2 lines
-Changed paths:
- A /trunk/src/fmma.c
- A /trunk/tests/tfmma.c
-
-forgot two files
-
-------------------------------------------------------------------------
-r9792 | vlefevre | 2016-01-12 12:13:20 +0000 (Tue, 12 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] C89 compatibility correction.
-------------------------------------------------------------------------
-r9791 | vlefevre | 2016-01-12 12:00:23 +0000 (Tue, 12 Jan 2016) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
-------------------------------------------------------------------------
-r9788 | zimmerma | 2016-01-10 21:39:53 +0000 (Sun, 10 Jan 2016) | 4 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/fma.c
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-speedup in mpfr_fma and mpfr_fms
-new functions mpfr_fmma and mpfr_fmms
-modified mbench/fma to compute b*c+c instead of b*b+c (b*c+d would be better)
-
-------------------------------------------------------------------------
-r9787 | vlefevre | 2016-01-08 15:22:26 +0000 (Fri, 08 Jan 2016) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added info about the parallel test harness.
-------------------------------------------------------------------------
-r9786 | vlefevre | 2016-01-08 15:17:02 +0000 (Fri, 08 Jan 2016) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/Makefile.am
-
-Updated documentation related to valgrind or other wrapper for the tests
-due to the fact that Automake 1.13+ generates a parallel test harness.
- * doc/README.dev: replaced VALGRIND by LOG_COMPILER.
- * tests/Makefile.am: added a comment mentioning LOG_COMPILER.
-------------------------------------------------------------------------
-r9784 | zimmerma | 2016-01-05 07:58:46 +0000 (Tue, 05 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/tools/bench/mpfrbench.c
-
-mpfrbench: use clock() when getrusage() is not available
-
-------------------------------------------------------------------------
-r9783 | vlefevre | 2016-01-02 01:32:58 +0000 (Sat, 02 Jan 2016) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added a note about tuning MPFR:
- For the current GMP version (6.1.0), a Unix-like OS is required.
-------------------------------------------------------------------------
-r9780 | vlefevre | 2016-01-01 02:17:19 +0000 (Fri, 01 Jan 2016) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9779 | vlefevre | 2016-01-01 02:15:38 +0000 (Fri, 01 Jan 2016) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/talloc.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/Makefile.am
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2016 with
- perl -pi -e 's/ (\d{4}-)?(2015)(?= Free Software)/
- " ".($1||"$2-").($2+1)/e' **/*(^/)
-under zsh (the m4 and tools/mbench directories were not modified).
-Removed 2015 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r9778 | vlefevre | 2015-12-28 23:51:22 +0000 (Mon, 28 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed MPFR_WIN_THREAD_SAFE_DLL definition
-(patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r9777 | vlefevre | 2015-12-27 23:56:07 +0000 (Sun, 27 Dec 2015) | 6 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-[tests/mpf_compat.h] Fix: File "inp_str.dat" could not be opened with
-builds outside the source directory (objdir different from srcdir).
-This did not generate an error, but prevented a test from being done.
-Now that mpfr-test.h is included via the mpf_compat.c or mpfr_compat.c
-file (there does not seem to be a valid reason not to include it), we
-can use src_fopen to open the file in all cases.
-------------------------------------------------------------------------
-r9775 | vlefevre | 2015-12-27 13:54:59 +0000 (Sun, 27 Dec 2015) | 1 line
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
- M /trunk/tests/tversion.c
-
-[tests] In tversion.c, output the locale too (if supported).
-------------------------------------------------------------------------
-r9774 | vlefevre | 2015-12-27 13:50:21 +0000 (Sun, 27 Dec 2015) | 1 line
-Changed paths:
- M /trunk/tests/tinp_str.c
-
-[tests/tinp_str.c] Added a blank line.
-------------------------------------------------------------------------
-r9773 | vlefevre | 2015-12-27 13:31:56 +0000 (Sun, 27 Dec 2015) | 4 lines
-Changed paths:
- M /trunk/tests/inp_str.dat
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/tinp_str.c
-
-[tests]
- * inp_str.dat: added a locale-independent line at the beginning of
- the file (useful for mpf_compat).
- * mpf_compat.h, tinp_str.c: update because of this change.
-------------------------------------------------------------------------
-r9772 | vlefevre | 2015-12-27 11:51:58 +0000 (Sun, 27 Dec 2015) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Improved src_fopen description (do not use the term
-"src directory" because there is a directory named "src", but this
-is not what is referred here).
-------------------------------------------------------------------------
-r9771 | vlefevre | 2015-12-26 13:52:07 +0000 (Sat, 26 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-[tests/mpf_compat.h] Fix: changed "inp_str.data" to "inp_str.dat"
-due to the file rename in r8120 (otherwise nothing is tested).
-------------------------------------------------------------------------
-r9770 | vlefevre | 2015-12-26 11:41:11 +0000 (Sat, 26 Dec 2015) | 8 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-[tests/mpf_compat.h] For mpf_set_str and mpf_init_set_str, avoid strings
-with ".", since for GMP the decimal separator is locale dependent (the
-tests can be run in non-C locales on purpose in order to detect issues
-in various locales), so that for the mpf_compat test, the conversion
-fails and the mpf value x is set to 0 (which can yield other problems,
-such as with mpf_div (y, x, x), which raises an exception).
-Note: this problem appeared in r9157, where tests_start_mpfr() was added
-to mpf_compat.h (the locale setting is done in this function).
-------------------------------------------------------------------------
-r9769 | zimmerma | 2015-12-18 08:24:39 +0000 (Fri, 18 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
-
-patch from Patrick Pelissier (for MinGW)
-
-------------------------------------------------------------------------
-r9768 | vlefevre | 2015-12-15 07:47:43 +0000 (Tue, 15 Dec 2015) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Corrections for C++.
-------------------------------------------------------------------------
-r9767 | vlefevre | 2015-12-14 16:38:00 +0000 (Mon, 14 Dec 2015) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r9766 | zimmerma | 2015-12-14 13:59:43 +0000 (Mon, 14 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-review by Rob (sisyphus1@optusnet.com.au)
-
-------------------------------------------------------------------------
-r9765 | zimmerma | 2015-12-14 11:55:44 +0000 (Mon, 14 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-removed obsolete parts (?) for MinGW
-
-------------------------------------------------------------------------
-r9764 | zimmerma | 2015-12-14 11:52:10 +0000 (Mon, 14 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-new text for Windows/Visual Studio/Visual C++ part contributed by Brian Gladman
-
-------------------------------------------------------------------------
-r9763 | vlefevre | 2015-12-14 11:12:18 +0000 (Mon, 14 Dec 2015) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Switch to UTF-8.
-------------------------------------------------------------------------
-r9762 | zimmerma | 2015-12-14 09:38:00 +0000 (Mon, 14 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-changes proposed by Alexander (sav_ix@ukr.net)
-
-------------------------------------------------------------------------
-r9761 | vlefevre | 2015-12-14 08:55:12 +0000 (Mon, 14 Dec 2015) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Correction.
-------------------------------------------------------------------------
-r9760 | zimmerma | 2015-12-14 08:47:26 +0000 (Mon, 14 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-clock() should work everywhere
-
-------------------------------------------------------------------------
-r9759 | vlefevre | 2015-12-14 08:40:26 +0000 (Mon, 14 Dec 2015) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] The timing test from r9753 in POSIX-only.
-------------------------------------------------------------------------
-r9758 | vlefevre | 2015-12-14 08:02:45 +0000 (Mon, 14 Dec 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9757 | zimmerma | 2015-12-14 07:56:59 +0000 (Mon, 14 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-update INSTALL file
-
-------------------------------------------------------------------------
-r9756 | zimmerma | 2015-12-14 07:39:10 +0000 (Mon, 14 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
--D__USE_MINGW_ANSI_STDIO is needed for GMP only
-
-------------------------------------------------------------------------
-r9755 | vlefevre | 2015-12-11 16:46:48 +0000 (Fri, 11 Dec 2015) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Updated comment about overlapping between input and output.
-------------------------------------------------------------------------
-r9754 | zimmerma | 2015-12-11 16:15:14 +0000 (Fri, 11 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-document that (currently) mpfr_sum doesn't allow overlap
-
-------------------------------------------------------------------------
-r9753 | zimmerma | 2015-12-11 15:49:29 +0000 (Fri, 11 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-timing test to compare mpfr_sum and naive algorithm (without correct rounding)
-
-------------------------------------------------------------------------
-r9751 | zimmerma | 2015-12-11 13:39:41 +0000 (Fri, 11 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-update wrt -D__USE_MINGW_ANSI_STDIO
-
-------------------------------------------------------------------------
-r9750 | zimmerma | 2015-12-11 13:24:51 +0000 (Fri, 11 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-note about MinGW and TLS support
-
-------------------------------------------------------------------------
-r9749 | zimmerma | 2015-12-11 08:54:39 +0000 (Fri, 11 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-improving error message
-
-------------------------------------------------------------------------
-r9747 | zimmerma | 2015-12-10 20:59:26 +0000 (Thu, 10 Dec 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-added comment and message for errors under MinGW
-
-------------------------------------------------------------------------
-r9745 | vlefevre | 2015-12-03 10:17:09 +0000 (Thu, 03 Dec 2015) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated a comment about clang and division by 0.
-------------------------------------------------------------------------
-r9742 | vlefevre | 2015-11-11 01:43:00 +0000 (Wed, 11 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update.
-------------------------------------------------------------------------
-r9741 | vlefevre | 2015-11-11 01:25:12 +0000 (Wed, 11 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update.
-------------------------------------------------------------------------
-r9740 | vlefevre | 2015-11-11 00:48:50 +0000 (Wed, 11 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor correction.
-------------------------------------------------------------------------
-r9739 | vlefevre | 2015-11-10 17:00:22 +0000 (Tue, 10 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor correction.
-------------------------------------------------------------------------
-r9738 | vlefevre | 2015-11-10 16:29:45 +0000 (Tue, 10 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Minor correction.
-------------------------------------------------------------------------
-r9737 | vlefevre | 2015-11-10 15:59:51 +0000 (Tue, 10 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update.
-------------------------------------------------------------------------
-r9736 | vlefevre | 2015-11-10 13:12:45 +0000 (Tue, 10 Nov 2015) | 2 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Clarification: avoid the word "iteration" for the loop
-over the inputs, when possible.
-------------------------------------------------------------------------
-r9735 | vlefevre | 2015-11-10 12:57:20 +0000 (Tue, 10 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update.
-------------------------------------------------------------------------
-r9734 | vlefevre | 2015-11-10 09:03:17 +0000 (Tue, 10 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update.
-------------------------------------------------------------------------
-r9733 | vlefevre | 2015-11-10 01:30:55 +0000 (Tue, 10 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update.
-------------------------------------------------------------------------
-r9732 | vlefevre | 2015-11-09 16:28:57 +0000 (Mon, 09 Nov 2015) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added a FIXME comment about the reuse of an input for the
-output.
-------------------------------------------------------------------------
-r9731 | vlefevre | 2015-11-06 23:17:31 +0000 (Fri, 06 Nov 2015) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/src/mpfr-gmp.h
-
-GMP 5.0.0 or newer is required (instead of 4.2.0).
-------------------------------------------------------------------------
-r9730 | vlefevre | 2015-11-06 15:11:12 +0000 (Fri, 06 Nov 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Major and final update (complete rewrite).
-------------------------------------------------------------------------
-r9729 | vlefevre | 2015-11-06 02:49:03 +0000 (Fri, 06 Nov 2015) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Added a TODO.
-------------------------------------------------------------------------
-r9728 | vlefevre | 2015-11-06 02:16:50 +0000 (Fri, 06 Nov 2015) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Bug fixed (MPN_COPY_INCR instead of MPN_COPY_DECR).
-------------------------------------------------------------------------
-r9727 | vlefevre | 2015-11-05 15:55:00 +0000 (Thu, 05 Nov 2015) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Minor comment correction.
-------------------------------------------------------------------------
-r9726 | vlefevre | 2015-11-05 12:43:51 +0000 (Thu, 05 Nov 2015) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added another assertion (checked).
-------------------------------------------------------------------------
-r9725 | vlefevre | 2015-11-05 12:12:14 +0000 (Thu, 05 Nov 2015) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added assertions (checked).
-------------------------------------------------------------------------
-r9724 | vlefevre | 2015-11-04 10:29:01 +0000 (Wed, 04 Nov 2015) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added a comment.
-------------------------------------------------------------------------
-r9723 | vlefevre | 2015-11-04 10:17:08 +0000 (Wed, 04 Nov 2015) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] In tsum, add testcases for mpfr_sum triggering the bug fixed
-in r9722.
-------------------------------------------------------------------------
-r9722 | vlefevre | 2015-11-04 10:07:06 +0000 (Wed, 04 Nov 2015) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Bug fix: an error bound was too large to compute the sign
-of the secondary term (when the TMD occurs).
-------------------------------------------------------------------------
-r9721 | vlefevre | 2015-11-03 14:17:15 +0000 (Tue, 03 Nov 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tstdint.c
- M /trunk/tests/tvalist.c
-
-[tests/{tstdint.c,tvalist.c}] Updated and improved comment about the
-test of partial + full <mpfr.h> inclusion.
-------------------------------------------------------------------------
-r9720 | vlefevre | 2015-11-03 11:17:16 +0000 (Tue, 03 Nov 2015) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] C code starting with # (preprocessor directives) must not
-be indented.
-------------------------------------------------------------------------
-r9718 | zimmerma | 2015-11-03 10:52:52 +0000 (Tue, 03 Nov 2015) | 2 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/doc/mini-gmp
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/tests/tests.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
-
-simplify the configuration with mini-gmp
-
-------------------------------------------------------------------------
-r9717 | vlefevre | 2015-10-30 15:52:37 +0000 (Fri, 30 Oct 2015) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Updated comment for sum_raw().
-------------------------------------------------------------------------
-r9716 | zimmerma | 2015-10-30 10:28:21 +0000 (Fri, 30 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.h
-
-better definition of GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r9715 | zimmerma | 2015-10-29 18:55:09 +0000 (Thu, 29 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-update description of file
-
-------------------------------------------------------------------------
-r9710 | vlefevre | 2015-10-29 13:36:15 +0000 (Thu, 29 Oct 2015) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Improved comment about the mpfr_divhigh_n_basecase bug.
-------------------------------------------------------------------------
-r9708 | zimmerma | 2015-10-29 12:29:44 +0000 (Thu, 29 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/trandom_deviate.c
-
-more tests do work with mini-gmp (from GMP 6.1.0-rc1)
-
-------------------------------------------------------------------------
-r9707 | vlefevre | 2015-10-29 12:17:04 +0000 (Thu, 29 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] For the tests on the source files, ignore everything
-related to mini-gmp, not just the src/mini-gmp.[ch] files.
-------------------------------------------------------------------------
-r9706 | vlefevre | 2015-10-29 12:06:19 +0000 (Thu, 29 Oct 2015) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": mention -DMPFR_TUNE_COVERAGE.
-------------------------------------------------------------------------
-r9705 | vlefevre | 2015-10-29 12:02:17 +0000 (Thu, 29 Oct 2015) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Updated comment about the mpfr_divhigh_n_basecase bug.
-------------------------------------------------------------------------
-r9704 | zimmerma | 2015-10-29 09:44:03 +0000 (Thu, 29 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-fixed replacement for mpn_neg (return value was wrong)
-
-------------------------------------------------------------------------
-r9703 | zimmerma | 2015-10-29 08:31:48 +0000 (Thu, 29 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/urandomb.c
-
-adapt for mini-gmp (from GMP 6.1.0-rc1)
-
-------------------------------------------------------------------------
-r9702 | zimmerma | 2015-10-29 06:57:07 +0000 (Thu, 29 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/src/bernoulli.c
- M /trunk/src/div.c
-
-replace obsolete mpz_div_2exp function by mpz_xdiv_q_2exp
-
-------------------------------------------------------------------------
-r9701 | zimmerma | 2015-10-28 17:33:01 +0000 (Wed, 28 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/doc/mini-gmp
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
-
-adapt mini-gmp stuff to GMP 6.1.0-rc1
-
-------------------------------------------------------------------------
-r9700 | zimmerma | 2015-10-28 16:39:50 +0000 (Wed, 28 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/src/const_euler.c
-
-replace obsolete mpz_div by mpz_tdiv_q
-
-------------------------------------------------------------------------
-r9699 | zimmerma | 2015-10-27 12:20:39 +0000 (Tue, 27 Oct 2015) | 3 lines
-Changed paths:
- M /trunk/src/mulders.c
- M /trunk/tests/tdiv.c
-
-fix bug reported by Ricky Farr
-(https://sympa.inria.fr/sympa/arc/mpfr/2015-10/msg00023.html)
-
-------------------------------------------------------------------------
-r9697 | vlefevre | 2015-10-22 14:34:29 +0000 (Thu, 22 Oct 2015) | 2 lines
-Changed paths:
- M /trunk/autogen.sh
-
-[autogen.sh] Restore the INSTALL file also if the process receives
-a usual signal (SIGHUP, SIGINT, SIGQUIT or SIGTERM).
-------------------------------------------------------------------------
-r9696 | vlefevre | 2015-10-22 12:37:52 +0000 (Thu, 22 Oct 2015) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Added a comment about compiler info.
-------------------------------------------------------------------------
-r9695 | vlefevre | 2015-10-22 12:25:43 +0000 (Thu, 22 Oct 2015) | 3 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Instead of __GNUC__, __GNUC_MINOR__ and
-__GNUC_PATCHLEVEL__, output __VERSION__, which gives more
-information (for GCC development versions and ICC).
-------------------------------------------------------------------------
-r9694 | vlefevre | 2015-10-21 11:41:57 +0000 (Wed, 21 Oct 2015) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Updated comment for sum_raw().
-------------------------------------------------------------------------
-r9693 | vlefevre | 2015-09-15 14:29:32 +0000 (Tue, 15 Sep 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a comment about mpfr_get_{si,ui,sj,uj} and flags.
-------------------------------------------------------------------------
-r9692 | vlefevre | 2015-09-15 14:02:41 +0000 (Tue, 15 Sep 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9691 | vlefevre | 2015-09-15 13:59:49 +0000 (Tue, 15 Sep 2015) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Changed "returned value" to "return value" when this
-is the value returned by the C function (synonymous, but sometimes
-less ambiguous).
-------------------------------------------------------------------------
-r9690 | vlefevre | 2015-09-15 13:55:46 +0000 (Tue, 15 Sep 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] For r9689, "returned value" → "return value".
-------------------------------------------------------------------------
-r9689 | vlefevre | 2015-09-15 13:51:33 +0000 (Tue, 15 Sep 2015) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Completed the specification of mpfr_get_{si,ui,sj,uj}
-and mpfr_get_z (inexact flag, and returned value for mpfr_get_z).
-------------------------------------------------------------------------
-r9688 | vlefevre | 2015-09-15 12:16:15 +0000 (Tue, 15 Sep 2015) | 6 lines
-Changed paths:
- M /trunk/tests/tget_z.c
-
-[tests/tget_z.c] Fixed and improved the check_one() test.
- * The input value was modified at each iteration, giving z = 0 very
- quickly, so that not much was tested in practice; in particular,
- the third argument of mpz_fdiv_q_2exp in mpfr_get_z was never
- properly tested (since it has no effect for z = 0).
- * Added various tests of the flags.
-------------------------------------------------------------------------
-r9687 | vlefevre | 2015-09-15 09:25:20 +0000 (Tue, 15 Sep 2015) | 1 line
-Changed paths:
- M /trunk/tests/tget_z.c
-
-[tests/tget_z.c] Optimized the check_one() test.
-------------------------------------------------------------------------
-r9684 | vlefevre | 2015-09-10 20:54:35 +0000 (Thu, 10 Sep 2015) | 5 lines
-Changed paths:
- M /trunk
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/exceptions.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_rnd.c
-
-Merged the win-thread-safe-dll branch: support build as thread-safe DLL
-on Windows: changes from Stephan Tolksdorf
- https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip
-+ a correction and some consistency checks. See MPFR bug 19537 on:
-https://gforge.inria.fr/tracker/index.php?func=detail&aid=19537&group_id=136&atid=619
-------------------------------------------------------------------------
-r9675 | vlefevre | 2015-09-10 00:17:06 +0000 (Thu, 10 Sep 2015) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-Include config.h when need be.
-------------------------------------------------------------------------
-r9674 | vlefevre | 2015-09-07 09:15:01 +0000 (Mon, 07 Sep 2015) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Updated mpz_t caching item, suggesting mpz_init2 instead.
-------------------------------------------------------------------------
-r9673 | vlefevre | 2015-09-07 08:59:49 +0000 (Mon, 07 Sep 2015) | 5 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added: check whether mpz_t caching is necessary (this was
-committed in r8911). In short, timings should be done with -static
-(this wasn't clear), they may depend on the malloc implementation,
-and after a look at the source, the difference in the timings with
-mpz_t caching is surprising and should be explained.
-------------------------------------------------------------------------
-r9672 | vlefevre | 2015-09-04 10:02:57 +0000 (Fri, 04 Sep 2015) | 3 lines
-Changed paths:
- M /trunk/tools/ck-copyright-notice
-
-[tools/ck-copyright-notice] Check src/mparam_h.in instead of the
-generated (and not distributed) src/mparam.h file; this is also
-useful to avoid an error after running "make tune".
-------------------------------------------------------------------------
-r9671 | zimmerma | 2015-09-04 09:57:08 +0000 (Fri, 04 Sep 2015) | 2 lines
-Changed paths:
- M /trunk/tools/bench/Makefile.am
-
-distribute the mpfrbench README
-
-------------------------------------------------------------------------
-r9670 | zimmerma | 2015-09-04 09:48:35 +0000 (Fri, 04 Sep 2015) | 2 lines
-Changed paths:
- A /trunk/tools/bench/README
-
-add a README for mpfrbench
-
-------------------------------------------------------------------------
-r9669 | vlefevre | 2015-09-04 09:39:10 +0000 (Fri, 04 Sep 2015) | 1 line
-Changed paths:
- M /trunk/tune/tuneup.c
-
-More details in a comment about assertions via tuneup.
-------------------------------------------------------------------------
-r9668 | zimmerma | 2015-09-04 09:23:58 +0000 (Fri, 04 Sep 2015) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-fixed failed assertion during "make tune"
-
-------------------------------------------------------------------------
-r9667 | vlefevre | 2015-08-25 22:10:40 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tget_z.c
-
-[tests/tget_z.c] Flags testing.
-------------------------------------------------------------------------
-r9666 | vlefevre | 2015-08-25 20:43:35 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated a URL.
-------------------------------------------------------------------------
-r9663 | vlefevre | 2015-08-25 17:22:30 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tstdint.c
-
-[tests/tstdint.c] Support MPFR_PRINTF_MAXLM.
-------------------------------------------------------------------------
-r9662 | vlefevre | 2015-08-25 16:44:08 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tget_sj.c
-
-[tests/tget_sj.c] Support MPFR_PRINTF_MAXLM.
-------------------------------------------------------------------------
-r9661 | vlefevre | 2015-08-25 16:36:24 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tget_sj.c
-
-[tests/tget_sj.c] Typo.
-------------------------------------------------------------------------
-r9660 | vlefevre | 2015-08-25 16:24:23 +0000 (Tue, 25 Aug 2015) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Instead of checking whether the 'j' printf length
-modifier is working, try to find one that works.
-------------------------------------------------------------------------
-r9659 | vlefevre | 2015-08-25 15:17:22 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Check whether the 'j' printf length modifier is working.
-------------------------------------------------------------------------
-r9658 | vlefevre | 2015-08-25 12:25:03 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tget_sj.c
-
-[tests/tget_sj.c] Improved check_erange (more flags testing).
-------------------------------------------------------------------------
-r9657 | vlefevre | 2015-08-25 11:45:22 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tget_sj.c
-
-[tests/tget_sj.c] Improved check_sj and check_uj even more.
-------------------------------------------------------------------------
-r9656 | vlefevre | 2015-08-25 11:31:08 +0000 (Tue, 25 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tget_sj.c
-
-[tests/tget_sj.c] Improved check_sj and check_uj (flags testing).
-------------------------------------------------------------------------
-r9655 | vlefevre | 2015-08-24 15:48:24 +0000 (Mon, 24 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] New tests at the limits of the types.
-------------------------------------------------------------------------
-r9654 | vlefevre | 2015-08-24 15:38:14 +0000 (Mon, 24 Aug 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] For the mpfr_fits_{uintmax,intmax}_p functions, check
-that the flags are not modified and added tests of -Inf and -0.
-------------------------------------------------------------------------
-r9653 | vlefevre | 2015-08-24 15:23:55 +0000 (Mon, 24 Aug 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] For the mpfr_fits_{u,s}{long,int,short}_p functions,
-check that the flags are not modified and added tests of -Inf and -0.
-------------------------------------------------------------------------
-r9652 | zimmerma | 2015-08-24 10:11:29 +0000 (Mon, 24 Aug 2015) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-fixed the AMD K8 tuning (cf r8118)
-
-------------------------------------------------------------------------
-r9651 | vlefevre | 2015-08-24 06:44:57 +0000 (Mon, 24 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Improved NaN mpfr_get_si / mpfr_get_ui test.
-------------------------------------------------------------------------
-r9650 | vlefevre | 2015-08-24 01:37:59 +0000 (Mon, 24 Aug 2015) | 3 lines
-Changed paths:
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_u.h
-
-[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions:
-the flags could be modified, which made the new mpfr_get_{si,ui} tests
-fail (tests/tset_si.c r9649).
-------------------------------------------------------------------------
-r9649 | vlefevre | 2015-08-24 01:23:30 +0000 (Mon, 24 Aug 2015) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Added mpfr_get_{si,ui} tests, including flags.
-------------------------------------------------------------------------
-r9648 | vlefevre | 2015-08-20 12:17:30 +0000 (Thu, 20 Aug 2015) | 3 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[src/mparam_h.in] Improved comment: __amd64__ is generic to all
-x86 processors with a 64-bit ABI (amd64, a.k.a. x86_64), thus
-suggest to move mparam.h files to more meaningful locations.
-------------------------------------------------------------------------
-r9645 | vlefevre | 2015-08-20 01:27:44 +0000 (Thu, 20 Aug 2015) | 4 lines
-Changed paths:
- M /trunk
- M /trunk/configure.ac
-
-[configure.ac] Added test for usability of gmp.h at link time
-(merged changeset r9644 from the 3.1 branch, with minor changes
-due to the fact that a known problem between GMP 4.1 and GCC 5
-can no longer occur, now that we require GMP 4.2.0 or newer).
-------------------------------------------------------------------------
-r9642 | vlefevre | 2015-08-19 08:05:38 +0000 (Wed, 19 Aug 2015) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": mention abi-compliance-checker.
-------------------------------------------------------------------------
-r9638 | vlefevre | 2015-07-31 12:30:50 +0000 (Fri, 31 Jul 2015) | 3 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Added an assertion (I get a build failure with gcc-snapshot
-20150722-1 due to -Werror=array-bounds, but the code looks OK).
-Simplified test on: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67077
-------------------------------------------------------------------------
-r9637 | zimmerma | 2015-07-31 07:22:03 +0000 (Fri, 31 Jul 2015) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/sqrt.c
-
-remove usage of mpn_rootrem in mpfr_sqrt since now mpn_sqrtrem is faster
-(https://gmplib.org/list-archives/gmp-devel/2015-July/004074.html)
-
-------------------------------------------------------------------------
-r9636 | vlefevre | 2015-07-30 09:41:37 +0000 (Thu, 30 Jul 2015) | 1 line
-Changed paths:
- M /trunk/src/next.c
-
-[src/next.c] Added a note concerning the exceptions.
-------------------------------------------------------------------------
-r9632 | vlefevre | 2015-07-20 22:04:21 +0000 (Mon, 20 Jul 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9631 | vlefevre | 2015-07-20 21:56:04 +0000 (Mon, 20 Jul 2015) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output MPFR_VERSION_STRING too.
-------------------------------------------------------------------------
-r9630 | vlefevre | 2015-07-20 21:49:28 +0000 (Mon, 20 Jul 2015) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Check and output additional mpfr_buildopt_* info.
-------------------------------------------------------------------------
-r9629 | vlefevre | 2015-07-20 15:59:51 +0000 (Mon, 20 Jul 2015) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/rint.c
- M /trunk/tests/trint.c
-
-Added mpfr_rint_roundeven and mpfr_roundeven functions, with
-documentation and tests.
-------------------------------------------------------------------------
-r9619 | vlefevre | 2015-07-16 12:43:22 +0000 (Thu, 16 Jul 2015) | 5 lines
-Changed paths:
- M /trunk/tests/tfrexp.c
-
-[tests/tfrexp.c]
- * Replaced each mpfr_get_exp occurrence by the internal MPFR_GET_EXP
- macro in order to make sure that an assertion failure is triggered
- in case of singular number (see also the comment added in r9618).
- * Fixed the remaining problem due to an overflow and infinite value.
-------------------------------------------------------------------------
-r9618 | vlefevre | 2015-07-16 12:32:33 +0000 (Thu, 16 Jul 2015) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added a comment about the drawback of the mpfr_get_exp()
-macro, defined in addition to the function.
-------------------------------------------------------------------------
-r9617 | vlefevre | 2015-07-15 14:22:19 +0000 (Wed, 15 Jul 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfrexp.c
-
-[tests/tfrexp.c] Simplification: merged the tests on the ternary values,
-the returned MPFR values and the flags.
-------------------------------------------------------------------------
-r9616 | vlefevre | 2015-07-15 14:17:12 +0000 (Wed, 15 Jul 2015) | 4 lines
-Changed paths:
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/mul_2si.c
-
-[src/{div_2si.c,div_2ui.c,mul_2si.c}] Fixed some underflow cases in
-rounding to nearest when the exact result is -2^(emin-2), i.e. the
-middle of 0 and the minimum negative number in absolute value (the
-correction in r5517 was incorrect/incomplete).
-------------------------------------------------------------------------
-r9615 | vlefevre | 2015-07-15 13:48:37 +0000 (Wed, 15 Jul 2015) | 1 line
-Changed paths:
- M /trunk/src/exceptions.c
-
-[src/exceptions.c] Added logging for mpfr_underflow and mpfr_overflow.
-------------------------------------------------------------------------
-r9614 | vlefevre | 2015-07-15 13:35:53 +0000 (Wed, 15 Jul 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Extended the underflow() test to negative numbers,
-triggering a new bug.
-------------------------------------------------------------------------
-r9613 | vlefevre | 2015-07-15 08:24:21 +0000 (Wed, 15 Jul 2015) | 1 line
-Changed paths:
- M /trunk/src/frexp.c
-
-[src/frexp.c] Added a comment.
-------------------------------------------------------------------------
-r9609 | vlefevre | 2015-07-02 10:45:20 +0000 (Thu, 02 Jul 2015) | 3 lines
-Changed paths:
- M /trunk/tools/build-patch
-
-[tools/build-patch] Rebuild the mpfr.info file if mpfr.texi has been
-modified, in order to take it into account in the patch. This is needed
-since the mpfr.info file is distributed in the tarball.
-------------------------------------------------------------------------
-r9604 | vlefevre | 2015-07-02 00:17:00 +0000 (Thu, 02 Jul 2015) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check a Texinfo rule (Section "Ending a Sentence")
-with common words that end with a capital letter.
-(merged changeset r9603 from the 3.1 branch)
-------------------------------------------------------------------------
-r9601 | vlefevre | 2015-06-28 09:28:30 +0000 (Sun, 28 Jun 2015) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Updated URL of TS 18661-4.
-------------------------------------------------------------------------
-r9600 | vlefevre | 2015-06-26 13:59:12 +0000 (Fri, 26 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/frexp.c
-
-[src/frexp.c] Handle internal overflow.
-------------------------------------------------------------------------
-r9599 | vlefevre | 2015-06-26 13:46:55 +0000 (Fri, 26 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tfrexp.c
-
-[tests/tfrexp.c] Forgot a "exit (1);".
-------------------------------------------------------------------------
-r9598 | vlefevre | 2015-06-26 08:06:17 +0000 (Fri, 26 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Overflow test: more output info; improved code.
-------------------------------------------------------------------------
-r9597 | vlefevre | 2015-06-26 07:57:49 +0000 (Fri, 26 Jun 2015) | 3 lines
-Changed paths:
- M /trunk/src/mul_2si.c
- M /trunk/tests/tmul_2exp.c
-
-[src/mul_2si.c] Fixed overflow case when n = 0.
-[tests/tmul_2exp.c] In the overflow test, check mpfr_mul_2ui and
-mpfr_mul_2si too (mpfr_mul_2ui was OK).
-------------------------------------------------------------------------
-r9596 | vlefevre | 2015-06-26 07:42:49 +0000 (Fri, 26 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/src/div_2si.c
- M /trunk/tests/tmul_2exp.c
-
-[src/div_2si.c] Fixed overflow case when n = 0.
-[tests/tmul_2exp.c] In the overflow test, check mpfr_div_2si too.
-------------------------------------------------------------------------
-r9595 | vlefevre | 2015-06-26 07:28:10 +0000 (Fri, 26 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/src/div_2ui.c
- M /trunk/tests/tmul_2exp.c
-
-[src/div_2ui.c] Fixed overflow case (can occur only when n = 0).
-[tests/tmul_2exp.c] Completed the overflow test.
-------------------------------------------------------------------------
-r9594 | vlefevre | 2015-06-26 00:33:56 +0000 (Fri, 26 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfrexp.c
-
-[tests/tfrexp.c] Added tests (currently fail due to the mpfr_div_2ui
-unhandled-overflow bug).
-------------------------------------------------------------------------
-r9593 | vlefevre | 2015-06-26 00:23:19 +0000 (Fri, 26 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Added tests where mpfr_div_2ui overflows, which
-is currently not handled.
-------------------------------------------------------------------------
-r9592 | vlefevre | 2015-06-26 00:00:58 +0000 (Fri, 26 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/src/frexp.c
-
-[src/frexp.c] Fixed a bug occurring when the current exponent range
-does not contain 0.
-------------------------------------------------------------------------
-r9591 | vlefevre | 2015-06-25 21:33:30 +0000 (Thu, 25 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/check.c
-
-[src/check.c] Typo in a comment.
-------------------------------------------------------------------------
-r9588 | vlefevre | 2015-06-19 22:57:07 +0000 (Fri, 19 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Update due to recent InriaForge upgrade.
-------------------------------------------------------------------------
-r9581 | vlefevre | 2015-06-16 15:38:37 +0000 (Tue, 16 Jun 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a paragraph about the multiple use of MPFR.
-------------------------------------------------------------------------
-r9580 | vlefevre | 2015-06-16 15:08:45 +0000 (Tue, 16 Jun 2015) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added: use symbol versioning.
-------------------------------------------------------------------------
-r9575 | vlefevre | 2015-06-12 15:30:27 +0000 (Fri, 12 Jun 2015) | 3 lines
-Changed paths:
- M /trunk/doc/faq.xsl
-
-[doc/faq.xsl] Remove the indent="no" to get the same behavior as before
-when using libxslt 1.1.27+. See:
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718535#10
-------------------------------------------------------------------------
-r9572 | vlefevre | 2015-06-12 13:55:51 +0000 (Fri, 12 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
-test FMA(-x,y,-z).
-------------------------------------------------------------------------
-r9569 | vlefevre | 2015-06-12 13:27:00 +0000 (Fri, 12 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Completely fixed the scaling in case of underflow.
-------------------------------------------------------------------------
-r9568 | vlefevre | 2015-06-12 01:00:03 +0000 (Fri, 12 Jun 2015) | 3 lines
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Partially fixed the scaling in case of underflow,
-corresponding to the testcase from r9566. Double rounding is
-not handled yet (failure triggered by r9567).
-------------------------------------------------------------------------
-r9567 | vlefevre | 2015-06-12 00:55:09 +0000 (Fri, 12 Jun 2015) | 5 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
-yield some cases with double rounding when scaling: If the only fix
-in src/fma.c is to change the rounding mode of the last mpfr_div_2ui
-(computing s / 2^scale) to rnd_mode, a new failure appears for n = 2,
-k = 4, s = -1, MPFR_RNDN.
-------------------------------------------------------------------------
-r9566 | vlefevre | 2015-06-12 00:25:11 +0000 (Fri, 12 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Corrected the new underflow tests to really generate
-underflows, showing a bug in mpfr_fma.
-------------------------------------------------------------------------
-r9565 | vlefevre | 2015-06-12 00:10:19 +0000 (Fri, 12 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Added log messages.
-------------------------------------------------------------------------
-r9564 | vlefevre | 2015-06-12 00:09:18 +0000 (Fri, 12 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] The code removed in r9560 was actually necessary,
-but do this in a better way.
-------------------------------------------------------------------------
-r9563 | vlefevre | 2015-06-11 23:51:48 +0000 (Thu, 11 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Added other underflow tests.
-------------------------------------------------------------------------
-r9562 | vlefevre | 2015-06-11 23:13:22 +0000 (Thu, 11 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Some improvements.
-------------------------------------------------------------------------
-r9561 | vlefevre | 2015-06-11 23:08:40 +0000 (Thu, 11 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] GNU coding style.
-------------------------------------------------------------------------
-r9560 | vlefevre | 2015-06-11 23:05:51 +0000 (Thu, 11 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tfma.c
-
-[tests/tfma.c] Removed code that isn't necessary.
-------------------------------------------------------------------------
-r9557 | vlefevre | 2015-06-11 08:48:04 +0000 (Thu, 11 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": mention -DMPFR_COV_CHECK and
--DMPFR_ALLOCA_MAX=0 tests.
-------------------------------------------------------------------------
-r9553 | vlefevre | 2015-06-10 23:46:47 +0000 (Wed, 10 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/trandom.c
-
-[tests/trandom.c] Cleaner test, avoiding the explicit use of mpfr_rands.
-------------------------------------------------------------------------
-r9551 | vlefevre | 2015-06-10 14:25:57 +0000 (Wed, 10 Jun 2015) | 3 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-[tests/trandom.c] Improved latest change, as some other test already
-assume a fixed PRNG with GMP >= 4.2.0 (now the value of the last
-random number of the test is checked).
-------------------------------------------------------------------------
-r9550 | vlefevre | 2015-06-10 13:59:09 +0000 (Wed, 10 Jun 2015) | 7 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-[tests/trandom.c]
- * Get a non-zero fixed-point number whose first 32 bits are 0 with the
- default GMP PRNG. This corresponds to the case cnt == 0 && k != 0 in
- src/urandomb.c (fixed in r8762) with the 32-bit ABI.
- * Output a warning (with a fatal error when the MPFR_COV_CHECK macro
- is defined) if one doesn't get such a number, probably because the
- GMP PRNG has changed.
-------------------------------------------------------------------------
-r9545 | vlefevre | 2015-06-10 10:25:56 +0000 (Wed, 10 Jun 2015) | 4 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] The bug fixed in r9540 actually came from r9014, which
-incorrectly replaced MPFR_EXP by MPFR_SET_EXP. So, restored the
-previous code (re-adding the assertion check), keeping my comment
-from r9540 to explain why we don't use MPFR_SET_EXP.
-------------------------------------------------------------------------
-r9544 | vlefevre | 2015-06-10 09:21:02 +0000 (Wed, 10 Jun 2015) | 5 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Fixed overflow/underflow tests introduced in r9539:
-the tests were done in all rounding modes, but the code was incorrect
-if the exponent of the result depended on the rounding mode. So, the
-tests are now done only in the rounding mode previously selected. This
-should be sufficient to detect bugs.
-------------------------------------------------------------------------
-r9543 | vlefevre | 2015-06-10 08:48:24 +0000 (Wed, 10 Jun 2015) | 3 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] For mpfr_lgamma and mpfr_lngamma, the exponent range
-was not restored in some cases (some large results). Bug introduced
-in r8917 (trunk only).
-------------------------------------------------------------------------
-r9542 | vlefevre | 2015-06-10 08:30:07 +0000 (Wed, 10 Jun 2015) | 9 lines
-Changed paths:
- M /trunk/src/cos.c
- M /trunk/src/sin.c
-
-[src/{cos.c,sin.c}] Fixed bug related to the exponent range, introduced
-in r6461 with the use of mpfr_sincos_fast.
-Details:
- For mpfr_sin, the exponent range was not restored, and restoring it
- before calling mpfr_sincos_fast as this was done for mpfr_cos did
- not work; indeed the source of this function shows that it needs an
- extended exponent range. So, changed both mpfr_cos and mpfr_sin to
- call mpfr_sincos_fast in the extended exponent range and restore the
- exponent range at the end, like in usual code.
-------------------------------------------------------------------------
-r9541 | vlefevre | 2015-06-10 08:14:01 +0000 (Wed, 10 Jun 2015) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Check whether the exponent range has been
-modified by the tested function (which should never happen).
-This check triggers failures in tlgamma, tlngamma and tsin.
-------------------------------------------------------------------------
-r9540 | vlefevre | 2015-06-10 07:50:21 +0000 (Wed, 10 Jun 2015) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Fixed assertion failure in reduced exponent range.
-Note: This could happen only in very specific exponent ranges,
-in particular, which do not include the number 1.
-------------------------------------------------------------------------
-r9539 | vlefevre | 2015-06-10 07:38:24 +0000 (Wed, 10 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Added overflow/underflow tests (→ 4 failed tests).
-------------------------------------------------------------------------
-r9523 | vlefevre | 2015-06-08 00:46:52 +0000 (Mon, 08 Jun 2015) | 4 lines
-Changed paths:
- M /trunk/src/zeta_ui.c
- M /trunk/tests/tzeta_ui.c
-
-[src/zeta_ui.c]
- * Support reduced exponent range for the generic case.
- * Added logging.
-[tests/tzeta_ui.c] Added tests in reduced exponent range.
-------------------------------------------------------------------------
-r9521 | vlefevre | 2015-06-08 00:27:37 +0000 (Mon, 08 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/add_ui.c
-
-[src/add_ui.c] Fixed format string in MPFR_LOG_FUNC.
-------------------------------------------------------------------------
-r9520 | vlefevre | 2015-06-07 22:17:00 +0000 (Sun, 07 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tzeta_ui.c
-
-[tests/tzeta_ui.c] Code simplification.
-------------------------------------------------------------------------
-r9519 | vlefevre | 2015-06-07 22:11:52 +0000 (Sun, 07 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta_ui.c
-
-[tests/tzeta_ui.c] Test zeta(0) in reduced exponent range and all
-rounding modes.
-------------------------------------------------------------------------
-r9518 | vlefevre | 2015-06-07 21:54:01 +0000 (Sun, 07 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/src/zeta_ui.c
- M /trunk/tests/tzeta_ui.c
-
-[src/zeta_ui.c] Fixed zeta(0) in reduced exponent range.
-[tests/tzeta_ui.c] Added testcase.
-------------------------------------------------------------------------
-r9514 | vlefevre | 2015-06-05 01:30:20 +0000 (Fri, 05 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/ui_div.c
- M /trunk/src/ui_sub.c
-
-[src/{ui_div.c,ui_sub.c}] Correction for reduced exponent range.
-------------------------------------------------------------------------
-r9513 | vlefevre | 2015-06-05 01:21:49 +0000 (Fri, 05 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-[tests/tui_sub.c] Check overflow.
-------------------------------------------------------------------------
-r9512 | vlefevre | 2015-06-05 01:07:43 +0000 (Fri, 05 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tui_div.c
-
-[tests/tui_div.c] Check overflow.
-------------------------------------------------------------------------
-r9511 | vlefevre | 2015-06-05 00:29:07 +0000 (Fri, 05 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Removed useless parentheses.
-------------------------------------------------------------------------
-r9510 | vlefevre | 2015-06-05 00:22:02 +0000 (Fri, 05 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Special cases with unsigned long argument.
-------------------------------------------------------------------------
-r9509 | vlefevre | 2015-06-05 00:13:04 +0000 (Fri, 05 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-[tests/tpow_all.c] Better flags output in error message.
-------------------------------------------------------------------------
-r9508 | vlefevre | 2015-06-04 13:27:07 +0000 (Thu, 04 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/src/set_q.c
-
-[src/set_q.c] Added missing MPFR_SAVE_EXPO_FREE in case of preliminary
-overflow or underflow (extreme cases).
-------------------------------------------------------------------------
-r9507 | vlefevre | 2015-06-04 13:23:35 +0000 (Thu, 04 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/src/set_q.c
-
-[src/set_q.c] Replaced a "return" by MPFR_RET: this is at least needed
-in the extreme case cd != 0, and safer in general.
-------------------------------------------------------------------------
-r9506 | vlefevre | 2015-06-04 13:20:10 +0000 (Thu, 04 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tset_q.c
-
-[tests/tset_q.c] Check the flags.
-------------------------------------------------------------------------
-r9505 | vlefevre | 2015-06-04 11:19:31 +0000 (Thu, 04 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/mul_ui.c
-
-[src/mul_ui.c] Fixed bug in mpfr_mul_ui/si: the inexact flag wasn't set.
-------------------------------------------------------------------------
-r9504 | vlefevre | 2015-06-04 11:17:52 +0000 (Thu, 04 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tsub_ui.c
-
-[tests/t{add,div,mul,sub}_ui.c] Replaced tgeneric_ui.c by tgeneric.c,
-showing a bug in mpfr_mul_ui (missing inexact flag).
-------------------------------------------------------------------------
-r9503 | vlefevre | 2015-06-04 11:02:39 +0000 (Thu, 04 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-[tests/{tui_div.c,tui_sub.c}] Added generic tests, yielding assertion
-failures (due to a reduced exponent range) when assertions are checked.
-------------------------------------------------------------------------
-r9502 | vlefevre | 2015-06-04 10:50:16 +0000 (Thu, 04 Jun 2015) | 4 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Major clean-up, with some minor corrections.
-Added support for unsigned long argument, which can be the first
-or the second one (another intent is to replace tgeneric_ui.c,
-which does fewer tests concerning the flags).
-------------------------------------------------------------------------
-r9500 | vlefevre | 2015-06-04 10:08:05 +0000 (Thu, 04 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_d.c
-
-[tests/tdiv_d.c] Corrected the tested function for the generic tests.
-------------------------------------------------------------------------
-r9498 | vlefevre | 2015-06-04 10:03:18 +0000 (Thu, 04 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/td_div.c
-
-[tests/td_div.c] Corrected the tested function for the generic tests.
-------------------------------------------------------------------------
-r9497 | vlefevre | 2015-06-04 02:17:10 +0000 (Thu, 04 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-[tests/tui_sub.c] Minor improvements.
-------------------------------------------------------------------------
-r9495 | vlefevre | 2015-06-04 02:03:41 +0000 (Thu, 04 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric_ui.c
-
-[tests/tgeneric_ui.c] Added missing \n. Minor improvements.
-------------------------------------------------------------------------
-r9494 | vlefevre | 2015-06-04 01:58:27 +0000 (Thu, 04 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/tui_div.c
-
-[tests/tui_div.c] Minor improvements.
-------------------------------------------------------------------------
-r9492 | vlefevre | 2015-06-03 14:23:00 +0000 (Wed, 03 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Corrected the description (copy-paste error in r9473).
-------------------------------------------------------------------------
-r9489 | vlefevre | 2015-06-03 12:03:05 +0000 (Wed, 03 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/rint.c
-
-[src/rint.c] Handle reduced exponent range.
-------------------------------------------------------------------------
-r9488 | vlefevre | 2015-06-03 11:48:05 +0000 (Wed, 03 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Extend basic_tests from [56,72] to [1,72] since i < 4
-(|x| < 1) are special cases in the implementation.
-------------------------------------------------------------------------
-r9487 | vlefevre | 2015-06-03 11:40:21 +0000 (Wed, 03 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Also run BASIC_TEST in reduced exponent range
-(emin = emax = EXP(x)).
-------------------------------------------------------------------------
-r9486 | vlefevre | 2015-06-03 11:30:39 +0000 (Wed, 03 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Also run BASIC_TEST2 in reduced exponent range
-(emin = emax = EXP(x)).
-------------------------------------------------------------------------
-r9485 | vlefevre | 2015-06-03 00:45:28 +0000 (Wed, 03 Jun 2015) | 1 line
-Changed paths:
- M /trunk/src/rint.c
-
-[src/rint.c] Added a comment about the mpfr_rint_* functions.
-------------------------------------------------------------------------
-r9484 | vlefevre | 2015-06-03 00:32:23 +0000 (Wed, 03 Jun 2015) | 4 lines
-Changed paths:
- M /trunk/src/rint.c
-
-[src/rint.c] Simplified and fixed the mpfr_rint_* functions: in some
-corner cases, an intermediate overflow would not be propagated. No
-testcases added for this particular problem since huge precision
-numbers would be involved.
-------------------------------------------------------------------------
-r9482 | vlefevre | 2015-06-02 11:39:37 +0000 (Tue, 02 Jun 2015) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added description of the flags for the mpfr_rint,
-mpfr_ceil, mpfr_floor, mpfr_round, mpfr_trunc functions.
-------------------------------------------------------------------------
-r9481 | vlefevre | 2015-06-01 13:44:02 +0000 (Mon, 01 Jun 2015) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] In the basic tests, test the flags.
-------------------------------------------------------------------------
-r9480 | vlefevre | 2015-05-31 09:58:46 +0000 (Sun, 31 May 2015) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Corrections for r9476 and r9477.
-------------------------------------------------------------------------
-r9478 | vlefevre | 2015-05-31 09:46:50 +0000 (Sun, 31 May 2015) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] For the gcc compiler, better choice of the -W flags
-when the selected language is C++ (e.g. when CC=g++).
-------------------------------------------------------------------------
-r9477 | vlefevre | 2015-05-29 15:22:19 +0000 (Fri, 29 May 2015) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Added basic tests of the mpfr_{trunc,floor,ceil,round}
-functions.
-------------------------------------------------------------------------
-r9476 | vlefevre | 2015-05-29 11:26:20 +0000 (Fri, 29 May 2015) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Added basic tests of the mpfr_rint_* functions.
-------------------------------------------------------------------------
-r9474 | vlefevre | 2015-05-29 11:18:57 +0000 (Fri, 29 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added blank lines to improve readability.
-------------------------------------------------------------------------
-r9473 | vlefevre | 2015-05-29 10:26:25 +0000 (Fri, 29 May 2015) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Updated the description (test_generic_round is now
-tested, which wasn't done at all before).
-------------------------------------------------------------------------
-r9472 | vlefevre | 2015-05-29 10:24:17 +0000 (Fri, 29 May 2015) | 6 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Added generic tests for the mpfr_rint_* functions.
-Since all numbers in ]0,1/2[ round to the same value, in order to
-avoid redundant tests, increased the TEST_RANDOM_EMIN value to -20
-and set TEST_RANDOM_ALWAYS_SCALE to 1.
-Note: only these new tests generate an error if the change of the
-exponent range is no longer done in these mpfr_rint_* functions.
-------------------------------------------------------------------------
-r9471 | vlefevre | 2015-05-29 10:19:18 +0000 (Fri, 29 May 2015) | 10 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsum.c
-
-[tests] Added always_scale argument (boolean) to tests_default_random()
-so that when it is true, scaling is always performed on random numbers
-generated by mpfr_urandomb(), instead of preferring numbers of the order
-of magnitude of 1 for half outputs. This will be useful for mpfr_rint_*
-tests.
-
-For tgeneric.c, the value of this argument is controlled by a new macro
-TEST_RANDOM_ALWAYS_SCALE (0 by default, which corresponds to the current
-behavior). For the other tests that call tests_default_random(), the
-argument is set to 0, so that the behavior remains the same.
-------------------------------------------------------------------------
-r9469 | vlefevre | 2015-05-29 08:54:33 +0000 (Fri, 29 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a remark concerning the mpfr_rint_* functions.
-------------------------------------------------------------------------
-r9466 | vlefevre | 2015-05-28 11:11:31 +0000 (Thu, 28 May 2015) | 8 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-[src] Fixed allocation issue for multithreaded applications:
-https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
- * mpfr-gmp.{c,h}: made mpfr_allocate_func, mpfr_reallocate_func and
- mpfr_free_func thread-local; updated MPFR_GET_MEMFUNC to execute
- mp_get_memory_functions only when these pointers have not been set
- to the actual function pointers yet.
- * mpfr-impl.h: #include "mpfr-thread.h" earlier (before mpfr-gmp.h,
- where MPFR_THREAD_ATTR is now used).
-------------------------------------------------------------------------
-r9461 | vlefevre | 2015-05-25 17:59:11 +0000 (Mon, 25 May 2015) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.c
-
-[src/mpfr-gmp.c] Replaced mpfr_allocate_func and mpfr_free_func
-by __gmp_allocate_func and __gmp_free_func in mpfr_tmp_allocate
-and mpfr_tmp_free respectively, fixing the crash in talloc.
-See: https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
-------------------------------------------------------------------------
-r9460 | vlefevre | 2015-05-25 17:07:27 +0000 (Mon, 25 May 2015) | 2 lines
-Changed paths:
- M /trunk/tests/talloc.c
-
-[tests/talloc.c] Avoid a failure with --with-gmp-build due to the fact
-that the MPFR_ALLOCA_MAX macro is not defined in this case.
-------------------------------------------------------------------------
-r9459 | vlefevre | 2015-05-23 23:56:17 +0000 (Sat, 23 May 2015) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
- A /trunk/libtool-tcc-rpath.patch
-
-Added libtool-tcc-rpath.patch from
- https://lists.gnu.org/archive/html/libtool-patches/2015-05/msg00000.html
-so that tcc can be used with libtool 2.4.3 to 2.4.6.
-In doc/README.dev, documented how to use this patch (before a release).
-------------------------------------------------------------------------
-r9457 | vlefevre | 2015-05-23 23:37:14 +0000 (Sat, 23 May 2015) | 1 line
-Changed paths:
- M /trunk/src/erandom.c
- M /trunk/src/fpif.c
- M /trunk/src/frexp.c
- M /trunk/src/get_float128.c
-
-Added svn:keywords on some .c files for consistency.
-------------------------------------------------------------------------
-r9456 | vlefevre | 2015-05-23 23:35:29 +0000 (Sat, 23 May 2015) | 1 line
-Changed paths:
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tvalist.c
-
-Removed the few svn:mime-type properties on .c files for consistency.
-------------------------------------------------------------------------
-r9455 | vlefevre | 2015-05-23 23:32:46 +0000 (Sat, 23 May 2015) | 7 lines
-Changed paths:
- M /trunk/tests
- M /trunk/tests/Makefile.am
- A /trunk/tests/talloc.c
-
-[tests] Added talloc.c and updated check_PROGRAMS in Makefile.am.
-This test detects an allocation bug added in r8813, which occurs
-if mpfr_tmp_allocate() is invoked before __gmp_allocate_func when
-the GMP build is not used (thus this bug is not visible in most
-code since mpfr_init2 is generally called first, directly or not,
-and it uses __gmp_allocate_func). Details:
- https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
-------------------------------------------------------------------------
-r9453 | vlefevre | 2015-05-23 23:06:07 +0000 (Sat, 23 May 2015) | 3 lines
-Changed paths:
- M /trunk/tests/tstdint.c
- M /trunk/tests/tvalist.c
-
-[tests/{tstdint.c,tvalist.c}] Added missing #include "mpfr-test.h"
-(detected with gcc -Werror=implicit-function-declaration), needed
-since r9447.
-------------------------------------------------------------------------
-r9451 | vlefevre | 2015-05-22 18:15:24 +0000 (Fri, 22 May 2015) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.c
-
-[src/mpfr-gmp.c] Code formatting.
-------------------------------------------------------------------------
-r9450 | vlefevre | 2015-05-22 17:56:53 +0000 (Fri, 22 May 2015) | 1 line
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-[tests/tstckintc.c] Fixed undefined behavior (invalid pointer).
-------------------------------------------------------------------------
-r9449 | vlefevre | 2015-05-22 17:50:09 +0000 (Fri, 22 May 2015) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/mpfr-gmp.h
-
-Define MPFR_ALLOCA_MAX macro: Maximum size for the use of alloca by
-temporary allocations (default: 16384).
-------------------------------------------------------------------------
-r9447 | vlefevre | 2015-05-22 09:21:21 +0000 (Fri, 22 May 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tstdint.c
- M /trunk/tests/tvalist.c
-
-[tests/{tstdint.c,tvalist.c}] Use tests_start_mpfr / tests_end_mpfr,
-in particular to detect a wrong MPFR version (due to a libtool bug).
-------------------------------------------------------------------------
-r9445 | vlefevre | 2015-05-21 15:08:10 +0000 (Thu, 21 May 2015) | 2 lines
-Changed paths:
- M /trunk/autogen.sh
-
-[autogen.sh] Exit with the exit status of autoreconf. Thus a failure
-will be noticed more easily.
-------------------------------------------------------------------------
-r9443 | vlefevre | 2015-05-21 14:12:33 +0000 (Thu, 21 May 2015) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update.
-------------------------------------------------------------------------
-r9440 | vlefevre | 2015-05-21 11:49:48 +0000 (Thu, 21 May 2015) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a comment about memmove and memset being considered
-to be missing when gcc -Werror is used, because of a "conflicting types
-for built-in function" error.
-------------------------------------------------------------------------
-r9438 | vlefevre | 2015-05-21 11:10:09 +0000 (Thu, 21 May 2015) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Various corrections in the tests:
- * MPFR_CHECK_MP_LIMB_T_VS_LONG was always failing due to a typo.
- * MPFR_FUNC_GMP_PRINTF_SPEC: missing #include <string.h> for strcmp.
- * Replaced rint by nearbyint in messages (as nearbyint is tested).
- * Avoid warnings to avoid failures when -Werror is used.
-------------------------------------------------------------------------
-r9416 | vlefevre | 2015-05-20 15:42:02 +0000 (Wed, 20 May 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tget_d.c
-
-[tests/{tcmp_d.c,tcmp_ld.c,tget_d.c}] Avoid warnings concerning unused
-variables when MPFR_ERRDIVZERO is defined (useful with -Werror).
-------------------------------------------------------------------------
-r9415 | vlefevre | 2015-05-20 15:30:46 +0000 (Wed, 20 May 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Avoid a warning concerning an unused variable
-when HAVE_DENORMS is not defined (useful with -Werror).
-------------------------------------------------------------------------
-r9402 | vlefevre | 2015-05-19 15:37:15 +0000 (Tue, 19 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved mpfr_swap description again.
-------------------------------------------------------------------------
-r9401 | vlefevre | 2015-05-19 15:19:52 +0000 (Tue, 19 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Correction and improvements in the formatting.
-------------------------------------------------------------------------
-r9400 | vlefevre | 2015-05-19 14:31:45 +0000 (Tue, 19 May 2015) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a warning for mpfr_set_prec and mpfr_prec_round
-about allocation issue, as these functions change the precision of x.
-------------------------------------------------------------------------
-r9399 | vlefevre | 2015-05-19 13:59:35 +0000 (Tue, 19 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Typo in the latest change.
-------------------------------------------------------------------------
-r9398 | vlefevre | 2015-05-19 13:53:33 +0000 (Tue, 19 May 2015) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Rewrote the mpfr_swap description. This should solve
-the documentation issue reported on:
- https://gforge.inria.fr/tracker/index.php?func=detail&aid=18954&group_id=136&atid=619
-------------------------------------------------------------------------
-r9396 | vlefevre | 2015-05-18 13:02:23 +0000 (Mon, 18 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Update (preliminary steps).
-------------------------------------------------------------------------
-r9393 | vlefevre | 2015-05-13 13:39:37 +0000 (Wed, 13 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] Started the rewrite of the doc.
-------------------------------------------------------------------------
-r9392 | vlefevre | 2015-05-06 10:21:19 +0000 (Wed, 06 May 2015) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update concerning mpfr_sum.
-------------------------------------------------------------------------
-r9391 | vlefevre | 2015-05-06 10:20:37 +0000 (Wed, 06 May 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Update concerning mpfr_sum.
-------------------------------------------------------------------------
-r9390 | vlefevre | 2015-05-06 09:08:08 +0000 (Wed, 06 May 2015) | 3 lines
-Changed paths:
- M /trunk/doc/sum.txt
-
-[doc/sum.txt] The specification of the sign of a zero result only
-applies to an exact zero, of course (for an inexact zero result,
-the usual rule of the rounding mode is applied).
-------------------------------------------------------------------------
-r9388 | vlefevre | 2015-05-06 07:18:49 +0000 (Wed, 06 May 2015) | 2 lines
-Changed paths:
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tnrandom_chisq.c
-
-[tests/t[ne]random_chisq.c] Fixed memory leak (detected by GCC's
-AddressSanitizer).
-------------------------------------------------------------------------
-r9387 | vlefevre | 2015-05-06 07:10:07 +0000 (Wed, 06 May 2015) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": Test with GCC's AddressSanitizer
-(-fsanitize=address).
-------------------------------------------------------------------------
-r9386 | vlefevre | 2015-05-06 07:09:05 +0000 (Wed, 06 May 2015) | 3 lines
-Changed paths:
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
-
-[tests/tabort_defalloc*.c] Disable the tests if __SANITIZE_ADDRESS__
-is defined, i.e. when GCC's AddressSanitizer is used, because it
-reports the error before GMP can do the abort.
-------------------------------------------------------------------------
-r9385 | vlefevre | 2015-05-05 14:13:11 +0000 (Tue, 05 May 2015) | 7 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Make tests_default_random() more intuitive, avoiding
-automatic changes of the current exponent range in some cases: instead
-of adding some random exponent in [emin,emax] to the exponent of the
-random number x in ]0,1[, force this random exponent to be the one of
-x, so that its exponent is guaranteed to be in [emin,emax]. This avoids
-a failure in tsum due to the fact that the exponent range was changed
-automatically (and not restored).
-------------------------------------------------------------------------
-r9384 | vlefevre | 2015-05-05 13:35:16 +0000 (Tue, 05 May 2015) | 4 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] In cancel(), increase the number of tests from 8 to 1000.
-This is much more, but the test is fast compare to other ones so that
-the running time increases by a few percents only. And this triggers a
-new bug: the exponent range is not restored (on a 64-bit machine).
-------------------------------------------------------------------------
-r9383 | vlefevre | 2015-05-05 13:19:14 +0000 (Tue, 05 May 2015) | 7 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Changes in cancel():
- * The fail-test was x[n] > bound instead of |x[n]| > bound, so that
- some failures could be missed.
- * More output in case of failure.
- * Handle underflow in the bound computation. This fixes an incorrect
- failure due to a bound rounded toward zero instead of toward +inf
- with GMP_CHECK_RANDOMIZE=1431478020 (found by the nightly tests).
-------------------------------------------------------------------------
-r9382 | vlefevre | 2015-05-05 08:15:35 +0000 (Tue, 05 May 2015) | 3 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-[tools/nightly-test] Run "make check" with VERBOSE=1 in order to have
-tests/test-suite.log output in case of failure, now that Automake 1.13+
-is used.
-------------------------------------------------------------------------
-r9381 | vlefevre | 2015-04-28 09:32:11 +0000 (Tue, 28 Apr 2015) | 1 line
-Changed paths:
- M /trunk/doc/sum.txt
- M /trunk/src/sum.c
-
-Added a TODO about mpfr_sum.
-------------------------------------------------------------------------
-r9380 | vlefevre | 2015-04-24 09:49:21 +0000 (Fri, 24 Apr 2015) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated a comment about Automake 1.13.
-------------------------------------------------------------------------
-r9379 | vlefevre | 2015-04-24 09:27:03 +0000 (Fri, 24 Apr 2015) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Updated comment about ACLOCAL_AMFLAGS.
-------------------------------------------------------------------------
-r9378 | vlefevre | 2015-04-24 08:57:14 +0000 (Fri, 24 Apr 2015) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Suggest to move some macro definitions from acinclude.m4 to the
-m4 directory as suggested by the Automake manual.
-------------------------------------------------------------------------
-r9376 | vlefevre | 2015-04-23 13:31:31 +0000 (Thu, 23 Apr 2015) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Grouped everything about the test suite near the end
-of this file. Added information about how the test suite works since
-the full Automake 1.13 support (r8821).
-------------------------------------------------------------------------
-r9375 | vlefevre | 2015-04-23 11:39:17 +0000 (Thu, 23 Apr 2015) | 5 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
-
-To take into account that Automake 1.13 or later will be used:
- * doc/mpfr.texi, INSTALL: updates related to "make check".
- * configure.ac: require Automake 1.13 since the documentation now
- assumes that 1.13 or later is used (and because previous Automake
- versions are no longer tested).
-------------------------------------------------------------------------
-r9373 | vlefevre | 2015-04-10 11:07:47 +0000 (Fri, 10 Apr 2015) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention the complete rewrite of function mpfr_sum.
-------------------------------------------------------------------------
-r9372 | vlefevre | 2015-04-10 09:17:51 +0000 (Fri, 10 Apr 2015) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added a comment about the latest fixed bug.
-------------------------------------------------------------------------
-r9370 | vlefevre | 2015-04-10 00:51:00 +0000 (Fri, 10 Apr 2015) | 9 lines
-Changed paths:
- M /trunk
- M /trunk/doc/README.dev
- A /trunk/doc/sum.txt (from /branches/new-sum/doc/sum.txt:9369)
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sum.c
- M /trunk/tests/tsum.c
-
-Merged the new-sum branch:
- * New feature for developers in order to improve the testsuite:
- value coverage checking (MPFR_COV_CHECK macro), allowing one
- to check whether some combinations of values are tested. See
- example of use in src/sum.c and tests/tsum.c files.
- * src/sum.c: full rewrite of mpfr_sum. Note: the documentation
- of the algorithm in doc/sum.txt is currently a bit obsolete.
- * tests/tsum.c: many new tests, some of them specifically written
- for the new algorithm and implementation.
-------------------------------------------------------------------------
-r9346 | vlefevre | 2015-03-20 14:06:52 +0000 (Fri, 20 Mar 2015) | 1 line
-Changed paths:
- M /trunk/tools/ck-copyright-notice
-
-[tools/ck-copyright-notice] Bug fix and improvements.
-------------------------------------------------------------------------
-r9345 | vlefevre | 2015-03-20 13:57:13 +0000 (Fri, 20 Mar 2015) | 1 line
-Changed paths:
- M /trunk/tools/ck-copyright-notice
-
-[tools/ck-copyright-notice] More checks.
-------------------------------------------------------------------------
-r9333 | vlefevre | 2015-03-06 13:57:53 +0000 (Fri, 06 Mar 2015) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added information on how to do type punning
-(something we already did, but with no justification yet).
-------------------------------------------------------------------------
-r9328 | vlefevre | 2015-02-27 10:16:42 +0000 (Fri, 27 Feb 2015) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] Avoid an unnecessary mpn_lshift after an mpn_sub_1 when
-the initial value was a power of two.
-------------------------------------------------------------------------
-r9327 | vlefevre | 2015-02-27 10:01:18 +0000 (Fri, 27 Feb 2015) | 1 line
-Changed paths:
- M /trunk/src/next.c
-
-[src/next.c] Avoid an unnecessary loop when the exponent decreases.
-------------------------------------------------------------------------
-r9306 | vlefevre | 2015-02-24 15:49:10 +0000 (Tue, 24 Feb 2015) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added SAFE_DIFF macro (safe difference).
-------------------------------------------------------------------------
-r9295 | vlefevre | 2015-02-21 15:26:49 +0000 (Sat, 21 Feb 2015) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed and improved some sign-related macros
-(some parentheses were missing).
-------------------------------------------------------------------------
-r9287 | vlefevre | 2015-02-18 14:19:03 +0000 (Wed, 18 Feb 2015) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/logging.c
- M /trunk/src/mpfr-impl.h
-
-Logging: the log stream is flushed after each log output when
-the MPFR_LOG_FLUSH environment variable is set.
-------------------------------------------------------------------------
-r9286 | vlefevre | 2015-02-18 13:54:57 +0000 (Wed, 18 Feb 2015) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-Factorized the logging macros by moving tests inside LOG_PRINT.
-------------------------------------------------------------------------
-r9279 | vlefevre | 2015-02-13 08:50:28 +0000 (Fri, 13 Feb 2015) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9278 | vlefevre | 2015-02-13 08:31:08 +0000 (Fri, 13 Feb 2015) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-cvers.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/bench/Makefile.am
- M /trunk/tools/bench/benchtime.h
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2015 with
- perl -pi -e 's/ (\d{4}-)?(2014)(?= Free Software)/
- " ".($1||"$2-").($2+1)/e' **/*(^/)
-under zsh, reverting the tools/mbench directory (not distributed with
-MPFR). Removed 2014 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r9270 | vlefevre | 2015-01-23 12:55:31 +0000 (Fri, 23 Jan 2015) | 1 line
-Changed paths:
- M /trunk/doc
-
-Added algorithms.fls (generated by latexmk) to svn:ignore property.
-------------------------------------------------------------------------
-r9269 | vlefevre | 2015-01-21 14:33:22 +0000 (Wed, 21 Jan 2015) | 2 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Updated a mpfr_set_zero line for consistency and
-better readability.
-------------------------------------------------------------------------
-r9268 | vlefevre | 2015-01-21 14:28:52 +0000 (Wed, 21 Jan 2015) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added mpfr_set_(inf|zero) tests on the sign.
-------------------------------------------------------------------------
-r9267 | vlefevre | 2015-01-21 14:24:24 +0000 (Wed, 21 Jan 2015) | 1 line
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] More mpfr_set_inf tests.
-------------------------------------------------------------------------
-r9266 | vlefevre | 2015-01-21 14:22:35 +0000 (Wed, 21 Jan 2015) | 1 line
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] More mpfr_set_zero tests.
-------------------------------------------------------------------------
-r9265 | vlefevre | 2015-01-21 13:47:03 +0000 (Wed, 21 Jan 2015) | 1 line
-Changed paths:
- M /trunk/tools/mbench/timp.h
-
-[tools/mbench/timp.h] Spelling mistake in a comment.
-------------------------------------------------------------------------
-r9255 | vlefevre | 2014-12-17 08:40:45 +0000 (Wed, 17 Dec 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9254 | vlefevre | 2014-12-16 14:30:01 +0000 (Tue, 16 Dec 2014) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS] Added an item about improved caching.
-[NEWS,doc/mpfr.texi] In particular, mention the minimum of 10% increase
-of the precision (done in r8967).
-------------------------------------------------------------------------
-r9253 | vlefevre | 2014-12-16 14:08:19 +0000 (Tue, 16 Dec 2014) | 5 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/Makefile.am
-
-[NEWS] Note that the behavior of the mpfr_set_exp function changed.
-[src/Makefile.am] As this changed the ABI (the old, unwise behavior
-was documented), reset -version-info age. This is not that bad since
-there are other changes in the behavior, though regarded as bugs or
-previously undocumented behavior.
-------------------------------------------------------------------------
-r9245 | vlefevre | 2014-12-04 01:36:25 +0000 (Thu, 04 Dec 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Mention the tools/build-patch script.
-------------------------------------------------------------------------
-r9242 | zimmerma | 2014-12-03 18:02:02 +0000 (Wed, 03 Dec 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-pointed to Feature Request
-
-------------------------------------------------------------------------
-r9239 | zimmerma | 2014-11-24 06:54:55 +0000 (Mon, 24 Nov 2014) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-fixed issue reported by Dan Grayson:
-https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=18314&group_id=136
-
-------------------------------------------------------------------------
-r9238 | vlefevre | 2014-11-13 00:31:08 +0000 (Thu, 13 Nov 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Minor change concerning mp_limb_t.
-------------------------------------------------------------------------
-r9237 | vlefevre | 2014-11-12 08:40:25 +0000 (Wed, 12 Nov 2014) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/exp_2.c
-
-Style improvements.
-------------------------------------------------------------------------
-r9236 | vlefevre | 2014-11-12 08:35:49 +0000 (Wed, 12 Nov 2014) | 1 line
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] Improved t = 0 test.
-------------------------------------------------------------------------
-r9235 | vlefevre | 2014-11-12 08:31:09 +0000 (Wed, 12 Nov 2014) | 2 lines
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] Fixed a bug added in r9233 (a case t = 0 was no longer
-taken into account).
-------------------------------------------------------------------------
-r9234 | vlefevre | 2014-11-12 08:26:50 +0000 (Wed, 12 Nov 2014) | 1 line
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] GNU coding style.
-------------------------------------------------------------------------
-r9233 | zimmerma | 2014-11-11 20:22:55 +0000 (Tue, 11 Nov 2014) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/src/exp_2.c
-
-improve mpfr_exp2 (patch from Patrick Pelissier)
-
-------------------------------------------------------------------------
-r9232 | zimmerma | 2014-11-09 20:09:04 +0000 (Sun, 09 Nov 2014) | 2 lines
-Changed paths:
- M /trunk/src/atan.c
- M /trunk/src/mpfr-impl.h
-
-improve mpfr_atan for small precision (patch from Patrick Pelissier)
-
-------------------------------------------------------------------------
-r9231 | zimmerma | 2014-11-09 20:03:23 +0000 (Sun, 09 Nov 2014) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/Makefile.am
-
-added check for libquadmath (not used)
-
-------------------------------------------------------------------------
-r9230 | vlefevre | 2014-11-03 05:54:33 +0000 (Mon, 03 Nov 2014) | 2 lines
-Changed paths:
- M /trunk/src/cache.c
-
-[src/cache.c] Improved mpfr_clear_cache in case mpfr_free_cache is
-called often (like with GC-based systems). Patch by Patrick Pélissier.
-------------------------------------------------------------------------
-r9229 | vlefevre | 2014-11-03 05:48:02 +0000 (Mon, 03 Nov 2014) | 3 lines
-Changed paths:
- M /trunk/src/add_d.c
- M /trunk/src/cmp_d.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/div_d.c
- M /trunk/src/get_str.c
- M /trunk/src/mul_d.c
- M /trunk/src/sub_d.c
- M /trunk/src/ui_pow.c
-
-[src] Applied patch by Patrick Pélissier to allocate some constant-size
-MPFR numbers on the stack instead of using mpfr_init2, and replace some
-MPFR_ASSERTN by MPFR_ASSERTD.
-------------------------------------------------------------------------
-r9228 | vlefevre | 2014-10-31 10:08:50 +0000 (Fri, 31 Oct 2014) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Improved comments.
-------------------------------------------------------------------------
-r9227 | vlefevre | 2014-10-30 15:11:34 +0000 (Thu, 30 Oct 2014) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Free the temporary memory allocated in the Ziv loop ASAP
-and at a single place (the code should be clearer like that).
-------------------------------------------------------------------------
-r9226 | vlefevre | 2014-10-30 14:41:34 +0000 (Thu, 30 Oct 2014) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Code refactoring.
-------------------------------------------------------------------------
-r9225 | vlefevre | 2014-10-30 14:28:43 +0000 (Thu, 30 Oct 2014) | 1 line
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] Code formatting.
-------------------------------------------------------------------------
-r9224 | vlefevre | 2014-10-30 14:26:03 +0000 (Thu, 30 Oct 2014) | 3 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tests/tget_str.c] Fixed a test that made mpfr_get_str crash with
-logging (even when the base is invalid, the MPFR number must be
-initialized).
-------------------------------------------------------------------------
-r9223 | vlefevre | 2014-10-30 13:50:34 +0000 (Thu, 30 Oct 2014) | 4 lines
-Changed paths:
- M /trunk/src/check.c
- M /trunk/src/get_str.c
-
-[src/check.c] Added a note saying that mpfr_check() must not be called
- on statically allocated numbers (only used inside MPFR).
-[src/get_str.c] Removed the "MPFR_ASSERTD (mpfr_check (p));" (added in
- previous commit) because of that.
-------------------------------------------------------------------------
-r9222 | vlefevre | 2014-10-30 13:30:15 +0000 (Thu, 30 Oct 2014) | 6 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Added some logging (MPFR_LOG_*), which triggers a crash
-in tget_str with MPFR_LOG_ALL=1. An analysis with gdb shows that this
-is due to an invalid MPFR number in mpfr_ceil_mul(). Added a
- MPFR_ASSERTD (mpfr_check (p));
-there, which fails in tget_str (this was the cause of the crash), even
-without logging.
-------------------------------------------------------------------------
-r9221 | vlefevre | 2014-10-29 08:46:26 +0000 (Wed, 29 Oct 2014) | 5 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_str.c
- M /trunk/tests/tget_str.c
-
-mpfr_get_str now sets the NaN flag on NaN input. See:
- https://sympa.inria.fr/sympa/arc/mpfr/2014-10/msg00013.html and
- https://gforge.inria.fr/tracker/index.php?func=detail&aid=18228&group_id=136&atid=619
-Also completed the mpfr_get_str description in mpfr.texi concerning
-the special numbers and the exception flags.
-------------------------------------------------------------------------
-r9220 | vlefevre | 2014-10-28 12:21:52 +0000 (Tue, 28 Oct 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9219 | vlefevre | 2014-10-28 10:06:22 +0000 (Tue, 28 Oct 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Removed a spurious "an".
-------------------------------------------------------------------------
-r9218 | vlefevre | 2014-10-28 09:37:36 +0000 (Tue, 28 Oct 2014) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Improved style consistency.
-------------------------------------------------------------------------
-r9217 | vlefevre | 2014-10-28 09:31:54 +0000 (Tue, 28 Oct 2014) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] In the mpfr_get_str description, note that the type
-mpfr_exp_t is large enough to hold the exponent in all cases.
-------------------------------------------------------------------------
-r9216 | vlefevre | 2014-10-28 09:27:30 +0000 (Tue, 28 Oct 2014) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved mpfr_get_str description concerning the
-returned pointer (it was ambiguous in the case of an invalid base).
-------------------------------------------------------------------------
-r9212 | vlefevre | 2014-10-09 13:28:45 +0000 (Thu, 09 Oct 2014) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Updated the error message last changed.
-------------------------------------------------------------------------
-r9211 | vlefevre | 2014-10-09 13:24:56 +0000 (Thu, 09 Oct 2014) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Updated the error message last changed + comment.
-------------------------------------------------------------------------
-r9210 | vlefevre | 2014-10-08 11:59:40 +0000 (Wed, 08 Oct 2014) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Added a reference to the bug I've just reported
-against GNU Automake (completing the other references).
-------------------------------------------------------------------------
-r9209 | vlefevre | 2014-10-08 10:59:40 +0000 (Wed, 08 Oct 2014) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Updated the error message last changed.
-------------------------------------------------------------------------
-r9208 | vlefevre | 2014-10-07 13:33:33 +0000 (Tue, 07 Oct 2014) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Changed an error message.
-------------------------------------------------------------------------
-r9204 | vlefevre | 2014-09-09 00:17:47 +0000 (Tue, 09 Sep 2014) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tset_float128.c
-
-[tests] Corrections for builds with "config.h".
-------------------------------------------------------------------------
-r9193 | vlefevre | 2014-08-22 15:23:52 +0000 (Fri, 22 Aug 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Avoid false positives in the check of MPFR_LOG_MSG.
-------------------------------------------------------------------------
-r9187 | vlefevre | 2014-08-21 11:33:33 +0000 (Thu, 21 Aug 2014) | 1 line
-Changed paths:
- M /trunk/src/add.c
- M /trunk/src/exceptions.c
- M /trunk/src/fma.c
- M /trunk/src/hypot.c
- M /trunk/src/mul.c
-
-[src] Cleaner use of MPFR_SET_SIGN.
-------------------------------------------------------------------------
-r9178 | vlefevre | 2014-08-17 16:47:29 +0000 (Sun, 17 Aug 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added item on tests (mpfr.h macros vs mpfr-impl.h).
-------------------------------------------------------------------------
-r9177 | vlefevre | 2014-08-17 10:46:16 +0000 (Sun, 17 Aug 2014) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Fixed the mpfr_signbit() macro, which depended on
-mpfr-impl.h (the problem wasn't detected in the tests since mpfr-impl.h
-is included in them). Thanks to Rob for the bug report.
-------------------------------------------------------------------------
-r9164 | vlefevre | 2014-08-05 10:33:51 +0000 (Tue, 05 Aug 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Improved check of MPFR_LOG_MSG.
-------------------------------------------------------------------------
-r9163 | vlefevre | 2014-08-05 10:19:02 +0000 (Tue, 05 Aug 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Replaced {src,tests}/*.{c,h} by $srctests.
-------------------------------------------------------------------------
-r9162 | vlefevre | 2014-08-05 09:49:35 +0000 (Tue, 05 Aug 2014) | 1 line
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Corrected log messages.
-------------------------------------------------------------------------
-r9161 | vlefevre | 2014-08-05 09:34:26 +0000 (Tue, 05 Aug 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9160 | vlefevre | 2014-08-05 09:29:29 +0000 (Tue, 05 Aug 2014) | 6 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/vasprintf.c
-
-Update concerning the P type specifier for formatted output, since
-mpfr_prec_t was changed to a signed type in MPFR 3.0.0.
- * doc/mpfr.texi: d and i can be used (o, u, x, and X are still OK
- in practice since a mpfr_prec_t value is usually nonnegative);
- changed a "unsigned int" to "int".
- * src/vasprintf.c: updated a comment.
-------------------------------------------------------------------------
-r9158 | vlefevre | 2014-07-23 00:23:18 +0000 (Wed, 23 Jul 2014) | 1 line
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-[tests/mpf_compat.h] Fixed a bug (mpf_set_prec_raw usage with GMP/MPF).
-------------------------------------------------------------------------
-r9157 | vlefevre | 2014-07-23 00:12:35 +0000 (Wed, 23 Jul 2014) | 9 lines
-Changed paths:
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
-
-[tests]
- * mpfr-test.h: no longer include <stdio.h> right here since the
- included mpfr-impl.h does that and even better for C++.
- * mpf_compat.c, mpfr_compat.c: include mpfr-test.h as it does useful
- things (in particular, include config.h via mpfr-impl.h if there
- is one, and define __MPFR_TEST_H__ for mpfr-impl.h).
- * mpf_compat.h: no longer include some headers already included
- via mpfr-test.h (see above change); added tests_start_mpfr and
- tests_end_mpfr (showing memory inconsistency with mpf_compat).
-------------------------------------------------------------------------
-r9156 | vlefevre | 2014-07-20 22:05:51 +0000 (Sun, 20 Jul 2014) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Coding style: better code for a boolean.
-------------------------------------------------------------------------
-r9152 | vlefevre | 2014-07-10 13:31:18 +0000 (Thu, 10 Jul 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": check also without mpz_t caching.
-------------------------------------------------------------------------
-r9151 | vlefevre | 2014-07-10 13:13:31 +0000 (Thu, 10 Jul 2014) | 8 lines
-Changed paths:
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/mpfrlint
-
-[tools/ck-copyright-notice] Ignore src/mini-gmp.[ch] files.
-[tools/mpfrlint]
- * Ignore src/mini-gmp.[ch] files for some tests.
- * Check that __gmp[nz]_ functions are not used (with 2 exceptions),
- since this breaks the support of mini-gmp and may also break
- future/modified GMP versions.
- Note: only code added in r8911 (mpz_t caching) currently fails to
- follow this rule.
-------------------------------------------------------------------------
-r9150 | vlefevre | 2014-07-10 10:35:11 +0000 (Thu, 10 Jul 2014) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
-
-Do not test include guards before a #include: the test must be done only
-in the included file itself. Note that some files such as mpfr.h may
-have multiple parts that could be enabled depending on the context, so
-that testing a guard before a #include may yield incorrect behavior.
-------------------------------------------------------------------------
-r9149 | vlefevre | 2014-07-09 01:17:18 +0000 (Wed, 09 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated the list of macros used for building and
-checking MPFR.
-------------------------------------------------------------------------
-r9148 | vlefevre | 2014-07-09 01:11:57 +0000 (Wed, 09 Jul 2014) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Corrected a message.
-------------------------------------------------------------------------
-r9147 | vlefevre | 2014-07-08 10:22:09 +0000 (Tue, 08 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/doc/README.dev
- M /trunk/tests/tests.c
-
-Renamed the MPFR_TEST_DIVBYZERO macro to MPFR_TESTS_DIVBYZERO
-for consistency with MPFR_TESTS_TIMEOUT.
-------------------------------------------------------------------------
-r9146 | vlefevre | 2014-07-07 16:18:16 +0000 (Mon, 07 Jul 2014) | 1 line
-Changed paths:
- M /trunk/tests/tadd_d.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tsub_d.c
-
-[tests] Minor improvements.
-------------------------------------------------------------------------
-r9145 | vlefevre | 2014-07-07 16:15:43 +0000 (Mon, 07 Jul 2014) | 1 line
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/taway.c
-
-[tests/reuse.c,tests/taway.c] Added mpfr_ai and mpfr_digamma.
-------------------------------------------------------------------------
-r9144 | vlefevre | 2014-07-07 16:13:47 +0000 (Mon, 07 Jul 2014) | 1 line
-Changed paths:
- M /trunk/tests/tmul_d.c
-
-[tests/tmul_d.c] Minor improvement.
-------------------------------------------------------------------------
-r9143 | vlefevre | 2014-07-07 16:11:56 +0000 (Mon, 07 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Fixed a test when MPFR_WANT_ASSERT >= 2 (NaN with non-NaN
-was not detected as an error).
-------------------------------------------------------------------------
-r9142 | vlefevre | 2014-07-07 15:59:53 +0000 (Mon, 07 Jul 2014) | 4 lines
-Changed paths:
- M /trunk/src/add1sp.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/round_p.c
- M /trunk/src/sub1sp.c
-
-[src] MPFR_WANT_ASSERT clean-up.
-Note: the mul.c test for MPFR_WANT_ASSERT >= 3 is now enabled for
-MPFR_WANT_ASSERT = 2 (since setting MPFR_WANT_ASSERT to 3 was not
-possible with configure options), and fixed.
-------------------------------------------------------------------------
-r9141 | vlefevre | 2014-07-07 12:43:59 +0000 (Mon, 07 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/exceptions.c
- M /trunk/src/mpfr-impl.h
-
-Added debug of branch prediction / --enable-debug-prediction configure
-option (patch from Patrick Pélissier, with some changes).
-------------------------------------------------------------------------
-r9139 | vlefevre | 2014-07-02 17:17:40 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Updated comment about MPFR_RNDNA.
-------------------------------------------------------------------------
-r9138 | vlefevre | 2014-07-02 13:10:19 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/doc/mini-gmp
-
-[doc/mini-gmp] Added a note about MPFR_USE_MINI_GMP.
-------------------------------------------------------------------------
-r9137 | vlefevre | 2014-07-02 12:57:22 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added an item on the use of GMP functions.
-------------------------------------------------------------------------
-r9136 | vlefevre | 2014-07-02 12:29:40 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": test with mini-gmp.
-------------------------------------------------------------------------
-r9135 | vlefevre | 2014-07-02 12:24:54 +0000 (Wed, 02 Jul 2014) | 5 lines
-Changed paths:
- M /trunk/src/erandom.c
- M /trunk/src/mpfr.h
- M /trunk/src/nrandom.c
- M /trunk/src/random_deviate.c
- M /trunk/tests/terandom.c
- M /trunk/tests/tnrandom.c
-
-Removed the need of MPFR_USE_MINI_GMP tests for mpfr_[ne]random
-functions (source and tests) as mpfr_random_deviate_value no longer
-needs mpq_t (since r9066). Also removed a static assertion in
-src/random_deviate.c for the same reason.
-Note: the change done in r9133 is now really useful!
-------------------------------------------------------------------------
-r9134 | vlefevre | 2014-07-02 12:12:45 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added other missing "#ifndef MPFR_USE_MINI_GMP".
-------------------------------------------------------------------------
-r9133 | vlefevre | 2014-07-02 11:59:52 +0000 (Wed, 02 Jul 2014) | 3 lines
-Changed paths:
- M /trunk/tests/terandom.c
- M /trunk/tests/tnrandom.c
-
-[tests/t[ne]random.c] Code clean-up: added !defined(MPFR_USE_MINI_GMP)
-to protect mpfr_printf. This is actually not needed due to the initial
-"#ifndef MPFR_USE_MINI_GMP" but this is for a different reason.
-------------------------------------------------------------------------
-r9132 | vlefevre | 2014-07-02 11:55:25 +0000 (Wed, 02 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/tests/terandom.c
- M /trunk/tests/tnrandom.c
-
-[tests/t[ne]random.c] Reverted the changes done in r9126,9127,9130
-and added a proper comment.
-------------------------------------------------------------------------
-r9131 | vlefevre | 2014-07-02 11:49:23 +0000 (Wed, 02 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added a missing "#ifndef MPFR_USE_MINI_GMP"
-(not really useful, but cleaner).
-------------------------------------------------------------------------
-r9130 | vlefevre | 2014-07-02 11:46:04 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/tests/terandom.c
- M /trunk/tests/tnrandom.c
-
-[tests/t[ne]random.c] Fixed the change done in r9126 and r9127.
-------------------------------------------------------------------------
-r9129 | vlefevre | 2014-07-02 11:41:43 +0000 (Wed, 02 Jul 2014) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/erandom.c
- M /trunk/src/get_f.c
- M /trunk/src/gmp_op.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr.h
- M /trunk/src/nrandom.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/set_f.c
- M /trunk/src/set_q.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tests.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trandom_deviate.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/turandom.c
-
-Renamed WANT_MINI_GMP to MPFR_USE_MINI_GMP as it is used in mpfr.h
-(all MPFR macros that appear there should start with MPFR_ to avoid
-conflicts with other software).
-------------------------------------------------------------------------
-r9128 | vlefevre | 2014-07-02 09:57:16 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect the possible use of forbidden macros in mpfr.h.
-------------------------------------------------------------------------
-r9127 | vlefevre | 2014-07-02 09:23:25 +0000 (Wed, 02 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/tests/terandom.c
-
-[tests/terandom.c] Put the WANT_MINI_GMP test at the right place, like
-what has been done for "tests/tnrandom.c".
-------------------------------------------------------------------------
-r9126 | vlefevre | 2014-07-02 09:20:11 +0000 (Wed, 02 Jul 2014) | 3 lines
-Changed paths:
- M /trunk/tests/tnrandom.c
-
-[tests/tnrandom.c] Put the WANT_MINI_GMP test at the right place
-(at the same time of the HAVE_STDARG test), but this should be
-improved in the future, e.g. with a HAVE_MPFR_PRINTF macro.
-------------------------------------------------------------------------
-r9125 | zimmerma | 2014-07-02 09:04:30 +0000 (Wed, 02 Jul 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tnrandom.c
-
-added comment
-
-------------------------------------------------------------------------
-r9124 | vlefevre | 2014-07-02 08:43:19 +0000 (Wed, 02 Jul 2014) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Minor correction of a comment.
-------------------------------------------------------------------------
-r9122 | vlefevre | 2014-07-01 11:50:12 +0000 (Tue, 01 Jul 2014) | 1 line
-Changed paths:
- M /trunk/tests/trandom_deviate.c
-
-[tests/trandom_deviate.c] Correction (fprintf format).
-------------------------------------------------------------------------
-r9121 | zimmerma | 2014-07-01 11:39:30 +0000 (Tue, 01 Jul 2014) | 5 lines
-Changed paths:
- M /trunk/tests/chi-squared-tests.txt
- M /trunk/tests/terandom_chisq.c
- M /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/trandom_deviate.c
-
-patch from Charles Karney:
-> Here is the patch which repeats the chi-squared tests in the case of
-> suspiciously high values. The probability of a false positive is now
-> 1/10^9. I also got rid of the mpfr_printf's.
-
-------------------------------------------------------------------------
-r9117 | vlefevre | 2014-06-30 15:07:40 +0000 (Mon, 30 Jun 2014) | 5 lines
-Changed paths:
- M /trunk/tools/build-patch
-
-[tools/build-patch]
- * Removed unnecessary quotes for better readability (this is zsh).
- * When <patchlevel> (second argument) is used, use the correct name
- for the generated patch; at the same time, fixed a checkobj call.
- * Added comment about typical usage.
-------------------------------------------------------------------------
-r9116 | vlefevre | 2014-06-30 13:44:39 +0000 (Mon, 30 Jun 2014) | 3 lines
-Changed paths:
- M /trunk/tools/build-patch
-
-[tools/build-patch] Correction if MPFR_CURRENT_DIR is set: to make sure
-that it is always up-to-date, we want to allow it to be a symlink (e.g.
-.../mpfr-current), so that we want to call realpath on it.
-------------------------------------------------------------------------
-r9115 | vlefevre | 2014-06-30 13:22:09 +0000 (Mon, 30 Jun 2014) | 2 lines
-Changed paths:
- A /trunk/tools/build-patch
-
-Added tools/build-patch zsh script to transform a raw patch into a patch
-to be put on the MPFR www server.
-------------------------------------------------------------------------
-r9114 | vlefevre | 2014-06-30 12:21:26 +0000 (Mon, 30 Jun 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] For the mpfr_{mul,div}_si macros: s/positive/non-negative/
-------------------------------------------------------------------------
-r9113 | vlefevre | 2014-06-30 10:36:46 +0000 (Mon, 30 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Correction of two "configure --help" messages
-(from Patrick Pélissier and other changes).
-------------------------------------------------------------------------
-r9112 | vlefevre | 2014-06-30 10:00:16 +0000 (Mon, 30 Jun 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Coding style.
-------------------------------------------------------------------------
-r9111 | vlefevre | 2014-06-30 09:57:36 +0000 (Mon, 30 Jun 2014) | 5 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/src/mpfr.h
- M /trunk/src/mul_ui.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tmul_ui.c
-
-New macros for mpfr_{mul,div}_ui to optimize the call when the integer
-is a constant number that is a power of 2.
-New macros for mpfr_{mul,div}_si to optimize the call when the integer
-is a constant number that is positive.
-(Modified patch from Patrick Pélissier)
-------------------------------------------------------------------------
-r9109 | vlefevre | 2014-06-26 10:55:09 +0000 (Thu, 26 Jun 2014) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Improved comments.
-------------------------------------------------------------------------
-r9108 | vlefevre | 2014-06-26 10:53:46 +0000 (Thu, 26 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Fixed assertion failures for tiny numbers (the code
-was correct, but the assertions didn't check against the right bound).
-------------------------------------------------------------------------
-r9107 | vlefevre | 2014-06-26 01:02:26 +0000 (Thu, 26 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Bug fix: avoid integer overflow in the code added in r9086
-(now tdiv no longer fails).
-------------------------------------------------------------------------
-r9106 | vlefevre | 2014-06-26 00:43:06 +0000 (Thu, 26 Jun 2014) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/src/div.c
-
-[src/div.c] Bug fix: avoid an integer overflow when dividing the
-largest finite MPFR number by the smallest positive one.
-(merged changeset r9105 from the 3.1 branch)
-------------------------------------------------------------------------
-r9103 | vlefevre | 2014-06-26 00:16:26 +0000 (Thu, 26 Jun 2014) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Forgot "exit (1);".
-------------------------------------------------------------------------
-r9101 | vlefevre | 2014-06-26 00:00:16 +0000 (Thu, 26 Jun 2014) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Added mpfr_div tests on extreme values. This detects
-2 problems (at least on a 64-bit machine): a result is not a valid
-MPFR number (mpfr_check fails) and the flags are incorrect.
-------------------------------------------------------------------------
-r9100 | vlefevre | 2014-06-25 23:34:28 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Fixed test added in r9099 (the problem was unrelated
-to the bug in vasprintf.c).
-------------------------------------------------------------------------
-r9099 | vlefevre | 2014-06-25 23:20:16 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a test with the minimum exponent
-(currently triggers an assertion failure in vasprintf.c).
-------------------------------------------------------------------------
-r9098 | zimmerma | 2014-06-25 16:29:51 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-define MPFR_SKIP_EXTREME to avoid currently failing tsum test
-
-------------------------------------------------------------------------
-r9097 | vlefevre | 2014-06-25 16:09:57 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Do not run the check_extreme test (which currently fails)
-when the MPFR_SKIP_EXTREME environment variable is defined.
-------------------------------------------------------------------------
-r9096 | zimmerma | 2014-06-25 15:37:25 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-reconfigure for mpfrbench
-
-------------------------------------------------------------------------
-r9095 | zimmerma | 2014-06-25 15:05:30 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/div.c
- M /trunk/tests/tdiv.c
-
-speedup in mpfr_div for n/n division, using mpz_tdiv_q
-
-------------------------------------------------------------------------
-r9094 | vlefevre | 2014-06-25 13:39:37 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check when simple mp_limb_t constants could be used
-(MPFR_LIMB_ZERO, MPFR_LIMB_ONE, and MPFR_LIMB_MAX).
-------------------------------------------------------------------------
-r9092 | vlefevre | 2014-06-25 13:15:40 +0000 (Wed, 25 Jun 2014) | 7 lines
-Changed paths:
- M /trunk/src/coth.c
- M /trunk/src/div.c
- M /trunk/src/erfc.c
- M /trunk/src/exp2.c
- M /trunk/src/get_si.c
- M /trunk/src/get_str.c
- M /trunk/src/jn.c
- M /trunk/src/lngamma.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_z.c
- M /trunk/src/print_raw.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/yn.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/taway.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tzeta.c
-
-Use MPFR_IS_NEG and MPFR_IS_POS instead of comparing the sign with 0.
-Done with
- perl -pi -e '
- s/MPFR_SIGN *\(([^)]+)\) *<=? *0/MPFR_IS_NEG ($1)/g;
- s/MPFR_SIGN *\(([^)]+)\) *>=? *0/MPFR_IS_POS ($1)/g;
- ' {src,tests}/*.{c,h}
-and some manual changes.
-------------------------------------------------------------------------
-r9091 | vlefevre | 2014-06-25 12:50:21 +0000 (Wed, 25 Jun 2014) | 11 lines
-Changed paths:
- M /trunk/src/check.c
- M /trunk/src/div.c
- M /trunk/src/div_ui.c
- M /trunk/src/frac.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mulders.c
- M /trunk/src/print_raw.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/set_uj.c
- M /trunk/src/sub1sp.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/random2.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/teq.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tset_si.c
-
-More code clean-up (for both consistency and readability):
- * Use the simple mp_limb_t constants when possible.
- * New internal macro MPFR_IS_NORMALIZED.
-Note: this was done with
- perl -pi -e '
- s/~ *\(mp_limb_t\) *0/MPFR_LIMB_MAX/g;
- s/\(mp_limb_t\) *-1/MPFR_LIMB_MAX/g;
- s/\(mp_limb_t\) *0/MPFR_LIMB_ZERO/g;
- s/\(mp_limb_t\) *1L?/MPFR_LIMB_ONE/g' {src,tests}/*.{c,h}
- svn revert src/mpfr-impl.h
-and some manual changes.
-------------------------------------------------------------------------
-r9090 | vlefevre | 2014-06-25 12:02:19 +0000 (Wed, 25 Jun 2014) | 6 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/get_f.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/next.c
- M /trunk/src/rint.c
- M /trunk/src/round_p.c
- M /trunk/src/setmax.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tgeneric.c
-
-Code clean-up:
- * Simplified the definition of simple mp_limb_t constants: it is
- better to avoid GMP internals when there is a standard way.
- * Replaced the use of MP_LIMB_T_MAX by the new macro MPFR_LIMB_MAX.
- * So, removed the now useless MP_LIMB_T_MAX and GMP_LIMB_HIGHBIT
- definitions from "mpfr-gmp.h".
-------------------------------------------------------------------------
-r9089 | vlefevre | 2014-06-25 11:55:23 +0000 (Wed, 25 Jun 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.h
-
-[src/mpfr-mini-gmp.h] GMP_NUMB_MASK is no longer needed.
-------------------------------------------------------------------------
-r9088 | vlefevre | 2014-06-25 11:54:14 +0000 (Wed, 25 Jun 2014) | 1 line
-Changed paths:
- M /trunk/tests/random2.c
-
-[tests/random2.c] Removed a useless use of GMP_NUMB_MASK.
-------------------------------------------------------------------------
-r9087 | vlefevre | 2014-06-25 09:38:31 +0000 (Wed, 25 Jun 2014) | 8 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] In the case where the divisor has one limb (latest commit),
-check that the value of this limb fits in an unsigned long, otherwise
-mpfr_div_ui cannot be used. Indeed, according to the GMP manual §2.2,
-a limb may be a long long (actually unsigned):
- For example in some 32-bit ABIs, GMP may support a limb as either a
- 32-bit `long' or a 64-bit `long long'.
-Note: if a limb is an unsigned long, this new test will be no-op, since
-always true.
-------------------------------------------------------------------------
-r9086 | zimmerma | 2014-06-25 08:05:09 +0000 (Wed, 25 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/div.c
-
-speedup of mpfr_div when divisor has one limb
-
-------------------------------------------------------------------------
-r9085 | vlefevre | 2014-06-25 01:24:49 +0000 (Wed, 25 Jun 2014) | 6 lines
-Changed paths:
- M /trunk/src/random_deviate.h
-
-[src/random_deviate.h] Fixed prototypes:
- * Added __MPFR_DECLSPEC to avoid failure with Windows DLL; see
- https://sympa.inria.fr/sympa/arc/mpfr/2014-06/msg00003.html
- * Added _MPFR_PROTO for consistency (though it will probably
- be removed in the near future).
- * Removed variable names (coding style).
-------------------------------------------------------------------------
-r9084 | vlefevre | 2014-06-24 14:29:22 +0000 (Tue, 24 Jun 2014) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added terandom_chisq and tnrandom_chisq to svn:ignore property.
-------------------------------------------------------------------------
-r9083 | vlefevre | 2014-06-24 14:26:58 +0000 (Tue, 24 Jun 2014) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/chi-squared-tests.txt
- A /trunk/tests/terandom_chisq.c
- A /trunk/tests/tnrandom_chisq.c
- M /trunk/tests/trandom_deviate.c
-
-[tests] Applied patch by Charles Karney (chi-squared tests for
-mpfr_[ne]random), together with the contents of his mail about
-this patch.
-------------------------------------------------------------------------
-r9082 | vlefevre | 2014-06-23 11:14:48 +0000 (Mon, 23 Jun 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9081 | vlefevre | 2014-06-22 20:37:11 +0000 (Sun, 22 Jun 2014) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_d64.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr.h
- M /trunk/src/set_d64.c
- M /trunk/tests/tests.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tset_ld.c
-
-Updated URL's.
-------------------------------------------------------------------------
-r9079 | vlefevre | 2014-06-22 11:53:31 +0000 (Sun, 22 Jun 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated URL's (use of https instead of http).
-------------------------------------------------------------------------
-r9071 | vlefevre | 2014-06-17 10:20:27 +0000 (Tue, 17 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tests/trandom_deviate.c
-
-[tests/trandom_deviate.c] New version, with fixes of ternary value
-(inexact) handling by Charles Karney.
-------------------------------------------------------------------------
-r9070 | vlefevre | 2014-06-17 10:10:24 +0000 (Tue, 17 Jun 2014) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added trandom_deviate to svn:ignore property.
-------------------------------------------------------------------------
-r9069 | vlefevre | 2014-06-17 10:08:55 +0000 (Tue, 17 Jun 2014) | 1 line
-Changed paths:
- M /trunk/tests/trandom_deviate.c
-
-[tests/trandom_deviate.c] GNU style and C90 compatibility.
-------------------------------------------------------------------------
-r9068 | vlefevre | 2014-06-17 09:09:01 +0000 (Tue, 17 Jun 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated note about ternary values (macros).
-------------------------------------------------------------------------
-r9067 | vlefevre | 2014-06-17 09:03:11 +0000 (Tue, 17 Jun 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about ternary values.
-------------------------------------------------------------------------
-r9066 | zimmerma | 2014-06-17 05:41:36 +0000 (Tue, 17 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
- M /trunk/tests/trandom_deviate.c
-
-patches from Charles Karney
-
-------------------------------------------------------------------------
-r9065 | vlefevre | 2014-06-17 00:21:33 +0000 (Tue, 17 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tests/trandom_deviate.c
-
-[tests/trandom_deviate.c] Removed useless "#ifdef HAVE_STDARG":
-printf is a standard C function and is always defined.
-------------------------------------------------------------------------
-r9064 | vlefevre | 2014-06-17 00:20:05 +0000 (Tue, 17 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tests/trandom_deviate.c
-
-[tests/trandom_deviate.c] GNU style. Pre-C99 compatibility
-(statements after declarations).
-------------------------------------------------------------------------
-r9063 | vlefevre | 2014-06-17 00:15:15 +0000 (Tue, 17 Jun 2014) | 1 line
-Changed paths:
- M /trunk/tests/trandom_deviate.c
-
-[tests/trandom_deviate.c] Untabified.
-------------------------------------------------------------------------
-r9061 | zimmerma | 2014-06-16 13:21:42 +0000 (Mon, 16 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/trandom_deviate.c
-
-added trandom_deviate.c to improve coverage (contributed by Charles Karney)
-
-------------------------------------------------------------------------
-r9060 | zimmerma | 2014-06-16 13:20:13 +0000 (Mon, 16 Jun 2014) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-updated information about coverage test
-
-------------------------------------------------------------------------
-r9059 | vlefevre | 2014-06-05 12:48:00 +0000 (Thu, 05 Jun 2014) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] English usage in a comment.
-------------------------------------------------------------------------
-r9058 | vlefevre | 2014-06-03 09:16:01 +0000 (Tue, 03 Jun 2014) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Updated a comment.
-------------------------------------------------------------------------
-r9054 | vlefevre | 2014-05-22 00:09:42 +0000 (Thu, 22 May 2014) | 1 line
-Changed paths:
- M /trunk/README
- M /trunk/doc/README.dev
- M /trunk/tools/announce-text
-
-Changed "INRIAGForge" to "InriaForge" (due to the rename).
-------------------------------------------------------------------------
-r9048 | vlefevre | 2014-05-14 13:56:06 +0000 (Wed, 14 May 2014) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Correction about clang sanitizer: mention the
--fno-sanitize=float-cast-overflow,float-divide-by-zero option.
-------------------------------------------------------------------------
-r9047 | vlefevre | 2014-05-14 13:28:04 +0000 (Wed, 14 May 2014) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] About clang sanitizer, mention the
--fno-sanitize=float-divide-by-zero option.
-------------------------------------------------------------------------
-r9046 | zimmerma | 2014-05-06 12:14:24 +0000 (Tue, 06 May 2014) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.bib
- M /trunk/doc/algorithms.tex
-
-added description of algorithm used for mpfr_log (from Sylvie Boldo)
-
-------------------------------------------------------------------------
-r9045 | vlefevre | 2014-04-25 09:02:51 +0000 (Fri, 25 Apr 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated an old note about GCC 4.9.
-------------------------------------------------------------------------
-r9044 | vlefevre | 2014-04-25 09:00:56 +0000 (Fri, 25 Apr 2014) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Completed the note about GCC's sanitizer. See
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44786 (sanitizer)
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60275 (no recover)
-------------------------------------------------------------------------
-r9043 | vlefevre | 2014-04-25 08:30:38 +0000 (Fri, 25 Apr 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Completed the note about GCC's sanitizer.
-------------------------------------------------------------------------
-r9042 | vlefevre | 2014-04-25 07:21:24 +0000 (Fri, 25 Apr 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Mention that GCC 4.9 supports "-fsanitize=undefined".
-------------------------------------------------------------------------
-r9040 | vlefevre | 2014-04-22 15:20:13 +0000 (Tue, 22 Apr 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Removed comment that can now be confusing: try_mpfr.html
-was actually not using the mpfr_pow function, but exp(y*log(x)).
-------------------------------------------------------------------------
-r9039 | vlefevre | 2014-04-22 10:48:46 +0000 (Tue, 22 Apr 2014) | 3 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Added a test corresponding to buggy output on
-http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html but everything
-is OK in r9038.
-------------------------------------------------------------------------
-r9036 | vlefevre | 2014-04-15 22:26:58 +0000 (Tue, 15 Apr 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about patches and autotools files.
-------------------------------------------------------------------------
-r9035 | vlefevre | 2014-04-15 22:26:18 +0000 (Tue, 15 Apr 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about patches and autotools files.
-------------------------------------------------------------------------
-r9032 | vlefevre | 2014-04-15 15:13:32 +0000 (Tue, 15 Apr 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Changed initialization in check_extreme(), which wasn't
-supported by ISO C90.
-------------------------------------------------------------------------
-r9031 | vlefevre | 2014-04-15 15:12:11 +0000 (Tue, 15 Apr 2014) | 1 line
-Changed paths:
- M /trunk/src/free_cache.c
-
-[free_cache.c] Avoid mixed declarations and code for ISO C90 support.
-------------------------------------------------------------------------
-r9030 | vlefevre | 2014-04-15 13:01:25 +0000 (Tue, 15 Apr 2014) | 6 lines
-Changed paths:
- M /trunk/configure.ac
-
-Re-added configure test on GMP_NUMB_BITS and sizeof(mp_limb_t), and
-updated it:
- * BYTES_PER_MP_LIMB is no longer tested (see r9029).
- * The test is now always run, not just when --with-gmp-build is used.
- * Results are output in config.log in case of failure.
- * The error message has been updated.
-------------------------------------------------------------------------
-r9029 | zimmerma | 2014-04-15 09:15:31 +0000 (Tue, 15 Apr 2014) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/exp.c
- M /trunk/src/init2.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/rndna.c
- M /trunk/src/stack_interface.c
-
-BYTES_PER_MP_LIMB -> MPFR_BYTES_PER_MP_LIMB for GMP 6 compatibility
-when --with-gmp-build is used. See mailing-list discussion:
- https://sympa.inria.fr/sympa/arc/mpfr/2014-04/msg00000.html
-------------------------------------------------------------------------
-r9020 | zimmerma | 2014-03-26 06:49:35 +0000 (Wed, 26 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-other argument reduction for log_ui
-
-------------------------------------------------------------------------
-r9019 | zimmerma | 2014-03-25 20:40:42 +0000 (Tue, 25 Mar 2014) | 3 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-mpn_sqrtrem (rp, sp, sp, rrsize) is faster than
-mpn_sqrtrem (rp, NULL, sp, rrsize): avoids one allocation and one copy
-
-------------------------------------------------------------------------
-r9016 | vlefevre | 2014-03-25 15:05:47 +0000 (Tue, 25 Mar 2014) | 4 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/check.c
- M /trunk/src/cmp.c
- M /trunk/src/init2.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/round_prec.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/sqrt.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tests.c
-
-Added MPFR_PREC_COND, MPFR_PREC_IN_RANGE and MPFR_GET_PREC internal
-macros (to mpfr-impl.h). Use these macros at some places in the code
-(replacing some MPFR_PREC instances, as suggested by a patch from
-Patrick Pélissier).
-------------------------------------------------------------------------
-r9015 | vlefevre | 2014-03-25 14:39:43 +0000 (Tue, 25 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added an MPFR_ASSERTD in MPFR_MPZ_SIZEINBASE2
-(from a patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r9014 | vlefevre | 2014-03-25 14:36:03 +0000 (Tue, 25 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] Replaced a MPFR_EXP by MPFR_SET_EXP (from a patch by
-Patrick Pélissier).
-------------------------------------------------------------------------
-r9013 | vlefevre | 2014-03-25 14:28:48 +0000 (Tue, 25 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/src/div.c
-
-[src/div.c] Added MPFR_ASSERTD assertions and improved a test
-(patch from Patrick Pélissier).
-------------------------------------------------------------------------
-r9011 | zimmerma | 2014-03-17 20:54:30 +0000 (Mon, 17 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-fixed FIXME
-
-------------------------------------------------------------------------
-r9010 | vlefevre | 2014-03-17 15:35:52 +0000 (Mon, 17 Mar 2014) | 9 lines
-Changed paths:
- M /trunk/doc/algorithms.bib
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.*] A formula about radix conversion was incorrect
-(and didn't match the correct code) when the output radix b is a
-power of two. Added reference to Matula's "In-and-Out Conversions"
-(correctness and optimality of the formula) and left a FIXME.
-For more information, see the August/September discussion in the
-MPFR list, particular subthreads starting at:
- https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00028.html
- https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00000.html
- https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00011.html
-------------------------------------------------------------------------
-r9009 | zimmerma | 2014-03-15 08:26:10 +0000 (Sat, 15 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item
-
-------------------------------------------------------------------------
-r9008 | zimmerma | 2014-03-14 17:21:33 +0000 (Fri, 14 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item (mpfr_log_ui)
-
-------------------------------------------------------------------------
-r9002 | vlefevre | 2014-03-14 11:37:11 +0000 (Fri, 14 Mar 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r9001 | vlefevre | 2014-03-14 11:35:17 +0000 (Fri, 14 Mar 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Correction in the mpfr_set_str description.
-------------------------------------------------------------------------
-r8998 | vlefevre | 2014-03-10 00:34:57 +0000 (Mon, 10 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/src/gmp_op.c
-
-Added a TODO item concerning gmp_op.c functions with mpz_srcptr and
-the use of mpz_fits_slong_p and a mpfr_*_si function (see r8992).
-------------------------------------------------------------------------
-r8997 | vlefevre | 2014-03-02 08:32:16 +0000 (Sun, 02 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed the mpfr_get_default_rounding_mode() macro for
-C++ (it didn't have the correct type), and improved the similar ones.
-------------------------------------------------------------------------
-r8996 | vlefevre | 2014-03-02 08:12:34 +0000 (Sun, 02 Mar 2014) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Fixed allocation.
-------------------------------------------------------------------------
-r8995 | vlefevre | 2014-03-02 08:07:31 +0000 (Sun, 02 Mar 2014) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Temporarily disabled fast argument reconstruction
-because it doesn't compile with g++.
-------------------------------------------------------------------------
-r8994 | vlefevre | 2014-03-01 23:43:27 +0000 (Sat, 01 Mar 2014) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r8993 | zimmerma | 2014-02-28 21:56:47 +0000 (Fri, 28 Feb 2014) | 3 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[lngamma.c] implemented fast way of computing x*(x+1)*...*(x+k-1)
- (it remains to speed up the computation of the Bernoulli numbers)
-
-------------------------------------------------------------------------
-r8992 | zimmerma | 2014-02-28 20:15:35 +0000 (Fri, 28 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/gmp_op.c
-
-speedup of the mpfr_xxx_z functions when z fits in a long
-
-------------------------------------------------------------------------
-r8991 | zimmerma | 2014-02-28 19:49:15 +0000 (Fri, 28 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-explicit possible speedup in mpfr_[ln]gamma
-
-------------------------------------------------------------------------
-r8990 | vlefevre | 2014-02-24 15:29:52 +0000 (Mon, 24 Feb 2014) | 1 line
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Avoid inconsistent spaces.
-------------------------------------------------------------------------
-r8989 | vlefevre | 2014-02-21 14:19:41 +0000 (Fri, 21 Feb 2014) | 1 line
-Changed paths:
- M /trunk/tools/mbench/README
-
-[tools/mbench/README] Conversion into UTF-8.
-------------------------------------------------------------------------
-r8988 | vlefevre | 2014-02-21 14:12:39 +0000 (Fri, 21 Feb 2014) | 1 line
-Changed paths:
- M /trunk/tools/mbench/generate.c
- M /trunk/tools/mbench/mfv5-crlibm.cc
- M /trunk/tools/mbench/mfv5-libc.cc
- M /trunk/tools/mbench/mfv5-mpfr.cc
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mpfr-gfx.c
- M /trunk/tools/mbench/mpfr-v4.c
- M /trunk/tools/mbench/mpfr-v6.c
-
-[tools/mbench] Replaced GMP_RNDx by MPFR_RNDx.
-------------------------------------------------------------------------
-r8987 | zimmerma | 2014-02-21 13:18:59 +0000 (Fri, 21 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-definitively fix the name mpfr_min_prec
-
-------------------------------------------------------------------------
-r8986 | vlefevre | 2014-02-17 13:28:38 +0000 (Mon, 17 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/bernoulli.c
-
-[src/bernoulli.c] Minor bug fixed and other improvements.
-------------------------------------------------------------------------
-r8985 | zimmerma | 2014-02-17 13:24:48 +0000 (Mon, 17 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-update for mpfr_gamma and Bernoulli numbers
-
-------------------------------------------------------------------------
-r8984 | vlefevre | 2014-02-17 13:08:24 +0000 (Mon, 17 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/bernoulli.c
-
-[src/bernoulli.c] Fixed pointer types (build failure with -Werror).
-------------------------------------------------------------------------
-r8983 | vlefevre | 2014-02-17 13:02:58 +0000 (Mon, 17 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Removed obsolete mpfr_bernoulli_internal prototype,
-which makes the compilation of bernoulli.c fail.
-------------------------------------------------------------------------
-r8982 | vlefevre | 2014-02-17 13:01:03 +0000 (Mon, 17 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/bernoulli.c
-
-[src/bernoulli.c] Improved isprime() by using MPFR_ASSERTD.
-------------------------------------------------------------------------
-r8981 | zimmerma | 2014-02-17 12:46:18 +0000 (Mon, 17 Feb 2014) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/bernoulli.c
-
-use a faster algorithm (based on Von Staudt–Clausen theorem) to compute
-Bernoulli numbers -> speedup in mpfr_*gamma and mpfr_li2
-
-------------------------------------------------------------------------
-r8980 | zimmerma | 2014-02-16 07:28:11 +0000 (Sun, 16 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
- M /trunk/tests/tset_d.c
-
-more changes suggested by Wolf Lammen (and also test 2^(-1074))
-
-------------------------------------------------------------------------
-r8979 | vlefevre | 2014-02-16 02:52:21 +0000 (Sun, 16 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-[tests/memory.c] Limit heap memory to 4 MB. This should be sufficient.
-Currently, only tsum should fail, but mpfr_sum will be rewritten soon.
-------------------------------------------------------------------------
-r8978 | vlefevre | 2014-02-15 21:22:55 +0000 (Sat, 15 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Fixed type to avoid non-representable unsigned → signed
-conversion.
-------------------------------------------------------------------------
-r8977 | vlefevre | 2014-02-15 21:19:22 +0000 (Sat, 15 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Correction when MPFR_WANT_ASSERT is defined.
-------------------------------------------------------------------------
-r8976 | vlefevre | 2014-02-15 21:03:02 +0000 (Sat, 15 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/get_ld.c
- M /trunk/src/set_ld.c
-
-Untabified and removed trailing spaces.
-------------------------------------------------------------------------
-r8975 | zimmerma | 2014-02-15 20:20:27 +0000 (Sat, 15 Feb 2014) | 4 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-partial patch from Wolf Lammen:
-- move the normalization code, necessary in an extremely rare corner case only,
- out of the way of the normal case, for speed up
-
-------------------------------------------------------------------------
-r8974 | zimmerma | 2014-02-15 09:37:01 +0000 (Sat, 15 Feb 2014) | 3 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
-
-Rename MPFR gmp_randstate_ptr into mpfr_gmp_randstate_ptr
-(patch from Patrick Pélissier)
-
-------------------------------------------------------------------------
-r8973 | zimmerma | 2014-02-14 16:01:28 +0000 (Fri, 14 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-print message for "possibly double-double, little endian" long double format
-
-------------------------------------------------------------------------
-r8972 | zimmerma | 2014-02-14 15:56:54 +0000 (Fri, 14 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/cmp_ld.c
- M /trunk/src/get_ld.c
- M /trunk/src/set_ld.c
-
-different fixes for set_ld, get_ld and cmd_ld with double-double
-
-------------------------------------------------------------------------
-r8971 | vlefevre | 2014-02-14 12:37:36 +0000 (Fri, 14 Feb 2014) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Fixed an assertion to support systems where
-2^1023 + 2^(-1074) is exactly representable, while not detected
-as double-double.
-------------------------------------------------------------------------
-r8970 | zimmerma | 2014-02-14 12:18:26 +0000 (Fri, 14 Feb 2014) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-recognize long-double format for ppc64le
-(https://sympa.inria.fr/sympa/arc/mpfr/2014-02/msg00014.html)
-
-------------------------------------------------------------------------
-r8969 | vlefevre | 2014-02-14 10:25:22 +0000 (Fri, 14 Feb 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added item on special case of mpfr_add and mpfr_sub.
-------------------------------------------------------------------------
-r8968 | zimmerma | 2014-02-14 08:11:02 +0000 (Fri, 14 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-added test for get_ld
-
-------------------------------------------------------------------------
-r8967 | vlefevre | 2014-02-14 00:50:10 +0000 (Fri, 14 Feb 2014) | 9 lines
-Changed paths:
- M /trunk/src/cache.c
-
-[src/cache.c]
- * Improved r8966: Setting the cache size to 10% more than the
- requested precision may be a bad idea in large precisions.
- It's better to guarantee a minimum of 10% increase; if the
- user wants to, he can still control the maximum precision by
- pre-computing the constant at this precision. Also make sure
- that if pold == 0, the mpfr_init2 size is the same as the
- mpfr_set_prec one (in order to avoid immediate reallocation).
- * Replaced a comment by a couple of MPFR_ASSERTD's.
-------------------------------------------------------------------------
-r8966 | zimmerma | 2014-02-13 18:25:08 +0000 (Thu, 13 Feb 2014) | 3 lines
-Changed paths:
- M /trunk/src/cache.c
-
-when recomputing a constant, use a precision 10% larger than the wanted
-precision to avoid many recomputations
-
-------------------------------------------------------------------------
-r8965 | vlefevre | 2014-02-13 12:43:02 +0000 (Thu, 13 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Added a FIXME comment for MPFR_RNDNA.
-------------------------------------------------------------------------
-r8964 | vlefevre | 2014-02-13 12:34:07 +0000 (Thu, 13 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/bernoulli.c
- M /trunk/src/mpfr-impl.h
-
-[src/bernoulli.c] GNU style.
-[src/mpfr-impl.h] Corrected prototypes.
-------------------------------------------------------------------------
-r8963 | zimmerma | 2014-02-13 09:38:34 +0000 (Thu, 13 Feb 2014) | 3 lines
-Changed paths:
- M /trunk/src/bernoulli.c
- M /trunk/src/digamma.c
- M /trunk/src/free_cache.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/mpfr-impl.h
-
-implement cache for Bernoulli numbers (patch from Patrick Pélissier)
-tuned parameters for [ln]gamma now that we cache Bernoulli numbers
-
-------------------------------------------------------------------------
-r8962 | zimmerma | 2014-02-13 09:23:44 +0000 (Thu, 13 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/tools/bench/Makefile.am
-
-added bench target so that we can simply do "make bench"
-
-------------------------------------------------------------------------
-r8961 | zimmerma | 2014-02-12 21:29:39 +0000 (Wed, 12 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-added test for double-double
-
-------------------------------------------------------------------------
-r8960 | zimmerma | 2014-02-12 20:10:20 +0000 (Wed, 12 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added comment about mpfr_gamma
-
-------------------------------------------------------------------------
-r8959 | zimmerma | 2014-02-12 19:01:28 +0000 (Wed, 12 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-forgot to restore the exponents in last commit
-
-------------------------------------------------------------------------
-r8958 | zimmerma | 2014-02-12 18:25:03 +0000 (Wed, 12 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added reference for efficiency issue with mpfr_gamma
-
-------------------------------------------------------------------------
-r8957 | zimmerma | 2014-02-12 18:20:51 +0000 (Wed, 12 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
- M /trunk/src/lngamma.c
-
-improve mpfr_gamma at around 1000 bits
-
-------------------------------------------------------------------------
-r8956 | vlefevre | 2014-02-12 02:46:10 +0000 (Wed, 12 Feb 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8954 | vlefevre | 2014-02-12 02:43:45 +0000 (Wed, 12 Feb 2014) | 17 lines
-Changed paths:
- M /trunk
- M /trunk/doc/mpfr.texi
- M /trunk/src/add_ui.c
- M /trunk/src/cache.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/random_deviate.c
- M /trunk/src/set_d.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/sub_ui.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandomb.c
- M /trunk/tests/trandom.c
-
-Merged the set_exp branch into the trunk. Changes:
- * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for
- the MPFR_EXP_CHECK case. There are 2 consequences:
- 1. The exp expression is evaluated several times (this should be
- OK with the MPFR code and optimizations).
- 2. The real value of exp is tested for the assertion, instead of
- the value converted to mpfr_exp_t. Thus new bugs could be found
- (e.g. when an unsigned type is used instead of signed).
- * src/set_exp.c: set the exponent only if x is a non-zero ordinary
- number, i.e. already has a valid significand and a valid exponent
- (thus it is no longer a low-level function, and it can no longer
- generate an invalid value from a valid one).
- * doc/mpfr.texi: updated mpfr_set_exp description and added an item
- in the "API Compatibility / Changed Functions" section.
- * Clean-up.
-Original discussion:
- https://sympa.inria.fr/sympa/arc/mpfr/2011-01/msg00092.html
-------------------------------------------------------------------------
-r8953 | vlefevre | 2014-02-12 02:18:46 +0000 (Wed, 12 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/rint.c
-
-[src/rint.c] Added FIXME comment.
-------------------------------------------------------------------------
-r8952 | vlefevre | 2014-02-12 02:13:50 +0000 (Wed, 12 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/next.c
-
-[src/next.c] Improved handling of special values.
-------------------------------------------------------------------------
-r8949 | vlefevre | 2014-02-12 01:47:16 +0000 (Wed, 12 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Bug fixes and code clean-up. At the same time, took the
-future mpfr_set_exp change into account (see set_exp branch).
-------------------------------------------------------------------------
-r8948 | vlefevre | 2014-02-12 00:55:41 +0000 (Wed, 12 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/set.c
-
-[src/set.c] Cosmetic change.
-------------------------------------------------------------------------
-r8947 | vlefevre | 2014-02-12 00:47:31 +0000 (Wed, 12 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] English usage.
-------------------------------------------------------------------------
-r8945 | vlefevre | 2014-02-11 17:44:18 +0000 (Tue, 11 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Cosmetic change.
-------------------------------------------------------------------------
-r8944 | vlefevre | 2014-02-11 16:33:23 +0000 (Tue, 11 Feb 2014) | 4 lines
-Changed paths:
- M /trunk
- M /trunk/src/atan.c
-
-[src/atan.c] Fixed types of some variables, in particular
-unsigned → signed conversion of non-representable value
-(detected due to the new MPFR_SET_EXP assertion check in
-the set_exp branch).
-------------------------------------------------------------------------
-r8942 | vlefevre | 2014-02-11 16:20:25 +0000 (Tue, 11 Feb 2014) | 4 lines
-Changed paths:
- M /trunk
- M /trunk/src/exp3.c
-
-[src/exp3.c] Fixed types of some variables, in particular
-unsigned → signed conversion of non-representable value
-(detected due to the new MPFR_SET_EXP assertion check in
-the set_exp branch).
-------------------------------------------------------------------------
-r8940 | vlefevre | 2014-02-11 14:40:11 +0000 (Tue, 11 Feb 2014) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
-
-[src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in
-particular unsigned → signed conversion of non-representable value
-under some conditions.
-------------------------------------------------------------------------
-r8934 | vlefevre | 2014-02-11 13:59:39 +0000 (Tue, 11 Feb 2014) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/src/set_si_2exp.c
-
-[src/set_si_2exp.c] Fixed unsigned → signed conversion of
-non-representable value when mpfr_exp_t has the same size
-as int.
-------------------------------------------------------------------------
-r8931 | vlefevre | 2014-02-11 13:51:47 +0000 (Tue, 11 Feb 2014) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/src/add_ui.c
-
-[src/add_ui.c] Fixed unsigned → signed conversion of non-representable
-value (detected due to the new MPFR_SET_EXP assertion check in the
-set_exp branch).
-------------------------------------------------------------------------
-r8929 | vlefevre | 2014-02-11 13:43:55 +0000 (Tue, 11 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] Added an assertion.
-------------------------------------------------------------------------
-r8928 | vlefevre | 2014-02-11 13:35:52 +0000 (Tue, 11 Feb 2014) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/tests/random2.c
-
-[tests/random2.c] Fixed unsigned → signed conversion of
-non-representable value (detected due to the new MPFR_SET_EXP
-assertion check in the set_exp branch).
-------------------------------------------------------------------------
-r8922 | vlefevre | 2014-02-11 11:55:20 +0000 (Tue, 11 Feb 2014) | 1 line
-Changed paths:
- M /trunk/tools/bench
-
-Set svn:ignore property on the tools/bench directory.
-------------------------------------------------------------------------
-r8921 | vlefevre | 2014-02-06 11:50:39 +0000 (Thu, 06 Feb 2014) | 1 line
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] Added a note about the test for infinity.
-------------------------------------------------------------------------
-r8920 | zimmerma | 2014-02-05 04:53:39 +0000 (Wed, 05 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-make -> make mpfrbench
-
-------------------------------------------------------------------------
-r8919 | vlefevre | 2014-02-05 01:10:06 +0000 (Wed, 05 Feb 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/tgeneric.c
- M /trunk/tools/nightly-test
-
-Removed MPFR_CHECK_MAX as it is now useless: all "max" tests succeed.
-------------------------------------------------------------------------
-r8918 | vlefevre | 2014-02-05 01:00:58 +0000 (Wed, 05 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Fixed bug introduced in the latest change r8917
-(inexact was not initialized in the case compared < 0).
-------------------------------------------------------------------------
-r8917 | zimmerma | 2014-02-04 13:14:52 +0000 (Tue, 04 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-added code for large inputs in lngamma/lgamma
-
-------------------------------------------------------------------------
-r8916 | vlefevre | 2014-02-04 12:53:29 +0000 (Tue, 04 Feb 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Suggest timing-based thresholds for asymptotic expansions.
-------------------------------------------------------------------------
-r8915 | zimmerma | 2014-02-04 12:20:47 +0000 (Tue, 04 Feb 2014) | 2 lines
-Changed paths:
- M /trunk/src/digamma.c
- M /trunk/tests/data/digamma
-
-use asymptotic expansion for large positive argument
-
-------------------------------------------------------------------------
-r8914 | zimmerma | 2014-01-30 09:18:33 +0000 (Thu, 30 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-tiny change to distinguish different versions of the manual
-
-------------------------------------------------------------------------
-r8913 | vlefevre | 2014-01-29 23:43:47 +0000 (Wed, 29 Jan 2014) | 5 lines
-Changed paths:
- M /trunk/src/constant.c
- M /trunk/src/eint.c
- M /trunk/src/erf.c
- M /trunk/src/exp.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/mpfr-impl.h
-
-[src] Add constants:
- * __gmpfr_mone = -1
- * mpfr_const_log2_RNDD = log(2) rounded down in precision 64 bits
- * mpfr_const_log2_RNDU = log(2) rounded up in precision 64 bits
-(modified patch from Patrick Pélissier).
-------------------------------------------------------------------------
-r8912 | zimmerma | 2014-01-29 17:02:50 +0000 (Wed, 29 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-added reference
-
-------------------------------------------------------------------------
-r8911 | vlefevre | 2014-01-29 01:08:00 +0000 (Wed, 29 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/exp_2.c
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-impl.h
-
-[src] mpz_t caching (modified patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8910 | vlefevre | 2014-01-29 00:24:45 +0000 (Wed, 29 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/const_pi.c
-
-[src/const_pi.c] Rewrote a condition to avoid a potential
-integer overflow (?) and match a comment.
-------------------------------------------------------------------------
-r8909 | vlefevre | 2014-01-29 00:17:08 +0000 (Wed, 29 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/const_pi.c
-
-[src/const_pi.c] Use of GROUP allocation and minor optimization
-(modified patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8908 | vlefevre | 2014-01-28 03:58:36 +0000 (Tue, 28 Jan 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added a note about "rounding to odd" / "sticky rounding".
-------------------------------------------------------------------------
-r8907 | vlefevre | 2014-01-27 08:17:37 +0000 (Mon, 27 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Run-time assertions concerning relations between
-the MPFR exponent type and the long type are allowed (see r8896).
-------------------------------------------------------------------------
-r8906 | vlefevre | 2014-01-26 02:43:37 +0000 (Sun, 26 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-[tests/mpf_compat.h] In MPFR mode, skip the tests when mpfr_exp_t is not
-a long.
-------------------------------------------------------------------------
-r8905 | vlefevre | 2014-01-26 02:39:15 +0000 (Sun, 26 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Fixed printf argument.
-------------------------------------------------------------------------
-r8904 | vlefevre | 2014-01-26 02:36:16 +0000 (Sun, 26 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Fixed printf argument (bug detected with
-_MPFR_EXP_FORMAT=2 and -Werror=format=).
-------------------------------------------------------------------------
-r8902 | vlefevre | 2014-01-26 01:20:50 +0000 (Sun, 26 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/tools/bench/mpfrbench.c
-
-[tools/bench/mpfrbench.c] No longer use the numberof macro, and
-#include "mpfr.h" instead of "mpfr-impl.h", so that mpfrbench.c
-can now be linked against an installed MPFR library.
-------------------------------------------------------------------------
-r8900 | vlefevre | 2014-01-24 15:17:15 +0000 (Fri, 24 Jan 2014) | 9 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-Added MPFR_CHECK_GMP configure check.
-Useful if the user provides --with-gmp with a directory containing
-a GMP version that doesn't have the correct ABI: the previous tests
-won't trigger the error if the same GMP version with the right ABI
-is installed on the system, as this library is automatically
-selected by the linker, while the header (which depends on the ABI)
-of the --with-gmp include directory is used. Before this test, one
-was getting an error in MPFR_CHECK_DBL2INT_BUG, though the error is
-not related to a double-to-integer conversion bug.
-------------------------------------------------------------------------
-r8899 | vlefevre | 2014-01-24 14:28:40 +0000 (Fri, 24 Jan 2014) | 10 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Corrections for the case _MPFR_EXP_FORMAT == 4:
- * No longer use MPFR_EXP_MIN and MPFR_EXP_MAX unconditionally in
- a #if directive, since if MPFR_HAVE_INTMAX_MAX is not defined,
- the compilation fails. The test was not really useful anyway:
- if one really wants mpfr_eexp_t to be long int if mpfr_exp_t
- has the same range as long int, then _MPFR_EXP_FORMAT == 3 is
- sufficient (and this is the default).
- * Removed a test that should be always true due to the previous
- inclusion of mpfr.h (intmax_t has already been used there in
- the case _MPFR_EXP_FORMAT == 4).
-------------------------------------------------------------------------
-r8898 | vlefevre | 2014-01-24 11:32:51 +0000 (Fri, 24 Jan 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Rephrased paragraph added in r8897.
-------------------------------------------------------------------------
-r8897 | vlefevre | 2014-01-24 11:29:06 +0000 (Fri, 24 Jan 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note for Automake 1.13+ and failed tests.
-------------------------------------------------------------------------
-r8896 | vlefevre | 2014-01-24 11:09:21 +0000 (Fri, 24 Jan 2014) | 6 lines
-Changed paths:
- M /trunk/src/cot.c
- M /trunk/src/fpif.c
- M /trunk/src/pow.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/strtofr.c
- M /trunk/src/urandom.c
-
-[src] Replaced some MPFR_ASSERTN's by MPFR_STAT_STATIC_ASSERT (from the
-detection by mpfrlint). Note: the MPFR_ASSERTN's concerning relations
-between the MPFR exponent type and the long type have not been replaced
-because these tests may fail with the non-standard _MPFR_EXP_FORMAT = 4
-on some platforms (e.g. 32-bit ones), and we still want to be able to
-build MPFR in this case in order to test it; this needs to be fixed.
-------------------------------------------------------------------------
-r8895 | vlefevre | 2014-01-24 10:24:22 +0000 (Fri, 24 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Constant checking in assertions.
-------------------------------------------------------------------------
-r8894 | vlefevre | 2014-01-24 10:21:59 +0000 (Fri, 24 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Use lower case for function parameters.
-------------------------------------------------------------------------
-r8893 | zimmerma | 2014-01-24 08:04:25 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-re-enable assertions (patch from Patrick Pélissier)
-
-------------------------------------------------------------------------
-r8892 | zimmerma | 2014-01-24 08:00:18 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-removed an MPFR_LIKELY that is not so likely...
-
-------------------------------------------------------------------------
-r8891 | vlefevre | 2014-01-24 02:52:15 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/atan.c
- M /trunk/src/cache.c
- M /trunk/src/cmp2.c
- M /trunk/src/set_d.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/sub1sp.c
-
-Optimization: likely / unlikely, etc. (patch by Patrick Pélissier).
-Coding style.
-------------------------------------------------------------------------
-r8890 | vlefevre | 2014-01-24 02:41:55 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tune/tuneup.c] Fix compilation error due to static assertion being
-wrong (patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8889 | vlefevre | 2014-01-24 02:39:30 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/const_log2.c
-
-[src/const_log2.c] Optimization by using GROUP allocation (patch
-by Patrick Pélissier).
-------------------------------------------------------------------------
-r8888 | vlefevre | 2014-01-24 02:37:59 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] Optimization: Increase the initial estimate of the number
-of iterations (patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8887 | vlefevre | 2014-01-24 02:36:05 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/erfc.c
-
-[src/erfc.c] Use of static assertion instead of run time assertion
-(patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8886 | vlefevre | 2014-01-24 02:35:02 +0000 (Fri, 24 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Removed trailing spaces.
-------------------------------------------------------------------------
-r8885 | vlefevre | 2014-01-24 02:33:48 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/sin_cos.c
-
-[src/sin_cos.c] Optimization: use of MPFR_MPZ_SIZEINBASE2, GROUP
-allocation, and MPFR_ALIAS (modified patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8884 | vlefevre | 2014-01-24 02:25:02 +0000 (Fri, 24 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-libc.cc
-
-[tools/mbench/mfv5-libc.cc] Fix warning when compiling with recent GCC
-due to unused but set variable (patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8883 | zimmerma | 2014-01-23 21:15:27 +0000 (Thu, 23 Jan 2014) | 5 lines
-Changed paths:
- M /trunk/tools/bench/Makefile.am
-
-revert to EXTRA_PROGRAMS (bin_PROGRAMS is installed in /usr/local/bin,
-which is not what we want, we could use noinst_PROGRAMS, which would be
-compiled automatically, but for coherence with GNU MPC we use EXTRA_PROGRAMS
-which is not compiled automatically)
-
-------------------------------------------------------------------------
-r8881 | zimmerma | 2014-01-23 18:31:37 +0000 (Thu, 23 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/bench/mpfrbench.c
-
-divide the global score to get a number around 1000
-
-------------------------------------------------------------------------
-r8880 | zimmerma | 2014-01-23 18:02:05 +0000 (Thu, 23 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-added reference
-
-------------------------------------------------------------------------
-r8879 | zimmerma | 2014-01-23 16:56:55 +0000 (Thu, 23 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5.cc
-
-gnu style
-
-------------------------------------------------------------------------
-r8878 | vlefevre | 2014-01-23 15:17:07 +0000 (Thu, 23 Jan 2014) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
- A /trunk/libtool-tcc-wl.patch
-
-Added libtool-tcc-wl.patch patch from
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663945#46
-to add tcc support to libtool 2.4.2 and below.
-In doc/README.dev, documented how to use this patch (before a release).
-------------------------------------------------------------------------
-r8877 | vlefevre | 2014-01-23 12:26:17 +0000 (Thu, 23 Jan 2014) | 4 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tsum.c
-
-[tests/tadd.c] Added check_extreme test (huge + tiny).
-[tests/tsum.c] Added check_extreme test (same test as in tadd.c,
- but with mpfr_sum instead of mpfr_add), and temporarily disabled
- the cancel test.
-------------------------------------------------------------------------
-r8876 | vlefevre | 2014-01-23 11:50:17 +0000 (Thu, 23 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mulders.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tools/bench/mpfrbench.c
- M /trunk/tune/speed.c
-
-Use of the numberof macro.
-------------------------------------------------------------------------
-r8875 | vlefevre | 2014-01-23 11:32:16 +0000 (Thu, 23 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tools/bench/mpfrbench.c
-
-[tools/bench/mpfrbench.c] Whitespace clean-up.
-------------------------------------------------------------------------
-r8874 | vlefevre | 2014-01-23 11:28:06 +0000 (Thu, 23 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/const_euler.c
-
-[src/const_euler.c] Removed trailing spaces.
-------------------------------------------------------------------------
-r8873 | vlefevre | 2014-01-23 11:24:30 +0000 (Thu, 23 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/bench/Makefile.am
-
-[tools/bench/Makefile.am] Fix for separate build directory (problem
-detected with "make distcheck").
-------------------------------------------------------------------------
-r8872 | vlefevre | 2014-01-23 09:17:10 +0000 (Thu, 23 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Updated comment.
-------------------------------------------------------------------------
-r8871 | vlefevre | 2014-01-23 09:08:55 +0000 (Thu, 23 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Updated comment.
-------------------------------------------------------------------------
-r8870 | vlefevre | 2014-01-23 09:06:21 +0000 (Thu, 23 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added a possible algorithm in comment.
-------------------------------------------------------------------------
-r8869 | vlefevre | 2014-01-23 08:41:50 +0000 (Thu, 23 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added FIXME comment.
-------------------------------------------------------------------------
-r8868 | zimmerma | 2014-01-22 20:27:28 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-missing space
-
-------------------------------------------------------------------------
-r8867 | zimmerma | 2014-01-22 18:26:49 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/doc/mpfr.texi
-
-Mickaël is the only author of MPFRbench
-
-------------------------------------------------------------------------
-r8866 | zimmerma | 2014-01-22 18:12:19 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/doc/mpfr.texi
-
-updated authors and contributors
-
-------------------------------------------------------------------------
-r8865 | zimmerma | 2014-01-22 16:58:29 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/const_euler.c
-
-new code for Euler's constant (contributed by Fredrik Johansson)
-
-------------------------------------------------------------------------
-r8864 | zimmerma | 2014-01-22 16:25:34 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added subdir tools/bench
-
-------------------------------------------------------------------------
-r8863 | zimmerma | 2014-01-22 15:16:09 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-added MPFRbench
-
-------------------------------------------------------------------------
-r8862 | zimmerma | 2014-01-22 15:14:55 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-added MPFRbench
-
-------------------------------------------------------------------------
-r8861 | zimmerma | 2014-01-22 15:07:15 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/bench/Makefile.am
-
-make mpfrbench compiled just with "make"
-
-------------------------------------------------------------------------
-r8860 | zimmerma | 2014-01-22 15:02:42 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-changes for MPFRbench
-
-------------------------------------------------------------------------
-r8859 | zimmerma | 2014-01-22 15:02:13 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- A /trunk/tools/bench
- A /trunk/tools/bench/Makefile.am
- A /trunk/tools/bench/benchtime.h
- A /trunk/tools/bench/mpfrbench.c
-
-new directory for MPFRbench (contributed by Mickaël Gastineau and Bill Hart)
-
-------------------------------------------------------------------------
-r8858 | vlefevre | 2014-01-22 14:38:28 +0000 (Wed, 22 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added a comment about the cancellation test.
-------------------------------------------------------------------------
-r8857 | vlefevre | 2014-01-22 14:32:58 +0000 (Wed, 22 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] In the cancellation test, do a random permutation.
-------------------------------------------------------------------------
-r8856 | zimmerma | 2014-01-22 14:30:28 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-mention sponsors
-
-------------------------------------------------------------------------
-r8855 | vlefevre | 2014-01-22 14:26:03 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] In the cancellation test: reduced the number of tests;
-output debug information when building with -DDEBUG.
-------------------------------------------------------------------------
-r8854 | vlefevre | 2014-01-22 14:12:16 +0000 (Wed, 22 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added simple cancellation test.
-------------------------------------------------------------------------
-r8853 | vlefevre | 2014-01-22 13:52:25 +0000 (Wed, 22 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Fixed tests_default_random in case mpfr_exp_t > long.
-------------------------------------------------------------------------
-r8852 | vlefevre | 2014-01-22 13:39:18 +0000 (Wed, 22 Jan 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved mpfr_sum description.
-------------------------------------------------------------------------
-r8851 | vlefevre | 2014-01-22 13:33:55 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Do not use bitwise operations on values that can be
-negative. Added comments about what the functions do.
-------------------------------------------------------------------------
-r8850 | zimmerma | 2014-01-22 12:25:17 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-fixed regression noticed by Patrick Pelissier with --enable-gmp-internals
-
-------------------------------------------------------------------------
-r8849 | vlefevre | 2014-01-22 12:23:01 +0000 (Wed, 22 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Fixed bug in test_version() introduced in r8821.
-------------------------------------------------------------------------
-r8847 | vlefevre | 2014-01-22 10:41:11 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
- M /trunk/tests/tlngamma.c
-
-[src/lngamma.c] Fixed divide-by-zero flag for negative integers.
-[tests/tlngamma.c] Test the flags for some special values. Clean-up.
-------------------------------------------------------------------------
-r8846 | zimmerma | 2014-01-22 10:21:59 +0000 (Wed, 22 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed two items done
-
-------------------------------------------------------------------------
-r8843 | vlefevre | 2014-01-21 17:40:44 +0000 (Tue, 21 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/src/exp.c
- M /trunk/src/exp_2.c
- M /trunk/src/round_prec.c
-
-[src/{exp.c,exp_2.c}] mpfr_exp optimization (modified patch
- by Patrick Pélissier).
-[src/round_prec.c] Added a note about the reallocation.
-------------------------------------------------------------------------
-r8842 | vlefevre | 2014-01-21 17:17:53 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/round_prec.c
- M /trunk/src/set_exp.c
-
-LIKELY some code.
-------------------------------------------------------------------------
-r8841 | vlefevre | 2014-01-21 16:32:49 +0000 (Tue, 21 Jan 2014) | 7 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/lngamma.c
- M /trunk/tests/tlngamma.c
-
-[src/lngamma.c] Fixed mpfr_lngamma behavior on nonpositive integers
- and -Inf.
-[doc/mpfr.texi] Updated the documentation on the general rules for
- special values and on mpfr_lngamma.
-[tests/tlngamma.c] Update.
-See <https://sympa.inria.fr/sympa/arc/mpfr/2013-08/msg00008.html>
-(behavior of mpfr_lngamma on zero and general rule for such limits).
-------------------------------------------------------------------------
-r8840 | vlefevre | 2014-01-21 15:50:01 +0000 (Tue, 21 Jan 2014) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4,configure.ac] Check that a directory passed to
-a --with-gmp* configure option exists and doesn't contain any
-space, and canonicalize the name if the realpath utility is
-available (patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8835 | vlefevre | 2014-01-21 14:24:32 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Optimization (modified patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8834 | vlefevre | 2014-01-21 14:17:54 +0000 (Tue, 21 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/src/abort_prec_max.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_ui.c
- M /trunk/src/clear.c
- M /trunk/src/cmp.c
- M /trunk/src/div.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_ui.c
- M /trunk/src/exceptions.c
- M /trunk/src/init2.c
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/mul.c
- M /trunk/src/mul_ui.c
- M /trunk/src/set.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/sub.c
- M /trunk/src/sub1sp.c
-
-[src] Added support for MPFR_PURE_FUNCTION_ATTR, MPFR_HOT_FUNCTION_ATTR,
-and MPFR_COLD_FUNCTION_ATTR, and fixed some LIKELY/UNLIKELY conditions
-(modified patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8833 | vlefevre | 2014-01-21 13:57:50 +0000 (Tue, 21 Jan 2014) | 7 lines
-Changed paths:
- M /trunk/src/atanh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/digamma.c
- M /trunk/src/div.c
- M /trunk/src/div_ui.c
- M /trunk/src/eint.c
- M /trunk/src/erfc.c
- M /trunk/src/gamma.c
- M /trunk/src/hypot.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_z.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/round_near_x.c
- M /trunk/src/subnormal.c
- M /trunk/src/ui_div.c
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tools/mpfrlint
-
-[src/*.c] Replaced mpfr_set_divby0 by the faster MPFR_SET_DIVBY0,
- and so on (except for src/exceptions.c).
-[tools/mpfrlint] Update for flags related functions: check that
- the macros are used in src (except for exceptions.c and mpfr.h)
- instead of the functions.
-[src/mpfr-impl.h] Removed some useless parentheses in comments,
- for mpfrlint.
-------------------------------------------------------------------------
-r8832 | zimmerma | 2014-01-21 12:57:53 +0000 (Tue, 21 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
-
-added more detail in case of error
-
-------------------------------------------------------------------------
-r8831 | vlefevre | 2014-01-21 11:21:18 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added MPFR_SET_* macros to set flags efficiently.
-------------------------------------------------------------------------
-r8830 | vlefevre | 2014-01-21 11:05:35 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/erf.c
-
-Small mpfr_erf improvement (modified patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8829 | vlefevre | 2014-01-21 10:51:48 +0000 (Tue, 21 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] TMP_FREE optimization as tmp_marker is often null
-(based on a patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8828 | vlefevre | 2014-01-21 10:36:26 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] --enable-mini-gmp message: fixed layout; experimental.
-------------------------------------------------------------------------
-r8827 | vlefevre | 2014-01-21 10:33:27 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mini-gmp support is experimental.
-------------------------------------------------------------------------
-r8826 | vlefevre | 2014-01-21 10:32:01 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention the new --enable-mini-gmp configure option.
-------------------------------------------------------------------------
-r8825 | vlefevre | 2014-01-21 10:30:24 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mini-gmp support.
-------------------------------------------------------------------------
-r8824 | vlefevre | 2014-01-21 10:28:29 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] MPFR now depends on GMP 4.2+. Dropped K&R C compatibility.
-------------------------------------------------------------------------
-r8823 | vlefevre | 2014-01-21 10:25:38 +0000 (Tue, 21 Jan 2014) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Better Automake 1.13 support.
-------------------------------------------------------------------------
-r8821 | vlefevre | 2014-01-21 09:54:21 +0000 (Tue, 21 Jan 2014) | 20 lines
-Changed paths:
- M /trunk
- M /trunk/tests/Makefile.am
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
- M /trunk/tests/tversion.c
-
-Merged the vl-am113 branch: test suite improvement with Automake 1.13.
- * Moved GMP version check from tversion.c to the test_version()
- function of tests.c, so that this check is done in every test.
- This function now returns an int, as there are now 3 cases:
- 1. An error in MPFR version check is a fatal error: test_version()
- exits with an error (exit status = 1).
- 2. An error in GMP version check is a non-fatal error: if there
- are no errors in MPFR version check, test_version() returns
- with value 1.
- 3. Otherwise test_version() returns with value 0 (everything is
- fine).
- * tversion.c still runs test_version(), but fails if this function
- returns with an error, i.e. any error is fatal for this test.
- Note: for the other tests, one just has a message in the output
- in case of GMP version mismatch.
- * mpfr-test.h: updated test_version() prototype.
- * Makefile.am: removed the second tversion invocation, and output
- the contents of tversion.log if this file exists (typically with
- Automake 1.13+, for which one no longer gets tversion output by
- default).
-------------------------------------------------------------------------
-r8819 | vlefevre | 2014-01-20 22:30:05 +0000 (Mon, 20 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/src/mpfr.h
- M /trunk/tests/tvalist.c
-
-Dropped obsolete __gmp_const (replaced by const).
-------------------------------------------------------------------------
-r8818 | vlefevre | 2014-01-20 22:27:00 +0000 (Mon, 20 Jan 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Removed mini-gmp support: done.
-------------------------------------------------------------------------
-r8817 | vlefevre | 2014-01-20 22:11:52 +0000 (Mon, 20 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/exp.c
-
-Small mpfr_exp improvement (modified patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8816 | vlefevre | 2014-01-20 18:17:47 +0000 (Mon, 20 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/Makefile
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
- M /trunk/tools/mbench/timp.h
-
-[tools/mbench] Patch by Patrick Pélissier: import base support,
-corei7 support, build fix (with MPFR 3.1+).
-------------------------------------------------------------------------
-r8815 | zimmerma | 2014-01-20 18:00:57 +0000 (Mon, 20 Jan 2014) | 5 lines
-Changed paths:
- M /trunk/src/fma.c
-
-come back to revision 8723 which was faster (measured with tools/mbench/mfv5
-on 53 and 1024 bits). The reason is that the "new" version had overhead for
-mpfr_round_p (about 40 cycles on Core 2) and mpfr_set (about 98 cycles for
-53 bits, and 132 cycles for 1024 bits)
-
-------------------------------------------------------------------------
-r8814 | vlefevre | 2014-01-20 18:00:40 +0000 (Mon, 20 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-impl.h
-
-Added __builtin_unreachable / MPFR_ASSUME support (modified patch
-from Patrick Pélissier).
-------------------------------------------------------------------------
-r8813 | vlefevre | 2014-01-20 17:44:03 +0000 (Mon, 20 Jan 2014) | 4 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mulders.c
- M /trunk/tests/memory.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
-
-MPFR now depends on GMP 4.2+ instead of 4.1+.
-GMP 4.2 compatibility fixed.
-Code clean-up.
-(Modified patch from Patrick Pélissier)
-------------------------------------------------------------------------
-r8812 | vlefevre | 2014-01-20 17:38:46 +0000 (Mon, 20 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/fms.c
-
-[src/fms.c] Coding style.
-------------------------------------------------------------------------
-r8811 | vlefevre | 2014-01-20 17:37:52 +0000 (Mon, 20 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/fma.c
-
-[src/fma.c] Changed mp_prec_t to mpfr_prec_t.
-------------------------------------------------------------------------
-r8810 | zimmerma | 2014-01-20 17:20:08 +0000 (Mon, 20 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
-
-added mpfr_fma
-
-------------------------------------------------------------------------
-r8808 | zimmerma | 2014-01-20 16:44:32 +0000 (Mon, 20 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/fma.c
-
-speed up mpfr_fma [common work with Jeroen Demeyer]
-
-------------------------------------------------------------------------
-r8805 | zimmerma | 2014-01-20 14:39:19 +0000 (Mon, 20 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/fms.c
-
-simplified the fms code (joint work with Jeroen Demeyer)
-
-------------------------------------------------------------------------
-r8802 | zimmerma | 2014-01-20 12:01:38 +0000 (Mon, 20 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/exp3.c
- M /trunk/tests/texp.c
-
-fixed bug in mpfr_exp_3, and memory leak in texp
-
-------------------------------------------------------------------------
-r8799 | vlefevre | 2014-01-20 11:06:11 +0000 (Mon, 20 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/src/li2.c
-
-[src/li2.c] Use MPFR_RET_NEVER_GO_HERE () instead of MPFR_ASSERTN (0)
-to avoid an error with:
- ./configure --enable-logging CFLAGS="-Werror=return-type"; make
-------------------------------------------------------------------------
-r8798 | vlefevre | 2014-01-20 11:04:16 +0000 (Mon, 20 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated comment of the MPFR_RET_NEVER_GO_HERE macro.
-------------------------------------------------------------------------
-r8797 | zimmerma | 2014-01-20 10:07:18 +0000 (Mon, 20 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added new test that currently fails (found with mini-gmp)
-
-------------------------------------------------------------------------
-r8796 | vlefevre | 2014-01-18 23:26:00 +0000 (Sat, 18 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
- M /trunk/doc/mpfr.texi
- M /trunk/src/factorial.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sub1.c
-
-Spelling consistency:
- non-negative → nonnegative
- non-positive → nonpositive
-------------------------------------------------------------------------
-r8795 | vlefevre | 2014-01-18 23:21:07 +0000 (Sat, 18 Jan 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] More on exponent handling.
-------------------------------------------------------------------------
-r8794 | vlefevre | 2014-01-18 22:43:28 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-[tests/tset_str.c] Fixed and improved a mpfr_set_str_binary random test.
-Some code clean-up.
-------------------------------------------------------------------------
-r8793 | vlefevre | 2014-01-18 21:40:37 +0000 (Sat, 18 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tset_str.c
-
-[tests/tset_str.c] Removed useless and confusing cast.
-------------------------------------------------------------------------
-r8792 | vlefevre | 2014-01-18 20:32:19 +0000 (Sat, 18 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Improved a comment about signed zeros.
-------------------------------------------------------------------------
-r8791 | zimmerma | 2014-01-18 18:50:30 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-fixed memory leak
-
-------------------------------------------------------------------------
-r8790 | zimmerma | 2014-01-18 09:41:16 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- A /trunk/doc/mini-gmp
-
-instructions to compile MPFR with mini-gmp
-
-------------------------------------------------------------------------
-r8789 | zimmerma | 2014-01-18 09:32:32 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
-
-disable those tests for mini-gmp
-
-------------------------------------------------------------------------
-r8788 | zimmerma | 2014-01-18 09:17:16 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-fixed test which might produce subnormal numbers
-
-------------------------------------------------------------------------
-r8787 | zimmerma | 2014-01-18 08:44:32 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
- M /trunk/tests/turandom.c
-
-disable two tests that depend on the random generator
-
-------------------------------------------------------------------------
-r8786 | zimmerma | 2014-01-18 08:38:03 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-followup from previous commit: 1^Inf is special too
-
-------------------------------------------------------------------------
-r8785 | zimmerma | 2014-01-18 08:36:54 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-fixed issue for n^x with x=Inf when the random number n is 0
-
-------------------------------------------------------------------------
-r8784 | zimmerma | 2014-01-18 08:28:01 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tfms.c
-
-fixed issue when x=0 and y=Inf (or converse)
-
-------------------------------------------------------------------------
-r8783 | zimmerma | 2014-01-18 08:26:02 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-fixed issue when x=0 and y=Inf (or converse)
-
-------------------------------------------------------------------------
-r8782 | zimmerma | 2014-01-18 08:17:41 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-fixed bug in test file
-
-------------------------------------------------------------------------
-r8781 | vlefevre | 2014-01-18 01:28:25 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Fixes and other minor changes suggested by Wolf Lammen:
-https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html
-------------------------------------------------------------------------
-r8780 | vlefevre | 2014-01-18 00:55:24 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] In extract_double, replaced long by int for exp (it may be
-faster, and shouldn't be slower as it is more restrictive than long).
-------------------------------------------------------------------------
-r8779 | vlefevre | 2014-01-18 00:45:20 +0000 (Sat, 18 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Removed obsolete comment from r245.
-------------------------------------------------------------------------
-r8778 | vlefevre | 2014-01-18 00:40:26 +0000 (Sat, 18 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Renamed __gmpfr_extract_double to extract_double
-(this is just a static function).
-------------------------------------------------------------------------
-r8777 | vlefevre | 2014-01-18 00:30:24 +0000 (Sat, 18 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Fixed __gmpfr_extract_double precondition on d.
-Bug found by Wolf Lammen:
- https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html
-------------------------------------------------------------------------
-r8776 | zimmerma | 2014-01-18 00:18:28 +0000 (Sat, 18 Jan 2014) | 6 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/tests/tset_str.c
-
-more progress with mini-gmp:
-=======================
-9 of 157 tests failed
-(13 tests were not run)
-=======================
-
-------------------------------------------------------------------------
-r8775 | vlefevre | 2014-01-18 00:09:17 +0000 (Sat, 18 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
-
-[tests/{ty0,ty1}.c] Reduce emax for the generic tests.
-------------------------------------------------------------------------
-r8774 | vlefevre | 2014-01-17 23:52:16 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] FIXME: proposed method for overflow detection.
-------------------------------------------------------------------------
-r8773 | vlefevre | 2014-01-17 23:32:17 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Minor improvements.
-------------------------------------------------------------------------
-r8772 | zimmerma | 2014-01-17 23:26:31 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt_ui.c
-
-missing \n
-
-------------------------------------------------------------------------
-r8771 | zimmerma | 2014-01-17 23:25:23 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-missing \n
-
-------------------------------------------------------------------------
-r8770 | zimmerma | 2014-01-17 23:21:58 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tfms.c
-
-missing \n in error messages
-
-------------------------------------------------------------------------
-r8769 | zimmerma | 2014-01-17 23:20:19 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-missing \n in error messages
-
-------------------------------------------------------------------------
-r8768 | vlefevre | 2014-01-17 23:08:56 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Added a MPFR_LOG_FUNC.
-------------------------------------------------------------------------
-r8767 | vlefevre | 2014-01-17 23:00:51 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/digamma.c
-
-[src/digamma.c] FIXME: for x large, use the asymptotic expansion.
-------------------------------------------------------------------------
-r8766 | vlefevre | 2014-01-17 22:48:52 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/digamma.c
-
-[src/digamma.c] Added 2 MPFR_LOG_FUNC's.
-------------------------------------------------------------------------
-r8765 | vlefevre | 2014-01-17 22:46:25 +0000 (Fri, 17 Jan 2014) | 4 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Fixed bug found by PZ: code introduced in r4538 to
-test the maximum (in absolute value) positive and negative arguments
-was buggy, as only the negative one was tested.
-→ This makes some tests fail on the maximum positive argument.
-------------------------------------------------------------------------
-r8764 | zimmerma | 2014-01-17 18:41:13 +0000 (Fri, 17 Jan 2014) | 6 lines
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/tests/tests.c
-
-some progress with mini-gmp:
-=======================
-34 of 157 tests failed
-(13 tests were not run)
-=======================
-
-------------------------------------------------------------------------
-r8763 | zimmerma | 2014-01-17 15:51:49 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/urandomb.c
-
-mpn_copyd (rp, sp, n) should be used when rp >= sp
-
-------------------------------------------------------------------------
-r8762 | zimmerma | 2014-01-17 12:26:35 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/urandomb.c
-
-fixed bug which could appear with probability 1/2^32 or 1/2^64
-
-------------------------------------------------------------------------
-r8761 | vlefevre | 2014-01-17 09:54:35 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr-mini-gmp.c
-
-[src/mpfr-mini-gmp.c] Removed trailing spaces.
-------------------------------------------------------------------------
-r8760 | vlefevre | 2014-01-17 09:53:44 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Update due to the mini-gmp support (r8753).
-------------------------------------------------------------------------
-r8759 | vlefevre | 2014-01-17 09:48:04 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/terandom.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
-
-[tests] Various fixes for r8753.
-------------------------------------------------------------------------
-r8758 | vlefevre | 2014-01-17 09:39:15 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Indentation.
-------------------------------------------------------------------------
-r8757 | vlefevre | 2014-01-17 09:36:57 +0000 (Fri, 17 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Indentation.
-------------------------------------------------------------------------
-r8756 | vlefevre | 2014-01-17 09:33:16 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/erandom.c
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/nrandom.c
- M /trunk/src/printf.c
- M /trunk/src/vasprintf.c
-
-Avoid an empty translation unit (see ISO C99, 6.9). Some errors could
-be triggered with "gcc -std=c99 -pedantic-errors".
-------------------------------------------------------------------------
-r8755 | zimmerma | 2014-01-17 07:22:48 +0000 (Fri, 17 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/mpfr-mini-gmp.c
- M /trunk/src/mpfr-mini-gmp.h
- M /trunk/tests/tadd.c
-
-more progress for the mini-gmp interface
-
-------------------------------------------------------------------------
-r8754 | zimmerma | 2014-01-16 22:03:40 +0000 (Thu, 16 Jan 2014) | 2 lines
-Changed paths:
- A /trunk/src/mpfr-mini-gmp.c
- A /trunk/src/mpfr-mini-gmp.h
-
-added two new files for mini-gmp interface
-
-------------------------------------------------------------------------
-r8753 | zimmerma | 2014-01-16 22:03:01 +0000 (Thu, 16 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/Makefile.am
- M /trunk/src/erandom.c
- M /trunk/src/get_f.c
- M /trunk/src/gmp_op.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/nrandom.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/set_f.c
- M /trunk/src/set_q.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/terandom.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsprintf.c
-
-first step towards making MPFR compile with --enable-mini-gmp, so far make
-succeeds and all tests compile, but many tests fail, will investigate later
-
-------------------------------------------------------------------------
-r8752 | vlefevre | 2014-01-16 13:49:34 +0000 (Thu, 16 Jan 2014) | 7 lines
-Changed paths:
- M /trunk/src/get_z_exp.c
-
-[src/get_z_exp.c] Added an assert for security in case the precision is
-large, but the error should be handled properly (to be discussed).
-Note: there are still corrupt memory problems when the precision is
-large enough but below the mpz limit (a bug in GMP?).
-Note [VL, 2014-01-17]: these problems are due to an integer overflow in
-mpz/clear.c of GMP 5.1.3; I've reported the bug here:
- https://gmplib.org/list-archives/gmp-bugs/2014-January/003321.html
-------------------------------------------------------------------------
-r8751 | vlefevre | 2014-01-16 12:10:56 +0000 (Thu, 16 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/get_z_exp.c
-
-[src/get_z_exp.c] Avoid a potential overflow.
-------------------------------------------------------------------------
-r8750 | vlefevre | 2014-01-16 12:03:01 +0000 (Thu, 16 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/extract.c
-
-[src/extract.c] Type clean-up with 2 bug fixes (these bugs should have
-no effect on most platforms without too aggressive optimizations).
-------------------------------------------------------------------------
-r8749 | zimmerma | 2014-01-16 11:01:49 +0000 (Thu, 16 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/extract.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/mpfr-gmp.h
-
-replaced function _mpz_realloc by preferred one mpz_realloc2
-
-------------------------------------------------------------------------
-r8748 | vlefevre | 2014-01-16 09:00:58 +0000 (Thu, 16 Jan 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added mini-gmp support.
-------------------------------------------------------------------------
-r8747 | vlefevre | 2014-01-15 00:13:19 +0000 (Wed, 15 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention speed improvement with --enable-assert[=full] and GCC
-(due to the fix in r8746).
-------------------------------------------------------------------------
-r8746 | vlefevre | 2014-01-14 23:44:44 +0000 (Tue, 14 Jan 2014) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed the MPFR_ASSERTN macro as suggested by
-Wolf Lammen: https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00002.html
-Note: the semantics doesn't change, it should just be more efficient.
-------------------------------------------------------------------------
-r8745 | vlefevre | 2014-01-12 20:34:17 +0000 (Sun, 12 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Output MPFR_LDBL_MANT_DIG in some failure case.
-------------------------------------------------------------------------
-r8744 | vlefevre | 2014-01-11 23:41:59 +0000 (Sat, 11 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/tset_d.c
-
-[tests/tset_d.c] More information in a failed test.
-------------------------------------------------------------------------
-r8743 | vlefevre | 2014-01-10 15:17:32 +0000 (Fri, 10 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] In LOADLIBES, replaced $(INCLUDES) by $(AM_CPPFLAGS)
-(this should have been done at the same time as r8364).
-------------------------------------------------------------------------
-r8741 | vlefevre | 2014-01-09 15:33:36 +0000 (Thu, 09 Jan 2014) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release" update. In particular at step 5,
-replaced "make dist" by "make distcheck" so that some problems can be
-detected at step 5 instead of step 6, ensuring that the tarballs are
-complete.
-------------------------------------------------------------------------
-r8740 | vlefevre | 2014-01-09 15:22:59 +0000 (Thu, 09 Jan 2014) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Forgot to add mpfr-cvers.h in r8739.
-------------------------------------------------------------------------
-r8739 | vlefevre | 2014-01-09 15:19:35 +0000 (Thu, 09 Jan 2014) | 12 lines
-Changed paths:
- A /trunk/src/mpfr-cvers.h (from /trunk/src/mpfr-impl.h:8738)
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-sassert.h
-
-When static assertions are not supported by the C implementation
-natively (new C11 feature), their MPFR implementation got broken by
-changeset r8625, as the __MPFR_GNUC macro in mpfr-sassert.h was not
-defined in the configure test (since mpfr-impl.h wasn't included)
-and generated an error, disabling the static assertions support.
-This is fixed by the following changes, avoiding code duplication
-and thus risk of inconsistencies in future modification:
- * copied some of the version detection macros from mpfr-impl.h to
- a standalone file mpfr-cvers.h, and updated the macros;
- * in mpfr-impl.h, replaced these macros by a #include "mpfr-cvers.h"
- and updated a comment;
- * in mpfr-sassert.h, added a #include "mpfr-cvers.h".
-------------------------------------------------------------------------
-r8738 | vlefevre | 2014-01-09 14:02:46 +0000 (Thu, 09 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] In the Static Assertions test, avoid a warning with GCC
-and added comments.
-------------------------------------------------------------------------
-r8737 | vlefevre | 2014-01-07 10:10:08 +0000 (Tue, 07 Jan 2014) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r8736 | vlefevre | 2014-01-07 08:51:55 +0000 (Tue, 07 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Use codespell if available.
-------------------------------------------------------------------------
-r8734 | vlefevre | 2014-01-07 00:52:51 +0000 (Tue, 07 Jan 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Fixed a misspelling, using codespell.
-------------------------------------------------------------------------
-r8733 | vlefevre | 2014-01-07 00:49:55 +0000 (Tue, 07 Jan 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/div_ui.c
- M /trunk/src/eint.c
- M /trunk/src/erfc.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub1sp.c
- M /trunk/src/vasprintf.c
-
-Fixed misspellings, using codespell.
-------------------------------------------------------------------------
-r8732 | vlefevre | 2014-01-06 00:45:48 +0000 (Mon, 06 Jan 2014) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added item: new functions of IEEE 754-2008 / C binding draft.
-------------------------------------------------------------------------
-r8731 | vlefevre | 2014-01-05 04:37:58 +0000 (Sun, 05 Jan 2014) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] "To make a release": added a paragraph about warnings.
-------------------------------------------------------------------------
-r8730 | vlefevre | 2014-01-05 03:28:14 +0000 (Sun, 05 Jan 2014) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Avoid a warning.
-------------------------------------------------------------------------
-r8729 | vlefevre | 2014-01-05 03:23:10 +0000 (Sun, 05 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Avoid a warning due to variable set but not used in a
-test, making the test fail with gcc -Werror=unused-but-set-variable.
-------------------------------------------------------------------------
-r8728 | vlefevre | 2014-01-05 03:17:16 +0000 (Sun, 05 Jan 2014) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Replaced "main()" by "main (void)".
-------------------------------------------------------------------------
-r8726 | vlefevre | 2014-01-04 03:02:09 +0000 (Sat, 04 Jan 2014) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8725 | vlefevre | 2014-01-03 20:57:13 +0000 (Fri, 03 Jan 2014) | 2 lines
-Changed paths:
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/exceptions.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_rnd.c
-
-Fixed warnings from GCC's -Wold-style-declaration option:
-MPFR_THREAD_ATTR must be at beginning of declaration.
-------------------------------------------------------------------------
-r8723 | vlefevre | 2014-01-03 20:33:38 +0000 (Fri, 03 Jan 2014) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erandom.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/nrandom.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terandom.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tnrandom.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2014 with
- perl -pi -e 's/ (\d{4}-)?(2013)(?= Free Software)/
- " ".($1||"$2-").($2+1)/e' **/*(^/)
-under zsh (the tools/mbench directory was not modified).
-Removed 2013 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r8722 | zimmerma | 2013-12-17 06:37:59 +0000 (Tue, 17 Dec 2013) | 3 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-work around for bug in mpn_set_str
-(https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html)
-
-------------------------------------------------------------------------
-r8721 | vlefevre | 2013-12-12 12:18:05 +0000 (Thu, 12 Dec 2013) | 3 lines
-Changed paths:
- A /trunk/tools/repl-variadic
-
-Added tools/repl-variadic Perl script to replace the variadic functions
-mpfr_clears, mpfr_inits and mpfr_inits2, in case they are not supported
-by the compiler.
-------------------------------------------------------------------------
-r8716 | vlefevre | 2013-11-28 18:05:41 +0000 (Thu, 28 Nov 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-[tests/tstckintc.c] Improved tests when mpfr_custom_init_set is used as
-a macro (i.e. without parentheses) to trigger the bug fixed in r8715.
-------------------------------------------------------------------------
-r8715 | vlefevre | 2013-11-28 17:59:54 +0000 (Thu, 28 Nov 2013) | 5 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Fixed bug in the mpfr_custom_init_set macro (typo in
-variable name, which can yield incorrect behavior if the second
-argument is not a simple expression).
-Thanks to Andreas Enge for the bug report:
- https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00029.html
-------------------------------------------------------------------------
-r8714 | vlefevre | 2013-11-21 02:02:54 +0000 (Thu, 21 Nov 2013) | 17 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] No longer declare B as initialized with GCC (see r5534),
-as the "may be used uninitialized" warning no longer occurs with latest
-GCC: trunk revision 203899 (Debian 20131021-1), for the future GCC 4.9.
-The warning still occurs with GCC 4.8.2 (Debian 4.8.2-1):
-
-$ gcc-4.8 -O2 -Wall -c gamma.c
-In file included from gamma.c:27:0:
-gamma.c: In function ‘mpfr_gamma’:
-lngamma.c:468:17: warning: ‘B’ may be used uninitialized in this function [-Wmaybe-uninitialized]
- B = mpfr_bernoulli_internal (B, m); /* B[2m]*(2m+1)!, exact */
- ^
-lngamma.c:165:10: note: ‘B’ was declared here
- mpz_t *B;
- ^
-Note: with GCC 4.8.2, at least -O is needed to reproduce the warning,
-and -Wmaybe-uninitialized without -Wuninitialized (or -Wall) doesn't
-trigger the warning.
-------------------------------------------------------------------------
-r8713 | zimmerma | 2013-11-15 07:36:08 +0000 (Fri, 15 Nov 2013) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-added -Wlogical-op
-
-------------------------------------------------------------------------
-r8709 | vlefevre | 2013-11-15 00:46:21 +0000 (Fri, 15 Nov 2013) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a few tests.
-------------------------------------------------------------------------
-r8707 | vlefevre | 2013-11-15 00:26:52 +0000 (Fri, 15 Nov 2013) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] This may seem obvious, but this is not the first time
-this happens: + "When adding the expected result, do NOT use the one
-obtained from the MPFR function! Otherwise, if this function is buggy,
-the test will be wrong and the function will remain buggy."
-------------------------------------------------------------------------
-r8706 | vlefevre | 2013-11-15 00:17:16 +0000 (Fri, 15 Nov 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Fixed incorrect test from r5652 (the corresponding
-bug in src/vasprintf.c has been fixed in r8705).
-------------------------------------------------------------------------
-r8705 | zimmerma | 2013-11-14 19:04:02 +0000 (Thu, 14 Nov 2013) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-fixed bug reported by David Binderman
-(https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00009.html)
-
-------------------------------------------------------------------------
-r8703 | vlefevre | 2013-11-06 14:54:45 +0000 (Wed, 06 Nov 2013) | 1 line
-Changed paths:
- M /trunk/tests/thypot.c
-
-[tests/thypot.c] More NaN tests.
-------------------------------------------------------------------------
-r8702 | thevenyp | 2013-11-06 13:27:15 +0000 (Wed, 06 Nov 2013) | 1 line
-Changed paths:
- M /trunk/tests/thypot.c
-
-[tests/thypot.c] Fix use of a non explicitly initialized variable.
-------------------------------------------------------------------------
-r8701 | zimmerma | 2013-11-04 21:03:02 +0000 (Mon, 04 Nov 2013) | 2 lines
-Changed paths:
- M /trunk/src/sum.c
-
-[sum.c] the call to mpfr_can_round was obviously wrong
-
-------------------------------------------------------------------------
-r8700 | vlefevre | 2013-11-04 18:12:08 +0000 (Mon, 04 Nov 2013) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Updated TODO comment (→ check underflows).
-------------------------------------------------------------------------
-r8699 | zimmerma | 2013-11-04 17:07:40 +0000 (Mon, 04 Nov 2013) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sum.c
- M /trunk/tests/tsum.c
-
-[sum.c] mpfr_sum should consider the maximal precision of its inputs/output
-
-------------------------------------------------------------------------
-r8698 | vlefevre | 2013-10-28 09:36:01 +0000 (Mon, 28 Oct 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added a TODO comment: add generic random test with
-cancellations, and tests with intermediate overflows.
-------------------------------------------------------------------------
-r8697 | vlefevre | 2013-10-28 09:02:45 +0000 (Mon, 28 Oct 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Added test for bug reported by Joseph S. Myers:
-https://sympa.inria.fr/sympa/arc/mpfr/2013-10/msg00015.html
-------------------------------------------------------------------------
-r8692 | vlefevre | 2013-09-27 14:08:05 +0000 (Fri, 27 Sep 2013) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added an example for mpfr_fits_*, corresponding to the
-bug fixed in r8503.
-------------------------------------------------------------------------
-r8690 | vlefevre | 2013-09-27 13:30:54 +0000 (Fri, 27 Sep 2013) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tset_ld.c
-
-[src/mpfr-impl.h] Document that DOUBLE_ISNAN(x) is valid on long double.
-[tests/tset_ld.c] In Isnan_ld, do not convert the long double argument
-to double, as this can give an overflow and unexpected behavior without
-default IEEE 754 behavior. With this change, this tset_ld test no longer
-fails with "clang -O2 -fsanitize=undefined -fno-sanitize-recover".
-------------------------------------------------------------------------
-r8689 | vlefevre | 2013-09-27 12:57:37 +0000 (Fri, 27 Sep 2013) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Avoid a division by zero if MPFR_ERRDIVZERO.
-------------------------------------------------------------------------
-r8688 | vlefevre | 2013-09-27 12:48:31 +0000 (Fri, 27 Sep 2013) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Move tests_start_mpfr call earlier.
-------------------------------------------------------------------------
-r8687 | vlefevre | 2013-09-27 12:39:40 +0000 (Fri, 27 Sep 2013) | 1 line
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tests/tget_flt.c] Corrections when MPFR_ERRDIVZERO is defined.
-------------------------------------------------------------------------
-r8686 | vlefevre | 2013-09-27 12:25:24 +0000 (Fri, 27 Sep 2013) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] With clang, disable division by zero using constants
-due to a bug in its sanitizer and because IEEE 754 division by zero is
-currently not properly supported.
-With this change, the tget_d test no longer fails with:
- clang -O2 -fsanitize=undefined -fno-sanitize-recover
-------------------------------------------------------------------------
-r8685 | vlefevre | 2013-09-26 13:21:02 +0000 (Thu, 26 Sep 2013) | 1 line
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tests/tget_flt.c] Protect a division by 0.
-------------------------------------------------------------------------
-r8681 | vlefevre | 2013-09-17 12:41:50 +0000 (Tue, 17 Sep 2013) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Updated -version-info to 6:0:2 for MPFR 3.2.0.
-------------------------------------------------------------------------
-r8680 | vlefevre | 2013-09-16 08:56:31 +0000 (Mon, 16 Sep 2013) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] For MPFR 3.2: The --enable-decimal-float configure option
-no longer requires --with-gmp-build (see r8402).
-------------------------------------------------------------------------
-r8679 | vlefevre | 2013-09-15 22:46:47 +0000 (Sun, 15 Sep 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Detect broken _Decimal64 support on powerpc64 with
-the mode32 ABI.
-------------------------------------------------------------------------
-r8678 | vlefevre | 2013-09-15 22:20:20 +0000 (Sun, 15 Sep 2013) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] More meaningful messages in check_inf_nan.
-------------------------------------------------------------------------
-r8677 | vlefevre | 2013-09-15 21:48:18 +0000 (Sun, 15 Sep 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] More meaningful messages in check_inf_nan
-after failures on powerpc64 with the mode32 ABI.
-------------------------------------------------------------------------
-r8676 | vlefevre | 2013-09-04 11:50:39 +0000 (Wed, 04 Sep 2013) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added: implement optional cache sharing between threads.
-------------------------------------------------------------------------
-r8674 | vlefevre | 2013-09-02 13:30:46 +0000 (Mon, 02 Sep 2013) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Changed node name "Integer Related Functions" to
-"Integer and Remainder Related Functions", as the corresponding
-section title was changed in r4867. Added associated @cindex.
-------------------------------------------------------------------------
-r8673 | vlefevre | 2013-09-02 13:17:18 +0000 (Mon, 02 Sep 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8672 | vlefevre | 2013-09-02 13:15:25 +0000 (Mon, 02 Sep 2013) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Specified special values (in particular the sign of 0)
-for Section 5.10 "Integer and Remainder Related Functions".
-------------------------------------------------------------------------
-r8671 | vlefevre | 2013-09-02 01:45:33 +0000 (Mon, 02 Sep 2013) | 3 lines
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Support MPFR_RNDNA for this class of functions
-at the request of John P. Hartmann (to support one of IBM's High Level
-Assembler rounding mode for hexadecimal floating-point constants).
-------------------------------------------------------------------------
-r8670 | vlefevre | 2013-09-02 01:22:20 +0000 (Mon, 02 Sep 2013) | 1 line
-Changed paths:
- M /trunk/src/round_raw_generic.c
-
-[src/round_raw_generic.c] Code simplification / comment corrections.
-------------------------------------------------------------------------
-r8668 | vlefevre | 2013-08-26 13:42:04 +0000 (Mon, 26 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] About clang sanitizer, mention -fno-sanitize-recover
-for more visibility in automated tests.
-------------------------------------------------------------------------
-r8667 | vlefevre | 2013-08-23 11:12:37 +0000 (Fri, 23 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Moved the handling of the special cases NaN and ±Inf to
-the main function mpfr_ai.
-------------------------------------------------------------------------
-r8666 | vlefevre | 2013-08-23 02:41:24 +0000 (Fri, 23 Aug 2013) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/agm.c
- M /trunk/tests/tagm.c
-
-[src/agm.c] Corrected a comment.
-[tests/tagm.c] Added tests concerning special values,
- in particular (zero,negative) and symmetric tests.
-[doc/mpfr.texi] Corrected mpfr_agm description.
-------------------------------------------------------------------------
-r8665 | vlefevre | 2013-08-21 13:51:24 +0000 (Wed, 21 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Revisit the conversion functions between a MPFR number and
-a native floating-point value.
-------------------------------------------------------------------------
-r8664 | vlefevre | 2013-08-19 09:39:12 +0000 (Mon, 19 Aug 2013) | 4 lines
-Changed paths:
- M /trunk/doc
-
-[doc] Added mpfr.t2d and mpfr.t2p to svn:ignore property.
-Note: These directories are now generated when using "make mpfr.dvi"
-and "make mpfr.pdf". This comes from a change in Automake 1.13 (see
-its 2012-06-20 changelog) for the texi2dvi and texi2pdf invocations.
-------------------------------------------------------------------------
-r8663 | vlefevre | 2013-08-10 11:30:35 +0000 (Sat, 10 Aug 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Before release, test with gcc -mpc64 under Linux/x86.
-------------------------------------------------------------------------
-r8662 | zimmerma | 2013-08-08 13:12:06 +0000 (Thu, 08 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tversion.c] added GCC version
-
-------------------------------------------------------------------------
-r8661 | zimmerma | 2013-08-08 12:52:58 +0000 (Thu, 08 Aug 2013) | 4 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] try to fix a bug on i686-freebsd
- (see http://hydra.nixos.org/build/5665961/log/raw)
-
-
-------------------------------------------------------------------------
-r8660 | zimmerma | 2013-08-08 08:02:10 +0000 (Thu, 08 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] added debug information
-
-------------------------------------------------------------------------
-r8659 | vlefevre | 2013-08-07 20:22:46 +0000 (Wed, 07 Aug 2013) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Reverted changeset r8657 as %a is C99-only. Moreover
-the memory representation already gives the necessary information (and
-the decimal output was correct on the machine where the test fails).
-------------------------------------------------------------------------
-r8658 | zimmerma | 2013-08-07 20:13:50 +0000 (Wed, 07 Aug 2013) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] maybe this will fix the issue for i686-freebsd?
- Cf http://hydra.nixos.org/build/5662697.
-
-------------------------------------------------------------------------
-r8657 | zimmerma | 2013-08-07 19:55:02 +0000 (Wed, 07 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] in case of error, print d in hexadecimal
-
-------------------------------------------------------------------------
-r8656 | vlefevre | 2013-08-07 09:56:38 +0000 (Wed, 07 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] In the "mpfr_set_ld should be exact" error, output
-the memory representation of d.
-------------------------------------------------------------------------
-r8655 | zimmerma | 2013-08-07 08:56:42 +0000 (Wed, 07 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] print value of MPFR_LDBL_MANT_DIG in case of error
-
-------------------------------------------------------------------------
-r8654 | vlefevre | 2013-08-07 01:24:06 +0000 (Wed, 07 Aug 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Space consistency.
-------------------------------------------------------------------------
-r8653 | vlefevre | 2013-08-06 08:09:27 +0000 (Tue, 06 Aug 2013) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Corrected a comment.
-------------------------------------------------------------------------
-r8652 | vlefevre | 2013-08-06 02:00:54 +0000 (Tue, 06 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Set some long double variables as volatile in order to
-avoid optimizations that yield failures with xlc on power7 (not tested).
-------------------------------------------------------------------------
-r8651 | vlefevre | 2013-08-06 00:48:02 +0000 (Tue, 06 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Oops... The non-working code was due to a missing cast.
-So, simplified the code.
-------------------------------------------------------------------------
-r8650 | vlefevre | 2013-08-06 00:44:25 +0000 (Tue, 06 Aug 2013) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/get_ld.c
-
-[acinclude.m4] Define HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE if the
- "long double" format seems to be double-double (e.g. on PowerPC).
-[src/get_ld.c] Added double-double support.
-------------------------------------------------------------------------
-r8649 | vlefevre | 2013-08-05 23:31:54 +0000 (Mon, 05 Aug 2013) | 1 line
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] GNU style.
-------------------------------------------------------------------------
-r8648 | vlefevre | 2013-08-05 23:28:01 +0000 (Mon, 05 Aug 2013) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Improved output in case of error.
-------------------------------------------------------------------------
-r8647 | vlefevre | 2013-08-05 23:05:45 +0000 (Mon, 05 Aug 2013) | 5 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Improved check_set_get() test function; in particular,
-it no longer takes a mpfr_t argument: the precision of the MPFR number
-is now determined dynamically from the long double d. Thus some numbers
-having a precision > MPFR_LDBL_MANT_DIG in double-double arithmetic are
-now tested (e.g. on PowerPC).
-------------------------------------------------------------------------
-r8645 | vlefevre | 2013-08-05 16:38:39 +0000 (Mon, 05 Aug 2013) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] "correctly-rounded" → "correctly rounded" (see rule on
-http://en.wikipedia.org/wiki/Wikipedia:HYPHEN#Hyphens and the IEEE 754
-and ISO C standards don't use a hyphen either).
-------------------------------------------------------------------------
-r8644 | vlefevre | 2013-08-05 02:13:23 +0000 (Mon, 05 Aug 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added missing @code{}'s in mpfr_fpif_import description.
-------------------------------------------------------------------------
-r8643 | vlefevre | 2013-08-05 02:08:04 +0000 (Mon, 05 Aug 2013) | 6 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Replaced periods ending a sentence by "@." in the
-following cases: when the preceding character is a capital letter
-or a closing parenthesis following a capital letter (e.g. "NaN.",
-"MPFR.", "MPFR).", etc). This is needed to get correct spacing in
-the generated .info and PDF files with the next sentence of the
-paragraph (when there is one).
-------------------------------------------------------------------------
-r8642 | vlefevre | 2013-08-05 01:17:15 +0000 (Mon, 05 Aug 2013) | 4 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Removed the "check largest 2^k that is representable
-as a long double" test based on macros LDBL_MAX and LDBL_EPSILON, which
-are not correct in some C implementations. There is already another
-"check the largest power of two" test, based on a loop, which is OK.
-------------------------------------------------------------------------
-r8641 | zimmerma | 2013-08-04 10:53:07 +0000 (Sun, 04 Aug 2013) | 4 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] improve tests to avoid spurious errors for double-double
- representation where MPFR_LDBL_MANT_DIG=106 and numbers
- with 107 bits or more
-
-------------------------------------------------------------------------
-r8640 | vlefevre | 2013-08-02 23:24:44 +0000 (Fri, 02 Aug 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Document that log1p(-1) = -Inf.
-------------------------------------------------------------------------
-r8639 | vlefevre | 2013-08-02 23:17:16 +0000 (Fri, 02 Aug 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8638 | vlefevre | 2013-08-02 23:15:42 +0000 (Fri, 02 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Moved mpfr_log1p & mpfr_expm1 after mpfr_log & mpfr_exp
-respectively.
-------------------------------------------------------------------------
-r8637 | vlefevre | 2013-08-02 08:29:06 +0000 (Fri, 02 Aug 2013) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Comment on LDBL_MAX.
-------------------------------------------------------------------------
-r8636 | zimmerma | 2013-08-02 08:21:33 +0000 (Fri, 02 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] missing conversion from int to mpfr_rnd_t
-
-------------------------------------------------------------------------
-r8635 | zimmerma | 2013-08-02 07:26:02 +0000 (Fri, 02 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] improve error message
-
-------------------------------------------------------------------------
-r8634 | vlefevre | 2013-08-02 03:21:02 +0000 (Fri, 02 Aug 2013) | 1 line
-Changed paths:
- M /trunk/src/set_ld.c
-
-[src/set_ld.c] Corrected a comment.
-------------------------------------------------------------------------
-r8633 | vlefevre | 2013-08-01 14:15:30 +0000 (Thu, 01 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Completed specification of mpfr_lngamma and mpfr_lgamma
-on 1 and 2 (result is +0).
-------------------------------------------------------------------------
-r8632 | vlefevre | 2013-08-01 13:52:40 +0000 (Thu, 01 Aug 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved description of mpfr_rec_sqrt and mpfr_hypot.
-------------------------------------------------------------------------
-r8631 | vlefevre | 2013-08-01 13:41:24 +0000 (Thu, 01 Aug 2013) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added terandom and tnrandom to svn:ignore property.
-------------------------------------------------------------------------
-r8630 | vlefevre | 2013-08-01 13:34:41 +0000 (Thu, 01 Aug 2013) | 1 line
-Changed paths:
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/log.c
- M /trunk/src/rec_sqrt.c
-
-[src] Improved some comments with "0", about its sign.
-------------------------------------------------------------------------
-r8629 | vlefevre | 2013-08-01 13:33:33 +0000 (Thu, 01 Aug 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Completed specification on special numbers (±0, ±Inf).
-------------------------------------------------------------------------
-r8628 | zimmerma | 2013-08-01 07:58:05 +0000 (Thu, 01 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] increase precision to take into account double-double encoding
-
-------------------------------------------------------------------------
-r8627 | zimmerma | 2013-08-01 07:10:05 +0000 (Thu, 01 Aug 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] replaced error by warning when _GMP_IEEE_FLOATS is not defined
-
-------------------------------------------------------------------------
-r8625 | vlefevre | 2013-07-22 14:32:12 +0000 (Mon, 22 Jul 2013) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-sassert.h
-
-[src/mpfr-sassert.h] Get rid of annoying warnings
- typedef 'MPFR_ASSERT_xxx' locally defined but not used
-with GCC 4.8+ (better than the non-portable solution r8618). Thanks to
-Jonathan Wakely: https://gcc.gnu.org/legacy-ml/gcc-help/2013-07/msg00142.html
-------------------------------------------------------------------------
-r8624 | zimmerma | 2013-07-22 12:06:18 +0000 (Mon, 22 Jul 2013) | 4 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] revert commit 8618 since it breaks hydra jobs i686-cygwin,
- i686-freebsd, i686-solaris and x86_64-freebsd
- (cf http://hydra.nixos.org/eval/955753)
-
-------------------------------------------------------------------------
-r8621 | vlefevre | 2013-07-22 02:20:41 +0000 (Mon, 22 Jul 2013) | 3 lines
-Changed paths:
- M /trunk/src/asinh.c
- M /trunk/src/atanh.c
- M /trunk/src/cosh.c
- M /trunk/src/digamma.c
- M /trunk/src/eint.c
- M /trunk/src/erfc.c
- M /trunk/src/exp2.c
- M /trunk/src/factorial.c
- M /trunk/src/init2.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_z.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sum.c
- M /trunk/src/tanh.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/vasprintf.c
- M /trunk/src/zeta.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tsprintf.c
- M /trunk/tools/mbench/timp.h
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/tuneup.c
-
-Applied patch 3 by Ondřej Bílka with some manual corrections,
-fixing typos:
- https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00016.html
-------------------------------------------------------------------------
-r8620 | vlefevre | 2013-07-22 02:04:00 +0000 (Mon, 22 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/round_raw_generic.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sum.c
- M /trunk/src/zeta.c
-
-Applied patch 2 by Ondřej Bílka, fixing capitalization:
- https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00015.html
-------------------------------------------------------------------------
-r8619 | vlefevre | 2013-07-22 02:01:45 +0000 (Mon, 22 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/nrandom.c
- M /trunk/src/set_uj.c
- M /trunk/src/sub1sp.c
- M /trunk/src/vasprintf.c
- M /trunk/tools/mbench/mpfr-v4.c
- M /trunk/tools/mbench/mpfr-v6.c
-
-Applied patch 1 by Ondřej Bílka, fixing common typos:
- https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00014.html
-------------------------------------------------------------------------
-r8618 | vlefevre | 2013-07-22 01:58:23 +0000 (Mon, 22 Jul 2013) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added -Wno-unused-local-typedefs flag to avoid spurious
-"typedef 'MPFR_ASSERT_xxx' locally defined but not used" warnings due
-to the implementation of static assertions.
-------------------------------------------------------------------------
-r8617 | vlefevre | 2013-07-16 16:55:33 +0000 (Tue, 16 Jul 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-Slightly restructured doc/README.dev and mentioned C-Reduce.
-------------------------------------------------------------------------
-r8616 | vlefevre | 2013-07-12 10:51:19 +0000 (Fri, 12 Jul 2013) | 4 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] If the gmp.h vs libgmp test fails, also output the value
-of some variables (in case config.log is available, information can
-also be retrieved from "Cache variables" and "Output variables" near
-the end).
-------------------------------------------------------------------------
-r8615 | zimmerma | 2013-07-12 07:28:18 +0000 (Fri, 12 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-revert temporary commit 8613
-
-------------------------------------------------------------------------
-r8614 | vlefevre | 2013-07-11 11:33:12 +0000 (Thu, 11 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Improved MPFR_CHECK_DBL2INT_BUG in case of failure
-and added comments about that.
-------------------------------------------------------------------------
-r8613 | zimmerma | 2013-07-11 10:07:51 +0000 (Thu, 11 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] temporary commit to investigate problem with i686-solaris on hydra
-
-------------------------------------------------------------------------
-r8612 | vlefevre | 2013-07-11 01:58:44 +0000 (Thu, 11 Jul 2013) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] In the CC and CFLAGS setup from gmp.h, modified the
-list of commands to select the C preprocessor since /lib/cpp isn't
-the best choice under Solaris.
-------------------------------------------------------------------------
-r8611 | vlefevre | 2013-07-11 01:38:47 +0000 (Thu, 11 Jul 2013) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Moved AM_PROG_AR (introduced in r8546) after the
-CC and CFLAGS setup from gmp.h, because AM_PROG_AR makes Autoconf
-select a compiler (before it may be chosen from __GMP_CC).
-------------------------------------------------------------------------
-r8610 | vlefevre | 2013-07-11 01:24:13 +0000 (Thu, 11 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] The test of CC and CFLAGS was done too late! Moved this
-test earlier (checked on Debian/unstable with autoconf 2.69).
-------------------------------------------------------------------------
-r8609 | vlefevre | 2013-07-10 15:24:00 +0000 (Wed, 10 Jul 2013) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved r8608 (gmp.h/libgmp on stderr).
-------------------------------------------------------------------------
-r8608 | zimmerma | 2013-07-10 15:11:48 +0000 (Wed, 10 Jul 2013) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] print also the versions of gmp.h/libgmp on stderr, hoping they
- will appear on i686-solaris
-
-------------------------------------------------------------------------
-r8607 | zimmerma | 2013-07-10 14:44:20 +0000 (Wed, 10 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] removed useless instruction
-
-------------------------------------------------------------------------
-r8606 | vlefevre | 2013-07-10 14:09:19 +0000 (Wed, 10 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Corrected change in r8602 to get an error in the case
-i == 0 and u != 1.
-------------------------------------------------------------------------
-r8605 | zimmerma | 2013-07-10 13:48:43 +0000 (Wed, 10 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] added fflush to see versions of gmp.h/libgmp
-
-------------------------------------------------------------------------
-r8604 | vlefevre | 2013-07-10 13:12:20 +0000 (Wed, 10 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/src/exp_2.c
-
-[src/exp_2.c] Fixed undefined behavior (present in all MPFR versions)
-detected by "clang -fsanitize=undefined".
-------------------------------------------------------------------------
-r8603 | vlefevre | 2013-07-10 13:06:51 +0000 (Wed, 10 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Suggest to test with "clang -fsanitize=undefined";
-see <http://blog.regehr.org/archives/963>.
-------------------------------------------------------------------------
-r8602 | zimmerma | 2013-07-10 13:05:06 +0000 (Wed, 10 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-more helpful debug information
-
-------------------------------------------------------------------------
-r8601 | zimmerma | 2013-07-10 13:02:51 +0000 (Wed, 10 Jul 2013) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-added debug information for double-to-integer conversion bug
-
-------------------------------------------------------------------------
-r8600 | vlefevre | 2013-07-09 16:08:49 +0000 (Tue, 09 Jul 2013) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Updated a comment about ICC.
-------------------------------------------------------------------------
-r8599 | vlefevre | 2013-07-09 16:00:39 +0000 (Tue, 09 Jul 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added URL about compiler detection.
-------------------------------------------------------------------------
-r8595 | vlefevre | 2013-06-07 15:47:07 +0000 (Fri, 07 Jun 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Another update about signed and unsigned integer types.
-------------------------------------------------------------------------
-r8594 | vlefevre | 2013-06-07 15:39:16 +0000 (Fri, 07 Jun 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about signed and unsigned integer types.
-------------------------------------------------------------------------
-r8593 | zimmerma | 2013-06-07 14:16:40 +0000 (Fri, 07 Jun 2013) | 3 lines
-Changed paths:
- M /trunk/src/random_deviate.c
- M /trunk/tests/Makefile.am
-
-[src/random_deviate.c] applied patch from Charles Karney
-[tests/Makefile.am] reorder test files
-
-------------------------------------------------------------------------
-r8592 | vlefevre | 2013-06-07 12:00:23 +0000 (Fri, 07 Jun 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added URL's about C++ reserved keywords.
-------------------------------------------------------------------------
-r8591 | zimmerma | 2013-06-07 11:35:57 +0000 (Fri, 07 Jun 2013) | 4 lines
-Changed paths:
- M /trunk/src/random_deviate.h
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tset_si.c
-
-changed to allow compilation with C++:
-[src/random_deviate.h] must declare the types before extern C {...}
-[tests/tget_sj.c,tests/tset_si.c] "not" seems to be reserved in C++
-
-------------------------------------------------------------------------
-r8590 | vlefevre | 2013-06-07 08:09:04 +0000 (Fri, 07 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Slightly improved a bound under which mpfr_hypot
-cannot have an internal underflow, thus is correct.
-------------------------------------------------------------------------
-r8589 | vlefevre | 2013-06-06 23:39:56 +0000 (Thu, 06 Jun 2013) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Improved a test to avoid false positives.
-------------------------------------------------------------------------
-r8588 | vlefevre | 2013-06-06 14:22:26 +0000 (Thu, 06 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] Updated/improved the proof of mpfr_hypot in the
-scaling case.
-------------------------------------------------------------------------
-r8587 | vlefevre | 2013-06-06 13:38:02 +0000 (Thu, 06 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/src/hypot.c
-
-[src/hypot.c] Slightly improved scaling to avoid even more underflow
-in the scaling of y or in its square.
-------------------------------------------------------------------------
-r8586 | vlefevre | 2013-06-06 12:28:06 +0000 (Thu, 06 Jun 2013) | 1 line
-Changed paths:
- M /trunk/src/hypot.c
-
-[src/hypot.c] Added a comment on the FIXME.
-------------------------------------------------------------------------
-r8585 | vlefevre | 2013-06-06 12:03:49 +0000 (Thu, 06 Jun 2013) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Removed useless and meaningless definitions.
-------------------------------------------------------------------------
-r8584 | vlefevre | 2013-06-06 11:47:58 +0000 (Thu, 06 Jun 2013) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-[src] Moved mp_bitcnt_t definition for GMP < 5 from mpfr-gmp.h to
-mpfr-impl.h (mpfr-gmp.h is only for definitions from GMP internals
-as it is included only in builds without GMP internals).
-------------------------------------------------------------------------
-r8583 | vlefevre | 2013-06-06 11:38:51 +0000 (Thu, 06 Jun 2013) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Fixed mp_bitcnt_t presence test.
-------------------------------------------------------------------------
-r8582 | zimmerma | 2013-06-06 11:12:55 +0000 (Thu, 06 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-changed macro to typedef when mp_bitcnt_t is missing (for coherence with GMP)
-
-------------------------------------------------------------------------
-r8581 | zimmerma | 2013-06-06 06:53:57 +0000 (Thu, 06 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/src/nrandom.c
- M /trunk/src/random_deviate.c
-
-fixed compiler warnings
-
-------------------------------------------------------------------------
-r8580 | zimmerma | 2013-06-06 05:48:37 +0000 (Thu, 06 Jun 2013) | 3 lines
-Changed paths:
- M /trunk/src/hypot.c
- M /trunk/src/mpfr-gmp.h
-
-[mpfr-gmp.h] added replacement for mp_bitcnt_t
-[hypot.c] added comment
-
-------------------------------------------------------------------------
-r8579 | zimmerma | 2013-06-05 15:29:17 +0000 (Wed, 05 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/src/erandom.c
- M /trunk/src/nrandom.c
- M /trunk/src/random_deviate.c
- M /trunk/src/random_deviate.h
-
-applied patch from Charles Karney
-
-------------------------------------------------------------------------
-r8578 | vlefevre | 2013-06-05 13:58:18 +0000 (Wed, 05 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/README
-
-[README] Added ar-lib (due to AM_PROG_AR in r8546) and test-driver
-(installed by Automake 1.12+).
-------------------------------------------------------------------------
-r8574 | vlefevre | 2013-06-03 08:34:46 +0000 (Mon, 03 Jun 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8573 | vlefevre | 2013-06-02 19:07:51 +0000 (Sun, 02 Jun 2013) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] In AM_INIT_AUTOMAKE, lowered Automake version requirement
-to 1.11.2 (for AM_PROG_AR), as Ubuntu 12.04 LTS only has Automake 1.11.3
-(we assume that such distributions have a security patch).
-------------------------------------------------------------------------
-r8572 | vlefevre | 2013-06-02 14:17:52 +0000 (Sun, 02 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] In AM_INIT_AUTOMAKE, require Automake 1.11.6 for
-AM_PROG_AR and security reasons.
-------------------------------------------------------------------------
-r8571 | vlefevre | 2013-06-02 13:59:51 +0000 (Sun, 02 Jun 2013) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS,doc/mpfr.texi] New and deprecated functions in MPFR 3.2.
-------------------------------------------------------------------------
-r8570 | vlefevre | 2013-06-02 13:47:38 +0000 (Sun, 02 Jun 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/grandom.c
-
-Spelling: gaussian -> Gaussian (Wikipedia, Wolfram MathWorld, dict).
-------------------------------------------------------------------------
-r8569 | vlefevre | 2013-06-02 13:39:55 +0000 (Sun, 02 Jun 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Slight doc improvement for mpfr_grandom.
-------------------------------------------------------------------------
-r8568 | zimmerma | 2013-06-01 11:05:15 +0000 (Sat, 01 Jun 2013) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-added assertion
-
-------------------------------------------------------------------------
-r8567 | vlefevre | 2013-06-01 09:23:02 +0000 (Sat, 01 Jun 2013) | 1 line
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] Updated a comment.
-------------------------------------------------------------------------
-r8566 | zimmerma | 2013-06-01 08:35:30 +0000 (Sat, 01 Jun 2013) | 3 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-in case mp_limb_t is smaller than unsigned long, use alternate code for
-highest_bit_idx
-
-------------------------------------------------------------------------
-r8565 | vlefevre | 2013-06-01 00:50:16 +0000 (Sat, 01 Jun 2013) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Update for random_deviate.
-------------------------------------------------------------------------
-r8564 | vlefevre | 2013-06-01 00:46:16 +0000 (Sat, 01 Jun 2013) | 1 line
-Changed paths:
- M /trunk/src/nrandom.c
-
-[src/nrandom.c] Corrected indentation.
-------------------------------------------------------------------------
-r8563 | vlefevre | 2013-06-01 00:37:16 +0000 (Sat, 01 Jun 2013) | 1 line
-Changed paths:
- M /trunk/src/random_deviate.h
-
-[src/random_deviate.h] Fixed a typo in a macro name.
-------------------------------------------------------------------------
-r8562 | vlefevre | 2013-06-01 00:33:47 +0000 (Sat, 01 Jun 2013) | 1 line
-Changed paths:
- M /trunk/src/random_deviate.c
-
-[src/random_deviate.c] Removed trailing spaces.
-------------------------------------------------------------------------
-r8561 | vlefevre | 2013-06-01 00:32:35 +0000 (Sat, 01 Jun 2013) | 2 lines
-Changed paths:
- M /trunk
-
-Added ar-lib to svn:ignore property (this script comes from Automake,
-due to the use of AM_PROG_AR in configure.ac as of r8546).
-------------------------------------------------------------------------
-r8560 | vlefevre | 2013-05-31 16:11:47 +0000 (Fri, 31 May 2013) | 3 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-[tests/memory.c] Added a FIXME comment about the time complexity of
-tests_memory_find (Paul Zimmermann noticed that tgrandom on a large
-value takes a lot of time, probably because of that).
-------------------------------------------------------------------------
-r8559 | zimmerma | 2013-05-31 15:14:44 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-updated NEWS and contribution section in mpfr.texi
-
-------------------------------------------------------------------------
-r8558 | zimmerma | 2013-05-31 14:55:53 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-#include <...> -> #include "..." for local files
-
-------------------------------------------------------------------------
-r8557 | zimmerma | 2013-05-31 14:46:39 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-removed obsolete comment
-
-------------------------------------------------------------------------
-r8556 | zimmerma | 2013-05-31 13:34:12 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/nrandom.c
-
-GNU style
-
-------------------------------------------------------------------------
-r8555 | zimmerma | 2013-05-31 13:28:51 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/erandom.c
-
-GNU style
-
-------------------------------------------------------------------------
-r8554 | zimmerma | 2013-05-31 13:25:41 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-GNU style
-
-------------------------------------------------------------------------
-r8553 | zimmerma | 2013-05-31 12:55:49 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/terandom.c
- A /trunk/tests/tnrandom.c
-
-added tests files for mpfr_nrandom and mpfr_erandom
-
-------------------------------------------------------------------------
-r8552 | zimmerma | 2013-05-31 12:43:52 +0000 (Fri, 31 May 2013) | 3 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-removed RANDOM_SIMPLE=1 stuff (this was an alternate slower implementation).
-Kept in svn history as a reference.
-
-------------------------------------------------------------------------
-r8551 | zimmerma | 2013-05-31 12:40:37 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/nrandom.c
-
-removed mpfr_grandom_alt (likewise previous commit)
-
-------------------------------------------------------------------------
-r8550 | zimmerma | 2013-05-31 12:39:03 +0000 (Fri, 31 May 2013) | 4 lines
-Changed paths:
- M /trunk/src/random_deviate.c
-
-removed mpfr_urandom_alt (slower than mpfr_urandom, but it can be recovered
-from the svn history to illustrate one of the basic properties of a newly
-initialized mpfr_random_deviate_t)
-
-------------------------------------------------------------------------
-r8549 | zimmerma | 2013-05-31 12:36:40 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- D /trunk/src/mpfr_random.h
- M /trunk/src/random_deviate.h
-
-removed mpfr_random.h, headers are in mpfr.h
-
-------------------------------------------------------------------------
-r8548 | zimmerma | 2013-05-31 12:30:01 +0000 (Fri, 31 May 2013) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/erandom.c
- M /trunk/src/mpfr.h
- A /trunk/src/mpfr_random.h
- A /trunk/src/nrandom.c
- A /trunk/src/random_deviate.c
- A /trunk/src/random_deviate.h
-
-original contribution from Charles Karney <charles.karney@sri.com>
-
-------------------------------------------------------------------------
-r8547 | vlefevre | 2013-05-30 17:34:52 +0000 (Thu, 30 May 2013) | 1 line
-Changed paths:
- D /trunk/tools/update-patchv
-
-Removed obsolete tools/update-patchv script. Use update-version instead.
-------------------------------------------------------------------------
-r8546 | vlefevre | 2013-05-30 16:03:49 +0000 (Thu, 30 May 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added AM_PROG_AR to support unusual archivers
-(after a warning from Automake 1.13).
-------------------------------------------------------------------------
-r8544 | vlefevre | 2013-05-30 15:57:33 +0000 (Thu, 30 May 2013) | 1 line
-Changed paths:
- M /trunk/tools/ck-copyright-notice
-
-[tools/ck-copyright-notice] Update for copyright year ranges.
-------------------------------------------------------------------------
-r8542 | vlefevre | 2013-05-30 15:54:39 +0000 (Thu, 30 May 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8540 | vlefevre | 2013-05-30 15:53:07 +0000 (Thu, 30 May 2013) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tools/mbench/Makefile
- M /trunk/tools/mbench/generate.c
- M /trunk/tools/mbench/mfv5-arprec.cc
- M /trunk/tools/mbench/mfv5-cln.cc
- M /trunk/tools/mbench/mfv5-crlibm.cc
- M /trunk/tools/mbench/mfv5-libc.cc
- M /trunk/tools/mbench/mfv5-lidia.cc
- M /trunk/tools/mbench/mfv5-mpf.cc
- M /trunk/tools/mbench/mfv5-mpfr.cc
- M /trunk/tools/mbench/mfv5-ntl.cc
- M /trunk/tools/mbench/mfv5-pari.cc
- M /trunk/tools/mbench/mfv5-void.cc
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
- M /trunk/tools/mbench/mpfr-gfx.c
- M /trunk/tools/mbench/mpfr-v4.c
- M /trunk/tools/mbench/mpfr-v6.c
- M /trunk/tools/mbench/timp.h
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Use copyright year ranges, following
- https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
-------------------------------------------------------------------------
-r8537 | vlefevre | 2013-05-30 13:51:01 +0000 (Thu, 30 May 2013) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added *.log and *.trs to svn:ignore property.
-------------------------------------------------------------------------
-r8536 | vlefevre | 2013-05-30 13:44:55 +0000 (Thu, 30 May 2013) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Update about configure default options.
-------------------------------------------------------------------------
-r8534 | vlefevre | 2013-05-30 13:21:33 +0000 (Thu, 30 May 2013) | 1 line
-Changed paths:
- M /trunk
-
-Added test-driver (from Automake 1.12+) to svn:ignore property.
-------------------------------------------------------------------------
-r8532 | vlefevre | 2013-05-24 15:17:52 +0000 (Fri, 24 May 2013) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated comment about -mieee-fp icc option.
-------------------------------------------------------------------------
-r8531 | thevenyp | 2013-05-24 14:42:52 +0000 (Fri, 24 May 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf] remove tests of invalid format (continuation of r8525).
-
-------------------------------------------------------------------------
-r8530 | thevenyp | 2013-05-24 14:39:58 +0000 (Fri, 24 May 2013) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Support all length modifiers defined by ISO C99, even if the
- corresponding type is not detected by configure (continuation of r8525).
-
-------------------------------------------------------------------------
-r8529 | vlefevre | 2013-05-24 13:59:10 +0000 (Fri, 24 May 2013) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] For ICC, changed the deprecated -mp option to the
-equivalent one -mieee-fp; added a comment about that.
-------------------------------------------------------------------------
-r8528 | thevenyp | 2013-05-24 12:59:13 +0000 (Fri, 24 May 2013) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Always support 't' and 'L' length modifiers, but don't
- test them if configure doesn't find the corresponding type.
-
-------------------------------------------------------------------------
-r8527 | thevenyp | 2013-05-24 12:31:17 +0000 (Fri, 24 May 2013) | 4 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tprintf.c
-
-Printing invalid format specifiers (continuation of r8525)
-[src/vasprintf.c] Add comments.
-[tests/tprintf.c] Simplify tests.
-
-------------------------------------------------------------------------
-r8526 | zimmerma | 2013-05-24 12:01:07 +0000 (Fri, 24 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
-
-new macro MPFR_MAYBE_UNUSED to avoid compiler warnings
-
-------------------------------------------------------------------------
-r8525 | thevenyp | 2013-05-23 16:24:57 +0000 (Thu, 23 May 2013) | 3 lines
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tprintf.c
-
-[src/vasprintf.c] Print invalid format specifier instead of returning an error code, as in GMP.
-[tests/tprintf.c] Modify tests for invalid format.
-
-------------------------------------------------------------------------
-r8524 | zimmerma | 2013-05-22 15:11:42 +0000 (Wed, 22 May 2013) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-try to link with GMP even when a dll, since it seems to work now
-(see https://sympa.inria.fr/sympa/arc/mpfr/2013-05/msg00010.html)
-
-------------------------------------------------------------------------
-r8523 | zimmerma | 2013-05-22 11:50:08 +0000 (Wed, 22 May 2013) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/vasprintf.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-replaced macros NPRINTF_T and NPRINTF_L by positive versions
-PRINTF_T and PRINTF_L, now we don't assume that %td and %Lf are supported
-when we don't check it (for example when cross-compiling, or under Windows
-when GMP is a dynamic library)
-
-------------------------------------------------------------------------
-r8522 | zimmerma | 2013-05-22 10:20:30 +0000 (Wed, 22 May 2013) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-fixed typo
-
-------------------------------------------------------------------------
-r8520 | vlefevre | 2013-05-15 23:12:07 +0000 (Wed, 15 May 2013) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Added a comment about ACLOCAL_AMFLAGS, based on the
-GNU Automake 1.13.2 release notes.
-------------------------------------------------------------------------
-r8514 | vlefevre | 2013-04-17 08:28:45 +0000 (Wed, 17 Apr 2013) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] With clang, do not use GCC's self-initialization trick
-as it generates a warning, though clang claims GCC compatibility.
-------------------------------------------------------------------------
-r8511 | zimmerma | 2013-04-04 07:06:13 +0000 (Thu, 04 Apr 2013) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[algorithms.tex] added reference
-
-------------------------------------------------------------------------
-r8506 | zimmerma | 2013-03-26 14:05:57 +0000 (Tue, 26 Mar 2013) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added item
-
-------------------------------------------------------------------------
-r8504 | vlefevre | 2013-03-18 17:19:21 +0000 (Mon, 18 Mar 2013) | 1 line
-Changed paths:
- M /trunk/src/fits_intmax.c
-
-[src/fits_intmax.c] Corrected a comment.
-------------------------------------------------------------------------
-r8503 | vlefevre | 2013-03-18 17:13:32 +0000 (Mon, 18 Mar 2013) | 4 lines
-Changed paths:
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uintmax.c
-
-[src/{fits_u.h,fits_uintmax.c}] Fixed the mpfr_fits_u*_p functions,
-which incorrectly returned 0 ("doesn't fit") on negative arguments
-when the rounding to an integer was 0. The fits_uintmax.c file now
-uses fits_u.h for consistency.
-------------------------------------------------------------------------
-r8502 | vlefevre | 2013-03-18 16:32:08 +0000 (Mon, 18 Mar 2013) | 1 line
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] Use error numbers to know where an error occurred.
-------------------------------------------------------------------------
-r8501 | vlefevre | 2013-03-18 14:24:16 +0000 (Mon, 18 Mar 2013) | 1 line
-Changed paths:
- M /trunk/src/fits_uintmax.c
-
-[src/fits_uintmax.c] Replaced an obsolete comment by a TODO.
-------------------------------------------------------------------------
-r8500 | vlefevre | 2013-03-18 12:54:04 +0000 (Mon, 18 Mar 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tget_sj.c
-
-[tests/tget_sj.c] Added mpfr_get_uj tests on small negative op,
-similar to what has been done for mpfr_get_ui in r8498,8499.
-------------------------------------------------------------------------
-r8499 | vlefevre | 2013-03-18 12:50:56 +0000 (Mon, 18 Mar 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Minor type correction for r8498 (this shouldn't matter
-because the value is normally small, but perhaps not in case of bug).
-------------------------------------------------------------------------
-r8498 | vlefevre | 2013-03-18 12:44:09 +0000 (Mon, 18 Mar 2013) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Added mpfr_get_ui tests on small negative op.
-------------------------------------------------------------------------
-r8497 | vlefevre | 2013-03-18 12:18:31 +0000 (Mon, 18 Mar 2013) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Corrected comment.
-------------------------------------------------------------------------
-r8496 | vlefevre | 2013-03-18 12:09:34 +0000 (Mon, 18 Mar 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8495 | vlefevre | 2013-03-18 12:08:34 +0000 (Mon, 18 Mar 2013) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved documentation of the conversions to an integer
-(mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj).
-------------------------------------------------------------------------
-r8494 | vlefevre | 2013-03-18 11:56:17 +0000 (Mon, 18 Mar 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tests/tfits.c] Added tests, in particular for small negative op
-and in non-RNDN rounding modes; tfits currently fails.
-------------------------------------------------------------------------
-r8493 | vlefevre | 2013-03-18 02:50:23 +0000 (Mon, 18 Mar 2013) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Added short text about what GNU MPFR is.
-------------------------------------------------------------------------
-r8483 | vlefevre | 2013-03-13 15:31:32 +0000 (Wed, 13 Mar 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Removed a duplicate word.
-------------------------------------------------------------------------
-r8477 | vlefevre | 2013-03-12 02:18:35 +0000 (Tue, 12 Mar 2013) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added a paragraph about Cygwin and threading.
-------------------------------------------------------------------------
-r8475 | vlefevre | 2013-03-12 00:07:19 +0000 (Tue, 12 Mar 2013) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Improved information on patches.
-------------------------------------------------------------------------
-r8474 | vlefevre | 2013-03-11 00:43:52 +0000 (Mon, 11 Mar 2013) | 1 line
-Changed paths:
- M /trunk/tools/announce-text
-
-[tools/announce-text] Added text about how to verify the signatures.
-------------------------------------------------------------------------
-r8473 | vlefevre | 2013-03-11 00:22:33 +0000 (Mon, 11 Mar 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release" about the web pages.
-------------------------------------------------------------------------
-r8469 | vlefevre | 2013-03-08 11:55:17 +0000 (Fri, 08 Mar 2013) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added info about update-version and ck-version-info.
-------------------------------------------------------------------------
-r8462 | vlefevre | 2013-03-05 01:05:49 +0000 (Tue, 05 Mar 2013) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Clean-up. Improved consistency.
-------------------------------------------------------------------------
-r8461 | vlefevre | 2013-03-04 03:45:19 +0000 (Mon, 04 Mar 2013) | 2 lines
-Changed paths:
- M /trunk/examples/ReadMe
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
-
-[examples] Replaced the old rounding mode macros (GMP_RNDN, etc.) by the
-new ones (MPFR_RNDN, etc.) in the *.c files; updated ReadMe file.
-------------------------------------------------------------------------
-r8460 | vlefevre | 2013-03-04 03:41:45 +0000 (Mon, 04 Mar 2013) | 1 line
-Changed paths:
- M /trunk/doc/update-faq
-
-[doc/update-faq] Removed the now useless s/GMP_RND/MPFR_RND/ rewriting.
-------------------------------------------------------------------------
-r8458 | vlefevre | 2013-03-04 02:44:00 +0000 (Mon, 04 Mar 2013) | 3 lines
-Changed paths:
- M /trunk/doc/faq.xsl
- M /trunk/doc/update-faq
-
-[doc] Slightly modified faq.xsl to avoid libxslt bug 377440, and
-moved the addition of special CSS comments for XML compatibility
-from update-faq to faq.xsl file.
-------------------------------------------------------------------------
-r8457 | vlefevre | 2013-03-01 15:25:44 +0000 (Fri, 01 Mar 2013) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Avoid mpfr_set_d.
-------------------------------------------------------------------------
-r8456 | vlefevre | 2013-03-01 15:20:53 +0000 (Fri, 01 Mar 2013) | 2 lines
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Avoid mpfr_set_d as the results may depend on the C
-implementation.
-------------------------------------------------------------------------
-r8448 | vlefevre | 2013-01-03 05:09:01 +0000 (Thu, 03 Jan 2013) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8447 | vlefevre | 2013-01-03 04:59:33 +0000 (Thu, 03 Jan 2013) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/fpif.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/coverage/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_float128.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/mips/mparam.h
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-sassert.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/rndna.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_float128.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabort_defalloc1.c
- M /trunk/tests/tabort_defalloc2.c
- M /trunk/tests/tabort_prec_max.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tassert.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfpif.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/trndna.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_float128.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2013 with
- perl -pi -e 's/2012 Free Software/2012, 2013 Free Software/' **/*(^/)
-under zsh, reverting the ChangeLog file and the m4 directory
-(the tools/mbench directory was not modified).
-Removed 2012 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r8446 | vlefevre | 2013-01-03 04:38:45 +0000 (Thu, 03 Jan 2013) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Corrected comment on clock_gettime (from r8445).
-------------------------------------------------------------------------
-r8445 | vlefevre | 2012-12-31 15:42:02 +0000 (Mon, 31 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/tune/Makefile.am
-
-Tuning: reverted changeset r8444 and applied patch by Patrick Pélissier
-for GMP 5.1.0 to link against librt conditionally.
-------------------------------------------------------------------------
-r8444 | zimmerma | 2012-12-31 09:43:09 +0000 (Mon, 31 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/tune/Makefile.am
-
-[Makefile.am] -lrt is needed for clock_gettime() [undefined with GMP 5.1.0]
-
-------------------------------------------------------------------------
-r8443 | vlefevre | 2012-12-21 17:02:51 +0000 (Fri, 21 Dec 2012) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Added a TODO.
-------------------------------------------------------------------------
-r8442 | vlefevre | 2012-12-21 16:50:34 +0000 (Fri, 21 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Added an assert on MPFR_PREC_MIN because the code seems
-to be based on this (always true with the current value).
-------------------------------------------------------------------------
-r8441 | vlefevre | 2012-12-21 16:37:16 +0000 (Fri, 21 Dec 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Minor corrections of mpfr_fpif_import documentation.
-------------------------------------------------------------------------
-r8440 | demengeo | 2012-12-21 12:42:15 +0000 (Fri, 21 Dec 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/fpif.c
-
-mpfr_fpif_import now check precision size. Documentation updated for mpfr_fpif_import.
-------------------------------------------------------------------------
-r8439 | vlefevre | 2012-12-20 03:52:41 +0000 (Thu, 20 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/src/get_f.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/tests/tadd.c
- M /trunk/tests/tgeneric.c
-
-Compatibility with GMP 5.1.0 when gmp-impl.h is included (thanks to Rob:
-https://sympa.inria.fr/sympa/arc/mpfr/2012-12/msg00003.html); clean-up.
-------------------------------------------------------------------------
-r8437 | vlefevre | 2012-12-12 10:35:20 +0000 (Wed, 12 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Added a FIXME comment in mpfr_fpif_import concerning the
-precision.
-------------------------------------------------------------------------
-r8436 | vlefevre | 2012-12-11 23:51:12 +0000 (Tue, 11 Dec 2012) | 3 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Added comments. Fixed mpfr_fpif_read_precision_from_file
-in the case where the precision size > sizeof(mpfr_prec_t) and/or when
-the read precision is too large (as mpfr_prec_t is signed).
-------------------------------------------------------------------------
-r8435 | zimmerma | 2012-12-11 20:49:49 +0000 (Tue, 11 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[fpif.c] completed FIXME
-
-------------------------------------------------------------------------
-r8434 | vlefevre | 2012-12-08 09:39:25 +0000 (Sat, 08 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] Added a FIXME comment: large precisions read from the file
-can trigger undefined behavior if sizeof(mpfr_prec_t) is too small.
-------------------------------------------------------------------------
-r8433 | demengeo | 2012-12-07 16:03:06 +0000 (Fri, 07 Dec 2012) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
-
-Fixed stack overflow bug in fpif.c
-------------------------------------------------------------------------
-r8432 | vlefevre | 2012-12-05 17:38:38 +0000 (Wed, 05 Dec 2012) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[acinclude.m4,configure.ac] Moved the "double-to-integer conversion bug"
-test after the gmp.h detection as it uses gmp.h (otherwise one gets an
-incorrect error on this test if gmp.h can't be found or is unusable).
-------------------------------------------------------------------------
-r8430 | vlefevre | 2012-12-03 15:04:33 +0000 (Mon, 03 Dec 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Removed a useless comma from r8428.
-------------------------------------------------------------------------
-r8429 | vlefevre | 2012-12-03 15:02:23 +0000 (Mon, 03 Dec 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8428 | vlefevre | 2012-12-03 15:00:58 +0000 (Mon, 03 Dec 2012) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated warning in mpfr_min_prec description,
-in particular for the use with mpfr_prec_round.
-------------------------------------------------------------------------
-r8425 | vlefevre | 2012-10-17 23:10:24 +0000 (Wed, 17 Oct 2012) | 2 lines
-Changed paths:
- M /trunk/src/set_uj.c
-
-[src/set_uj.c] Change to help the compiler to detect dead code,
-improving the coverage (from a patch by Patrick Pélissier).
-------------------------------------------------------------------------
-r8424 | vlefevre | 2012-10-17 22:56:04 +0000 (Wed, 17 Oct 2012) | 1 line
-Changed paths:
- M /trunk/src/get_d64.c
-
-[src/get_d64.c] Added a const (thanks to Patrick Pélissier).
-------------------------------------------------------------------------
-r8423 | vlefevre | 2012-10-10 08:35:59 +0000 (Wed, 10 Oct 2012) | 10 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/tsprintf.c
-
-[acinclude.m4] Check struct lconv members (from <locale.h>) to avoid a
- build failure under Android, which does not have them; see
- https://sympa.inria.fr/sympa/arc/mpfr/2012-10/msg00002.html
-[src/mpfr-impl.h] Decimal point / thousands separator support can now be
- detected automatically by configure (from the presence of <locale.h>
- and the above members) or explicitly disabled/enabled by the user by
- defining the MPFR_LCONV_DPTS macro to 0 or 1 via CFLAGS (a configure
- switch might be added in the future).
-[tests/tsprintf.c] Do the locale_da_DK test only if MPFR_LCONV_DPTS is
- true.
-------------------------------------------------------------------------
-r8422 | vlefevre | 2012-09-29 23:23:59 +0000 (Sat, 29 Sep 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Note about GNU extensions and ICC.
-------------------------------------------------------------------------
-r8420 | vlefevre | 2012-09-20 10:09:28 +0000 (Thu, 20 Sep 2012) | 3 lines
-Changed paths:
- M /trunk/src/get_float128.c
- M /trunk/src/set_float128.c
-
-[get_float128.c,set_float128.c] Avoid an empty translation unit
-(forbidden by ISO C, detected with gcc -ansi -pedantic-errors)
-when MPFR_WANT_FLOAT128 is not defined.
-------------------------------------------------------------------------
-r8419 | vlefevre | 2012-09-20 09:33:30 +0000 (Thu, 20 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/rndna.c
- M /trunk/tests/trndna.c
-
-Applied patch (with minor changes) by Patrick Pélissier to improve
-the mpfr_round_nearest_away interface.
-------------------------------------------------------------------------
-r8418 | zimmerma | 2012-09-12 07:05:13 +0000 (Wed, 12 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-[nightly-test] modified so that decimal floats are tested (with gcc)
-
-------------------------------------------------------------------------
-r8417 | vlefevre | 2012-09-05 11:21:00 +0000 (Wed, 05 Sep 2012) | 1 line
-Changed paths:
- M /trunk/src/set_d64.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r8416 | vlefevre | 2012-09-05 11:20:03 +0000 (Wed, 05 Sep 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8415 | vlefevre | 2012-09-04 13:19:54 +0000 (Tue, 04 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved error message when the compiler doesn't know
-_Decimal64 (if MPFR is built with --enable-decimal-float).
-------------------------------------------------------------------------
-r8414 | zimmerma | 2012-09-04 13:01:41 +0000 (Tue, 04 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
-
-revert changeset r8412 (_Decimal64 might be defined in C++, but not as a macro)
-
-------------------------------------------------------------------------
-r8413 | zimmerma | 2012-09-04 12:43:47 +0000 (Tue, 04 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
-
-updated documentation wrt --enable-decimal-float
-
-------------------------------------------------------------------------
-r8412 | zimmerma | 2012-09-04 12:36:52 +0000 (Tue, 04 Sep 2012) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
-
-added support for --enable-decimal-float with g++ (does not work with icpc,
- the Intel C++ compiler)
-
-------------------------------------------------------------------------
-r8411 | zimmerma | 2012-09-04 10:14:31 +0000 (Tue, 04 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tl2b.c
-
-[tests/tl2b.c] fix for C++
-
-------------------------------------------------------------------------
-r8410 | vlefevre | 2012-09-04 09:29:20 +0000 (Tue, 04 Sep 2012) | 1 line
-Changed paths:
- M /trunk/src/set_d.c
-
-[src/set_d.c] Updated a comment on the negative zero.
-------------------------------------------------------------------------
-r8409 | vlefevre | 2012-09-04 09:18:21 +0000 (Tue, 04 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] #include "mpfr-intmax.h" so that UINT64_C has a chance
-to be defined (optionally used as of r8406).
-------------------------------------------------------------------------
-r8408 | zimmerma | 2012-09-04 09:15:06 +0000 (Tue, 04 Sep 2012) | 3 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] fix for systems where +0.0 and -0.0 are stored identically in
- memory
-
-------------------------------------------------------------------------
-r8407 | zimmerma | 2012-09-04 09:08:59 +0000 (Tue, 04 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[src/set_d64.c] better code to detect -0.0 (copied from set_d.c)
-
-------------------------------------------------------------------------
-r8406 | zimmerma | 2012-09-04 09:00:56 +0000 (Tue, 04 Sep 2012) | 3 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/tests/tl2b.c
-
-[tests/tl2b.c] use UINT64_C for 64-bit integer constants
-[src/get_str.c] update table generated by "tests/tl2b 1"
-
-------------------------------------------------------------------------
-r8405 | zimmerma | 2012-09-04 07:49:09 +0000 (Tue, 04 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/src/get_d64.c
- M /trunk/src/set_d64.c
-
-[get_d64.c,set_d64.c] small fixes (did not work any more with --with-gmp-build)
-
-------------------------------------------------------------------------
-r8404 | zimmerma | 2012-09-04 07:27:32 +0000 (Tue, 04 Sep 2012) | 3 lines
-Changed paths:
- M /trunk/src/set_d64.c
-
-[set_d64.c] some cleanup, since sprintf adds a final '\0', and fixed a too
- small memory allocation
-
-------------------------------------------------------------------------
-r8403 | zimmerma | 2012-09-03 20:21:56 +0000 (Mon, 03 Sep 2012) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed an item (done)
-
-------------------------------------------------------------------------
-r8402 | zimmerma | 2012-09-03 20:21:12 +0000 (Mon, 03 Sep 2012) | 4 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/get_d64.c
- M /trunk/src/set_d64.c
- M /trunk/tests/tget_set_d64.c
-
-Now --enable-decimal-float does not require any more --with-gmp-build.
-Still disabled by default: some more testing is needed before we can enable
-it by default (if _Decimal64 is supported).
-
-------------------------------------------------------------------------
-r8398 | vlefevre | 2012-08-29 13:47:39 +0000 (Wed, 29 Aug 2012) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Updated bug20120829 comment (bug fixed in r8396).
-------------------------------------------------------------------------
-r8397 | vlefevre | 2012-08-29 13:45:18 +0000 (Wed, 29 Aug 2012) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Fixed small type error.
-------------------------------------------------------------------------
-r8396 | zimmerma | 2012-08-29 13:40:43 +0000 (Wed, 29 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[strtofr.c] new try to fix the assertion failure on 32-bit
-
-------------------------------------------------------------------------
-r8395 | vlefevre | 2012-08-29 13:08:16 +0000 (Wed, 29 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added more bug20120829 tests, showing that r8394 is
-still buggy on 32-bit machines (assertion failure in strtofr.c).
-------------------------------------------------------------------------
-r8394 | zimmerma | 2012-08-29 12:51:19 +0000 (Wed, 29 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[strtofr.c] fix for failing test case introduced in r8392
-
-------------------------------------------------------------------------
-r8393 | vlefevre | 2012-08-29 12:30:44 +0000 (Wed, 29 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Updated a comment: the 2nd testcase of r8392 also
-triggers an assertion failure on 32-bit machines.
-------------------------------------------------------------------------
-r8392 | vlefevre | 2012-08-29 12:27:47 +0000 (Wed, 29 Aug 2012) | 5 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added 2 testcases:
- * One triggering an assertion failure in strtofr.c r8389
- on 32-bit machines (fixed in r8390).
- * One still triggering an assertion failure in strtofr.c (r8391)
- on 64-bit machines.
-------------------------------------------------------------------------
-r8391 | zimmerma | 2012-08-29 10:30:04 +0000 (Wed, 29 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[strtofr.c] fixed comments
-
-------------------------------------------------------------------------
-r8390 | zimmerma | 2012-08-28 20:06:21 +0000 (Tue, 28 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[strtofr.c] fix for err >= GMP_NUMB_BITS
-
-------------------------------------------------------------------------
-r8389 | vlefevre | 2012-08-28 15:13:32 +0000 (Tue, 28 Aug 2012) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Consistency correction: towards → toward.
-------------------------------------------------------------------------
-r8388 | vlefevre | 2012-08-28 15:07:30 +0000 (Tue, 28 Aug 2012) | 1 line
-Changed paths:
- M /trunk/src/sin_cos.c
-
-[src/sin_cos.c] Consistency correction: towards → toward.
-------------------------------------------------------------------------
-r8386 | vlefevre | 2012-08-28 15:04:52 +0000 (Tue, 28 Aug 2012) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r8384 | zimmerma | 2012-08-28 14:20:38 +0000 (Tue, 28 Aug 2012) | 7 lines
-Changed paths:
- M /trunk/src/strtofr.c
-
-[strtofr.c] fixed bug in mpfr_strtofr in case:
- (1) the input string was used entirely
- (2) the conversion was done by a division
- (3) and the division was exact
- In such a case the "reconstruction" of the ternary value was
- inexact.
-
-------------------------------------------------------------------------
-r8379 | vlefevre | 2012-08-16 09:05:27 +0000 (Thu, 16 Aug 2012) | 4 lines
-Changed paths:
- M /trunk/src/get_d64.c
- M /trunk/tests/tget_set_d64.c
-
-[src/get_d64.c] mpfr_get_decimal64 was buggy in MPFR_RNDN on some
- values x such that 0.5e-398 < |x| < 1e-398 (smallest subnormal):
- it was returning 0 instead of +/- 1e-398 (see r8370).
-[tests/tget_set_d64.c] Added testcases.
-------------------------------------------------------------------------
-r8377 | vlefevre | 2012-08-15 23:30:04 +0000 (Wed, 15 Aug 2012) | 3 lines
-Changed paths:
- M /trunk/src/get_d64.c
-
-[src/get_d64.c] Fixed get_decimal64_max by simplifying it completely,
-and changed get_decimal64_min in the same way.
-Thanks to Rob (Sisyphus) for the idea.
-------------------------------------------------------------------------
-r8376 | vlefevre | 2012-08-15 23:22:17 +0000 (Wed, 15 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Added overflow tests (they cover the two bad
-tests fixed in r8372 and trigger a bug in get_decimal64_max).
-------------------------------------------------------------------------
-r8375 | vlefevre | 2012-08-15 22:31:31 +0000 (Wed, 15 Aug 2012) | 1 line
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-[tests/tget_set_d64.c] Added some tests for large numbers.
-------------------------------------------------------------------------
-r8374 | vlefevre | 2012-08-15 22:11:24 +0000 (Wed, 15 Aug 2012) | 2 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/src/add1sp.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/round_p.c
- M /trunk/src/set_d.c
- M /trunk/src/sub1sp.c
- M /trunk/tests/mpfr-test.h
-
-Renamed WANT_ASSERT to MPFR_WANT_ASSERT in order to avoid a clash
-with GMP when MPFR is configured with --with-gmp-build.
-------------------------------------------------------------------------
-r8372 | vlefevre | 2012-08-14 10:35:11 +0000 (Tue, 14 Aug 2012) | 1 line
-Changed paths:
- M /trunk/src/get_d64.c
-
-[src/get_d64.c] Fixed overflow cases.
-------------------------------------------------------------------------
-r8371 | vlefevre | 2012-08-14 01:31:27 +0000 (Tue, 14 Aug 2012) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tests/tstrtofr.c] Added testcase from bug reported by Joseph S. Myers.
-------------------------------------------------------------------------
-r8370 | vlefevre | 2012-08-13 16:17:20 +0000 (Mon, 13 Aug 2012) | 3 lines
-Changed paths:
- M /trunk/src/get_d64.c
-
-[src/get_d64.c] mpfr_get_decimal64 is buggy in MPFR_RNDN for values x
-such that 0.5e-398 < |x| < 1e-398. Added a FIXME comment.
-See: https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00002.html
-------------------------------------------------------------------------
-r8367 | vlefevre | 2012-07-27 10:41:07 +0000 (Fri, 27 Jul 2012) | 8 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/src/fpif.c
-
-[src/fpif.c] No longer assume that if HAVE_BIG_ENDIAN is not defined,
- the architecture is little endian. Detect the case where neither
- HAVE_BIG_ENDIAN nor HAVE_LITTLE_ENDIAN is defined (currently an
- error).
-[configure.ac] Fixed the use of AC_C_BIGENDIAN (since AC_CONFIG_HEADERS
- is not used, one must have an ACTION-IF-UNIVERSAL argument).
-[doc/README.dev] Check with "-UHAVE_BIG_ENDIAN -UHAVE_LITTLE_ENDIAN"
- (unknown/unspecified endianness) before a release.
-------------------------------------------------------------------------
-r8366 | vlefevre | 2012-07-27 09:52:16 +0000 (Fri, 27 Jul 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update now that autogen.sh is in the repository.
-------------------------------------------------------------------------
-r8365 | vlefevre | 2012-07-27 09:41:47 +0000 (Fri, 27 Jul 2012) | 2 lines
-Changed paths:
- A /trunk/autogen.sh
-
-Added autogen.sh sh script from Daniel Richard G. to install/update the
-autotools files and clean up caches (useful before a release).
-------------------------------------------------------------------------
-r8364 | vlefevre | 2012-07-27 09:35:49 +0000 (Fri, 27 Jul 2012) | 31 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/m4/size_max.m4
- M /trunk/tests/Makefile.am
- M /trunk/tune/Makefile.am
-
-Updated autotools files to get rid of obsolete macros (thanks to
-Daniel Richard G. for the patch; kept the autoconf requirement
-to 2.60 instead of changing it to 2.68 as done with autoupdate,
-since 2.60 seems to be sufficient according to the changes and
-2.68 is too recent, e.g. Debian/stable still has 2.67).
---- Note ---
-This update has another effect: The "Configs for Windows DLLs."
-code (from "case $host in" to "esac") is now executed at the right
-time, after options like --disable-static are taken into account.
-Juste before this change, the test
- if test "$enable_shared" = yes; then
-was always false. This could be seen on hydra:
-With r8360:
-[...]
-configure flags: --disable-static --disable-dependency-tracking
- --prefix=/nix/store/95zhbb0v23syxsazx33hg3acbvixyq5a-mpfr-0-3.2.0-dev
-[...]
-checking for DLL/static GMP... static
-[...]
-checking whether to build shared libraries... yes
-checking whether to build static libraries... no
-[...]
-With r8367:
-[...]
-configure flags: --disable-static --disable-dependency-tracking
- --prefix=/nix/store/8zblwffd2ww1z0smqlgwrfzcl6b48rim-mpfr-0-3.2.0-dev
-[...]
-checking whether to build shared libraries... yes
-checking whether to build static libraries... no
-checking for DLL/static GMP... static
-[...]
-------------------------------------------------------------------------
-r8363 | vlefevre | 2012-07-27 09:09:40 +0000 (Fri, 27 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-intmax.h
-
-[src/mpfr-intmax.h] Updated comment formatting so that mpfrlint
-doesn't complain.
-------------------------------------------------------------------------
-r8360 | vlefevre | 2012-07-26 14:09:01 +0000 (Thu, 26 Jul 2012) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Replaced "sed" by "$SED".
-------------------------------------------------------------------------
-r8359 | vlefevre | 2012-07-26 14:08:12 +0000 (Thu, 26 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check for sed.
-------------------------------------------------------------------------
-r8358 | vlefevre | 2012-07-26 13:24:29 +0000 (Thu, 26 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check for grep, egrep and fgrep (see r8356 correction).
-------------------------------------------------------------------------
-r8357 | zimmerma | 2012-07-26 10:19:46 +0000 (Thu, 26 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/tests/tl2b.c
-
-we use a 77-bit approximation in get_str.c (and not 76-bit)
-
-------------------------------------------------------------------------
-r8356 | zimmerma | 2012-07-25 14:18:13 +0000 (Wed, 25 Jul 2012) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] grep -> $EGREP (thanks Marc Glisse)
- https://sympa.inria.fr/sympa/arc/mpfr/2012-07/msg00006.html
-
-------------------------------------------------------------------------
-r8355 | zimmerma | 2012-07-24 15:38:58 +0000 (Tue, 24 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] fix for cross-compilation
-
-------------------------------------------------------------------------
-r8354 | vlefevre | 2012-07-24 12:17:20 +0000 (Tue, 24 Jul 2012) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Improved a message and corrected gmp.h inclusion.
-------------------------------------------------------------------------
-r8353 | zimmerma | 2012-07-24 12:07:44 +0000 (Tue, 24 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] added test for double-to-integer conversion bug
-
-------------------------------------------------------------------------
-r8352 | zimmerma | 2012-07-24 11:51:22 +0000 (Tue, 24 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tinternals.c
-
-revert r8349 (will do the test in configure)
-
-------------------------------------------------------------------------
-r8351 | vlefevre | 2012-07-24 10:48:49 +0000 (Tue, 24 Jul 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-Improved doc/mpfr.texi about MPFR_USE_INTMAX_T.
-------------------------------------------------------------------------
-r8350 | vlefevre | 2012-07-24 10:21:53 +0000 (Tue, 24 Jul 2012) | 8 lines
-Changed paths:
- M /trunk/src/mpfr-intmax.h
-
-[src/mpfr-intmax.h] Define MPFR_USE_INTMAX_T if <inttypes.h> and/or
-<stdint.h> is available. This is needed on systems for which the
-current (non-standard) macro tests in mpfr.h is not sufficient.
-This will force the support of intmax_t/uintmax_t in this case and
-also avoids a failure in the tests on such systems.
-Tested by replacing the macro tests in mpfr.h by just
- #if defined (MPFR_USE_INTMAX_T)
-to simulate such a system.
-------------------------------------------------------------------------
-r8349 | zimmerma | 2012-07-24 06:56:54 +0000 (Tue, 24 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tinternals.c
-
-[tinternals.c] added test for double -> mp_limb_t conversion
-
-------------------------------------------------------------------------
-r8348 | zimmerma | 2012-07-23 09:54:37 +0000 (Mon, 23 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[mpfr.h] patch for FreeBSD (tested on gcc76.fsffrance.org with freebsd-83-amd64)
-
-------------------------------------------------------------------------
-r8346 | vlefevre | 2012-07-10 12:17:38 +0000 (Tue, 10 Jul 2012) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
- A /trunk/tools/announce-text
-
-Added tools/announce-text sh script to be run before publishing an
-announce of a new GNU MPFR release (it does some checking, then it
-outputs the announce text to stdout).
-Mention this script in "doc/README.dev".
-------------------------------------------------------------------------
-r8345 | vlefevre | 2012-07-10 08:54:17 +0000 (Tue, 10 Jul 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release".
-------------------------------------------------------------------------
-r8344 | zimmerma | 2012-07-09 16:04:57 +0000 (Mon, 09 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added item
-
-------------------------------------------------------------------------
-r8340 | vlefevre | 2012-07-06 14:43:44 +0000 (Fri, 06 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tset_d.c
-
-[tests/{tset_d.c,tget_flt.c}] Disabled two tests when HAVE_SIGNEDZ
-isn't defined, because these tests rely on signed zeros.
-------------------------------------------------------------------------
-r8339 | vlefevre | 2012-07-06 14:38:51 +0000 (Fri, 06 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a test for signed zeros (tcc currently doesn't
-support signed zeros, and 2 MPFR tests fail because of that).
-------------------------------------------------------------------------
-r8338 | vlefevre | 2012-07-06 14:26:42 +0000 (Fri, 06 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Removed useless "#include <math.h>" in the test
-for subnormal numbers.
-------------------------------------------------------------------------
-r8337 | vlefevre | 2012-07-06 14:12:15 +0000 (Fri, 06 Jul 2012) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Replaced the AC_TRY_RUN obsolete macro by
-AC_RUN_IFELSE([AC_LANG_SOURCE([[...]])],...) as documented
-in the GNU Autoconf manual.
-Minor correction in the test for subnormal numbers.
-------------------------------------------------------------------------
-r8336 | vlefevre | 2012-07-06 14:09:59 +0000 (Fri, 06 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Added trndna to svn:ignore property.
-------------------------------------------------------------------------
-r8335 | vlefevre | 2012-07-06 13:58:29 +0000 (Fri, 06 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tests/tset_d.c
-
-[tests/tset_d.c] Formatting.
-------------------------------------------------------------------------
-r8334 | vlefevre | 2012-07-06 13:55:47 +0000 (Fri, 06 Jul 2012) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/doc/README.dev
- M /trunk/src/round_raw_generic.c
- M /trunk/src/set_d.c
- M /trunk/tests/tests.c
- M /trunk/tests/tset_d.c
-
-Replaced "denormalized" by the official term "subnormal".
-------------------------------------------------------------------------
-r8333 | vlefevre | 2012-07-05 20:19:07 +0000 (Thu, 05 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] unset MPFR_* environment variables in a better way.
-------------------------------------------------------------------------
-r8332 | vlefevre | 2012-07-05 20:10:00 +0000 (Thu, 05 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] unset MPFR_* environment variables in a better way.
-------------------------------------------------------------------------
-r8331 | zimmerma | 2012-07-05 17:09:55 +0000 (Thu, 05 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tools/coverage
-
-[coverage] unset MPFR_* environment variables to get reproducible results
-
-------------------------------------------------------------------------
-r8329 | zimmerma | 2012-07-05 07:26:39 +0000 (Thu, 05 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tabort_defalloc2.c
-
-[tabort_defalloc2.c] changed char* into void* to please g++ compiler
-
-------------------------------------------------------------------------
-r8326 | vlefevre | 2012-07-04 22:51:33 +0000 (Wed, 04 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tests/trndna.c
-
-[tests/trndna.c] Removed useless initialization.
-------------------------------------------------------------------------
-r8325 | zimmerma | 2012-07-04 17:22:40 +0000 (Wed, 04 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tests/trndna.c
-
-[trndna.c] restore emin
-
-------------------------------------------------------------------------
-r8324 | zimmerma | 2012-07-04 16:18:50 +0000 (Wed, 04 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tools/coverage
-
-[coverage] unset GMP_CHECK_RANDOMIZE so that the coverage test is deterministic
-
-------------------------------------------------------------------------
-r8317 | vlefevre | 2012-07-04 00:36:48 +0000 (Wed, 04 Jul 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Replaced a "should not" by a "must not".
-------------------------------------------------------------------------
-r8316 | vlefevre | 2012-07-04 00:34:35 +0000 (Wed, 04 Jul 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Consistency change.
-------------------------------------------------------------------------
-r8313 | zimmerma | 2012-07-03 19:54:29 +0000 (Tue, 03 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/rndna.c
- M /trunk/src/sin.c
- M /trunk/tests/trndna.c
-
-[trndna.c] increase emin when smallest possible
-
-------------------------------------------------------------------------
-r8312 | zimmerma | 2012-07-03 15:34:39 +0000 (Tue, 03 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/src/rndna.c
- M /trunk/tests/trndna.c
-
-[rndna.c] special treatment for the case 2^(emin-2)
-
-------------------------------------------------------------------------
-r8311 | zimmerma | 2012-07-03 15:03:41 +0000 (Tue, 03 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/rndna.c
-
-several changes suggested by Vincent Lefevre
-
-------------------------------------------------------------------------
-r8310 | zimmerma | 2012-07-03 14:53:06 +0000 (Tue, 03 Jul 2012) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/rndna.c
-
-[rndna.c] changed the specification since on 32-bit machines we have no margin
- for the smallest exponent emin
-
-------------------------------------------------------------------------
-r8308 | zimmerma | 2012-07-03 14:23:09 +0000 (Tue, 03 Jul 2012) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- M /trunk/src/rndna.c
- M /trunk/tests/Makefile.am
- M /trunk/tools/cfarm.sh
-
-added new function mpfr_round_nearest_away() as discussed during the June 2012
-workshop
-
-------------------------------------------------------------------------
-r8305 | vlefevre | 2012-07-03 14:05:18 +0000 (Tue, 03 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] Minor update, just in case...
-------------------------------------------------------------------------
-r8304 | zimmerma | 2012-07-03 13:56:28 +0000 (Tue, 03 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/src/exp.c
-
-[exp.c] fixed typo
-
-------------------------------------------------------------------------
-r8302 | vlefevre | 2012-07-03 13:51:39 +0000 (Tue, 03 Jul 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8299 | vlefevre | 2012-07-03 13:44:02 +0000 (Tue, 03 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/tests/td_div.c
- M /trunk/tests/tget_d.c
-
-[tests/{td_div.c,tget_d.c}] Disable tests with a division by 0 if
-MPFR_ERRDIVZERO is defined.
-------------------------------------------------------------------------
-r8298 | vlefevre | 2012-07-03 13:37:07 +0000 (Tue, 03 Jul 2012) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Improved an error message.
-------------------------------------------------------------------------
-r8297 | vlefevre | 2012-07-03 13:04:25 +0000 (Tue, 03 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Fixed sigaction check to support "gcc -std=c99", like
-what has been done for math/round.
-------------------------------------------------------------------------
-r8296 | zimmerma | 2012-07-02 20:25:36 +0000 (Mon, 02 Jul 2012) | 2 lines
-Changed paths:
- A /trunk/tests/trndna.c
-
-[trndna.c] test file for mpfr_round_nearest_away()
-
-------------------------------------------------------------------------
-r8295 | vlefevre | 2012-07-02 15:08:42 +0000 (Mon, 02 Jul 2012) | 5 lines
-Changed paths:
- M /trunk/src/rndna.c
-
-[src/rndna.c]
- * Handle singular cases like with other functions. Avoid the goto.
- * Reordered the tests to make them simpler and easier to understand
- (it wasn't immediately visible that inex could not be 0 for the
- second "else") and fixed the case lastbit == 1 && inex < 0.
-------------------------------------------------------------------------
-r8294 | vlefevre | 2012-07-02 14:54:30 +0000 (Mon, 02 Jul 2012) | 2 lines
-Changed paths:
- M /trunk/src/rndna.c
-
-[src/rndna.c] Added a note saying that this method doesn't work
-for 2^(emin-2).
-------------------------------------------------------------------------
-r8293 | zimmerma | 2012-06-29 16:10:08 +0000 (Fri, 29 Jun 2012) | 2 lines
-Changed paths:
- A /trunk/src/rndna.c
-
-[rndna.c] new function that computes rounding to nearest-away
-
-------------------------------------------------------------------------
-r8292 | vlefevre | 2012-06-28 17:49:36 +0000 (Thu, 28 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Test the thousands separator in some en_US locale,
-if available (modified patch from Patrick).
-------------------------------------------------------------------------
-r8291 | vlefevre | 2012-06-28 17:33:46 +0000 (Thu, 28 Jun 2012) | 1 line
-Changed paths:
- M /trunk/configure.ac
- A /trunk/src/generic/coverage
- A /trunk/src/generic/coverage/mparam.h
- M /trunk/src/mparam_h.in
- M /trunk/tools/coverage
-
-Added coverage tune (from a patch by Patrick).
-------------------------------------------------------------------------
-r8289 | zimmerma | 2012-06-27 11:17:46 +0000 (Wed, 27 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added support by ERC grant of Andreas
-
-------------------------------------------------------------------------
-r8287 | vlefevre | 2012-06-27 09:13:28 +0000 (Wed, 27 Jun 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Replaced a few @samp by @code for consistency.
-------------------------------------------------------------------------
-r8286 | zimmerma | 2012-06-27 08:59:59 +0000 (Wed, 27 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] document MPFR_WANT_DECIMAL_FLOATS and MPFR_WANT_FLOAT128
-
-------------------------------------------------------------------------
-r8285 | vlefevre | 2012-06-27 08:44:18 +0000 (Wed, 27 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Clean-up and static assertions (patch from Patrick).
-------------------------------------------------------------------------
-r8283 | vlefevre | 2012-06-27 08:35:56 +0000 (Wed, 27 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tgrandom.c
-
-[tests/tgrandom.c] Replaced GMP_RNDN by MPFR_RNDN.
-------------------------------------------------------------------------
-r8280 | vlefevre | 2012-06-27 08:21:10 +0000 (Wed, 27 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tgrandom.c
-
-[tests/tgrandom.c] Improved a test and added a new one for
-mpfr_grandom(x, NULL, ...).
-------------------------------------------------------------------------
-r8279 | vlefevre | 2012-06-27 08:17:57 +0000 (Wed, 27 Jun 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Completed spec of mpfr_grandom.
-------------------------------------------------------------------------
-r8277 | zimmerma | 2012-06-27 08:10:41 +0000 (Wed, 27 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/tools/coverage
-
-[coverage] added instructions how to use this script
-
-------------------------------------------------------------------------
-r8276 | vlefevre | 2012-06-27 08:09:32 +0000 (Wed, 27 Jun 2012) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update: test coverage.
-------------------------------------------------------------------------
-r8275 | vlefevre | 2012-06-27 07:27:28 +0000 (Wed, 27 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] Detailed coverage (from a patch by Patrick).
-------------------------------------------------------------------------
-r8274 | vlefevre | 2012-06-26 23:19:56 +0000 (Tue, 26 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/print_raw.c
-
-[src/{mpfr-impl.h,print_raw.c}] Removed unused function mpfr_dump_mant
-(added in r3410, but never used); patch by Patrick.
-------------------------------------------------------------------------
-r8273 | vlefevre | 2012-06-26 22:43:16 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] Improved coverage.
-------------------------------------------------------------------------
-r8272 | vlefevre | 2012-06-26 22:40:33 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] Test the mpfr_set function too (patch by Patrick).
-------------------------------------------------------------------------
-r8271 | vlefevre | 2012-06-26 22:35:39 +0000 (Tue, 26 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/doc/README.dev
- M /trunk/src/mpfr-impl.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tsqrt.c
- M /trunk/tools/coverage
-
-Added configure option --enable-assert=none to avoid checking any
-assertion (this is based on a patch by Patrick).
-------------------------------------------------------------------------
-r8270 | vlefevre | 2012-06-26 22:27:18 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/digamma.c
-
-[src/digamma.c] Correction: assertions must never have any side effect.
-------------------------------------------------------------------------
-r8269 | vlefevre | 2012-06-26 17:30:18 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests
-
-[tests] Updated svn:ignore property.
-------------------------------------------------------------------------
-r8268 | vlefevre | 2012-06-26 17:26:54 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Removed trailing whitespace.
-------------------------------------------------------------------------
-r8267 | vlefevre | 2012-06-26 17:26:00 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- A /trunk/tests/tabort_defalloc1.c
- A /trunk/tests/tabort_defalloc2.c
- A /trunk/tests/tabort_prec_max.c
- A /trunk/tests/tassert.c
-
-Forgot to add some files in r8266 (tests that are expected to fail).
-------------------------------------------------------------------------
-r8266 | vlefevre | 2012-06-26 17:17:05 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/Makefile.am
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
-
-Support tests that are expected to fail (from a patch by Patrick).
-------------------------------------------------------------------------
-r8265 | vlefevre | 2012-06-26 17:10:52 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Output the applied patches (if any).
-------------------------------------------------------------------------
-r8264 | vlefevre | 2012-06-26 17:06:47 +0000 (Tue, 26 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-[tests/tstckintc.c] Correction and test improvement (from a patch
-by Patrick).
-------------------------------------------------------------------------
-r8263 | vlefevre | 2012-06-26 16:55:15 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] Correction by Patrick.
-------------------------------------------------------------------------
-r8260 | zimmerma | 2012-06-26 16:03:31 +0000 (Tue, 26 Jun 2012) | 3 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[atan.c] improved code coverage by removing some dead code after some numerical
- analysis with Benjamin Dadoun
-
-------------------------------------------------------------------------
-r8258 | vlefevre | 2012-06-26 14:53:46 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Removed obsolete "but see below".
-------------------------------------------------------------------------
-r8253 | vlefevre | 2012-06-26 14:00:59 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tinternals.c
-
-[tests/tinternals.c] mpfr_set_prec_raw missing tests (thanks to Patrick).
-------------------------------------------------------------------------
-r8251 | vlefevre | 2012-06-26 13:56:26 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Also test the mpfr_set_ui function (instead of macro).
-------------------------------------------------------------------------
-r8250 | vlefevre | 2012-06-26 08:47:49 +0000 (Tue, 26 Jun 2012) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] 3.2.0 will be "dinde aux marrons".
-------------------------------------------------------------------------
-r8249 | zimmerma | 2012-06-25 17:48:10 +0000 (Mon, 25 Jun 2012) | 3 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[gamma.c] simplified mpfr_gamma_1_minus_x_exact() after code coverage analysis
- with Benjamin Dadoun
-
-------------------------------------------------------------------------
-r8248 | vlefevre | 2012-06-25 17:44:54 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] aclocal -> acinclude.m4 in a comment.
-------------------------------------------------------------------------
-r8247 | vlefevre | 2012-06-25 17:31:04 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/init2.c
- M /trunk/src/mpfr-impl.h
-
-[src/{init2.c,mpfr-impl.h}] Clean-up.
-------------------------------------------------------------------------
-r8246 | zimmerma | 2012-06-25 17:25:17 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed one item, added one
-
-------------------------------------------------------------------------
-r8245 | vlefevre | 2012-06-25 17:15:04 +0000 (Mon, 25 Jun 2012) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-thread.h
-
-[acinclude.m4] Detect whether _Thread_local (C11) is supported.
-[src/mpfr-thread.h] Use _Thread_local if supported, instead of __thread.
-(Patch from Patrick)
-------------------------------------------------------------------------
-r8244 | zimmerma | 2012-06-25 17:03:27 +0000 (Mon, 25 Jun 2012) | 3 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[gamma.c] simplified code for mpfr_gamma_2_minus_x_exact() (thanks to coverage
- analysis by Benjamin Dadoun)
-
-------------------------------------------------------------------------
-r8243 | vlefevre | 2012-06-25 17:02:37 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Added mpfr-sassert.h to libmpfr_la_SOURCES.
-------------------------------------------------------------------------
-r8242 | vlefevre | 2012-06-25 16:52:37 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/init2.c
-
-[src/init2.c] Replaced classic assertions by static assertions.
-------------------------------------------------------------------------
-r8241 | vlefevre | 2012-06-25 16:50:38 +0000 (Mon, 25 Jun 2012) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-impl.h
- A /trunk/src/mpfr-sassert.h
-
-Added Static Assertion support (modified patch from Patrick).
- * Added src/mpfr-sassert.h: implementation of static assertions.
- * src/mpfr-impl.h: include "mpfr-sassert.h".
- * acinclude.m4: test whether static assertions are supported.
-------------------------------------------------------------------------
-r8240 | vlefevre | 2012-06-25 16:46:30 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Suggest to test with and without -std=c11.
-------------------------------------------------------------------------
-r8239 | vlefevre | 2012-06-25 16:33:57 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr-intmax.h
-
-[src/mpfr-intmax.h] Removed svn:mime-type property for consistency.
-------------------------------------------------------------------------
-r8238 | vlefevre | 2012-06-25 15:47:25 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tset_float128.c
-
-[tests/tset_float128.c] Test the sign of 0. Use mpfr_equal_p instead of
-mpfr_cmp (this is safer if a result is NaN).
-------------------------------------------------------------------------
-r8237 | vlefevre | 2012-06-25 15:39:38 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/set_float128.c
-
-[src/set_float128.c] Avoid a goto (useless here, contrary to set_ld.c).
-------------------------------------------------------------------------
-r8236 | vlefevre | 2012-06-25 15:30:44 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/get_float128.c
-
-[src/get_float128.c] !MPFR_IS_ZERO -> MPFR_NOTZERO; GNU coding style.
-------------------------------------------------------------------------
-r8235 | vlefevre | 2012-06-25 15:17:01 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-------------------------------------------------------------------------
-r8234 | vlefevre | 2012-06-25 15:15:35 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tset_float128.c
-
-[tests/tset_float128.c] Got rid of the remaining mpfr_printf's.
-------------------------------------------------------------------------
-r8233 | zimmerma | 2012-06-25 15:10:04 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tset_float128.c
-
-[tset_float128.c] added missing empty main when functions are not tested
-
-------------------------------------------------------------------------
-r8232 | zimmerma | 2012-06-25 15:05:45 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/src/set_float128.c
- M /trunk/tests/tset_float128.c
-
-[set_float128.c,tset_float128.c] untabified and got rid of mpfr_printf
-
-------------------------------------------------------------------------
-r8231 | vlefevre | 2012-06-25 14:54:28 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added a period.
-------------------------------------------------------------------------
-r8230 | vlefevre | 2012-06-25 14:44:28 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8229 | vlefevre | 2012-06-25 14:35:20 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] "configure --help" formatting for --enable-float128.
-------------------------------------------------------------------------
-r8228 | zimmerma | 2012-06-25 14:33:01 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/get_float128.c
- M /trunk/src/set_float128.c
- M /trunk/tests/tset_float128.c
-
-compile mpfr_set_float128 and mpfr_get_float128 only when __float128 is supported
-
-------------------------------------------------------------------------
-r8227 | zimmerma | 2012-06-25 14:25:48 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] __float128 is supported by GCC >= 4.3
-
-------------------------------------------------------------------------
-r8226 | vlefevre | 2012-06-25 14:25:38 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tset_float128.c
-
-[tests/tset_float128.c] mp_rnd_t -> mpfr_rnd_t
-------------------------------------------------------------------------
-r8225 | zimmerma | 2012-06-25 14:20:29 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/get_float128.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- A /trunk/src/set_float128.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tset_float128.c
-
-added new functions mpfr_set_float128 and mpfr_get_float128
-
-------------------------------------------------------------------------
-r8224 | zimmerma | 2012-06-25 14:17:55 +0000 (Mon, 25 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[get_ld.c] fixed typo
-
-------------------------------------------------------------------------
-r8223 | vlefevre | 2012-06-25 13:52:05 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Test mpfr_buildopt_tune_case() vs MPFR_TUNE_CASE.
-------------------------------------------------------------------------
-r8222 | vlefevre | 2012-06-25 13:51:20 +0000 (Mon, 25 Jun 2012) | 1 line
-Changed paths:
- M /trunk/src/buildopt.c
-
-[src/buildopt.c] Made mpfr_buildopt_tune_case() simpler.
-------------------------------------------------------------------------
-r8221 | zimmerma | 2012-06-22 15:38:14 +0000 (Fri, 22 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/src/li2.c
-
-[li2.c] replaced mpfr_cmp_d by mpfr_cmp_ui_2exp
-
-------------------------------------------------------------------------
-r8219 | vlefevre | 2012-06-21 23:01:37 +0000 (Thu, 21 Jun 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] For _GMP_IEEE_FLOATS, use #if instead of #ifdef
-since mpfr-impl.h defines it to 0 if it was undefined.
-------------------------------------------------------------------------
-r8217 | vlefevre | 2012-05-18 12:07:53 +0000 (Fri, 18 May 2012) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added a reference to a new discussion concerning __float128.
-------------------------------------------------------------------------
-r8213 | schevill | 2012-05-14 14:51:33 +0000 (Mon, 14 May 2012) | 3 lines
-Changed paths:
- M /trunk/tools/metaMPFR/metaMPFR_straightforwardAlgo.mpl
-
-* Other corrections (essentially bad or missing declarations) in metaMPFR.
-
-
-------------------------------------------------------------------------
-r8212 | vlefevre | 2012-05-11 07:59:28 +0000 (Fri, 11 May 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved the description of the mpfr_flags_ functions.
-------------------------------------------------------------------------
-r8211 | schevill | 2012-05-10 16:10:06 +0000 (Thu, 10 May 2012) | 3 lines
-Changed paths:
- M /trunk/tools/metaMPFR/metaMPFR_straightforwardAlgo.mpl
-
-* Corrected small errors.
-
-
-------------------------------------------------------------------------
-r8210 | vlefevre | 2012-05-10 10:46:23 +0000 (Thu, 10 May 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved mpfr_flags_test description, giving an example.
-------------------------------------------------------------------------
-r8209 | vlefevre | 2012-05-10 10:19:11 +0000 (Thu, 10 May 2012) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Define MPFR_FLAGS_ALL from the individual flags
-(MPFR_FLAGS_UNDERFLOW...). Suggestion by Paul Zimmermann.
-Note: the output expression looks OK in assertion failures.
-------------------------------------------------------------------------
-r8208 | vlefevre | 2012-05-10 08:13:51 +0000 (Thu, 10 May 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Correction on mpfr_clear_flags description.
-------------------------------------------------------------------------
-r8206 | vlefevre | 2012-05-09 08:25:17 +0000 (Wed, 09 May 2012) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/exceptions.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/tests/texceptions.c
-
-Added functions that operate on groups of flags: mpfr_flags_clear,
-mpfr_flags_set, mpfr_flags_test, mpfr_flags_save and mpfr_flags_restore.
-(reintegrated flags branch to the trunk: svn merge --reintegrate ...)
-------------------------------------------------------------------------
-r8204 | zimmerma | 2012-05-08 19:06:58 +0000 (Tue, 08 May 2012) | 5 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/tests/Makefile.am
-
-patch from Nitin A Kamble for automake 1.12.
-This patch avoids these issues with automake 1.12:
-| configure.ac:304: error: automatic de-ANSI-fication support has been removed
-| tests/Makefile.am:12: error: automatic de-ANSI-fication support has been removed
-
-------------------------------------------------------------------------
-r8201 | vlefevre | 2012-05-07 18:11:47 +0000 (Mon, 07 May 2012) | 5 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/INSTALL
- M /trunk/doc/mpfr.texi
-
-[AUTHORS,INSTALL,doc/mpfr.texi] Updated the e-mail address of the
-MPFR mailing-list to match the List-* headers written by the new
-mailing-list server (the old one still works, but may lead to bad
-interaction with MUA's that attempt to honor the List-Post header
-when replying to the list(s)).
-------------------------------------------------------------------------
-r8199 | vlefevre | 2012-05-07 15:17:31 +0000 (Mon, 07 May 2012) | 4 lines
-Changed paths:
- M /trunk/src/gamma.c
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Added mpfr_explgamma internal function to handle
- overflows/underflows (intermediate or not) in mpfr_gamma.
- Updated the general overflow detection to use this function.
-[src/gamma.c] Fixed the general underflow detection.
-------------------------------------------------------------------------
-r8198 | vlefevre | 2012-05-07 12:51:34 +0000 (Mon, 07 May 2012) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Removed spurious parentheses.
-------------------------------------------------------------------------
-r8197 | vlefevre | 2012-05-07 12:36:22 +0000 (Mon, 07 May 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added tests for 32-bit and 64-bit machines, showing an
-underflow detection bug in gamma.c (see FIXME comment added in r8185).
-------------------------------------------------------------------------
-r8196 | vlefevre | 2012-05-07 12:23:44 +0000 (Mon, 07 May 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added tests to trigger the pre-r8189 endless loop
-on 32-bit machines.
-------------------------------------------------------------------------
-r8195 | vlefevre | 2012-05-04 15:23:02 +0000 (Fri, 04 May 2012) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Updated exp_lgamma to test the ternary value.
-------------------------------------------------------------------------
-r8194 | vlefevre | 2012-05-04 15:10:06 +0000 (Fri, 04 May 2012) | 1 line
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Fixed the problem with the overflow flag (r8192).
-------------------------------------------------------------------------
-r8193 | vlefevre | 2012-05-04 14:33:58 +0000 (Fri, 04 May 2012) | 6 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-Improved src/lngamma.c (mainly on changes from r8189):
- * Declarations of ok variable were used in nested block.
- * Added a missing "MPFR_ZIV_FREE (loop);".
- * In the overflow detection code, call mpfr_lngamma only once, use
- mpfr_equal_p instead of mpfr_cmp, and share code with the end.
-Note: the problem with the overflow flag (r8192) hasn't been solved yet.
-------------------------------------------------------------------------
-r8192 | vlefevre | 2012-05-04 14:23:46 +0000 (Fri, 04 May 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added a test showing a failure on 64-bit machines
-due to an unset overflow flag.
-------------------------------------------------------------------------
-r8191 | vlefevre | 2012-05-04 14:09:23 +0000 (Fri, 04 May 2012) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Updated exp_lgamma to test underflow & overflow flags.
-------------------------------------------------------------------------
-r8190 | vlefevre | 2012-05-04 13:19:31 +0000 (Fri, 04 May 2012) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] For mpfr_get_flt, etc., exception flags should be raised.
-------------------------------------------------------------------------
-r8189 | zimmerma | 2012-05-04 12:55:57 +0000 (Fri, 04 May 2012) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
- M /trunk/tests/tgamma.c
-
-[src/lngamma.c] fixed endless loop with test cases introduced in r8188
-
-------------------------------------------------------------------------
-r8188 | vlefevre | 2012-05-03 17:34:16 +0000 (Thu, 03 May 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Updated the exp_lgamma_tests test to trigger an
-endless loop due to undetected overflow on 64-bit machines.
-------------------------------------------------------------------------
-r8187 | vlefevre | 2012-05-03 16:20:35 +0000 (Thu, 03 May 2012) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Say that the freeze is for 64-bit machines only.
-------------------------------------------------------------------------
-r8186 | vlefevre | 2012-05-03 16:17:59 +0000 (Thu, 03 May 2012) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added more mpfr_tgamma tests, showing a freeze.
-------------------------------------------------------------------------
-r8185 | vlefevre | 2012-05-03 14:49:46 +0000 (Thu, 03 May 2012) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Corrected the FIXME comment concerning the underflow
-detection.
-------------------------------------------------------------------------
-r8183 | vlefevre | 2012-05-03 14:28:32 +0000 (Thu, 03 May 2012) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Added a FIXME comment: the underflow detection may still
-be buggy (or the explanation is incomplete).
-------------------------------------------------------------------------
-r8182 | vlefevre | 2012-05-03 14:21:57 +0000 (Thu, 03 May 2012) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Completed the explanation concerning the new underflow
-detection.
-------------------------------------------------------------------------
-r8181 | vlefevre | 2012-05-03 14:15:02 +0000 (Thu, 03 May 2012) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Removed the FIXME comment (from r8169).
-------------------------------------------------------------------------
-r8179 | vlefevre | 2012-05-03 13:42:13 +0000 (Thu, 03 May 2012) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Untabified.
-------------------------------------------------------------------------
-r8177 | vlefevre | 2012-05-03 13:23:23 +0000 (Thu, 03 May 2012) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r8175 | vlefevre | 2012-05-03 12:33:24 +0000 (Thu, 03 May 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8174 | zimmerma | 2012-05-03 10:08:19 +0000 (Thu, 03 May 2012) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[gamma.c] tentative fix for the underflow problem
-
-------------------------------------------------------------------------
-r8173 | vlefevre | 2012-05-03 09:39:18 +0000 (Thu, 03 May 2012) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/subnormal.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tatan.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqr.c
- M /trunk/tools/cfarm.sh
-
-Updated URL's of mailing-list archives/messages in all files
-(except ChangeLog, as it is generated).
-------------------------------------------------------------------------
-r8172 | vlefevre | 2012-05-03 09:35:55 +0000 (Thu, 03 May 2012) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Updated URL's of mailing-list archives/messages.
-------------------------------------------------------------------------
-r8170 | vlefevre | 2012-05-02 16:07:13 +0000 (Wed, 02 May 2012) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Updated concerning MPFR_RNDNA.
-------------------------------------------------------------------------
-r8169 | vlefevre | 2012-04-27 14:27:58 +0000 (Fri, 27 Apr 2012) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Added a FIXME comment.
-------------------------------------------------------------------------
-r8168 | vlefevre | 2012-04-27 13:51:49 +0000 (Fri, 27 Apr 2012) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Suggested a new rounding mode: MPFR_RNDE, to be used when the
-result is known to be exact (normal mode: optimize; debug mode: check).
-------------------------------------------------------------------------
-r8167 | vlefevre | 2012-04-27 13:24:54 +0000 (Fri, 27 Apr 2012) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Use the new MPFR_DBGRES macro.
-------------------------------------------------------------------------
-r8164 | vlefevre | 2012-04-27 12:38:03 +0000 (Fri, 27 Apr 2012) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Improved testcase test20100709.
-------------------------------------------------------------------------
-r8162 | vlefevre | 2012-04-27 12:27:09 +0000 (Fri, 27 Apr 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Updated testcase test20100709 for 64-bit machines,
-as this bug reappeared in r8159.
-------------------------------------------------------------------------
-r8159 | zimmerma | 2012-04-26 16:05:56 +0000 (Thu, 26 Apr 2012) | 5 lines
-Changed paths:
- M /trunk/src/gamma.c
- M /trunk/tests/tgamma.c
-
-[src/gamma.c] fixed bug found by Giridhar Tammana
- https://sympa.inria.fr/sympa/arc/mpfr/2012-04/msg00013.html
-Note (VL): this fix triggers an infinite loop on 32-bit machines
- (or with -m32) in test20100709 from tgamma.c and this is partly
- the opposite of changeset r6996.
-------------------------------------------------------------------------
-r8157 | vlefevre | 2012-04-26 11:24:54 +0000 (Thu, 26 Apr 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved the noreturn feature.
-------------------------------------------------------------------------
-r8156 | vlefevre | 2012-04-25 12:48:17 +0000 (Wed, 25 Apr 2012) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/mpfr-impl.h
-
-Added support for _Noreturn function specifier (ISO C11).
- * acinclude.m4: define MPFR_HAVE_NORETURN if _Noreturn is supported.
- * src/mpfr-impl.h: use _Noreturn when MPFR_HAVE_NORETURN is defined.
-Tested with GCC 4.6 (no _Noreturn) and 4.7 (supports _Noreturn).
-------------------------------------------------------------------------
-r8155 | vlefevre | 2012-04-25 11:36:24 +0000 (Wed, 25 Apr 2012) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about the new experimental
--ftrack-macro-expansion GCC option.
-------------------------------------------------------------------------
-r8152 | vlefevre | 2012-04-24 15:36:58 +0000 (Tue, 24 Apr 2012) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Forgot to replace the mpfr_clear_divby0 internal macro
-by MPFR_CLEAR_DIVBY0 in r8141.
-------------------------------------------------------------------------
-r8150 | vlefevre | 2012-04-23 15:00:22 +0000 (Mon, 23 Apr 2012) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment concerning MPFR_INT_CEIL_LOG2 and
-macro expansion.
-------------------------------------------------------------------------
-r8149 | vlefevre | 2012-04-23 14:44:54 +0000 (Mon, 23 Apr 2012) | 2 lines
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Use an intermediate variable to avoid a huge macro expansion
-in ASSERT_FAIL with gcc -ansi -pedantic-errors.
-------------------------------------------------------------------------
-r8147 | vlefevre | 2012-04-23 07:17:40 +0000 (Mon, 23 Apr 2012) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Update after r8141.
-------------------------------------------------------------------------
-r8142 | vlefevre | 2012-04-20 09:24:17 +0000 (Fri, 20 Apr 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved comment about MPFR_CLEAR_* macros.
-------------------------------------------------------------------------
-r8141 | vlefevre | 2012-04-20 09:17:47 +0000 (Fri, 20 Apr 2012) | 4 lines
-Changed paths:
- M /trunk/src/add_d.c
- M /trunk/src/agm.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/div_d.c
- M /trunk/src/exp2.c
- M /trunk/src/exp_2.c
- M /trunk/src/get_f.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/jn.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul_d.c
- M /trunk/src/pow.c
- M /trunk/src/sgn.c
- M /trunk/src/sub_d.c
-
-[src] Replaced the flags-related mpfr_clear_* internal macros by an
-uppercase version with a do-while in order to prevent one from using
-them in an expression. Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG
-for consistency.
-------------------------------------------------------------------------
-r8139 | vlefevre | 2012-04-19 12:13:28 +0000 (Thu, 19 Apr 2012) | 8 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Use a do-while statement for the MPFR_SET_ERANGE()
-macro in order to prevent one from using this macro in an expression,
-as the sequence point rules could be broken if __gmpfr_flags is
-assigned twice in the same expression (via macro expansions).
-Note: This cannot be done for the mpfr_clear_* flags macros because
-we want to be able to follow the API inside MPFR (thus these macros
-must be usable wherever a function is). These macros should probably
-be removed or renamed in the future (e.g. via the flags branch).
-------------------------------------------------------------------------
-r8136 | vlefevre | 2012-04-11 10:38:55 +0000 (Wed, 11 Apr 2012) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Suggest mpfr_pow_q and variants.
-------------------------------------------------------------------------
-r8135 | vlefevre | 2012-03-28 13:23:27 +0000 (Wed, 28 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated "API Compatibility" section: functions
-mpfr_fmodquo, mpfr_fpif_export and mpfr_fpif_import are new in
-MPFR 3.2.
-------------------------------------------------------------------------
-r8133 | vlefevre | 2012-03-27 00:58:57 +0000 (Tue, 27 Mar 2012) | 1 line
-Changed paths:
- M /trunk/tests/tfpif.c
-
-[tests/tfpif.c] Removed trailing whitespace.
-------------------------------------------------------------------------
-r8132 | zimmerma | 2012-03-26 19:08:58 +0000 (Mon, 26 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/tests/tfpif.c
-
-[src/fpif.c,tests/tfpif.c] changed to GNU style
-
-------------------------------------------------------------------------
-r8131 | demengeo | 2012-03-26 16:00:30 +0000 (Mon, 26 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/tests/tfpif.c
-
-Add a test on FILE* in fpif.c; Added a missing test on a return value; Changed the way to compute number of bytes needed for the limb of a mpfr number; Increase coverage test of fpif.c
-------------------------------------------------------------------------
-r8130 | vlefevre | 2012-03-26 14:40:34 +0000 (Mon, 26 Mar 2012) | 5 lines
-Changed paths:
- M /trunk/src/atan2.c
- M /trunk/src/exceptions.c
- M /trunk/src/gmp_op.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/round_near_x.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
-
-[src] New mpfr_flags_t type, defined as an unsigned int. For the
- __gmpfr_flags variable and internal flags-related variables,
- replaced unsigned int by mpfr_flags_t (note that this doesn't
- change the ABI, since unsigned int was already used).
-[tests] Cast __gmpfr_flags to unsigned int when printed with %u.
-------------------------------------------------------------------------
-r8129 | zimmerma | 2012-03-26 14:11:26 +0000 (Mon, 26 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/rem1.c
- M /trunk/tests/tremquo.c
- M /trunk/tools/cfarm.sh
-
-added new function mpfr_fmodquo
-(cf https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00020.html)
-
-------------------------------------------------------------------------
-r8128 | vlefevre | 2012-03-26 12:30:31 +0000 (Mon, 26 Mar 2012) | 1 line
-Changed paths:
- M /trunk/examples/version.c
-
-[src/mpfr-examples/version.c] Output sizeof(mpfr_t) value.
-------------------------------------------------------------------------
-r8126 | vlefevre | 2012-03-26 12:12:51 +0000 (Mon, 26 Mar 2012) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Improved src_fopen() a bit.
-------------------------------------------------------------------------
-r8125 | vlefevre | 2012-03-26 10:58:49 +0000 (Mon, 26 Mar 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Explain the use of the new MPFR_DBGRES macro.
-------------------------------------------------------------------------
-r8124 | vlefevre | 2012-03-26 10:52:58 +0000 (Mon, 26 Mar 2012) | 4 lines
-Changed paths:
- M /trunk/src/const_euler.c
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a MPFR_DBGRES macro to avoid a warning in
-non-debug mode, e.g. with GCC's -Wunused-but-set-variable, when a
-result is tested only in an MPFR_ASSERTD expression.
-[src/const_euler.c] Avoid such a warning by using MPFR_DBGRES.
-------------------------------------------------------------------------
-r8123 | vlefevre | 2012-03-26 09:19:12 +0000 (Mon, 26 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/src/get_ld.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/tools/mpfrlint
-
-MPFR_ASSERTD or MPFR_ASSERTN must be used for assertions, not ASSERT.
-------------------------------------------------------------------------
-r8122 | zimmerma | 2012-03-20 13:53:33 +0000 (Tue, 20 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/tests.c
-
-[tests/tests.c] fixed problem with src_fopen
- (https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00021.html)
-
-------------------------------------------------------------------------
-r8121 | zimmerma | 2012-03-20 13:41:06 +0000 (Tue, 20 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] inp_str.data -> inp_str.dat
-
-------------------------------------------------------------------------
-r8120 | zimmerma | 2012-03-20 13:28:49 +0000 (Tue, 20 Mar 2012) | 4 lines
-Changed paths:
- A /trunk/tests/inp_str.dat (from /trunk/tests/inp_str.data:8119)
- D /trunk/tests/inp_str.data
- M /trunk/tests/tfpif.c
- M /trunk/tests/tinp_str.c
-
-renamed tests/inp_str.data into tests/inp_str.dat
-[tests/tinp_str.c] now use tests/inp_str.dat
-[tests/tfpif.c] use src_fopen instead of fopen
-
-------------------------------------------------------------------------
-r8119 | zimmerma | 2012-03-20 08:39:39 +0000 (Tue, 20 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] simplified &x[i] into x+i
-
-------------------------------------------------------------------------
-r8118 | zimmerma | 2012-03-20 08:13:52 +0000 (Tue, 20 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/src/mparam_h.in
- M /trunk/tools/cfarm.sh
-
-[src/mparam_h.in] better recognition of AMD64 systems
-[tools/cfarm.sh] updated
-
-------------------------------------------------------------------------
-r8117 | zimmerma | 2012-03-20 07:39:40 +0000 (Tue, 20 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests.c] fixed compiler warning (gcc70.fsffrance.org, NetBSD, gcc 4.1.3)
-
-------------------------------------------------------------------------
-r8116 | zimmerma | 2012-03-19 17:06:41 +0000 (Mon, 19 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[fpif.c] simplified code since nb_data is always 1
-
-------------------------------------------------------------------------
-r8115 | zimmerma | 2012-03-19 16:03:55 +0000 (Mon, 19 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[mparam_h.in] recognize __tune_amdfam10__ (for example gcc10.fsffrance.org)
-
-------------------------------------------------------------------------
-r8114 | zimmerma | 2012-03-19 15:33:33 +0000 (Mon, 19 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-[configure.ac] use AC_C_BIGENDIAN to determine endianness of words
-
-------------------------------------------------------------------------
-r8113 | zimmerma | 2012-03-19 15:27:43 +0000 (Mon, 19 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] the name of the test file for the export/import functions has changed
-
-------------------------------------------------------------------------
-r8112 | vlefevre | 2012-03-19 15:22:46 +0000 (Mon, 19 Mar 2012) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-------------------------------------------------------------------------
-r8111 | vlefevre | 2012-03-19 15:20:34 +0000 (Mon, 19 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Indentation.
-------------------------------------------------------------------------
-r8110 | zimmerma | 2012-03-19 15:14:58 +0000 (Mon, 19 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/fpif.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tfpif.c
-
-changed the order of arguments of mpfr_fpif_import so that the modified
-argument is first
-
-------------------------------------------------------------------------
-r8109 | zimmerma | 2012-03-19 15:02:04 +0000 (Mon, 19 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] updated item about the new mpfr_fpif_export and mpfr_fpif_import functions
-
-------------------------------------------------------------------------
-r8108 | zimmerma | 2012-03-19 15:00:10 +0000 (Mon, 19 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/fpif.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tfpif.c
-
-mpfr_fpif_export_binary -> mpfr_fpif_export
-mpfr_fpif_import_binary -> mpfr_fpif_import
-
-------------------------------------------------------------------------
-r8107 | zimmerma | 2012-03-19 14:50:31 +0000 (Mon, 19 Mar 2012) | 3 lines
-Changed paths:
- A /trunk/tests/mpfrtest.dat (from /trunk/tests/stream.data:8106)
- D /trunk/tests/stream.data
- M /trunk/tests/tfpif.c
-
-stream.data renamed to mpfrtest.dat
-[tfpif.c] now use remove()
-
-------------------------------------------------------------------------
-r8106 | vlefevre | 2012-03-19 14:13:32 +0000 (Mon, 19 Mar 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] "in future version" → "in future versions".
-------------------------------------------------------------------------
-r8105 | vlefevre | 2012-03-19 14:10:58 +0000 (Mon, 19 Mar 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r8104 | vlefevre | 2012-03-19 14:08:21 +0000 (Mon, 19 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/tests/tfpif.c
-
-[src/fpif.c,tests/tfpif.c] Corrected coding style.
-------------------------------------------------------------------------
-r8103 | zimmerma | 2012-03-17 06:53:15 +0000 (Sat, 17 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[src/fpif.c] fixed a few warnings and errors with g++ (found on hydra)
-
-------------------------------------------------------------------------
-r8102 | zimmerma | 2012-03-16 21:18:56 +0000 (Fri, 16 Mar 2012) | 2 lines
-Changed paths:
- D /trunk/src/out_raw.c
-
-[out_raw.c] removed obsolete file (replaced by fpif.c)
-
-------------------------------------------------------------------------
-r8101 | zimmerma | 2012-03-16 21:15:20 +0000 (Fri, 16 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] put tfpif at its right place
-
-------------------------------------------------------------------------
-r8100 | zimmerma | 2012-03-16 21:07:50 +0000 (Fri, 16 Mar 2012) | 6 lines
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/stream.data
- M /trunk/tests/tfpif.c
-
-[src/fpif.c] fixed problem with sign on gcc38
-[tests/tfpif.c] solved FIXME's, added new test with fixed data file
-[tests/stream.data] data file for tfpif.c (to check we get same results with
- different word size and endianness)
-[tests/Makefile.am] added stream.data to make dist
-
-------------------------------------------------------------------------
-r8099 | zimmerma | 2012-03-16 20:14:28 +0000 (Fri, 16 Mar 2012) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/fpif.c
- M /trunk/tests/tfpif.c
-
-[fpif.c] added comments
-[tfpif.c] improve error message in case of mismatch
-[acinclude.m4] forgot double-double big endian
-
-------------------------------------------------------------------------
-r8098 | zimmerma | 2012-03-16 17:30:21 +0000 (Fri, 16 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added note saying that mpfr_fpif_export_binary and
- mpfr_fpif_import_binary are experimental
-
-------------------------------------------------------------------------
-r8097 | zimmerma | 2012-03-16 17:25:34 +0000 (Fri, 16 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added documentation for mpfr_fpif_export_binary and mpfr_fpif_import_binary
-
-------------------------------------------------------------------------
-r8096 | zimmerma | 2012-03-16 16:50:23 +0000 (Fri, 16 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/fpif.c
-
-[fpif.c] replaced sizeof(var) by sizeof(type)
-
-------------------------------------------------------------------------
-r8095 | zimmerma | 2012-03-15 20:58:22 +0000 (Thu, 15 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/fpif.c
-
-[fpif.c] fixed a few issues
-
-------------------------------------------------------------------------
-r8094 | zimmerma | 2012-03-15 18:40:39 +0000 (Thu, 15 Mar 2012) | 4 lines
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tfpif.c
-
-[src/fpif.c,src/mpfr.h,tests/tfpif.c] a few fixes so that make and make check
- pass on one machine. Will fix the
- remaining issues later.
-
-------------------------------------------------------------------------
-r8093 | vlefevre | 2012-03-15 16:00:47 +0000 (Thu, 15 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/fpif.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tfpif.c
-
-Added FIXME for export/import MPFR numbers, did some corrections,
-updated NEWS file.
-------------------------------------------------------------------------
-r8092 | vlefevre | 2012-03-15 15:51:01 +0000 (Thu, 15 Mar 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Update about C headers.
-------------------------------------------------------------------------
-r8091 | demengeo | 2012-03-15 13:43:20 +0000 (Thu, 15 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/fpif.c
- M /trunk/tests/tfpif.c
-
-Add copyright material in fpif.c and test_fpif.c
-------------------------------------------------------------------------
-r8090 | demengeo | 2012-03-15 09:49:17 +0000 (Thu, 15 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
- A /trunk/src/fpif.c
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/tfpif.c
-
-Add functions/tests to export/import mpfr number in a binary format
-------------------------------------------------------------------------
-r8089 | vlefevre | 2012-03-13 09:44:51 +0000 (Tue, 13 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/check.c
- M /trunk/tests/tcheck.c
-
-Improved mpfr_check and added a missing testcase.
-------------------------------------------------------------------------
-r8085 | vlefevre | 2012-03-09 14:04:39 +0000 (Fri, 09 Mar 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Corrected information about valgrind.
-------------------------------------------------------------------------
-r8083 | vlefevre | 2012-03-09 11:59:39 +0000 (Fri, 09 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Updated a comment.
-------------------------------------------------------------------------
-r8082 | vlefevre | 2012-03-09 11:40:09 +0000 (Fri, 09 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved macros from the changeset r8025, in
-particular to avoid an error with the --enable-assert configure
-option and the -ansi -pedantic-errors gcc compiler flags.
-------------------------------------------------------------------------
-r8079 | vlefevre | 2012-03-08 13:54:43 +0000 (Thu, 08 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1 again,
-and improved it in case _MPFR_PREC_FORMAT == 2, where MPFR_PREC_MAX is
-INT_MAX minus some small constant (see r8035).
-------------------------------------------------------------------------
-r8078 | vlefevre | 2012-03-08 13:01:07 +0000 (Thu, 08 Mar 2012) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1.
-------------------------------------------------------------------------
-r8077 | vlefevre | 2012-03-08 12:22:04 +0000 (Thu, 08 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tinits.c
-
-[tests/tinits.c] Improved the large precision test so that it is still
-performed after r8035 (where MPFR_PREC_MAX has been decreased).
-------------------------------------------------------------------------
-r8076 | vlefevre | 2012-03-08 09:12:38 +0000 (Thu, 08 Mar 2012) | 1 line
-Changed paths:
- M /trunk/tests/tconst_log2.c
-
-[tests/tconst_log2.c] Replaced mpfr_printf by mpfr_out_str.
-------------------------------------------------------------------------
-r8075 | zimmerma | 2012-03-08 08:17:48 +0000 (Thu, 08 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_log2.c
-
-[tconst_log2.c] use hexadecimal output in case of error in check_large()
-
-------------------------------------------------------------------------
-r8074 | zimmerma | 2012-03-08 08:11:59 +0000 (Thu, 08 Mar 2012) | 4 lines
-Changed paths:
- M /trunk/src/get_ld.c
- M /trunk/tests/tset_ld.c
-
-[get_ld.c] added comments and ASSERT()
-[tset_ld.c] added test to better exercise get_ld and set_ld for subnormals,
- and replaced some 64 by MPFR_LDBL_MANT_DIG
-
-------------------------------------------------------------------------
-r8073 | zimmerma | 2012-03-07 20:28:43 +0000 (Wed, 07 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/tests/tconst_log2.c
-
-[tconst_log2.c] improved error message, cf
- https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00017.html
-
-------------------------------------------------------------------------
-r8072 | zimmerma | 2012-03-07 18:22:41 +0000 (Wed, 07 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/get_ld.c
-
-[get_ld.c] deal with the case "long double" == "double"
-
-------------------------------------------------------------------------
-r8071 | zimmerma | 2012-03-07 18:15:21 +0000 (Wed, 07 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/set_ld.c
-
-[acinclude.m4] deal with long double == double
-[src/set_ld.c] idem
-
-------------------------------------------------------------------------
-r8070 | vlefevre | 2012-03-07 15:15:09 +0000 (Wed, 07 Mar 2012) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Prepare for new version 3.2.0 (will be 4.0.0).
-------------------------------------------------------------------------
-r8068 | vlefevre | 2012-03-07 13:06:40 +0000 (Wed, 07 Mar 2012) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added information about --with-sysroot.
-------------------------------------------------------------------------
-r8067 | vlefevre | 2012-03-07 12:41:49 +0000 (Wed, 07 Mar 2012) | 3 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Removed an obsolete paragraph saying that the test suite
-can't be run with a C++ compiler. C++ related problems have been
-fixed a long time ago.
-------------------------------------------------------------------------
-r8066 | zimmerma | 2012-03-06 12:51:17 +0000 (Tue, 06 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added new item about saving/restoring flags
-
-------------------------------------------------------------------------
-r8065 | zimmerma | 2012-03-06 11:31:55 +0000 (Tue, 06 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
- A /trunk/src/mips
- A /trunk/src/mips/mparam.h
- M /trunk/src/mparam_h.in
-
-added tuning parameters for mips (on gcc49.fsffrance.org)
-
-------------------------------------------------------------------------
-r8064 | zimmerma | 2012-03-05 17:51:58 +0000 (Mon, 05 Mar 2012) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] fixed compiler warning (got on gcc49.fsffrance.org)
-
-------------------------------------------------------------------------
-r8063 | vlefevre | 2012-03-05 01:40:49 +0000 (Mon, 05 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Minor change to be consistent with "src/mpfr-gmp.h".
-------------------------------------------------------------------------
-r8062 | vlefevre | 2012-03-05 01:09:52 +0000 (Mon, 05 Mar 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added a reference to MPFR bug 13947.
-------------------------------------------------------------------------
-r8061 | vlefevre | 2012-03-05 01:00:50 +0000 (Mon, 05 Mar 2012) | 4 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Simple temporary fix following GMP's internal __gmp_const
-macro removal in <http://gmplib.org:8000/gmp/rev/d287cfaf6732> (and its
-replacement by const): if __gmp_const isn't define, let's define it to
-const.
-------------------------------------------------------------------------
-r8058 | vlefevre | 2012-03-03 02:59:36 +0000 (Sat, 03 Mar 2012) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention the mpfr_exp bug fix (from r6964 in exp_2.c).
-------------------------------------------------------------------------
-r8056 | vlefevre | 2012-02-27 12:09:25 +0000 (Mon, 27 Feb 2012) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] If 'gmp.h' and 'libgmp' seem to have different versions,
-output the temporary LD_RUN_PATH value (may be useful for debugging).
-------------------------------------------------------------------------
-r8054 | vlefevre | 2012-02-24 16:13:48 +0000 (Fri, 24 Feb 2012) | 3 lines
-Changed paths:
- M /trunk/tests/memory.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
-
-[tests] Removed #include of headers already included via "mpfr-test.h"
-(<limits.h>, <stdio.h>, <stdlib.h>). Note: this change doesn't apply
-to tvalist.c, which is a special test that doesn't use "mpfr-test.h".
-------------------------------------------------------------------------
-r8053 | vlefevre | 2012-02-24 15:50:55 +0000 (Fri, 24 Feb 2012) | 2 lines
-Changed paths:
- M /trunk/src/abort_prec_max.c
- M /trunk/src/get_d64.c
- M /trunk/src/logging.c
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/rec_sqrt.c
- M /trunk/src/strtofr.c
-
-[src] #include <stdlib.h> unconditionally in mpfr-impl.h; removed
-this #include from the .c files.
-------------------------------------------------------------------------
-r8052 | vlefevre | 2012-02-24 15:32:50 +0000 (Fri, 24 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/logging.c
-
-[src/logging.c] #include <stdarg.h> was no longer necessary. Removed.
-------------------------------------------------------------------------
-r8051 | vlefevre | 2012-02-24 15:27:26 +0000 (Fri, 24 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/logging.c
-
-[src/logging.c] Updated a comment (contained obsolete information).
-------------------------------------------------------------------------
-r8048 | vlefevre | 2012-02-24 13:44:05 +0000 (Fri, 24 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Use %.*Rg instead of %.*Rf for MPFR_LOG_VAR.
-------------------------------------------------------------------------
-r8044 | vlefevre | 2012-02-24 12:21:18 +0000 (Fri, 24 Feb 2012) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Mention an internal change in MPFR 3.1.0.
-------------------------------------------------------------------------
-r8043 | vlefevre | 2012-02-24 11:59:09 +0000 (Fri, 24 Feb 2012) | 5 lines
-Changed paths:
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/mul_d.c
-
-Corrected a typo in MPFR_LOG_FUNC of add_d.c, add_ui.c and mul_d.c
-(mpfr_get_prec → mpfr_log_prec), fixing bug 13933.
-The consequence was random freezes (on the same binary) with dynamic
-linking (and just more memory with static linking to the MPFR library)
-when logging was used.
-------------------------------------------------------------------------
-r8042 | vlefevre | 2012-02-24 09:41:09 +0000 (Fri, 24 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/const_euler.c
-
-[src/const_euler.c] Use the safer MPFR_BLOCK.
-------------------------------------------------------------------------
-r8041 | vlefevre | 2012-02-23 16:24:17 +0000 (Thu, 23 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/const_euler.c
-
-[src/const_euler.c] Removed a useless log message added in r8040.
-------------------------------------------------------------------------
-r8040 | vlefevre | 2012-02-23 16:08:23 +0000 (Thu, 23 Feb 2012) | 4 lines
-Changed paths:
- M /trunk/src/const_euler.c
- M /trunk/src/mpfr-impl.h
-
-[src/const_euler.c] Replaced computations on double by computations
- on MPFR types, with detection of overflows. Fixed inconsistencies
- with algorithms.tex (due to rounding) in the computation of n.
-[src/mpfr-impl.h] Removed #define ALPHA (no longer used).
-------------------------------------------------------------------------
-r8039 | vlefevre | 2012-02-23 14:09:05 +0000 (Thu, 23 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Removed obsolete #define EXPM1.
-------------------------------------------------------------------------
-r8038 | vlefevre | 2012-02-23 14:05:12 +0000 (Thu, 23 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/erf.c
-
-[src/erf.c] Removed an obsolete #define.
-------------------------------------------------------------------------
-r8037 | vlefevre | 2012-02-23 13:57:16 +0000 (Thu, 23 Feb 2012) | 1 line
-Changed paths:
- M /trunk/BUGS
-
-[BUGS] Update concerning huge precisions and integer overflows.
-------------------------------------------------------------------------
-r8036 | vlefevre | 2012-02-23 13:52:04 +0000 (Thu, 23 Feb 2012) | 2 lines
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c] Output mpfr_prec_t information with all MPFR
-versions. Output signedness information for MPFR types/macros.
-------------------------------------------------------------------------
-r8035 | vlefevre | 2012-02-23 13:27:25 +0000 (Thu, 23 Feb 2012) | 8 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Decrease the MPFR_PREC_MAX value by 256 in order to
- avoid some integer overflows in existing code that increases the
- working precision (if mpfr_prec_t is on 64 bits, this does not
- change anything in practice), as too large precisions should be
- detected via assertions for more security. After discussion, it
- has been decided to keep the MPFR_PREC_MAX value close to 2^31
- when mpfr_prec_t is on 32 bits.
-[src/mpfr-impl.h] Added a comment concerning MPFR_ADD_PREC.
-------------------------------------------------------------------------
-r8034 | vlefevre | 2012-02-23 12:34:22 +0000 (Thu, 23 Feb 2012) | 2 lines
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c] Output more information about the precision and
-exponent types.
-------------------------------------------------------------------------
-r8033 | vlefevre | 2012-02-22 17:49:03 +0000 (Wed, 22 Feb 2012) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Use MPFR_ADD_PREC in MPFR_ZIV_NEXT.
-------------------------------------------------------------------------
-r8032 | vlefevre | 2012-02-22 17:39:48 +0000 (Wed, 22 Feb 2012) | 5 lines
-Changed paths:
- M /trunk/src/ai.c
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added an MPFR_ADD_PREC macro to safely increase some
- precision (i.e. with an assertion check for integer overflow).
-[src/ai.c] Use this MPFR_ADD_PREC macro, in particular in a case where
- the additional precision can be huge.
-TODO: Other files would need to use MPFR_ADD_PREC.
-------------------------------------------------------------------------
-r8031 | vlefevre | 2012-02-22 12:32:52 +0000 (Wed, 22 Feb 2012) | 4 lines
-Changed paths:
- M /trunk/tests/tinits.c
-
-[tests/tinits.c] Updated the large precision test to trigger a bug fixed
-in r8025 on 32-bit machines (or when MPFR is built with -m32). Here the
-crash was due to (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS in
-"src/set.c".
-------------------------------------------------------------------------
-r8030 | vlefevre | 2012-02-22 11:40:57 +0000 (Wed, 22 Feb 2012) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Removed useless #include (mpfr-impl.h does a better job
-for stdio).
-------------------------------------------------------------------------
-r8029 | vlefevre | 2012-02-22 11:33:24 +0000 (Wed, 22 Feb 2012) | 1 line
-Changed paths:
- M /trunk/tests/tinits.c
-
-[tests/tinits.c] Improved r8026 (missing #include, support 16-bit prec).
-------------------------------------------------------------------------
-r8028 | vlefevre | 2012-02-22 10:39:10 +0000 (Wed, 22 Feb 2012) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/tests.c
-
-Document the MPFR_DEBUG_BADCASES environment variable before bad_cases()
-in tests/tests.c (where it is used). Remove it from "doc/README.dev"
-since it is useful only in case of crash / infinite loop in bad_cases(),
-and will give useless output otherwise.
-------------------------------------------------------------------------
-r8027 | zimmerma | 2012-02-22 10:23:13 +0000 (Wed, 22 Feb 2012) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/doc/README.dev
-
-[TODO] added comment
-[doc/README.dev] added environment variables
-
-------------------------------------------------------------------------
-r8026 | zimmerma | 2012-02-22 10:18:08 +0000 (Wed, 22 Feb 2012) | 2 lines
-Changed paths:
- M /trunk/tests/tinits.c
-
-[tinits.c] added test to check #13918 is fixed
-
-------------------------------------------------------------------------
-r8025 | vlefevre | 2012-02-22 03:53:19 +0000 (Wed, 22 Feb 2012) | 4 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/agm.c
- M /trunk/src/eq.c
- M /trunk/src/exp.c
- M /trunk/src/get_d.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_str.c
- M /trunk/src/init2.c
- M /trunk/src/lngamma.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/pow.c
- M /trunk/src/print_raw.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/set.c
- M /trunk/src/set_f.c
- M /trunk/src/set_prec.c
- M /trunk/src/setmax.c
- M /trunk/src/sqr.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub1sp.c
- M /trunk/src/urandomb.c
-
-Avoid potential integer overflows and improve consistency. This should
-fix bug #13918 "Segfault with precision = MPFR_PREC_MAX on 32-bit".
-Note: this problem appeared in MPFR 3.0.0 when the precision type (now
-mpfr_prec_t) was changed to a signed integer.
-------------------------------------------------------------------------
-r8024 | vlefevre | 2012-02-22 02:54:37 +0000 (Wed, 22 Feb 2012) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added a comment mentioning a problem with GNU gold ld.
-------------------------------------------------------------------------
-r8020 | vlefevre | 2012-02-15 23:01:30 +0000 (Wed, 15 Feb 2012) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added reference to ISO/IEC 24747:2009 (C, special functions).
-------------------------------------------------------------------------
-r8016 | zimmerma | 2012-01-27 06:48:06 +0000 (Fri, 27 Jan 2012) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
- D /trunk/src/x86_64/xeon
-
-removed directory src/x86_64/xeon
-[src/Makefile.am] removed x86_64/xeon/mparam.h
-
-------------------------------------------------------------------------
-r8015 | zimmerma | 2012-01-25 14:43:01 +0000 (Wed, 25 Jan 2012) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
- M /trunk/src/x86_64/core2/mparam.h
-
-share parameters between x86_64/core2 and x86_64/xeon (gcc70)
-
-------------------------------------------------------------------------
-r8014 | zimmerma | 2012-01-25 09:34:40 +0000 (Wed, 25 Jan 2012) | 2 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] forgot to add new param file
-
-------------------------------------------------------------------------
-r8013 | zimmerma | 2012-01-25 09:29:19 +0000 (Wed, 25 Jan 2012) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
- A /trunk/src/x86_64/xeon
- A /trunk/src/x86_64/xeon/mparam.h
-
-added tuning parameters for -mtune=nocona (gcc70)
-
-------------------------------------------------------------------------
-r8010 | zimmerma | 2012-01-20 07:55:29 +0000 (Fri, 20 Jan 2012) | 3 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[mparam_h.in] swap tests for 32-bit and 64-bit powerpc, since on powerpc64
- the parameters for 32-bit are used!
-
-------------------------------------------------------------------------
-r8004 | vlefevre | 2012-01-15 00:21:46 +0000 (Sun, 15 Jan 2012) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release".
-------------------------------------------------------------------------
-r8000 | vlefevre | 2012-01-10 13:43:29 +0000 (Tue, 10 Jan 2012) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added a note to item about sNaN/qNaN.
-------------------------------------------------------------------------
-r7998 | vlefevre | 2012-01-10 12:51:16 +0000 (Tue, 10 Jan 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7996 | vlefevre | 2012-01-10 12:49:16 +0000 (Tue, 10 Jan 2012) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Mention the AriC project-team.
-------------------------------------------------------------------------
-r7994 | vlefevre | 2012-01-10 12:44:24 +0000 (Tue, 10 Jan 2012) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-Reverted incorrect change in ChangeLog from r7993.
-------------------------------------------------------------------------
-r7993 | vlefevre | 2012-01-10 12:41:58 +0000 (Tue, 10 Jan 2012) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/ChangeLog
- M /trunk/INSTALL
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/modf.c
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_raw.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/get_patches.sh
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Changed Arenaire to AriC with:
- perl -pi -e 's/Contributed by the Arenaire/Contributed by the AriC/' **/*(^/)
-under zsh.
-------------------------------------------------------------------------
-r7991 | vlefevre | 2012-01-10 12:25:30 +0000 (Tue, 10 Jan 2012) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r7990 | vlefevre | 2012-01-10 12:24:56 +0000 (Tue, 10 Jan 2012) | 1 line
-Changed paths:
- M /trunk/doc/faq.xsl
-
-[doc/faq.xsl] Remove only the top-level comments from the HTML file.
-------------------------------------------------------------------------
-r7989 | vlefevre | 2012-01-10 12:20:49 +0000 (Tue, 10 Jan 2012) | 1 line
-Changed paths:
- M /trunk/doc/faq.xsl
-
-[doc/faq.xsl] Updated a comment.
-------------------------------------------------------------------------
-r7986 | vlefevre | 2012-01-10 11:46:34 +0000 (Tue, 10 Jan 2012) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/README.dev
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/frexp.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/grandom.c
- M /trunk/src/hppa/mparam.h
- M /trunk/src/hypot.c
- M /trunk/src/ia64/mparam.h
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-intmax.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_raw.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/corei5/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tgrandom.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tvalist.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/ck-copyright-notice
- M /trunk/tools/ck-mparam
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2012 with
- perl -pi -e 's/2011 Free Software/2011, 2012 Free Software/' **/*(^/)
-under zsh, reverting the ChangeLog file (the m4 and tools/mbench
-directories were not modified).
-Removed 2011 from the example in the doc/README.dev file.
-------------------------------------------------------------------------
-r7979 | zimmerma | 2011-12-09 12:17:34 +0000 (Fri, 09 Dec 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] trivial change (to test the commit logs)
-
-------------------------------------------------------------------------
-r7978 | vlefevre | 2011-12-09 11:50:07 +0000 (Fri, 09 Dec 2011) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Mention --disable-thread-safe.
-------------------------------------------------------------------------
-r7977 | vlefevre | 2011-12-09 11:38:56 +0000 (Fri, 09 Dec 2011) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added information about system/compiler bugs related to TLS
-or optimizations.
-------------------------------------------------------------------------
-r7976 | zimmerma | 2011-12-09 10:57:12 +0000 (Fri, 09 Dec 2011) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added note about buggy TLS support
-
-------------------------------------------------------------------------
-r7971 | vlefevre | 2011-11-28 12:19:33 +0000 (Mon, 28 Nov 2011) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Removed an obsolete comment.
-------------------------------------------------------------------------
-r7970 | vlefevre | 2011-11-28 11:43:39 +0000 (Mon, 28 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Updated the TODO comment about the rand state.
-------------------------------------------------------------------------
-r7967 | vlefevre | 2011-11-28 11:22:21 +0000 (Mon, 28 Nov 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7966 | vlefevre | 2011-11-28 10:10:09 +0000 (Mon, 28 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
- M /trunk/tests/turandom.c
-
-[tests/trandom.c,tests/turandom.c] Fixed compatibility with GMP 4.1.x
-(since the default PRNG has changed between GMP 4.1 and 4.2).
-------------------------------------------------------------------------
-r7965 | vlefevre | 2011-11-28 09:45:47 +0000 (Mon, 28 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Mentioned the difference between GMP 4.1 and 4.2 about
-the changes of mpfr_urandom and mpfr_urandomb in MPFR 3.1.
-------------------------------------------------------------------------
-r7964 | vlefevre | 2011-11-28 09:41:09 +0000 (Mon, 28 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Added a TODO comment.
-------------------------------------------------------------------------
-r7962 | zimmerma | 2011-11-24 14:12:42 +0000 (Thu, 24 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-revert previous commit (test)
-
-------------------------------------------------------------------------
-r7961 | zimmerma | 2011-11-24 14:11:59 +0000 (Thu, 24 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-commit test
-
-------------------------------------------------------------------------
-r7954 | zimmerma | 2011-11-09 20:03:45 +0000 (Wed, 09 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-thread.h
-
-[src/mpfr-thread.h] added pointer to TLS on Windows
-
-------------------------------------------------------------------------
-r7952 | vlefevre | 2011-11-09 12:28:59 +0000 (Wed, 09 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added a test showing a regression in MPFR 3.1.0
-(but fixed in r7931 and later).
-------------------------------------------------------------------------
-r7951 | zimmerma | 2011-11-09 12:20:10 +0000 (Wed, 09 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-[tests/tatan.c] mpfr_set_emin -> set_emin (idem for emax)
-
-------------------------------------------------------------------------
-r7950 | vlefevre | 2011-11-09 10:17:11 +0000 (Wed, 09 Nov 2011) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added a reference to an old discussion concerning __float128.
-------------------------------------------------------------------------
-r7949 | zimmerma | 2011-11-08 15:42:41 +0000 (Tue, 08 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added item
-
-------------------------------------------------------------------------
-r7944 | vlefevre | 2011-11-03 16:09:54 +0000 (Thu, 03 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Untabify.
-------------------------------------------------------------------------
-r7943 | thevenyp | 2011-11-03 14:53:08 +0000 (Thu, 03 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Corrected a comment.
-------------------------------------------------------------------------
-r7941 | vlefevre | 2011-11-03 14:49:07 +0000 (Thu, 03 Nov 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Coding style.
-------------------------------------------------------------------------
-r7938 | vlefevre | 2011-11-02 21:11:29 +0000 (Wed, 02 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Spelling.
-------------------------------------------------------------------------
-r7937 | vlefevre | 2011-11-02 21:10:43 +0000 (Wed, 02 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Spelling.
-------------------------------------------------------------------------
-r7936 | vlefevre | 2011-11-02 21:03:46 +0000 (Wed, 02 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Corrected a comment.
-------------------------------------------------------------------------
-r7935 | vlefevre | 2011-11-02 21:02:52 +0000 (Wed, 02 Nov 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tests/tsprintf.c] Added tests.
-------------------------------------------------------------------------
-r7934 | vlefevre | 2011-11-02 20:54:18 +0000 (Wed, 02 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Untabify. Minor correction in a comment.
-------------------------------------------------------------------------
-r7933 | thevenyp | 2011-11-02 16:58:29 +0000 (Wed, 02 Nov 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Rewrite in a cleaner way the part of regular_fg implied in the bug reported by Pavel Holoborodko (see r7931).
-------------------------------------------------------------------------
-r7932 | zimmerma | 2011-11-02 11:44:26 +0000 (Wed, 02 Nov 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpn_exp.c
-
-[src/mpn_exp.c] changed FIXME into TODO
-
-------------------------------------------------------------------------
-r7931 | zimmerma | 2011-11-02 10:15:41 +0000 (Wed, 02 Nov 2011) | 4 lines
-Changed paths:
- M /trunk/src/mpn_exp.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-[src/mpn_exp.c] added comment
-[src/vasprintf.c] (hopefully) fixed bug reported by Pavel Holoborodko
-[tests/tsprintf.c] added corresponding test case
-
-------------------------------------------------------------------------
-r7920 | vlefevre | 2011-10-14 10:13:34 +0000 (Fri, 14 Oct 2011) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Added -L$(top_builddir)/src/.libs to AM_LDFLAGS.
-[INSTALL] Removed the notes on HP-UX (obsolete after the above change).
-------------------------------------------------------------------------
-r7918 | vlefevre | 2011-10-13 11:30:33 +0000 (Thu, 13 Oct 2011) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Corrected notes for HP-UX.
-------------------------------------------------------------------------
-r7916 | vlefevre | 2011-10-13 11:17:27 +0000 (Thu, 13 Oct 2011) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added notes for HP-UX after a bug report. See discussion:
-https://sympa.inria.fr/sympa/arc/mpfr/2011-10/msg00042.html
-------------------------------------------------------------------------
-r7915 | zimmerma | 2011-10-12 14:14:16 +0000 (Wed, 12 Oct 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added one item
-
-------------------------------------------------------------------------
-r7914 | zimmerma | 2011-10-12 13:50:18 +0000 (Wed, 12 Oct 2011) | 4 lines
-Changed paths:
- A /trunk/src/x86_64/corei5
- A /trunk/src/x86_64/corei5/mparam.h
-
-[corei5/mparam.h] tuning files for Core i5 (not yet used since GMP 5.0.2 does
- currently recognize Core i5 as "k8", however the k8 tuning
- parameters are not so bad for Core i5)
-
-------------------------------------------------------------------------
-r7910 | vlefevre | 2011-10-05 22:15:52 +0000 (Wed, 05 Oct 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Improved MPFR_IS_PURE_FP definition, so that
-MPFR_ASSERTD takes a boolean (0 or 1).
-------------------------------------------------------------------------
-r7909 | vlefevre | 2011-10-04 11:23:46 +0000 (Tue, 04 Oct 2011) | 4 lines
-Changed paths:
- M /trunk
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fixed a bug in the MPFR_UNLIKELY macro for GCC
-(found under Mac OS X / PowerPC with the mode32 GMP ABI, and MPFR
-built with --enable-assert=full).
-(Merged changeset r7908 from the 3.1 branch.)
-------------------------------------------------------------------------
-r7892 | zimmerma | 2011-09-29 18:04:39 +0000 (Thu, 29 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] added reference and comment for eint
-
-------------------------------------------------------------------------
-r7889 | vlefevre | 2011-09-25 00:15:17 +0000 (Sun, 25 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Rephrased mpfr_frexp description.
-------------------------------------------------------------------------
-r7886 | vlefevre | 2011-09-24 09:58:27 +0000 (Sat, 24 Sep 2011) | 4 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/log1p.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tgeneric.c
-
-Renamed "division-by-zero" to "divide-by-zero" (term used by the
-ISO C99 standard, the IEEE 754-2008 standard using divideByZero,
-and the old IEEE 754-1985 standard using both "divide by zero"
-and "division by zero").
-------------------------------------------------------------------------
-r7883 | vlefevre | 2011-09-24 09:36:10 +0000 (Sat, 24 Sep 2011) | 1 line
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Forgot to update the flags in some functions.
-------------------------------------------------------------------------
-r7882 | vlefevre | 2011-09-24 09:27:41 +0000 (Sat, 24 Sep 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Improved division-by-zero tests.
-------------------------------------------------------------------------
-r7881 | vlefevre | 2011-09-23 17:03:46 +0000 (Fri, 23 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/faq.xsl
-
-[doc/faq.xsl] Added a comment about the MPFR logo.
-------------------------------------------------------------------------
-r7879 | vlefevre | 2011-09-22 10:37:11 +0000 (Thu, 22 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved mpfr_frexp description.
-------------------------------------------------------------------------
-r7877 | vlefevre | 2011-09-22 10:07:31 +0000 (Thu, 22 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected typo in the mpfr_frexp description.
-------------------------------------------------------------------------
-r7876 | zimmerma | 2011-09-21 10:12:45 +0000 (Wed, 21 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-[tools/cfarm.sh] updated for MPFR 3.1.0 rc2
-
-------------------------------------------------------------------------
-r7873 | zimmerma | 2011-09-20 08:06:47 +0000 (Tue, 20 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-[cfarm.sh] updated for MPFR 3.1.0-rc1 (with GMP 5.0.2)
-
-------------------------------------------------------------------------
-r7870 | vlefevre | 2011-09-20 00:50:01 +0000 (Tue, 20 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c] Output mpfr_buildopt_gmpinternals_p() and
-mpfr_buildopt_tune_case() values with MPFR 3.1 or later.
-------------------------------------------------------------------------
-r7869 | vlefevre | 2011-09-20 00:31:26 +0000 (Tue, 20 Sep 2011) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/buildopt.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tbuildopt.c
-
-Renamed mpfr_buildopt_internals_p to mpfr_buildopt_gmpinternals_p.
-------------------------------------------------------------------------
-r7868 | vlefevre | 2011-09-20 00:26:59 +0000 (Tue, 20 Sep 2011) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
- M /trunk/src/buildopt.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tbuildopt.c
-
-Added mpfr_buildopt_internals_p function.
-------------------------------------------------------------------------
-r7867 | vlefevre | 2011-09-20 00:13:51 +0000 (Tue, 20 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added commas.
-------------------------------------------------------------------------
-r7866 | vlefevre | 2011-09-20 00:04:21 +0000 (Tue, 20 Sep 2011) | 1 line
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Handle the special cases in mpfr_cmp_q and mpfr_cmp_f.
-------------------------------------------------------------------------
-r7865 | vlefevre | 2011-09-19 15:33:46 +0000 (Mon, 19 Sep 2011) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added an item about the minimum and maximum exponents.
-------------------------------------------------------------------------
-r7864 | vlefevre | 2011-09-19 15:29:14 +0000 (Mon, 19 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Replaced MPFR_EMIN_MIN and MPFR_EMAX_MAX by MPFR_EXT_EMIN
-and MPFR_EXT_EMAX respectively (see r7862 and r7863).
-------------------------------------------------------------------------
-r7863 | vlefevre | 2011-09-19 15:21:26 +0000 (Mon, 19 Sep 2011) | 3 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Define new macros MPFR_EXT_EMIN and MPFR_EXT_EMAX.
-[doc/README.dev] Document how to specify the minimum exponent or the
- maximum exponent.
-------------------------------------------------------------------------
-r7862 | zimmerma | 2011-09-19 14:37:18 +0000 (Mon, 19 Sep 2011) | 3 lines
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] replaced __gmpfr_emax by MPFR_EMAX_MAX (same for __gmpfr_emin).
- Solves bug on gcc54 with --enable-thread-safe and GCC 4.3.2.
-
-------------------------------------------------------------------------
-r7861 | vlefevre | 2011-09-19 09:40:04 +0000 (Mon, 19 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Added missing prototype for __gmpn_sbpi1_divappr_q
-(it could be detected when building MPFR with g++).
-------------------------------------------------------------------------
-r7860 | zimmerma | 2011-09-19 09:31:42 +0000 (Mon, 19 Sep 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] check for erange flag in mpfr_cmp_[f,q,z]
- (https://sympa.inria.fr/sympa/arc/mpfr/2011-09/msg00013.html)
-
-------------------------------------------------------------------------
-r7859 | vlefevre | 2011-09-19 09:25:04 +0000 (Mon, 19 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release".
-------------------------------------------------------------------------
-r7858 | zimmerma | 2011-09-19 09:04:37 +0000 (Mon, 19 Sep 2011) | 4 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] fixed bug with --enable-gmp-internals introduced in r7455
- (mpfr_limb_ptr is not yet defined when reading mpfr-gmp.h
- thus we can't use it)
-
-------------------------------------------------------------------------
-r7856 | vlefevre | 2011-09-19 08:17:30 +0000 (Mon, 19 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Correction: "5 exception types" → "6 exception types"
-(thanks to Case Vanhorsen for the report).
-------------------------------------------------------------------------
-r7852 | vlefevre | 2011-09-14 21:37:44 +0000 (Wed, 14 Sep 2011) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Define LONGLONG_STANDALONE before including
-mpfr-longlong.h so that udiv_qrnnd_preinv is defined (this is
-useful at least on IA64 when compiling without gmp-impl.h).
-Thanks to Patrick Pélissier for the fix.
-------------------------------------------------------------------------
-r7850 | vlefevre | 2011-09-11 09:17:03 +0000 (Sun, 11 Sep 2011) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated "API Compatibility" section: as of MPFR 3.1,
-the mpfr.h header can be included several times, while still supporting
-optional functions.
-------------------------------------------------------------------------
-r7849 | vlefevre | 2011-09-11 09:07:58 +0000 (Sun, 11 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Replaced some @code by @file for consistency.
-------------------------------------------------------------------------
-r7848 | vlefevre | 2011-09-11 09:04:58 +0000 (Sun, 11 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated "API Compatibility" section: functions
-mpfr_frexp, mpfr_grandom and mpfr_z_sub are new in MPFR 3.1.
-------------------------------------------------------------------------
-r7847 | vlefevre | 2011-09-11 09:01:48 +0000 (Sun, 11 Sep 2011) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Documented function mpfr_buildopt_tune_case,
-and added it to the list of added functions.
-[NEWS] Function mpfr_buildopt_tune_case is new in MPFR 3.1.
-------------------------------------------------------------------------
-r7846 | vlefevre | 2011-09-11 08:52:28 +0000 (Sun, 11 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated "API Compatibility" section
-(new division-by-zero exception in MPFR 3.1).
-------------------------------------------------------------------------
-r7845 | vlefevre | 2011-09-11 07:50:10 +0000 (Sun, 11 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7843 | vlefevre | 2011-09-11 07:48:01 +0000 (Sun, 11 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] MPFR_RNDA was introduced in MPFR 3.0.0 and should
-no longer be considered experimental.
-------------------------------------------------------------------------
-r7836 | vlefevre | 2011-09-10 21:15:45 +0000 (Sat, 10 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/tests/trec_sqrt.c
-
-[tests/trec_sqrt.c] Fixed bug introduced in r7711 (build failure
-with a C++ compiler).
-------------------------------------------------------------------------
-r7835 | vlefevre | 2011-09-10 20:13:19 +0000 (Sat, 10 Sep 2011) | 1 line
-Changed paths:
- M /trunk
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-Removed now useless svn:mergeinfo properties.
-------------------------------------------------------------------------
-r7832 | vlefevre | 2011-09-10 20:04:07 +0000 (Sat, 10 Sep 2011) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Replaced "configure.in" by "configure.ac".
-------------------------------------------------------------------------
-r7831 | vlefevre | 2011-09-10 20:02:56 +0000 (Sat, 10 Sep 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Removed obsolete paragraph about AM_MAINTAINER_MODE.
-------------------------------------------------------------------------
-r7826 | vlefevre | 2011-09-10 19:08:42 +0000 (Sat, 10 Sep 2011) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Correction after r7825.
-------------------------------------------------------------------------
-r7825 | vlefevre | 2011-09-10 19:07:39 +0000 (Sat, 10 Sep 2011) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Run tools/ck-mparam.
-------------------------------------------------------------------------
-r7824 | vlefevre | 2011-09-10 19:04:57 +0000 (Sat, 10 Sep 2011) | 2 lines
-Changed paths:
- A /trunk/tools/ck-mparam
-
-Added tools/ck-mparam sh script to check the mparam.h files
-(gcc is needed).
-------------------------------------------------------------------------
-r7823 | zimmerma | 2011-09-10 07:15:46 +0000 (Sat, 10 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/src/amd/k8/mparam.h
-
-[src/amd/k8/mparam.h] removed spurious end of comment
-
-------------------------------------------------------------------------
-r7821 | vlefevre | 2011-09-09 17:19:39 +0000 (Fri, 09 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] For the valgrind example, use the same arguments
-as in gnulib's valgrind-tests.m4 file.
-------------------------------------------------------------------------
-r7818 | vlefevre | 2011-09-09 13:48:33 +0000 (Fri, 09 Sep 2011) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r7817 | vlefevre | 2011-09-09 13:32:55 +0000 (Fri, 09 Sep 2011) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/tools/ck-copyright-notice
-
-[Makefile.am] Added tools/ck-copyright-notice to EXTRA_DIST as it is
- used in dist-hook.
-[tools/ck-copyright-notice] Added copyright notice (since this file is
- distributed in the tarballs). Note: the first year is 2008 as a part
- of the code comes from r5370 in mpfrlint.
-------------------------------------------------------------------------
-r7816 | vlefevre | 2011-09-09 11:40:33 +0000 (Fri, 09 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/tools/ck-copyright-notice
-
-[tools/ck-copyright-notice] Skip src/mpfr-longlong.h as this file
-(which comes from GMP) has a specific copyright notice.
-------------------------------------------------------------------------
-r7815 | vlefevre | 2011-09-09 11:37:01 +0000 (Fri, 09 Sep 2011) | 1 line
-Changed paths:
- M /trunk/src/mp_clz_tab.c
-
-[src/mp_clz_tab.c] Updated the copyright notice.
-------------------------------------------------------------------------
-r7814 | vlefevre | 2011-09-09 11:31:07 +0000 (Fri, 09 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/tools/ck-copyright-notice
-
-[tools/ck-copyright-notice] Check that the first copyright year for
-the mparam.h files is 2005.
-------------------------------------------------------------------------
-r7813 | vlefevre | 2011-09-09 11:26:02 +0000 (Fri, 09 Sep 2011) | 2 lines
-Changed paths:
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/generic/mparam.h
- M /trunk/src/hppa/mparam.h
- M /trunk/src/ia64/mparam.h
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
-
-Added copyright notice to the mparam.h files (with the same years
-as in the template).
-------------------------------------------------------------------------
-r7812 | vlefevre | 2011-09-09 11:20:25 +0000 (Fri, 09 Sep 2011) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/tools/ck-copyright-notice
- M /trunk/tools/mpfrlint
-
-Added tools/ck-copyright-notice sh script from mpfrlint (updated) to
-check that copyright notices exist and appear to be correct. Updated
-tools/mpfrlint to run tools/ck-copyright-notice instead of its old
-test. In Makefile.am, run tools/ck-copyright-notice in dist-hook for
-"make dist".
-------------------------------------------------------------------------
-r7811 | vlefevre | 2011-09-09 10:57:23 +0000 (Fri, 09 Sep 2011) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] More files under src and tests directories.
-------------------------------------------------------------------------
-r7809 | vlefevre | 2011-09-08 09:13:50 +0000 (Thu, 08 Sep 2011) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update for MPFR 3.1.x.
-------------------------------------------------------------------------
-r7808 | vlefevre | 2011-09-08 09:07:08 +0000 (Thu, 08 Sep 2011) | 7 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am]
- * Added "AM_LDFLAGS = -no-install" to prevent libtool from generating
- wrapper scripts for the tests (according to discussions and tests,
- there should be no negative effects); useful for gdb and valgrind.
- * Added $(VALGRIND) to TESTS_ENVIRONMENT in order to easily run the
- tests under valgrind with: VALGRIND="valgrind -q" make check
-[doc/README.dev] Update for gdb and valgrind.
-------------------------------------------------------------------------
-r7807 | vlefevre | 2011-08-31 08:55:56 +0000 (Wed, 31 Aug 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Improved the specification of mpfr_get_f.
-------------------------------------------------------------------------
-r7805 | zimmerma | 2011-08-30 12:01:16 +0000 (Tue, 30 Aug 2011) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] added comment about minimal GMP version
-
-------------------------------------------------------------------------
-r7804 | zimmerma | 2011-08-30 08:23:16 +0000 (Tue, 30 Aug 2011) | 3 lines
-Changed paths:
- M /trunk/src/add.c
-
-dummy change to check if GMP_CHECK_RANDOMIZE is now used in the Hydra
-builds on http://hydra.nixos.org/jobset/gnu/mpfr-trunk
-
-------------------------------------------------------------------------
-r7803 | vlefevre | 2011-08-19 10:03:19 +0000 (Fri, 19 Aug 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added some references to the ternary definition.
-------------------------------------------------------------------------
-r7802 | zimmerma | 2011-08-19 09:01:58 +0000 (Fri, 19 Aug 2011) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] improved the documentation of mpfr_set_str, as suggested by
- Vincent Lefevre
-
-------------------------------------------------------------------------
-r7801 | vlefevre | 2011-08-19 08:45:07 +0000 (Fri, 19 Aug 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added "Ternary value" to the concept index.
-------------------------------------------------------------------------
-r7800 | vlefevre | 2011-08-15 12:34:40 +0000 (Mon, 15 Aug 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added information on how to update the FAQ.
-------------------------------------------------------------------------
-r7798 | vlefevre | 2011-08-15 11:55:59 +0000 (Mon, 15 Aug 2011) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r7796 | vlefevre | 2011-08-12 11:39:06 +0000 (Fri, 12 Aug 2011) | 1 line
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tune/tuneup.c] Untabified.
-------------------------------------------------------------------------
-r7795 | vlefevre | 2011-08-12 11:35:51 +0000 (Fri, 12 Aug 2011) | 3 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Replaced MPFR_ASSERTD by MPFR_ASSERTN on constant
-expressions (this is a temporary change, as they should later be
-replaced by static assertions).
-------------------------------------------------------------------------
-r7794 | vlefevre | 2011-08-12 11:33:09 +0000 (Fri, 12 Aug 2011) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Replaced mp_ptr and mp_srcptr (internal to GMP) by
-mpfr_limb_ptr and mpfr_limb_srcptr.
-------------------------------------------------------------------------
-r7793 | vlefevre | 2011-08-12 11:25:25 +0000 (Fri, 12 Aug 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Avoid potential identifier collision by using an
-underscore for variable names declared in the invert_pi1 macro.
-------------------------------------------------------------------------
-r7792 | vlefevre | 2011-08-12 11:18:12 +0000 (Fri, 12 Aug 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-gmp.h
-
-[src/mpfr-gmp.h] Untabified.
-------------------------------------------------------------------------
-r7791 | vlefevre | 2011-08-12 11:14:38 +0000 (Fri, 12 Aug 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7790 | zimmerma | 2011-08-06 13:30:28 +0000 (Sat, 06 Aug 2011) | 2 lines
-Changed paths:
- M /trunk/src/amd/k8/mparam.h
-
-[k8/mparam.h] added comment
-
-------------------------------------------------------------------------
-r7789 | zimmerma | 2011-08-06 12:01:58 +0000 (Sat, 06 Aug 2011) | 3 lines
-Changed paths:
- M /trunk/src/amd/amdfam10/mparam.h
- M /trunk/src/x86/mparam.h
-
-[x86/mparam.h] new tuning contributed by Jim Cloos
-[amd/amdfam10/mparam.h] added GMP version
-
-------------------------------------------------------------------------
-r7788 | zimmerma | 2011-08-06 11:52:12 +0000 (Sat, 06 Aug 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mulders.c
-
-[mpfr-gmp.h] use mpfr_pi1_t instead of gmp_pi1_t to avoid using GMP's namespace
-
-------------------------------------------------------------------------
-r7787 | zimmerma | 2011-08-05 14:22:26 +0000 (Fri, 05 Aug 2011) | 5 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/mparam_h.in
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mulders.c
- M /trunk/tune/tuneup.c
-
-[src/mulders.c] use mpn_sbpi1_divappr_q if available and WANT_GMP_INTERNALS
- is defined
-[src/mpfr-gmp.h] defined macros needed for mpfr_divhigh_n_basecase
-[configure.ac] check for mpn_sbpi1_divappr_q
-
-------------------------------------------------------------------------
-r7786 | vlefevre | 2011-08-05 13:17:23 +0000 (Fri, 05 Aug 2011) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.ac
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
- M /trunk/src/version.c
-
-Updated version to 3.2.0-dev.
-------------------------------------------------------------------------
-r7784 | zimmerma | 2011-08-05 12:56:08 +0000 (Fri, 05 Aug 2011) | 2 lines
-Changed paths:
- A /trunk/src/amd/amdfam10
- A /trunk/src/amd/amdfam10/mparam.h
-
-[amdfam10/mparam.h] tuning parameters contributed by Jim Cloos
-
-------------------------------------------------------------------------
-r7783 | zimmerma | 2011-08-05 03:08:42 +0000 (Fri, 05 Aug 2011) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/src/Makefile.am
- M /trunk/src/mulders.c
- M /trunk/tune/tuneup.c
-
-[mulders.c] added a basecase code for Mulders' short division
-[tuneup.c] added corresponding tuning code
-[TODO] added an item
-
-------------------------------------------------------------------------
-r7782 | vlefevre | 2011-08-04 14:36:42 +0000 (Thu, 04 Aug 2011) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] In the INTMAX_MAX test, no longer hardcode the
-"#include <stdint.h>" (for instance, this doesn't work under
-Solaris 9: INTMAX_MAX is defined only via <inttypes.h>), but
-include "mpfr-intmax.h" instead (needs a temporary CPPFLAGS).
-------------------------------------------------------------------------
-r7781 | vlefevre | 2011-08-01 14:39:08 +0000 (Mon, 01 Aug 2011) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
-------------------------------------------------------------------------
-r7780 | vlefevre | 2011-08-01 13:56:27 +0000 (Mon, 01 Aug 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added copyright notice in case the file is distributed.
-------------------------------------------------------------------------
-r7779 | vlefevre | 2011-08-01 13:50:17 +0000 (Mon, 01 Aug 2011) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added information on how to run the MPFR test suite
-under valgrind.
-------------------------------------------------------------------------
-r7778 | vlefevre | 2011-08-01 12:36:04 +0000 (Mon, 01 Aug 2011) | 1 line
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/rec_sqrt.c
- M /trunk/tests/trec_sqrt.c
-
-Untabified and removed trailing spaces.
-------------------------------------------------------------------------
-r7777 | vlefevre | 2011-08-01 12:13:50 +0000 (Mon, 01 Aug 2011) | 1 line
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Improved output information.
-------------------------------------------------------------------------
-r7776 | zimmerma | 2011-07-31 19:44:32 +0000 (Sun, 31 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/hppa/mparam.h
-
-[hppa/mparam.h] updated for new Mulders' division
-
-------------------------------------------------------------------------
-r7775 | zimmerma | 2011-07-31 19:40:23 +0000 (Sun, 31 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/sparc64/mparam.h
-
-[sparc64/mparam.h] updated for new Mulders' division
-
-------------------------------------------------------------------------
-r7774 | zimmerma | 2011-07-31 15:43:40 +0000 (Sun, 31 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/powerpc64/mparam.h
-
-[powerpc64/mparam.h] updated for new Mulders' division
-
-------------------------------------------------------------------------
-r7773 | zimmerma | 2011-07-31 15:08:43 +0000 (Sun, 31 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/ia64/mparam.h
-
-[ia64/mparam.h] updated for new Mulders' division
-
-------------------------------------------------------------------------
-r7772 | zimmerma | 2011-07-31 12:43:03 +0000 (Sun, 31 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/amd/k8/mparam.h
-
-[amd/k8/mparam.h] updated for new Mulders' division
-
-------------------------------------------------------------------------
-r7771 | zimmerma | 2011-07-31 12:39:57 +0000 (Sun, 31 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/x86/core2/mparam.h
-
-[x86/core2/mparam.h] updated thresholds for new Mulders' division
-
-------------------------------------------------------------------------
-r7770 | zimmerma | 2011-07-31 10:54:38 +0000 (Sun, 31 Jul 2011) | 5 lines
-Changed paths:
- M /trunk/src/mparam_h.in
- M /trunk/tests/tversion.c
-
-[mparam_h.in] changed the detection of 64-bit Core 2, and added
- MPFR_TUNE_CASE for default case
-[tversion.c] print GMP version (header and library), and file for tuning
- parameters
-
-------------------------------------------------------------------------
-r7769 | zimmerma | 2011-07-31 10:29:31 +0000 (Sun, 31 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/x86_64/core2/mparam.h
-
-[x86_64/core2/mparam.h] updated for Mulders' division
-
-------------------------------------------------------------------------
-r7768 | zimmerma | 2011-07-31 08:59:53 +0000 (Sun, 31 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/generic/mparam.h
- M /trunk/tune/tuneup.c
-
-Added tuning for MPFR_DIV_THRESHOLD, and default value.
-It now remains to do the tuning on the architectures in mparam_in.h.
-
-------------------------------------------------------------------------
-r7767 | zimmerma | 2011-07-29 20:46:45 +0000 (Fri, 29 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] added speed improvement in mpfr_div
-
-------------------------------------------------------------------------
-r7765 | zimmerma | 2011-07-29 20:15:02 +0000 (Fri, 29 Jul 2011) | 39 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/mulders.c
-
-[mulders.c] fixed bug in mpfr_divhigh_n (this routine was not used yet)
-[div.c] now use Mulders' short product for large division. It remains to
- do the automatic tuning of MPFR_DIV_THRESHOLD. The speedup is nice,
- for example on my Core 2 Duo laptop we got with MPFR 3.0.0:
-
-[zimmerma@coing tests]$ ./timings-mpfr 1000
-Using MPFR-3.0.0 with GMP-5.0.2
-[precision is 3322 bits]
-x*y took 0.004543 ms (262143 eval in 1191 ms)
-x*x took 0.003616 ms (524287 eval in 1896 ms)
-x/y took 0.009087 ms (131071 eval in 1191 ms)
-sqrt(x) took 0.007004 ms (262143 eval in 1836 ms)
-exp(x) took 0.293040 ms (4095 eval in 1200 ms)
-log(x) took 0.253724 ms (4095 eval in 1039 ms)
-sin(x) took 0.306960 ms (4095 eval in 1257 ms)
-cos(x) took 0.290842 ms (4095 eval in 1191 ms)
-arccos(x) took 0.590620 ms (2047 eval in 1209 ms)
-arctan(x) took 0.560332 ms (2047 eval in 1147 ms)
-
-and now we get:
-
-[zimmerma@coing tests]$ ./timings-mpfr 1000
-Using MPFR-3.1.0-dev with GMP-5.0.2
-[precision is 3322 bits]
-x*y took 0.004444 ms (262143 eval in 1165 ms)
-x*x took 0.002686 ms (524287 eval in 1408 ms)
-x/y took 0.006989 ms (262143 eval in 1832 ms)
-sqrt(x) took 0.007084 ms (262143 eval in 1857 ms)
-exp(x) took 0.292063 ms (4095 eval in 1196 ms)
-log(x) took 0.246886 ms (4095 eval in 1011 ms)
-sin(x) took 0.259096 ms (4095 eval in 1061 ms)
-cos(x) took 0.244933 ms (4095 eval in 1003 ms)
-arccos(x) took 0.556424 ms (2047 eval in 1139 ms)
-arctan(x) took 0.526624 ms (2047 eval in 1078 ms)
-
-We see that other routines also benefit from the speedup in mpfr_sqr and
-mpfr_div (log, sin, cos, arccos, arctan).
-
-
-------------------------------------------------------------------------
-r7764 | zimmerma | 2011-07-29 15:21:09 +0000 (Fri, 29 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/doc/algorithms.bib
- M /trunk/doc/algorithms.tex
-
-[algorithms.tex] added algorithm for division with Mulders' short product
- (can anybody check the algorithm is ok?)
-
-------------------------------------------------------------------------
-r7763 | vlefevre | 2011-07-29 12:48:21 +0000 (Fri, 29 Jul 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[src/vasprintf.c] Added a comment.
-------------------------------------------------------------------------
-r7762 | vlefevre | 2011-07-29 12:24:18 +0000 (Fri, 29 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/get_str.c
-
-[src/get_str.c] Added a comment about the use of mpfr_ceil_mul
-(exported and declared in mpfr-impl.h since r7760).
-------------------------------------------------------------------------
-r7761 | thevenyp | 2011-07-28 23:01:52 +0000 (Thu, 28 Jul 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
- M /trunk/tests/tsprintf.c
-
-Avoid expensive calls to mpfr_get_prec() using mpfr_ceil_mul() instead.
-------------------------------------------------------------------------
-r7760 | thevenyp | 2011-07-28 22:59:01 +0000 (Thu, 28 Jul 2011) | 1 line
-Changed paths:
- M /trunk/src/get_str.c
- M /trunk/src/mpfr-impl.h
-
-Make ceil_mul() public as mpfr_ceil_mul() in mpfr-impl.h
-------------------------------------------------------------------------
-r7759 | vlefevre | 2011-07-28 18:50:21 +0000 (Thu, 28 Jul 2011) | 1 line
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] MPFR coding conventions for r7752.
-------------------------------------------------------------------------
-r7758 | zimmerma | 2011-07-28 17:17:24 +0000 (Thu, 28 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/hppa/mparam.h
- M /trunk/src/ia64/mparam.h
- M /trunk/src/mulders.c
- M /trunk/src/powerpc32/mparam.h
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
-
-modified the default tuning parameters so they are within the bounds of the
-ARITH-20 paper "Short Division of Long Integers"
-
-------------------------------------------------------------------------
-r7757 | zimmerma | 2011-07-28 16:38:55 +0000 (Thu, 28 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] declare mpfr_mullow_n as non-static since it might be useful
- elsewhere
-
-------------------------------------------------------------------------
-r7756 | zimmerma | 2011-07-28 16:36:50 +0000 (Thu, 28 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] fix tuning bounds of short product and division according to the
- ARITH-20 paper
-
-------------------------------------------------------------------------
-r7755 | zimmerma | 2011-07-28 16:36:01 +0000 (Thu, 28 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] detect long double format in m68k
-
-------------------------------------------------------------------------
-r7754 | zimmerma | 2011-07-28 16:35:25 +0000 (Thu, 28 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tget_flt.c] added test to check FLT_MAX + FLT_MAX gives INFP
- (to early detect compiler bugs)
-
-------------------------------------------------------------------------
-r7753 | zimmerma | 2011-07-28 16:30:38 +0000 (Thu, 28 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-[nightly-test] changed -pedantic-errors into -pedantic
-
-------------------------------------------------------------------------
-r7752 | zimmerma | 2011-07-28 16:29:51 +0000 (Thu, 28 Jul 2011) | 4 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[mulders.c] added some code for short division (FoldDiv, not used),
- added comments and fixed bounds in accordance with the
- ARITH-20 paper
-
-------------------------------------------------------------------------
-r7751 | thevenyp | 2011-07-28 16:16:36 +0000 (Thu, 28 Jul 2011) | 1 line
-Changed paths:
- M /trunk/src/vasprintf.c
-
-Use a buffer in order to avoid a double call to mpfr_get_str.
-------------------------------------------------------------------------
-r7750 | vlefevre | 2011-07-26 13:12:46 +0000 (Tue, 26 Jul 2011) | 1 line
-Changed paths:
- M /trunk/src/log.c
-
-[src/log.c] Replaced TMP_* by MPFR_GROUP_* (patch by Patrick).
-------------------------------------------------------------------------
-r7749 | vlefevre | 2011-07-22 10:24:38 +0000 (Fri, 22 Jul 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added a comment about TLS variable initialization.
-------------------------------------------------------------------------
-r7748 | vlefevre | 2011-07-22 10:15:04 +0000 (Fri, 22 Jul 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added information about TLS variable initialization.
-------------------------------------------------------------------------
-r7747 | vlefevre | 2011-07-22 10:09:28 +0000 (Fri, 22 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Split Chapter "MPFR Basics" into nodes as it is now
-quite large (thus references to particular sections are now possible).
-------------------------------------------------------------------------
-r7744 | zimmerma | 2011-07-18 19:03:25 +0000 (Mon, 18 Jul 2011) | 7 lines
-Changed paths:
- M /trunk/src/vasprintf.c
-
-[vasprintf.c] simplified and improved round_to_10_power(), also contributed
- a negative number of lines of code :-)
- Still not optimal, since round_to_10_power() is still called
- twice for printing say pi with mpfr_printf ("%Rg\n", x), once
- from partition_number(), once from regular_fg(), and thus
- mpfr_get_str is called at least 3 times!
-
-------------------------------------------------------------------------
-r7743 | zimmerma | 2011-07-18 12:21:29 +0000 (Mon, 18 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] improve error message when libgmp is not found
-
-------------------------------------------------------------------------
-r7742 | zimmerma | 2011-07-18 11:24:40 +0000 (Mon, 18 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added note about threads for mpfr_set_default_prec and
- mpfr_get_default_prec
-
-------------------------------------------------------------------------
-r7740 | vlefevre | 2011-07-06 15:57:22 +0000 (Wed, 06 Jul 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7738 | vlefevre | 2011-07-06 13:47:35 +0000 (Wed, 06 Jul 2011) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS, doc/mpfr.texi] mpfr_min_prec was a new function in MPFR 3.0.0.
-------------------------------------------------------------------------
-r7736 | vlefevre | 2011-07-01 15:17:47 +0000 (Fri, 01 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tests/tget_flt.c] Replaced FLT_MAX + FLT_MAX by (float) DBL_POS_INF,
-which should trigger fewer compiler bugs. See:
- https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00002.html
-------------------------------------------------------------------------
-r7734 | vlefevre | 2011-07-01 08:07:35 +0000 (Fri, 01 Jul 2011) | 2 lines
-Changed paths:
- M /trunk/src/ieee_floats.h
-
-[src/ieee_floats.h] Added a comment about the NaN format when
-_GMP_IEEE_FLOATS is defined.
-------------------------------------------------------------------------
-r7733 | zimmerma | 2011-07-01 08:04:50 +0000 (Fri, 01 Jul 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tget_flt.c] check for compiler bug
- (https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00000.html)
-
-------------------------------------------------------------------------
-r7731 | vlefevre | 2011-06-30 00:17:40 +0000 (Thu, 30 Jun 2011) | 3 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/BUGS
- M /trunk/COPYING
- M /trunk/COPYING.LESSER
- M /trunk/ChangeLog
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/PATCHES
- M /trunk/README
- M /trunk/TODO
- M /trunk/VERSION
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/README.dev
- M /trunk/doc/algorithms.bib
- M /trunk/doc/algorithms.tex
- M /trunk/doc/faq.xsl
- M /trunk/doc/fdl.texi
- M /trunk/doc/mpfr.texi
- M /trunk/doc/update-faq
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/other/cputime.h
- M /trunk/other/div-short.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/RRTest.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/inp_str.data
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/check_inits_clears
- M /trunk/tools/ck-version-info
- M /trunk/tools/coverage
- M /trunk/tools/get_patches.sh
- M /trunk/tools/mbench/generate.c
- M /trunk/tools/mbench/mfv5.h
- M /trunk/tools/mbench/mpfr-gfx.c
- M /trunk/tools/mbench/mpfr-v4.c
- M /trunk/tools/mbench/mpfr-v6.c
- M /trunk/tools/mbench/timp.h
- M /trunk/tools/update-patchv
- M /trunk/tools/update-version
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Removed all the svn:eol-style properties (they were set to "native"),
-and in doc/README.dev, explained why svn:eol-style native should not
-be used.
-------------------------------------------------------------------------
-r7729 | vlefevre | 2011-06-28 22:55:59 +0000 (Tue, 28 Jun 2011) | 2 lines
-Changed paths:
- M /trunk/tools/ck-version-info
-
-[tools/ck-version-info] Check DLL version in LIBMPFR_LDFLAGS line from
-configure.ac (patch by Stefan Graff, with minor changes).
-------------------------------------------------------------------------
-r7726 | vlefevre | 2011-06-26 09:44:11 +0000 (Sun, 26 Jun 2011) | 5 lines
-Changed paths:
- M /trunk/tools/ck-version-info
-
-[tools/ck-version-info] 2 corrections:
- * update due to the change of the libmpfr_la_LDFLAGS line in r7724;
- * to support the CRLF end-of-line sometimes used under MS-Windows
- (perl should normally take care of that, but Windows software is
- not always consistent).
-------------------------------------------------------------------------
-r7725 | vlefevre | 2011-06-26 09:30:05 +0000 (Sun, 26 Jun 2011) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Due to the "@unnumbered Function and Type Index",
-replaced the other "Function Index" by "Function and Type Index"
-(note: the function index and the type index are merged thanks to
-the "@synindex tp fn" line at the beginning of mpfr.texi).
-------------------------------------------------------------------------
-r7724 | vlefevre | 2011-06-25 16:08:39 +0000 (Sat, 25 Jun 2011) | 4 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/Makefile.am
-
-Ported patch r7723 (changes suggested by Stefan Graff to be able
-to build Windows DLLs with GCC 4.6[*]) to the trunk, not tested
-(something more may be needed due to the source reorganization).
-[*] https://sympa.inria.fr/sympa/arc/mpfr/2011-06/msg00013.html
-------------------------------------------------------------------------
-r7722 | vlefevre | 2011-06-21 20:45:27 +0000 (Tue, 21 Jun 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7721 | vlefevre | 2011-06-21 20:41:51 +0000 (Tue, 21 Jun 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected a note about mpfr_set_*, due to the addition
-of mpfr_set_decimal64.
-------------------------------------------------------------------------
-r7720 | vlefevre | 2011-06-20 14:38:24 +0000 (Mon, 20 Jun 2011) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Removed comment added in r7181, as it is no longer
-necessary since r7182 (new option --enable-gmp-internals).
-------------------------------------------------------------------------
-r7719 | vlefevre | 2011-06-20 14:36:28 +0000 (Mon, 20 Jun 2011) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Updated comment concerning __gmpn_rootrem (mention
-WANT_GMP_INTERNALS).
-------------------------------------------------------------------------
-r7718 | vlefevre | 2011-06-20 14:10:04 +0000 (Mon, 20 Jun 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about logging and timeout.
-------------------------------------------------------------------------
-r7717 | vlefevre | 2011-06-20 13:59:31 +0000 (Mon, 20 Jun 2011) | 1 line
-Changed paths:
- M /trunk/src/atan2.c
- M /trunk/src/pow.c
-
-[src] Conversion into UTF-8 (only comments were concerned).
-------------------------------------------------------------------------
-r7716 | vlefevre | 2011-06-20 13:57:40 +0000 (Mon, 20 Jun 2011) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Conversion into UTF-8.
-------------------------------------------------------------------------
-r7715 | vlefevre | 2011-06-20 13:56:51 +0000 (Mon, 20 Jun 2011) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Made the code more robust concerning the scaling (a bug was
-very unlikely, though), and updated the comments (partial proof).
-------------------------------------------------------------------------
-r7714 | vlefevre | 2011-06-01 01:32:26 +0000 (Wed, 01 Jun 2011) | 1 line
-Changed paths:
- M /trunk/examples/version.c
-
-[examples/version.c] Output MPFR features and size of MPFR types.
-------------------------------------------------------------------------
-r7711 | zimmerma | 2011-05-22 19:13:25 +0000 (Sun, 22 May 2011) | 3 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
- M /trunk/tests/trec_sqrt.c
-
-[src/rec_sqrt.c] continued review; I can now prove that cu=0 in all cases
-[tests/trec_sqrt.c] added tests for corner cases
-
-------------------------------------------------------------------------
-r7710 | zimmerma | 2011-05-20 05:51:22 +0000 (Fri, 20 May 2011) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[rec_sqrt.c] more review of codes, following comments from Vincent
-
-------------------------------------------------------------------------
-r7709 | zimmerma | 2011-05-19 08:37:24 +0000 (Thu, 19 May 2011) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[rec_sqrt.c] removed tabs
-
-------------------------------------------------------------------------
-r7708 | zimmerma | 2011-05-19 06:44:00 +0000 (Thu, 19 May 2011) | 4 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[rec_sqrt.c] review and small change of changeset 7651: most probably cu=0
- when th=0 (and maybe cu=0 always, I cannot find an example where
- cu <> 0) but considering the case th=0 is more natural.
-
-------------------------------------------------------------------------
-r7707 | vlefevre | 2011-05-18 15:02:52 +0000 (Wed, 18 May 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] List the contributors in the alphabetic order, like
-the main authors.
-------------------------------------------------------------------------
-r7706 | vlefevre | 2011-05-18 14:52:18 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/doc/mpfr.texi
-
-Made AUTHORS and doc/mpfr.texi consistent.
-------------------------------------------------------------------------
-r7705 | vlefevre | 2011-05-18 14:44:37 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/src/acos.c
- M /trunk/src/asin.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/erf.c
- M /trunk/src/get_str.c
- M /trunk/src/mpn_exp.c
- M /trunk/src/round_near_x.c
- M /trunk/src/zeta.c
- M /trunk/tests/tacos.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/terf.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tzeta.c
-
-Updated AUTHORS file and copyright notices (for more consistency).
-------------------------------------------------------------------------
-r7704 | vlefevre | 2011-05-18 14:26:30 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-[tests/thyperbolic.c] Fixed copyright notice.
-------------------------------------------------------------------------
-r7703 | vlefevre | 2011-05-18 14:25:11 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/src/inp_str.c
-
-[src/inp_str.c] Improved comment.
-------------------------------------------------------------------------
-r7702 | vlefevre | 2011-05-18 14:18:41 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/src/fits_s.h
-
-[src/fits_s.h] Improved comment.
-------------------------------------------------------------------------
-r7701 | vlefevre | 2011-05-18 14:09:54 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7700 | vlefevre | 2011-05-18 14:09:05 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Avoid a warning from mpfrlint.
-------------------------------------------------------------------------
-r7699 | vlefevre | 2011-05-18 13:09:33 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Consistency change in the copyright notice.
-------------------------------------------------------------------------
-r7698 | vlefevre | 2011-05-18 11:09:30 +0000 (Wed, 18 May 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsqr.c
-
-[tests/tsqr.c] Added a note in the check_mpn_sqr error message.
-------------------------------------------------------------------------
-r7697 | vlefevre | 2011-05-18 10:59:48 +0000 (Wed, 18 May 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tsqr.c
-
-[tests/tsqr.c] Added a test of mpn_sqr concerning a bug seen
-with GCC 4.5.2 and GMP 5.0.1 on m68k (m68000 target).
-------------------------------------------------------------------------
-r7696 | vlefevre | 2011-05-17 14:25:37 +0000 (Tue, 17 May 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note about a texinfo bug.
-------------------------------------------------------------------------
-r7695 | vlefevre | 2011-05-13 15:58:57 +0000 (Fri, 13 May 2011) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_uj.c
- M /trunk/src/mpfr-impl.h
- A /trunk/src/mpfr-intmax.h
- M /trunk/src/set_sj.c
- M /trunk/src/set_uj.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_sj.c
-
-Added mpfr-intmax.h header.
-------------------------------------------------------------------------
-r7694 | vlefevre | 2011-05-13 15:19:50 +0000 (Fri, 13 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/tests/tstdint.c
- M /trunk/tests/tvalist.c
-
-Started to support mpfr_exp_t defined as intmax_t (_MPFR_EXP_FORMAT==4).
-------------------------------------------------------------------------
-r7693 | vlefevre | 2011-05-13 11:52:28 +0000 (Fri, 13 May 2011) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added that the mpfr.h header can be included several times,
-while still supporting optional functions.
-------------------------------------------------------------------------
-r7692 | vlefevre | 2011-05-13 11:48:13 +0000 (Fri, 13 May 2011) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Document what to do if mpfr.h can be included
-multiple times (fixes MPFR bug #9653).
-------------------------------------------------------------------------
-r7690 | vlefevre | 2011-05-12 15:29:24 +0000 (Thu, 12 May 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note to run tests with -D_MPFR_PREC_FORMAT=2.
-------------------------------------------------------------------------
-r7689 | vlefevre | 2011-05-12 14:10:39 +0000 (Thu, 12 May 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Exponent properties: corrected comments and removed
-obsolete mp_exp_unsigned_t definition (was internal only).
-------------------------------------------------------------------------
-r7688 | vlefevre | 2011-05-12 13:57:02 +0000 (Thu, 12 May 2011) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/src/vasprintf.c
-
-[src/{mpfr.h,mpfr-impl.h,vasprintf.c}] Clean-up and improvement
-of definitions related to mpfr_exp_t. MPFR can now be built with
--D_MPFR_PREC_FORMAT=2 to have mpfr_prec_t and mpfr_exp_t defined
-as an int.
-------------------------------------------------------------------------
-r7687 | vlefevre | 2011-05-12 12:40:39 +0000 (Thu, 12 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Fixed spaces in a comment.
-------------------------------------------------------------------------
-r7686 | vlefevre | 2011-05-12 12:36:13 +0000 (Thu, 12 May 2011) | 3 lines
-Changed paths:
- M /trunk
- M /trunk/src/add1sp.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/turandom.c
-
-Fixed printf's calls: support the case where mpfr_prec_t is not a long
-(or unsigned long).
-[merged changeset r7643 from the exp-int branch]
-------------------------------------------------------------------------
-r7685 | vlefevre | 2011-05-12 12:30:41 +0000 (Thu, 12 May 2011) | 5 lines
-Changed paths:
- M /trunk
- M /trunk/src/strtofr.c
-
-[src/strtofr.c] Support the case where mpfr_exp_t < long; mpfr_exp_t is
-currently defined as mp_exp_t, which comes from GMP, and GMP currently
-defines mp_exp_t as a long, except on Cray (never tested for MPFR). But
-this may change in the future (possibly as an option)...
-[merged changeset r7642 from the exp-int branch]
-------------------------------------------------------------------------
-r7684 | vlefevre | 2011-05-12 12:21:49 +0000 (Thu, 12 May 2011) | 2 lines
-Changed paths:
- M /trunk
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW
-(fortunately the current MPFR code was not affected).
-------------------------------------------------------------------------
-r7683 | vlefevre | 2011-05-12 12:18:38 +0000 (Thu, 12 May 2011) | 1 line
-Changed paths:
- M /trunk
- M /trunk/tests/tpow_z.c
-
-[tests/tpow_z.c] More details for a test in case of failure.
-------------------------------------------------------------------------
-r7682 | vlefevre | 2011-05-12 12:16:01 +0000 (Thu, 12 May 2011) | 5 lines
-Changed paths:
- M /trunk
- M /trunk/src/sub1.c
-
-[src/sub1.c] Fixed several bugs: integer overflows and potential
-out-of-bound pointers. They might be visible on particular platforms,
-with a particular configuration (e.g. 64-bit limbs and 32-bit exponent
-type) or particular compiler options (to check such overflows).
-[merged changesets r7637-7638 from the exp-int branch]
-------------------------------------------------------------------------
-r7679 | vlefevre | 2011-05-11 13:50:01 +0000 (Wed, 11 May 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsin.c
-
-[tests/tsin.c] Added a test (it failed before the fix in r7308).
-------------------------------------------------------------------------
-r7678 | vlefevre | 2011-05-11 00:07:05 +0000 (Wed, 11 May 2011) | 10 lines
-Changed paths:
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/free_cache.c
- M /trunk/src/mpfr-impl.h
-
-Fixed constants pi and log(2) computation when logging is used: When
-MPFR is built with logging support, these two constants are used by
-the logging functions (via mpfr_fprintf, then mpfr_log, for the base
-conversion). Since the mpfr_cache function isn't re-entrant when
-working on the same cache, we need to define two caches for each
-constant. Otherwise the constants could be incorrect; for instance,
-"MPFR_LOG_ALL=1 ./tconst_pi" was failing.
-Note: the bug was introduced with the new logging system from r7575
-for MPFR 3.1.0, based on mpfr_fprintf instead of mpfr_out_str (which
-doesn't depend on mpfr_log).
-------------------------------------------------------------------------
-r7676 | vlefevre | 2011-05-09 12:03:20 +0000 (Mon, 09 May 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Replaced atoi by strtoul to read the seed from
-GMP_CHECK_RANDOMIZE, as it is an unsigned long.
-------------------------------------------------------------------------
-r7674 | vlefevre | 2011-05-09 11:17:43 +0000 (Mon, 09 May 2011) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-[tests/texp.c] Fixed the test comparing mpfr_exp_2 and mpfr_exp_3:
-filter out 0, as it is handled correctly only by mpfr_exp.
-------------------------------------------------------------------------
-r7672 | vlefevre | 2011-05-06 13:30:28 +0000 (Fri, 06 May 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Completed the note to run tests under gdb.
-------------------------------------------------------------------------
-r7671 | vlefevre | 2011-05-06 12:50:43 +0000 (Fri, 06 May 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a note to run tests under gdb.
-------------------------------------------------------------------------
-r7670 | zimmerma | 2011-05-06 12:31:24 +0000 (Fri, 06 May 2011) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[README.dev] added hint for logging
-
-------------------------------------------------------------------------
-r7667 | vlefevre | 2011-05-04 23:46:17 +0000 (Wed, 04 May 2011) | 6 lines
-Changed paths:
- M /trunk/src/atan.c
-
-[src/atan.c] Fixed bug in mpfr_atan: mpfr_check_range was called on the
-unrounded result (no longer allocated) instead of the rounded result.
-Consequence of this bug: possible incorrect or invalid result and/or
-incorrect flags if either the unrounded result or rounded result is not
-in the current exponent range. Or possibly worse if the memory used by
-the unrounded result is modified before the return of the function.
-------------------------------------------------------------------------
-r7666 | vlefevre | 2011-05-04 23:25:24 +0000 (Wed, 04 May 2011) | 1 line
-Changed paths:
- M /trunk/tests/tatan.c
-
-[tests/tatan.c] Corrected a comment.
-------------------------------------------------------------------------
-r7665 | vlefevre | 2011-05-04 23:20:18 +0000 (Wed, 04 May 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-[tests/tatan.c] Added a testcase showing a failure of mpfr_atan
-in a reduced exponent range.
-------------------------------------------------------------------------
-r7664 | vlefevre | 2011-05-04 22:04:17 +0000 (Wed, 04 May 2011) | 1 line
-Changed paths:
- M /trunk/src/const_pi.c
-
-[src/const_pi.c] Removed useless assignment.
-------------------------------------------------------------------------
-r7663 | zimmerma | 2011-05-04 21:58:12 +0000 (Wed, 04 May 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[mpfr-impl.h] fixed typo
-
-------------------------------------------------------------------------
-r7661 | vlefevre | 2011-05-03 17:26:31 +0000 (Tue, 03 May 2011) | 5 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
-
-[src/mpfr-impl.h] In MPFR_RNDRAW_GEN, do not try to compute the
- sticky bit when not necessary (directed mode with rb = 1).
-[src/mul.c] FIXME comment: with the change in MPFR_RNDRAW_GEN,
- uninitialized data are no longer read; there's still something
- wrong, at least with the code documentation, though.
-------------------------------------------------------------------------
-r7660 | vlefevre | 2011-05-03 13:59:19 +0000 (Tue, 03 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Updated the FIXME comment.
-------------------------------------------------------------------------
-r7659 | vlefevre | 2011-05-03 13:51:52 +0000 (Tue, 03 May 2011) | 6 lines
-Changed paths:
- M /trunk/src/mul.c
- M /trunk/tests/tmul.c
-
-Bug in mpfr_mul: a call mpfr_mulhigh_n(pointers..., n) where n is some
-size is done, but the mpfr_mul code assumes a result whose size can be
-arbitrarily larger, thus may depend on uninitialised data.
- * [src/mul.c] Added a FIXME comment.
- * [tests/tmul.c] Added a corresponding test. The result is not checked
- but valgrind complains of the use of uninitialised value(s).
-------------------------------------------------------------------------
-r7658 | vlefevre | 2011-05-03 13:17:04 +0000 (Tue, 03 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] MPFR_RNDRAW_GEN: added other missing parentheses.
-------------------------------------------------------------------------
-r7657 | vlefevre | 2011-05-03 13:14:25 +0000 (Tue, 03 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] MPFR_RNDRAW_GEN: added missing parentheses.
-------------------------------------------------------------------------
-r7656 | vlefevre | 2011-05-03 12:38:50 +0000 (Tue, 03 May 2011) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Logging: do not take into account the Ziv loops due
-to logging (i.e. used by the MPFR functions called by the mpfr_fprintf
-in LOG_PRINT).
-------------------------------------------------------------------------
-r7655 | vlefevre | 2011-05-03 12:23:23 +0000 (Tue, 03 May 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Avoid recursive logging for MPFR_ZIV_* macros too,
-and fixed type for the output of the precision.
-------------------------------------------------------------------------
-r7654 | vlefevre | 2011-05-03 11:11:47 +0000 (Tue, 03 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Avoid recursive logging (not wanted and freezes MPFR).
-------------------------------------------------------------------------
-r7652 | vlefevre | 2011-05-03 07:34:04 +0000 (Tue, 03 May 2011) | 1 line
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Improved the comment added in r7651.
-------------------------------------------------------------------------
-r7651 | vlefevre | 2011-05-02 13:46:38 +0000 (Mon, 02 May 2011) | 1 line
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Fixed the buffer overflow (bug 12553).
-------------------------------------------------------------------------
-r7650 | vlefevre | 2011-05-02 13:26:29 +0000 (Mon, 02 May 2011) | 4 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Added an assertion to avoid a buffer overflow
-(mpn_add_1 and mpn_sub_1 don't support size = 0). It sometimes
-fails, and this is the following bug:
-https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619
-------------------------------------------------------------------------
-r7649 | vlefevre | 2011-05-02 13:01:30 +0000 (Mon, 02 May 2011) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Added a comment about a buffer overflow. Bug report:
-https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619
-------------------------------------------------------------------------
-r7648 | vlefevre | 2011-05-02 10:49:33 +0000 (Mon, 02 May 2011) | 1 line
-Changed paths:
- M /trunk/tests/tvalist.c
-
-[tests/tvalist.c] Make sure that fct is used (avoid a warning).
-------------------------------------------------------------------------
-r7647 | vlefevre | 2011-05-02 10:36:08 +0000 (Mon, 02 May 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-[tests/tsin_cos.c] status_f and status were not read (compared) in
-coverage_01032011, yielding a warning.
-------------------------------------------------------------------------
-r7646 | vlefevre | 2011-05-02 10:34:06 +0000 (Mon, 02 May 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Avoid a spurious warning with some use of MPFR_BLOCK.
-------------------------------------------------------------------------
-r7645 | vlefevre | 2011-05-02 10:13:17 +0000 (Mon, 02 May 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added command to test with valgrind.
-------------------------------------------------------------------------
-r7644 | vlefevre | 2011-05-01 01:45:29 +0000 (Sun, 01 May 2011) | 6 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.ac
-
-Added "make dist" support for -dev MPFR versions by distributing the
-tests/data files in the tarball for such MPFR versions ("make check"
-fails if some data file couldn't be read for such versions).
- * configure.ac: add a Makefile variable DATAFILES, which contains the
- list of the tests/data files if the MPFR version ends with "-dev".
- * Makefile.am: add $(DATAFILES) to EXTRA_DIST.
-------------------------------------------------------------------------
-r7640 | vlefevre | 2011-04-29 11:33:48 +0000 (Fri, 29 Apr 2011) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Removed a useless pointer cast (in general, such casts
-are either useless or incorrect, as breaking aliasing rules).
-------------------------------------------------------------------------
-r7636 | vlefevre | 2011-04-28 12:54:20 +0000 (Thu, 28 Apr 2011) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Added an assertion.
-------------------------------------------------------------------------
-r7634 | vlefevre | 2011-04-18 14:53:03 +0000 (Mon, 18 Apr 2011) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Correction of problems triggering the warning
- "warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body"
-with autoconf 2.68:
-* Fixed missing quoting in an AC_RUN_IFELSE.
-* Added an AC_LANG_SOURCE in another AC_RUN_IFELSE.
-------------------------------------------------------------------------
-r7633 | vlefevre | 2011-04-18 12:11:10 +0000 (Mon, 18 Apr 2011) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] s/can not/cannot/
-------------------------------------------------------------------------
-r7632 | vlefevre | 2011-04-18 12:09:25 +0000 (Mon, 18 Apr 2011) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added comment about the warning:
- warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
-------------------------------------------------------------------------
-r7631 | vlefevre | 2011-04-15 12:35:11 +0000 (Fri, 15 Apr 2011) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Use conventional quotes.
-------------------------------------------------------------------------
-r7630 | vlefevre | 2011-04-15 12:15:16 +0000 (Fri, 15 Apr 2011) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a comment.
-------------------------------------------------------------------------
-r7625 | vlefevre | 2011-04-12 08:17:39 +0000 (Tue, 12 Apr 2011) | 3 lines
-Changed paths:
- M /trunk/src/asin.c
- M /trunk/tests/tasin.c
-
-[src/asin.c] Fixed bug in mpfr_asin for x = 1 or -1 in extremely reduced
- exponent range (when pi is not representable, but pi/2 is).
-[tests/tasin.c] Added testcase.
-------------------------------------------------------------------------
-r7624 | vlefevre | 2011-04-08 15:32:40 +0000 (Fri, 08 Apr 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] Removed "allow generic tests to run with a restricted
-exponent range" (this was done in r7470).
-------------------------------------------------------------------------
-r7623 | zimmerma | 2011-04-08 13:18:37 +0000 (Fri, 08 Apr 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added item
-
-------------------------------------------------------------------------
-r7621 | vlefevre | 2011-04-05 08:47:39 +0000 (Tue, 05 Apr 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7620 | vlefevre | 2011-04-05 08:45:37 +0000 (Tue, 05 Apr 2011) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/doc/mpfr.texi
-
-[INSTALL,doc/mpfr.texi] Say that mpfr@loria.fr is the MPFR mailing-list.
-------------------------------------------------------------------------
-r7611 | vlefevre | 2011-04-01 14:28:45 +0000 (Fri, 01 Apr 2011) | 4 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Removed the -Wno-format GCC option, which was added
-when logging was used, as it is no longer needed after the changes
-done in r7575,7578 (mpfr_fprintf is now used for logging instead of
-fprintf with the Glibc register_printf_function extension).
-------------------------------------------------------------------------
-r7607 | vlefevre | 2011-03-29 11:49:11 +0000 (Tue, 29 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/reuse.c
-
-[tests/reuse.c] Added a comment.
-------------------------------------------------------------------------
-r7606 | vlefevre | 2011-03-29 11:45:40 +0000 (Tue, 29 Mar 2011) | 4 lines
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Fixed a bug in mpfr_pow_general when an argument is reused
-(e.g. mpfr_pow(x,x,y,rnd) or mpfr_pow(y,x,y,rnd)) and the result is
-negative, thus when x is negative and y is a huge odd integer ("huge"
-because not-too-large integers are currently handled by mpfr_pow_z).
-------------------------------------------------------------------------
-r7605 | vlefevre | 2011-03-29 11:36:49 +0000 (Tue, 29 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-[tests/reuse.c] Added a mpfr_pow(x,x,y,rnd) test showing a failure
-when x is negative and y is a huge odd integer.
-------------------------------------------------------------------------
-r7604 | vlefevre | 2011-03-29 11:10:29 +0000 (Tue, 29 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/subnormal.c
-
-[src/subnormal.c] Improved a comment.
-------------------------------------------------------------------------
-r7603 | vlefevre | 2011-03-29 11:01:33 +0000 (Tue, 29 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/reuse.c
-
-[tests/reuse.c] Test also negative numbers.
-------------------------------------------------------------------------
-r7602 | vlefevre | 2011-03-29 10:52:35 +0000 (Tue, 29 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/reuse.c
-
-[tests/reuse.c] GNU coding style.
-------------------------------------------------------------------------
-r7601 | vlefevre | 2011-03-29 10:27:45 +0000 (Tue, 29 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Updated a comment.
-------------------------------------------------------------------------
-r7600 | vlefevre | 2011-03-29 10:20:58 +0000 (Tue, 29 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/powerof2.c
-
-[src/powerof2.c] Updated comment.
-------------------------------------------------------------------------
-r7599 | vlefevre | 2011-03-29 09:30:11 +0000 (Tue, 29 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/powerof2.c
-
-[src/powerof2.c] More detailed comment.
-------------------------------------------------------------------------
-r7595 | zimmerma | 2011-03-21 10:52:35 +0000 (Mon, 21 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/tools/cfarm.sh
-
-[cfarm.sh] complete tests with mpfr-3.0.1-rc1
-
-------------------------------------------------------------------------
-r7592 | vlefevre | 2011-03-21 02:43:09 +0000 (Mon, 21 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/pow_z.c
-
-[src/pow_z.c] Fixed bug bug20110320, that occurs in extremely reduced
-exponent range (more precisely, if 1 is out of range, i.e. emin > 1).
-------------------------------------------------------------------------
-r7591 | vlefevre | 2011-03-21 02:32:07 +0000 (Mon, 21 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Added testcase bug20110320.
-------------------------------------------------------------------------
-r7590 | vlefevre | 2011-03-21 02:13:16 +0000 (Mon, 21 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Added debug information.
-------------------------------------------------------------------------
-r7589 | zimmerma | 2011-03-20 19:24:24 +0000 (Sun, 20 Mar 2011) | 2 lines
-Changed paths:
- A /trunk/tools/cfarm.sh
-
-[cfarm.sh] shell script to test MPFR on the GCC Compile Farm
-
-------------------------------------------------------------------------
-r7587 | zimmerma | 2011-03-18 12:30:22 +0000 (Fri, 18 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/digamma.c
-
-[digamma.c] fixed compiler warning (ISO C90 forbids mixed declarations and code)
-
-------------------------------------------------------------------------
-r7581 | vlefevre | 2011-03-17 15:44:58 +0000 (Thu, 17 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added a note about the fix in the mpfr_subnormalize
-implementation, in case users would think the old behavior
-was chosen on purpose.
-------------------------------------------------------------------------
-r7578 | vlefevre | 2011-03-17 09:30:32 +0000 (Thu, 17 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/src/div_ui.c
-
-Completed r7575 (Get rid of deprecated register_printf_function
-function in logging system): there was a remaining old MPFR_LOG_FUNC
-in "src/div_ui.c". Now, the MPFR source no longer contains '%#R'.
-------------------------------------------------------------------------
-r7577 | vlefevre | 2011-03-17 08:45:21 +0000 (Thu, 17 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/mul_2si.c
-
-[src/mul_2si.c] Removed trailing whitespace.
-------------------------------------------------------------------------
-r7576 | vlefevre | 2011-03-17 08:43:54 +0000 (Thu, 17 Mar 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Fixed variable name from r7575.
-------------------------------------------------------------------------
-r7575 | thevenyp | 2011-03-17 06:30:11 +0000 (Thu, 17 Mar 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/cbrt.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/div.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/eint.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exp.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/gamma.c
- M /trunk/src/hypot.c
- M /trunk/src/jn.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/modf.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/root.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sub.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_sub.c
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
-
-Get rid of deprecated register_printf_function function in logging system.
-------------------------------------------------------------------------
-r7573 | vlefevre | 2011-03-15 15:15:22 +0000 (Tue, 15 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/src/erfc.c
-
-[src/erfc.c] Fixed a problem (incorrect flags or possible crash) in
-extremely reduced exponent range. Support the case where mpfr_prec_t
-is larger than a long.
-------------------------------------------------------------------------
-r7572 | vlefevre | 2011-03-15 15:10:40 +0000 (Tue, 15 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-[tests/terf.c] Added some tests of the flags (no failure in them,
-thanks to the mpfr_cmp_si (x, -27282) in erfc.c, for 1b).
-------------------------------------------------------------------------
-r7571 | vlefevre | 2011-03-15 11:23:25 +0000 (Tue, 15 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] In failure messages, output the name of the
-tested function. This is useful for programs that have generic
-tests for several functions, such as terf.
-------------------------------------------------------------------------
-r7570 | vlefevre | 2011-03-15 10:01:59 +0000 (Tue, 15 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-[tests/terf.c] Added a testcase showing a failure due to bad flags
-in a reduced exponent range.
-------------------------------------------------------------------------
-r7568 | vlefevre | 2011-03-14 09:44:21 +0000 (Mon, 14 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/terf.c
-
-[tests/terf.c] Changed mp_exp_t (r7564) to mpfr_exp_t.
-------------------------------------------------------------------------
-r7567 | vlefevre | 2011-03-11 15:45:48 +0000 (Fri, 11 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/erfc.c
-
-[src/erfc.c] Added an assertion for future platforms (e.g. with 128-bit
-exponent type).
-------------------------------------------------------------------------
-r7566 | vlefevre | 2011-03-11 15:37:07 +0000 (Fri, 11 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/erfc.c
-
-[src/erfc.c] Fixed r7564 (comparison must really be signed).
-------------------------------------------------------------------------
-r7565 | vlefevre | 2011-03-11 15:23:59 +0000 (Fri, 11 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/terf.c
-
-[tests/terf.c] Fixed test added in r7564 for 32-bit machines.
-------------------------------------------------------------------------
-r7564 | zimmerma | 2011-03-11 15:09:06 +0000 (Fri, 11 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/src/erfc.c
- M /trunk/tests/terf.c
-
-[erfc.c] fixed bug found by Pascal Molin: when we increase the exponent range
- on 64-bit machines, erfc() wrongly underflows for x >= 27282
-
-------------------------------------------------------------------------
-r7561 | vlefevre | 2011-03-10 14:48:28 +0000 (Thu, 10 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Fixed the MPFR_FAST_COMPUTE_IF_SMALL_INPUT test for n == 1
-in underflow cases.
-------------------------------------------------------------------------
-r7560 | vlefevre | 2011-03-10 13:46:23 +0000 (Thu, 10 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] No need for mpfr_clear_flags (already done in MPFR_BLOCK).
-------------------------------------------------------------------------
-r7559 | vlefevre | 2011-03-10 13:44:47 +0000 (Thu, 10 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Check that no intermediate underflow or overflow occurs.
-------------------------------------------------------------------------
-r7558 | vlefevre | 2011-03-10 13:30:33 +0000 (Thu, 10 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[doc/algorithms.tex] For the Bessel function, say that the algorithm
-assumes that no underflows/overflows occur.
-------------------------------------------------------------------------
-r7556 | vlefevre | 2011-03-09 15:54:42 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] More robust code (for the change in r7551).
-------------------------------------------------------------------------
-r7555 | vlefevre | 2011-03-09 15:52:33 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tsin_cos.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r7553 | vlefevre | 2011-03-09 15:38:58 +0000 (Wed, 09 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Added feature for MPFR_SUSPICIOUS_OVERFLOW to avoid
-spurious failures by defining TGENERIC_SO_TEST to some well-chosen test.
-------------------------------------------------------------------------
-r7552 | vlefevre | 2011-03-09 15:35:17 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added a comment about MPFR_SUSPICIOUS_OVERFLOW.
-------------------------------------------------------------------------
-r7551 | vlefevre | 2011-03-09 15:30:46 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Fixed the special code for tiny values.
-------------------------------------------------------------------------
-r7550 | vlefevre | 2011-03-09 15:29:44 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Corrected a test and added other tests for tiny x > 0.
-------------------------------------------------------------------------
-r7549 | vlefevre | 2011-03-09 14:57:05 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Updated a comment.
-------------------------------------------------------------------------
-r7548 | vlefevre | 2011-03-09 14:07:54 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Restore emax.
-------------------------------------------------------------------------
-r7547 | vlefevre | 2011-03-09 14:03:40 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Do not initialize x twice.
-------------------------------------------------------------------------
-r7546 | vlefevre | 2011-03-09 13:44:02 +0000 (Wed, 09 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Do not run the same test twice if emin = MPFR_EMIN_MIN.
-------------------------------------------------------------------------
-r7545 | vlefevre | 2011-03-09 13:41:51 +0000 (Wed, 09 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added tests for tiny values, showing bugs in special
-code for such values. Run tgamma with at least an argument to get all
-the failures.
-------------------------------------------------------------------------
-r7542 | vlefevre | 2011-03-07 15:17:24 +0000 (Mon, 07 Mar 2011) | 8 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Fixed mpfr_jn_k0() internal function:
- * The prototype was incorrect: one needs "unsigned long" for n
- (actually absn), in case absn is equal to - LONG_MIN.
- * The formula and the code were incorrect for n = 0, due to the
- division by n; it was yielding k0 = ULONG_MAX. The case n = 0
- is now handled separately.
- * Small optimization: division by log(2) -> multiplication by
- 1/log(2).
-------------------------------------------------------------------------
-r7541 | vlefevre | 2011-03-07 14:07:47 +0000 (Mon, 07 Mar 2011) | 4 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Avoid integer overflow in the computation of the initial
-working precision. This makes several tests fail, but logging shows
-that previous non-failure was due to undefined behavior due to huge
-k0 computed by mpfr_jn_k0.
-------------------------------------------------------------------------
-r7539 | vlefevre | 2011-03-07 13:03:30 +0000 (Mon, 07 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Added a comment for mpfrlint.
-------------------------------------------------------------------------
-r7538 | vlefevre | 2011-03-07 13:01:36 +0000 (Mon, 07 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Change of r7515: any mpfr_clear_* can be mentioned.
-------------------------------------------------------------------------
-r7537 | vlefevre | 2011-03-07 11:08:08 +0000 (Mon, 07 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Added comments and fixed a bug.
-------------------------------------------------------------------------
-r7536 | vlefevre | 2011-03-07 10:57:44 +0000 (Mon, 07 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Detect incorrect error analysis (that may have been the goal
-of the assertion corrected in r7534, but this wasn't documented). Added
-a FIXME comment.
-------------------------------------------------------------------------
-r7534 | vlefevre | 2011-03-07 10:40:24 +0000 (Mon, 07 Mar 2011) | 5 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Fixed incorrect assertion. It could occur only
-in precision >= 2^(1+s/2), where s is the bitsize of a
-"long", e.g. p >= 2^17 = 131072 on most 32-bit machines and
-p >= 2^33 = 8,589,934,592 on most 64-bit machines. Only some
-arguments are affected (|z| between around 2^(s/2) and p/2).
-------------------------------------------------------------------------
-r7533 | vlefevre | 2011-03-07 10:13:34 +0000 (Mon, 07 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Added a comment.
-------------------------------------------------------------------------
-r7532 | vlefevre | 2011-03-07 10:07:44 +0000 (Mon, 07 Mar 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Corrected a typo.
-------------------------------------------------------------------------
-r7530 | vlefevre | 2011-03-06 10:03:21 +0000 (Sun, 06 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Improved underflow detection. Still not complete, though.
-------------------------------------------------------------------------
-r7529 | vlefevre | 2011-03-06 09:51:13 +0000 (Sun, 06 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Comments: English usage.
-------------------------------------------------------------------------
-r7528 | vlefevre | 2011-03-05 00:19:31 +0000 (Sat, 05 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] mantissa -> significand (standard and correct term).
-------------------------------------------------------------------------
-r7527 | vlefevre | 2011-03-05 00:17:45 +0000 (Sat, 05 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-[tests/trint.c] Do not use snprintf (C99).
-------------------------------------------------------------------------
-r7526 | vlefevre | 2011-03-04 23:20:51 +0000 (Fri, 04 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a test to check that the snprintf function (C99)
-is not used.
-------------------------------------------------------------------------
-r7525 | demengeo | 2011-03-04 17:57:53 +0000 (Fri, 04 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-Previous extended coverage test in trint.c now self generate tests in and compare values
-------------------------------------------------------------------------
-r7524 | demengeo | 2011-03-04 14:14:13 +0000 (Fri, 04 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/trint.c
-
-Extend test coverage of mpfr_rint to 100%
-------------------------------------------------------------------------
-r7523 | zimmerma | 2011-03-03 19:27:37 +0000 (Thu, 03 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/add1sp.c
-
-[src/add1sp.c] same as previous commits
-
-------------------------------------------------------------------------
-r7522 | zimmerma | 2011-03-03 19:26:07 +0000 (Thu, 03 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/sub1sp.c
-
-[src/sub1sp.c] ibidem (see previous commit log)
-
-------------------------------------------------------------------------
-r7521 | zimmerma | 2011-03-03 19:24:25 +0000 (Thu, 03 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[add1.c] ibidem (see previous commit log)
-
-------------------------------------------------------------------------
-r7520 | vlefevre | 2011-03-03 18:54:10 +0000 (Thu, 03 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/src/add.c
- M /trunk/src/sub.c
-
-[src/add.c,src/sub.c] Split assertions for C90 compilers, to avoid
-too long strings generated by #expr. Problem seen with:
- gcc -ansi -pedantic-errors
-------------------------------------------------------------------------
-r7518 | vlefevre | 2011-03-03 16:18:16 +0000 (Thu, 03 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/yn.c
-
-[src/yn.c] Minor change.
-------------------------------------------------------------------------
-r7517 | vlefevre | 2011-03-03 16:17:36 +0000 (Thu, 03 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/yn.c
-
-[src/yn.c] Extend the exponent range (code not checked concerning
-internal exceptions, such as overflows, underflows and divby0).
-------------------------------------------------------------------------
-r7516 | vlefevre | 2011-03-03 15:41:28 +0000 (Thu, 03 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Added comments (for mpfrlint, in particular).
-------------------------------------------------------------------------
-r7515 | vlefevre | 2011-03-03 15:40:58 +0000 (Thu, 03 Mar 2011) | 4 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] The use of mpfr_overflow_p, etc. is allowed if
-mpfr_clear_flags is mentioned (useful for checking purpose at the
-end of a function, but this needs an explicit mpfr_clear_flags;
-otherwise MPFR_BLOCK should still be used).
-------------------------------------------------------------------------
-r7514 | vlefevre | 2011-03-03 15:29:10 +0000 (Thu, 03 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Completed scaling to avoid intermediate overflow/underflow.
-------------------------------------------------------------------------
-r7513 | vlefevre | 2011-03-03 12:09:34 +0000 (Thu, 03 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Bug fix in error computation: in Ziv's iteration, err kept
-its value from the previous iteration instead of being reset to 0.
-Consequence: a possible loss of performance in rare cases.
-------------------------------------------------------------------------
-r7512 | vlefevre | 2011-03-03 11:30:29 +0000 (Thu, 03 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Removed a useless assertion and updated comments.
-------------------------------------------------------------------------
-r7511 | vlefevre | 2011-03-02 14:05:39 +0000 (Wed, 02 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Added a FIXME comment.
-------------------------------------------------------------------------
-r7510 | vlefevre | 2011-03-02 13:58:05 +0000 (Wed, 02 Mar 2011) | 1 line
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Updated exception checking (more informative).
-------------------------------------------------------------------------
-r7509 | vlefevre | 2011-03-02 13:54:18 +0000 (Wed, 02 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Check internal exceptions: the error analysis may be
-incorrect in case of exception.
-------------------------------------------------------------------------
-r7508 | vlefevre | 2011-03-02 13:41:36 +0000 (Wed, 02 Mar 2011) | 2 lines
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Implemented scaling to avoid intermediate overflow/underflow
-(but the tagm test still fails, due to a rounding error this time).
-------------------------------------------------------------------------
-r7507 | vlefevre | 2011-03-02 10:03:40 +0000 (Wed, 02 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tagm.c
-
-[tests/tagm.c] Added tests triggering intermediate underflow/overflow.
-------------------------------------------------------------------------
-r7506 | vlefevre | 2011-03-02 09:15:24 +0000 (Wed, 02 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tagm.c
-
-[tests/tagm.c] Also test the ternary value and the flags.
-------------------------------------------------------------------------
-r7505 | vlefevre | 2011-03-02 08:57:31 +0000 (Wed, 02 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tagm.c
-
-[tests/tagm.c] Corrected values (using Pari).
-------------------------------------------------------------------------
-r7504 | vlefevre | 2011-03-02 08:36:00 +0000 (Wed, 02 Mar 2011) | 3 lines
-Changed paths:
- M /trunk/src/agm.c
-
-[src/agm.c] Extend the exponent range. This doesn't make the algorithm
-correct yet, as intermediate underflow or overflow is still possible in
-the first multiplication.
-------------------------------------------------------------------------
-r7503 | demengeo | 2011-03-01 18:10:07 +0000 (Tue, 01 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-Change some functions called in test tsin_cos.c
-------------------------------------------------------------------------
-r7502 | demengeo | 2011-03-01 17:08:11 +0000 (Tue, 01 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-Extend coverage test of mpfr_sincos_fast to 100%
-------------------------------------------------------------------------
-r7501 | demengeo | 2011-03-01 15:47:36 +0000 (Tue, 01 Mar 2011) | 1 line
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-Extend coverage test of mpfr_custom_get_kind to 100%
-------------------------------------------------------------------------
-r7500 | vlefevre | 2011-02-25 16:39:22 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Fix: support reduced exponent ranges for small inputs.
-------------------------------------------------------------------------
-r7499 | vlefevre | 2011-02-25 16:23:48 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Added a comment about an overflow case.
-------------------------------------------------------------------------
-r7498 | vlefevre | 2011-02-25 16:20:41 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added tests in maximum exponent range.
-------------------------------------------------------------------------
-r7497 | vlefevre | 2011-02-25 16:15:10 +0000 (Fri, 25 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Fixed flags when x if very small (protect from
-intermediate overflow).
-------------------------------------------------------------------------
-r7496 | vlefevre | 2011-02-25 16:08:03 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Corrected test number.
-------------------------------------------------------------------------
-r7495 | vlefevre | 2011-02-25 16:07:17 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added a test in maximum exponent range.
-------------------------------------------------------------------------
-r7494 | vlefevre | 2011-02-25 16:02:48 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/gamma.c
-
-[src/gamma.c] Fixed inexact flag when x if very small.
-------------------------------------------------------------------------
-r7493 | vlefevre | 2011-02-25 16:02:04 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Added tests.
-------------------------------------------------------------------------
-r7492 | vlefevre | 2011-02-25 15:17:44 +0000 (Fri, 25 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/src/gamma.c
- M /trunk/tests/tgamma.c
-
-[src/gamma.c] Fixed a bug occurring in reduced exponent range.
-[tests/tgamma.c] Added corresponding testcase.
-------------------------------------------------------------------------
-r7491 | vlefevre | 2011-02-25 14:50:37 +0000 (Fri, 25 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/src/lngamma.c
-
-[src/lngamma.c] Do not use MPFR_EXP after a mpfr_clear (even though
-this currently work).
-------------------------------------------------------------------------
-r7490 | vlefevre | 2011-02-25 14:23:20 +0000 (Fri, 25 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/src/rem1.c
-
-[src/rem1.c] Fixed mpfr_rem1 in reduced exponent range (the function
-is actually simplified).
-------------------------------------------------------------------------
-r7487 | zimmerma | 2011-02-25 07:49:00 +0000 (Fri, 25 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added an item
-
-------------------------------------------------------------------------
-r7486 | vlefevre | 2011-02-25 02:45:40 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul_2si.c
-
-Fixed mpfr_div_2si, mpfr_div_2ui and mpfr_mul_2si in some corner cases.
-------------------------------------------------------------------------
-r7485 | vlefevre | 2011-02-25 02:38:25 +0000 (Fri, 25 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Small correction in output (in case of failure).
-------------------------------------------------------------------------
-r7484 | vlefevre | 2011-02-21 23:41:20 +0000 (Mon, 21 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tset_q.c
-
-[tests/tset_q.c] Corrections in function prototypes.
-------------------------------------------------------------------------
-r7483 | demengeo | 2011-02-21 16:17:14 +0000 (Mon, 21 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tgmpop.c
-
-Remove the use of mpfr_get_default_prec in some coverage test
-------------------------------------------------------------------------
-r7482 | demengeo | 2011-02-21 15:59:32 +0000 (Mon, 21 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tset_q.c
-
-Add some coverage test in tests/tset_q.c
-------------------------------------------------------------------------
-r7481 | demengeo | 2011-02-21 13:07:44 +0000 (Mon, 21 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tgmpop.c
-
-fixed coding convention of 2 tests functions
-------------------------------------------------------------------------
-r7480 | zimmerma | 2011-02-19 08:18:28 +0000 (Sat, 19 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-[tget_d.c] fixed some compiler errors and warnings
-
-------------------------------------------------------------------------
-r7479 | vlefevre | 2011-02-18 15:27:22 +0000 (Fri, 18 Feb 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Split a printf into several ones to reduce the
-string length below the 509-byte limit from C90 (useful to avoid
-an error when testing with gcc -ansi -pedantic-errors).
-------------------------------------------------------------------------
-r7478 | demengeo | 2011-02-18 15:13:38 +0000 (Fri, 18 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-Extend test coverage to 100% on mpfr_z_sub and mpfr_mul_q function
-------------------------------------------------------------------------
-r7477 | demengeo | 2011-02-18 14:53:44 +0000 (Fri, 18 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tget_d.c
-
-Extend test coverage on mpfr_get_d_2exp function
-------------------------------------------------------------------------
-r7476 | vlefevre | 2011-02-18 11:43:30 +0000 (Fri, 18 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Also test mpfr_div_2si and mpfr_div_2ui (same bug).
-------------------------------------------------------------------------
-r7475 | vlefevre | 2011-02-18 11:37:39 +0000 (Fri, 18 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-[tests/tmul_2exp.c] Added a testcase showing a bug in mpfr_mul_2si
-(possible intermediate overflow).
-------------------------------------------------------------------------
-r7474 | vlefevre | 2011-02-18 10:29:13 +0000 (Fri, 18 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
-
-[src/zeta.c] Support zeta(eps) with |eps| very small or 0
-in extremely reduced exponent range.
-------------------------------------------------------------------------
-r7473 | vlefevre | 2011-02-18 09:54:09 +0000 (Fri, 18 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/src/atan2.c
-
-[src/atan2.c] Fix: the overflow or underflow flag was set in the case
-x = power of two and y/x overflows or underflows.
-------------------------------------------------------------------------
-r7472 | vlefevre | 2011-02-18 09:48:15 +0000 (Fri, 18 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/atan2.c
-
-[src/atan2.c] Support special cases in extremely reduced exponent range.
-------------------------------------------------------------------------
-r7471 | vlefevre | 2011-02-18 09:17:14 +0000 (Fri, 18 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/acos.c
-
-[src/acos.c] Support acos(0) in extremely reduced exponent range.
-------------------------------------------------------------------------
-r7470 | vlefevre | 2011-02-17 13:44:57 +0000 (Thu, 17 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Added generic tests in a reduced exponent range.
-This currently makes 10 tests fail on a 64-bit machine.
-------------------------------------------------------------------------
-r7469 | vlefevre | 2011-02-17 13:43:31 +0000 (Thu, 17 Feb 2011) | 3 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
-
-[tests/mpfr-test.h] Defined a SAME_VAL(X,Y) macro to test whether two
-floating-point data have the same value, seen as an element of the set
-of the floating-point data (Level 2 in the IEEE 754-2008 standard).
-------------------------------------------------------------------------
-r7468 | vlefevre | 2011-02-17 13:41:12 +0000 (Thu, 17 Feb 2011) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Defined a MPFR_EXP_FSPEC macro containing the
-format specifier for mpfr_eexp_t, to output an exponent with:
- printf ("%" MPFR_EXP_FSPEC "d", (mpfr_eexp_t) exponent);
-------------------------------------------------------------------------
-r7467 | vlefevre | 2011-02-17 12:01:57 +0000 (Thu, 17 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Reformat.
-------------------------------------------------------------------------
-r7465 | vlefevre | 2011-02-17 11:33:30 +0000 (Thu, 17 Feb 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a warning about whitespace in the mpfr.texi file.
-------------------------------------------------------------------------
-r7463 | vlefevre | 2011-02-17 11:10:58 +0000 (Thu, 17 Feb 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Fixed spacing for the mpfr.info file.
-------------------------------------------------------------------------
-r7460 | vlefevre | 2011-02-10 01:31:16 +0000 (Thu, 10 Feb 2011) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect the use of mp_ptr and mp_srcptr.
-------------------------------------------------------------------------
-r7459 | vlefevre | 2011-02-10 01:26:13 +0000 (Thu, 10 Feb 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7458 | vlefevre | 2011-02-10 01:25:00 +0000 (Thu, 10 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Added a blank line.
-------------------------------------------------------------------------
-r7457 | demengeo | 2011-02-09 17:34:50 +0000 (Wed, 09 Feb 2011) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/gmp_op.c
- M /trunk/src/mpfr.h
- M /trunk/tests/tgmpop.c
-
-Added mpfr_z_sub (function/test/doc)
-------------------------------------------------------------------------
-r7455 | vlefevre | 2011-02-09 14:15:10 +0000 (Wed, 09 Feb 2011) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/src/eq.c
- M /trunk/src/init2.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mulders.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/round_prec.c
- M /trunk/src/set_d.c
- M /trunk/src/set_prec.c
- M /trunk/src/sqrt.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/tests/random2.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Added new types mpfr_limb_ptr and mpfr_limb_srcptr to src/mpfr-impl.h,
-and replaced mp_ptr and mp_srcptr (GMP internals) by these 2 new types
-respectively.
-------------------------------------------------------------------------
-r7453 | vlefevre | 2011-02-08 11:43:39 +0000 (Tue, 08 Feb 2011) | 3 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Fix for Intel's compiler (ICC) under MS Windows:
-MPFR was incorrectly assuming that ICC had some extensions like
-under GNU/Linux. This made the MPFR compilation fail.
-------------------------------------------------------------------------
-r7452 | vlefevre | 2011-02-08 02:48:01 +0000 (Tue, 08 Feb 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Corrected a typo in a comment.
-------------------------------------------------------------------------
-r7451 | vlefevre | 2011-02-05 13:37:55 +0000 (Sat, 05 Feb 2011) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Removed incorrect note.
-------------------------------------------------------------------------
-r7450 | zimmerma | 2011-02-05 08:15:42 +0000 (Sat, 05 Feb 2011) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added hint for VS2008 and Intel compiler v11.1
-
-------------------------------------------------------------------------
-r7448 | vlefevre | 2011-02-03 09:02:05 +0000 (Thu, 03 Feb 2011) | 1 line
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.ac
-
-[configure.ac,Makefile.am] Clean-up and depend on GNU Automake 1.11.
-------------------------------------------------------------------------
-r7443 | vlefevre | 2011-01-31 01:53:11 +0000 (Mon, 31 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/zeta_ui.c
- M /trunk/tests/tzeta_ui.c
-
-[src/zeta_ui.c,tests/tzeta_ui.c] Patch from Patrick Pélissier for
-the division-by-zero support in mpfr_zeta_ui (and test):
-------------------------------------------------------------------------
-r7442 | zimmerma | 2011-01-30 09:33:00 +0000 (Sun, 30 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/zeta.c
- M /trunk/tests/tzeta.c
-
-[src/zeta.c] patch from Patrick Pelissier (problem with division by zero flag)
-
-------------------------------------------------------------------------
-r7440 | zimmerma | 2011-01-28 16:19:45 +0000 (Fri, 28 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed division by zero item (done)
-
-------------------------------------------------------------------------
-r7439 | zimmerma | 2011-01-28 16:18:25 +0000 (Fri, 28 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/src/get_str.c
-
-[src/get_str.c,TODO] updated comments, mpfr_get_str already supports base <= 62
-
-------------------------------------------------------------------------
-r7438 | vlefevre | 2011-01-27 17:53:35 +0000 (Thu, 27 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tj0.c
-
-[tests/tj0.c] GMP_RNDN → MPFR_RNDN.
-------------------------------------------------------------------------
-r7437 | vlefevre | 2011-01-27 17:07:48 +0000 (Thu, 27 Jan 2011) | 4 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/subnormal.c
- M /trunk/tests/tsubnormal.c
-
-[src/subnormal.c] Set the inexact and underflow flags when needed. Fixes
- https://gforge.inria.fr/tracker/index.php?func=detail&aid=7958&group_id=136&atid=622
-[tests/tsubnormal.c] Improved the tests, in particular for the flags.
-[doc/mpfr.texi] Documented the change.
-------------------------------------------------------------------------
-r7436 | vlefevre | 2011-01-27 16:38:35 +0000 (Thu, 27 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrected order in Section "Changed Functions".
-------------------------------------------------------------------------
-r7435 | vlefevre | 2011-01-27 14:17:49 +0000 (Thu, 27 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tj0.c
-
-[tests/tj0.c] Added case for which s = 0 occurs in mpfr_jn.
-------------------------------------------------------------------------
-r7434 | vlefevre | 2011-01-27 13:54:45 +0000 (Thu, 27 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Added a log message.
-------------------------------------------------------------------------
-r7433 | vlefevre | 2011-01-27 13:47:11 +0000 (Thu, 27 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/div_ui.c
-
-[src/div_ui.c] Added logging support.
-------------------------------------------------------------------------
-r7431 | vlefevre | 2011-01-26 14:06:39 +0000 (Wed, 26 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Fixed bug in test (do not set the exponent on 0).
-------------------------------------------------------------------------
-r7430 | vlefevre | 2011-01-26 13:58:44 +0000 (Wed, 26 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Formatting.
-------------------------------------------------------------------------
-r7429 | vlefevre | 2011-01-26 13:58:21 +0000 (Wed, 26 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-[tests/tsum.c] Fixed get_prec_max and added some checks.
-Current failure: tab[1] is not valid.
-------------------------------------------------------------------------
-r7428 | vlefevre | 2011-01-26 13:28:10 +0000 (Wed, 26 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Added an assertion.
-------------------------------------------------------------------------
-r7427 | vlefevre | 2011-01-26 13:12:06 +0000 (Wed, 26 Jan 2011) | 4 lines
-Changed paths:
- M /trunk/src/check.c
-
-[src/check.c] Replaced MPFR_IS_PURE_FP by !MPFR_IS_SINGULAR, the
-former macro now has a check for validity in debug mode (r7426).
-The goal of mpfr_check is to test the validity, so that we don't
-want this check here.
-------------------------------------------------------------------------
-r7426 | vlefevre | 2011-01-26 13:05:53 +0000 (Wed, 26 Jan 2011) | 4 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] In the MPFR_IS_PURE_FP test, if positive, check that
-the number is normalized (debug mode only). This makes 2 tests fail:
-tcheck and tsum. Note: with logging active, tsum was already triggering
-an assertion failure in mpfr_get_str (via mpfr_add).
-------------------------------------------------------------------------
-r7425 | vlefevre | 2011-01-26 12:51:41 +0000 (Wed, 26 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/add.c
-
-[src/add.c] Formatting.
-------------------------------------------------------------------------
-r7423 | vlefevre | 2011-01-26 12:02:31 +0000 (Wed, 26 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/li2.c
-
-[src/li2.c] Fixed crash in mpfr_li2 when logging is used.
-------------------------------------------------------------------------
-r7421 | vlefevre | 2011-01-24 16:37:43 +0000 (Mon, 24 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Corrected a comment.
-------------------------------------------------------------------------
-r7420 | zimmerma | 2011-01-24 16:14:18 +0000 (Mon, 24 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] added notes for correctness of the algorithm used
-
-------------------------------------------------------------------------
-r7419 | vlefevre | 2011-01-24 12:41:28 +0000 (Mon, 24 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] C90 compatibility fix (empty macro arguments are undefined).
-------------------------------------------------------------------------
-r7418 | vlefevre | 2011-01-24 10:17:50 +0000 (Mon, 24 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Added an assaertion against a potential overflow (which
-probably never occurs, but this should be proved...).
-------------------------------------------------------------------------
-r7417 | zimmerma | 2011-01-24 07:21:27 +0000 (Mon, 24 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] patch from Patrick Pelissier
-
-------------------------------------------------------------------------
-r7416 | vlefevre | 2011-01-23 04:04:08 +0000 (Sun, 23 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Forgot to change an MPFR_EXP to MPFR_GET_EXP.
-------------------------------------------------------------------------
-r7415 | vlefevre | 2011-01-23 04:02:09 +0000 (Sun, 23 Jan 2011) | 3 lines
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Replaced MPFR_EXP by MPFR_GET_EXP when the value should
-really be an exponent. Removed incorrect and useless casts. Added
-an assertion to protect against potentially incorrect code.
-------------------------------------------------------------------------
-r7414 | vlefevre | 2011-01-23 03:41:39 +0000 (Sun, 23 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/jn.c
-
-[src/jn.c] Patch from Patrick Pélissier (mpfr_check_range and other).
-------------------------------------------------------------------------
-r7413 | vlefevre | 2011-01-21 14:19:35 +0000 (Fri, 21 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Update the check for mpfr_printf-like functions
-in the tests.
-------------------------------------------------------------------------
-r7412 | vlefevre | 2011-01-21 14:15:39 +0000 (Fri, 21 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-[tests/tprintf.c] Consistency.
-------------------------------------------------------------------------
-r7411 | vlefevre | 2011-01-21 13:59:12 +0000 (Fri, 21 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgrandom.c
-
-[tests/tgrandom.c] Added a comment.
-------------------------------------------------------------------------
-r7410 | vlefevre | 2011-01-21 13:54:50 +0000 (Fri, 21 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgrandom.c
-
-[tests/tgrandom.c] Protection of the mpfr_printf by #ifdef HAVE_STDARG.
-------------------------------------------------------------------------
-r7408 | vlefevre | 2011-01-20 12:13:58 +0000 (Thu, 20 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/eint.c
-
-[src/eint.c] Added a FIXME.
-------------------------------------------------------------------------
-r7406 | zimmerma | 2011-01-18 16:50:28 +0000 (Tue, 18 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/out_raw.c
-
-[src/out_raw.c] added pointer to discussion
-
-------------------------------------------------------------------------
-r7405 | vlefevre | 2011-01-17 13:11:15 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tvalist.c
-
-[tests/tvalist.c] Correction for C++ compilers.
-------------------------------------------------------------------------
-r7403 | vlefevre | 2011-01-17 04:01:56 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Added division-by-zero exception.
-------------------------------------------------------------------------
-r7402 | vlefevre | 2011-01-17 03:55:51 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated "To make a release".
-------------------------------------------------------------------------
-r7401 | vlefevre | 2011-01-17 03:52:41 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update for MPFR 3.1.x.
-------------------------------------------------------------------------
-r7400 | vlefevre | 2011-01-17 03:39:24 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/grandom.c
-
-[src/grandom.c] Reformat.
-------------------------------------------------------------------------
-r7399 | vlefevre | 2011-01-17 03:36:24 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] tests/tvalist.c can use mpfr_printf-like functions.
-------------------------------------------------------------------------
-r7398 | vlefevre | 2011-01-17 03:34:40 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgrandom.c
-
-[tests/tgrandom.c] Added a FIXME: do not use mpfr_printf in the tests.
-------------------------------------------------------------------------
-r7397 | vlefevre | 2011-01-17 03:33:17 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tai.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tfrexp.c
- M /trunk/tests/tgrandom.c
-
-[tests] Untabified and removed trailing spaces.
-------------------------------------------------------------------------
-r7396 | vlefevre | 2011-01-17 03:31:25 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/grandom.c
- M /trunk/src/mpfr.h
-
-[src/grandom.c,src/mpfr.h] Untabified and removed trailing spaces.
-------------------------------------------------------------------------
-r7395 | vlefevre | 2011-01-17 03:29:36 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/frexp.c
-
-[src/frexp.c] Corrections.
-------------------------------------------------------------------------
-r7394 | vlefevre | 2011-01-17 03:25:50 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/out_raw.c
-
-[src/out_raw.c] Untabified.
-------------------------------------------------------------------------
-r7393 | vlefevre | 2011-01-17 03:25:07 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/out_raw.c
-
-[src/out_raw.c] Fixed some bugs on the incomplete code.
-------------------------------------------------------------------------
-r7392 | vlefevre | 2011-01-17 03:06:09 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/atan2.c
-
-[src/atan2.c] MPFR_EXP -> MPFR_GET_EXP and reformat.
-------------------------------------------------------------------------
-r7391 | vlefevre | 2011-01-17 03:05:33 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/ai.c
-
-[src/ai.c] Removed trailing spaces.
-------------------------------------------------------------------------
-r7390 | vlefevre | 2011-01-17 03:02:39 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7389 | vlefevre | 2011-01-17 03:01:30 +0000 (Mon, 17 Jan 2011) | 4 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/configure.ac
- M /trunk/doc/FAQ.html
- M /trunk/doc/Makefile.am
- M /trunk/doc/faq.xsl
- M /trunk/doc/mpfr.texi
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/src/Makefile.am
- M /trunk/src/abort_prec_max.c
- M /trunk/src/acos.c
- M /trunk/src/acosh.c
- M /trunk/src/add.c
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/add_d.c
- M /trunk/src/add_ui.c
- M /trunk/src/agm.c
- M /trunk/src/ai.c
- M /trunk/src/asin.c
- M /trunk/src/asinh.c
- M /trunk/src/atan.c
- M /trunk/src/atan2.c
- M /trunk/src/atanh.c
- M /trunk/src/bernoulli.c
- M /trunk/src/buildopt.c
- M /trunk/src/cache.c
- M /trunk/src/cbrt.c
- M /trunk/src/check.c
- M /trunk/src/clear.c
- M /trunk/src/clears.c
- M /trunk/src/cmp.c
- M /trunk/src/cmp2.c
- M /trunk/src/cmp_abs.c
- M /trunk/src/cmp_d.c
- M /trunk/src/cmp_ld.c
- M /trunk/src/cmp_si.c
- M /trunk/src/cmp_ui.c
- M /trunk/src/comparisons.c
- M /trunk/src/const_catalan.c
- M /trunk/src/const_euler.c
- M /trunk/src/const_log2.c
- M /trunk/src/const_pi.c
- M /trunk/src/constant.c
- M /trunk/src/copysign.c
- M /trunk/src/cos.c
- M /trunk/src/cosh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/d_div.c
- M /trunk/src/d_sub.c
- M /trunk/src/digamma.c
- M /trunk/src/dim.c
- M /trunk/src/div.c
- M /trunk/src/div_2exp.c
- M /trunk/src/div_2si.c
- M /trunk/src/div_2ui.c
- M /trunk/src/div_d.c
- M /trunk/src/div_ui.c
- M /trunk/src/dump.c
- M /trunk/src/eint.c
- M /trunk/src/eq.c
- M /trunk/src/erf.c
- M /trunk/src/erfc.c
- M /trunk/src/exceptions.c
- M /trunk/src/exp.c
- M /trunk/src/exp10.c
- M /trunk/src/exp2.c
- M /trunk/src/exp3.c
- M /trunk/src/exp_2.c
- M /trunk/src/expm1.c
- M /trunk/src/extract.c
- M /trunk/src/factorial.c
- M /trunk/src/fits_intmax.c
- M /trunk/src/fits_s.h
- M /trunk/src/fits_sint.c
- M /trunk/src/fits_slong.c
- M /trunk/src/fits_sshort.c
- M /trunk/src/fits_u.h
- M /trunk/src/fits_uint.c
- M /trunk/src/fits_uintmax.c
- M /trunk/src/fits_ulong.c
- M /trunk/src/fits_ushort.c
- M /trunk/src/fma.c
- M /trunk/src/fms.c
- M /trunk/src/frac.c
- M /trunk/src/free_cache.c
- M /trunk/src/gamma.c
- M /trunk/src/gammaonethird.c
- M /trunk/src/gen_inverse.h
- M /trunk/src/get_d.c
- M /trunk/src/get_d64.c
- M /trunk/src/get_exp.c
- M /trunk/src/get_f.c
- M /trunk/src/get_flt.c
- M /trunk/src/get_ld.c
- M /trunk/src/get_si.c
- M /trunk/src/get_sj.c
- M /trunk/src/get_str.c
- M /trunk/src/get_ui.c
- M /trunk/src/get_uj.c
- M /trunk/src/get_z.c
- M /trunk/src/get_z_exp.c
- M /trunk/src/gmp_op.c
- M /trunk/src/hypot.c
- M /trunk/src/ieee_floats.h
- M /trunk/src/init.c
- M /trunk/src/init2.c
- M /trunk/src/inits.c
- M /trunk/src/inits2.c
- M /trunk/src/inp_str.c
- M /trunk/src/int_ceil_log2.c
- M /trunk/src/isinf.c
- M /trunk/src/isinteger.c
- M /trunk/src/isnan.c
- M /trunk/src/isnum.c
- M /trunk/src/isqrt.c
- M /trunk/src/isregular.c
- M /trunk/src/iszero.c
- M /trunk/src/jn.c
- M /trunk/src/jyn_asympt.c
- M /trunk/src/li2.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log1p.c
- M /trunk/src/log2.c
- M /trunk/src/logging.c
- M /trunk/src/min_prec.c
- M /trunk/src/minmax.c
- M /trunk/src/modf.c
- M /trunk/src/mp_clz_tab.c
- M /trunk/src/mparam_h.in
- M /trunk/src/mpf2mpfr.h
- M /trunk/src/mpfr-gmp.c
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr-longlong.h
- M /trunk/src/mpfr-thread.h
- M /trunk/src/mpfr.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_2exp.c
- M /trunk/src/mul_2si.c
- M /trunk/src/mul_2ui.c
- M /trunk/src/mul_d.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/neg.c
- M /trunk/src/next.c
- M /trunk/src/out_str.c
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_ui.c
- M /trunk/src/pow_z.c
- M /trunk/src/powerof2.c
- M /trunk/src/print_raw.c
- M /trunk/src/print_rnd_mode.c
- M /trunk/src/printf.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/reldiff.c
- M /trunk/src/rem1.c
- M /trunk/src/rint.c
- M /trunk/src/root.c
- M /trunk/src/round_near_x.c
- M /trunk/src/round_p.c
- M /trunk/src/round_prec.c
- M /trunk/src/round_raw_generic.c
- M /trunk/src/scale2.c
- M /trunk/src/sec.c
- M /trunk/src/sech.c
- M /trunk/src/set.c
- M /trunk/src/set_d.c
- M /trunk/src/set_d64.c
- M /trunk/src/set_dfl_prec.c
- M /trunk/src/set_exp.c
- M /trunk/src/set_f.c
- M /trunk/src/set_flt.c
- M /trunk/src/set_inf.c
- M /trunk/src/set_ld.c
- M /trunk/src/set_nan.c
- M /trunk/src/set_prc_raw.c
- M /trunk/src/set_prec.c
- M /trunk/src/set_q.c
- M /trunk/src/set_rnd.c
- M /trunk/src/set_si.c
- M /trunk/src/set_si_2exp.c
- M /trunk/src/set_sj.c
- M /trunk/src/set_str.c
- M /trunk/src/set_str_raw.c
- M /trunk/src/set_ui.c
- M /trunk/src/set_ui_2exp.c
- M /trunk/src/set_uj.c
- M /trunk/src/set_z.c
- M /trunk/src/set_z_exp.c
- M /trunk/src/set_zero.c
- M /trunk/src/setmax.c
- M /trunk/src/setmin.c
- M /trunk/src/setsign.c
- M /trunk/src/sgn.c
- M /trunk/src/si_op.c
- M /trunk/src/signbit.c
- M /trunk/src/sin.c
- M /trunk/src/sin_cos.c
- M /trunk/src/sinh.c
- M /trunk/src/sinh_cosh.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/sqrt_ui.c
- M /trunk/src/stack_interface.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/src/sub_d.c
- M /trunk/src/sub_ui.c
- M /trunk/src/subnormal.c
- M /trunk/src/sum.c
- M /trunk/src/swap.c
- M /trunk/src/tan.c
- M /trunk/src/tanh.c
- M /trunk/src/uceil_exp2.c
- M /trunk/src/uceil_log2.c
- M /trunk/src/ufloor_log2.c
- M /trunk/src/ui_div.c
- M /trunk/src/ui_pow.c
- M /trunk/src/ui_pow_ui.c
- M /trunk/src/ui_sub.c
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/src/vasprintf.c
- M /trunk/src/version.c
- M /trunk/src/volatile.c
- M /trunk/src/yn.c
- M /trunk/src/zeta.c
- M /trunk/src/zeta_ui.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tools/ck-version-info
- M /trunk/tools/get_patches.sh
- M /trunk/tune/Makefile.am
- M /trunk/tune/bidimensional_sample.c
- M /trunk/tune/speed.c
- M /trunk/tune/tuneup.c
-
-Copyright notice update: added 2011 with
- perl -pi -e 's/2010 Free Software/2010, 2011 Free Software/' **/*(^/)
-under zsh, reverting the ChangeLog file and the m4 and tools/mbench
-directories.
-------------------------------------------------------------------------
-r7388 | vlefevre | 2011-01-17 02:57:17 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated year in example.
-------------------------------------------------------------------------
-r7387 | vlefevre | 2011-01-17 02:51:54 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-------------------------------------------------------------------------
-r7386 | vlefevre | 2011-01-17 02:26:55 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/pow.c
-
-[src/pow.c] Added an assertion.
-------------------------------------------------------------------------
-r7385 | vlefevre | 2011-01-17 02:20:19 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/td_div.c
-
-[tests/td_div.c] Consistency change.
-------------------------------------------------------------------------
-r7384 | vlefevre | 2011-01-17 02:19:11 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tdiv_d.c
-
-[tests/tdiv_d.c] Updated test of special cases.
-------------------------------------------------------------------------
-r7383 | vlefevre | 2011-01-17 02:13:23 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/log1p.c
-
-[src/log1p.c] Added support for the division-by-zero exception.
-------------------------------------------------------------------------
-r7382 | vlefevre | 2011-01-17 02:10:32 +0000 (Mon, 17 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tlog1p.c
-
-[tests/tlog1p.c] Test the flags for special cases.
-------------------------------------------------------------------------
-r7381 | vlefevre | 2011-01-17 02:04:11 +0000 (Mon, 17 Jan 2011) | 4 lines
-Changed paths:
- M /trunk/src/atanh.c
- M /trunk/src/cot.c
- M /trunk/src/coth.c
- M /trunk/src/csc.c
- M /trunk/src/csch.c
- M /trunk/src/digamma.c
- M /trunk/src/eint.c
- M /trunk/src/gamma.c
- M /trunk/src/lngamma.c
- M /trunk/src/log.c
- M /trunk/src/log10.c
- M /trunk/src/log2.c
-
-Added support for the division-by-zero exception in functions
-mpfr_atanh, mpfr_cot, mpfr_coth, mpfr_csc, mpfr_csch,
-mpfr_digamma, mpfr_eint, mpfr_gamma, mpfr_lgamma, mpfr_lngamma,
-mpfr_log, mpfr_log2 and mpfr_log10.
-------------------------------------------------------------------------
-r7380 | lfousse | 2011-01-16 21:13:28 +0000 (Sun, 16 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgrandom.c
-
-[tests/tgrandom.c] Add missing cast for malloc.
-------------------------------------------------------------------------
-r7379 | vlefevre | 2011-01-16 14:00:34 +0000 (Sun, 16 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/yn.c
-
-[src/yn.c] Added support for the division-by-zero exception.
-------------------------------------------------------------------------
-r7378 | vlefevre | 2011-01-16 13:57:55 +0000 (Sun, 16 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Added support for the division-by-zero exception.
-------------------------------------------------------------------------
-r7377 | vlefevre | 2011-01-16 13:55:41 +0000 (Sun, 16 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/pow_si.c
-
-[src/pow_si.c] Improved robustness (in case of future changes).
-------------------------------------------------------------------------
-r7376 | vlefevre | 2011-01-16 13:51:36 +0000 (Sun, 16 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/pow.c
- M /trunk/src/pow_si.c
- M /trunk/src/pow_z.c
- M /trunk/tests/tpow.c
-
-Added support for the division-by-zero exception for the power functions
-(with additional tests). (Corrected patch from Patrick.)
-------------------------------------------------------------------------
-r7375 | lfousse | 2011-01-16 00:25:40 +0000 (Sun, 16 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/grandom.c (from /trunk/src/urandom_gaussian.c:7374)
- M /trunk/src/mpfr.h
- D /trunk/src/urandom_gaussian.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tgrandom.c (from /trunk/tests/turandom_gaussian.c:7374)
- D /trunk/tests/turandom_gaussian.c
-
-Rename mpfr_urandom_gaussian to mpfr_grandom.
-------------------------------------------------------------------------
-r7374 | vlefevre | 2011-01-15 14:33:25 +0000 (Sat, 15 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Corrections for mpfr_urandom_gaussian.
-------------------------------------------------------------------------
-r7373 | vlefevre | 2011-01-15 14:28:43 +0000 (Sat, 15 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/turandom_gaussian.c
-
-[tests/turandom_gaussian.c] Fixed C99-only code.
-------------------------------------------------------------------------
-r7372 | zimmerma | 2011-01-15 08:14:51 +0000 (Sat, 15 Jan 2011) | 5 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/doc/mpfr.texi
- M /trunk/src/Makefile.am
- A /trunk/src/frexp.c
- M /trunk/src/mpfr.h
- M /trunk/src/out_raw.c
- M /trunk/src/urandom_gaussian.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tfrexp.c
-
-[src/frexp.c,tests/tfrexp.c] added new function mpfr_frexp
-[src/urandom_gaussian.c] fixed copyright line
-[src/out_raw.c] started writing code (work in progress, please continue if
- you are interested)
-
-------------------------------------------------------------------------
-r7371 | lfousse | 2011-01-14 22:11:44 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Document urandom_gaussian.
-------------------------------------------------------------------------
-r7370 | lfousse | 2011-01-14 22:10:58 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Include turandom_gaussian in tests.
-------------------------------------------------------------------------
-r7369 | lfousse | 2011-01-14 22:10:44 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- A /trunk/tests/turandom_gaussian.c
-
-[tests/turandom_gaussian.c] Add tests for urandom_gaussian.
-------------------------------------------------------------------------
-r7368 | vlefevre | 2011-01-14 19:54:38 +0000 (Fri, 14 Jan 2011) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-[tests/tdiv.c] Added consistency tests between mpfr_div, mpfr_ui_div,
-mpfr_si_div, mpfr_div_ui and mpfr_div_si (check the ternary value,
-the flags and the result of the division).
-------------------------------------------------------------------------
-r7367 | vlefevre | 2011-01-14 19:52:06 +0000 (Fri, 14 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/div_ui.c
- M /trunk/src/ui_div.c
-
-[src/ui_div.c] Fixed prototype formatting.
-[src/div_ui.c] Fixed prototype formatting. Set division-by-zero flag.
-------------------------------------------------------------------------
-r7366 | lfousse | 2011-01-14 17:46:07 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/urandom_gaussian.c
-
-[src/urandom_gaussian.c] Fix x -> xp, and scaling.
-------------------------------------------------------------------------
-r7365 | lfousse | 2011-01-14 17:15:32 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/urandom_gaussian.c
-
-[src/urandom_gaussian.c] Pick the signs of the outputs at random.
-------------------------------------------------------------------------
-r7364 | lfousse | 2011-01-14 16:52:35 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/urandom_gaussian.c
-
-[src/urandom_gaussian.c] Fix precision of temporary results.
-------------------------------------------------------------------------
-r7363 | lfousse | 2011-01-14 16:34:48 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/urandom_gaussian.c
-
-[src/urandom_gaussian.c] Add missing inits/clears.
-------------------------------------------------------------------------
-r7360 | lfousse | 2011-01-14 15:54:39 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Declare urandom_gaussian.
-------------------------------------------------------------------------
-r7359 | lfousse | 2011-01-14 15:54:38 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Add urandom_gaussian.c to the sources.
-------------------------------------------------------------------------
-r7358 | lfousse | 2011-01-14 15:54:37 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- A /trunk/src/urandom_gaussian.c
-
-[src/urandom_gaussian] Start work on gaussian distribution.
-------------------------------------------------------------------------
-r7357 | vlefevre | 2011-01-14 15:49:37 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Fixed code introduced in r7346, again.
-------------------------------------------------------------------------
-r7356 | zimmerma | 2011-01-14 15:48:46 +0000 (Fri, 14 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sin_cos.c
-
-[sin_cos.c] moved macros to mpfr-impl.h, added README
-
-------------------------------------------------------------------------
-r7355 | zimmerma | 2011-01-14 15:40:49 +0000 (Fri, 14 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/sin_cos.c
-
-[sin_cos.c] new inexact flags computed by mpfr_check_range were lost
-
-------------------------------------------------------------------------
-r7354 | vlefevre | 2011-01-14 15:28:45 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Fixed code introduced in r7346.
-------------------------------------------------------------------------
-r7353 | vlefevre | 2011-01-14 15:21:45 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tools/coverage
-
-[tools/coverage] Update from Patrick.
-------------------------------------------------------------------------
-r7352 | vlefevre | 2011-01-14 15:10:42 +0000 (Fri, 14 Jan 2011) | 4 lines
-Changed paths:
- M /trunk/src/ui_div.c
- M /trunk/tests/tui_div.c
-
-[src/ui_div.c] Set the division-by-zero flag.
-[tests/tui_div.c] Updated and improved the test of special cases.
-Note: tpow_all currently fails since the support of the division-by-zero
-exception is not complete yet.
-------------------------------------------------------------------------
-r7351 | vlefevre | 2011-01-14 13:43:28 +0000 (Fri, 14 Jan 2011) | 3 lines
-Changed paths:
- M /trunk/src/div.c
- M /trunk/tests/td_div.c
- M /trunk/tests/tdiv.c
-
-[src/div.c] Set the division-by-zero flag.
-[tests/tdiv.c, tests/td_div.c] Updated and improved the test of special
-cases.
-------------------------------------------------------------------------
-r7348 | vlefevre | 2011-01-14 11:44:41 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tset.c
-
-[tests/tset.c] Tests didn't fail in case of error from PRINT_ERROR_IF.
-------------------------------------------------------------------------
-r7347 | vlefevre | 2011-01-14 11:37:11 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Added comments.
-------------------------------------------------------------------------
-r7346 | vlefevre | 2011-01-14 11:35:27 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tests/tgeneric.c] Check the division-by-zero flag.
-------------------------------------------------------------------------
-r7345 | vlefevre | 2011-01-14 11:10:43 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/texceptions.c
-
-Improved tests/texceptions.c (mpfr_clear_*, mpfr_set_*).
-------------------------------------------------------------------------
-r7344 | vlefevre | 2011-01-14 11:03:30 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/exceptions.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpfr.h
- M /trunk/tests/texceptions.c
-
-Added support for the division-by-zero exception.
-------------------------------------------------------------------------
-r7343 | vlefevre | 2011-01-14 10:54:28 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/exceptions.c
-
-[src/exceptions.c] Fixed bad #undef's (with currently no consequences).
-------------------------------------------------------------------------
-r7342 | zimmerma | 2011-01-14 10:49:44 +0000 (Fri, 14 Jan 2011) | 3 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed item about inlined mpfr_neg: Patrick Pelissier tried it but it
- does not speed things
-
-------------------------------------------------------------------------
-r7341 | vlefevre | 2011-01-14 10:47:04 +0000 (Fri, 14 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Removed an obsolete comment.
-------------------------------------------------------------------------
-r7338 | lfousse | 2011-01-13 18:39:57 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/atan2.c
-
-[src/atan2.c] "Exact" division can be inexact because of the exponent range.
-------------------------------------------------------------------------
-r7337 | zimmerma | 2011-01-13 18:14:26 +0000 (Thu, 13 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/out_raw.c
-
-[out_raw.c] exchanged bits for precision and exponent
-
-------------------------------------------------------------------------
-r7336 | zimmerma | 2011-01-13 18:13:39 +0000 (Thu, 13 Jan 2011) | 2 lines
-Changed paths:
- A /trunk/src/out_raw.c
-
-[out_raw.c] first proposal for external format
-
-------------------------------------------------------------------------
-r7334 | vlefevre | 2011-01-13 17:05:35 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] MPFR_IS_POWER_OF_2: added parentheses.
-------------------------------------------------------------------------
-r7333 | lfousse | 2011-01-13 16:24:48 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tatan.c
-
-Add tests for special case of atan2 (x power of 2).
-------------------------------------------------------------------------
-r7332 | lfousse | 2011-01-13 16:24:41 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/atan2.c
-
-Add special case for atan2(x,y) when x is a power of 2.
-------------------------------------------------------------------------
-r7331 | lfousse | 2011-01-13 16:24:35 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-New macro MPFR_IS_POWER_OF_2.
-------------------------------------------------------------------------
-r7329 | vlefevre | 2011-01-13 16:20:48 +0000 (Thu, 13 Jan 2011) | 3 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/NEWS
- M /trunk/acinclude.m4
- M /trunk/configure.ac
-
-TLS support is now detected automatically. If TLS is supported, MPFR is
-built as thread safe by default. To disable TLS explicitly, configure
-MPFR with --disable-thread-safe.
-------------------------------------------------------------------------
-r7328 | lfousse | 2011-01-13 15:50:37 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tai.c
-
-Add tests for mpfr_ai special case x=0.
-------------------------------------------------------------------------
-r7327 | lfousse | 2011-01-13 15:50:30 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/ai.c
-
-Add special case for x=0 in mpfr_ai1.
-------------------------------------------------------------------------
-r7325 | zimmerma | 2011-01-13 15:38:23 +0000 (Thu, 13 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[algorithms.tex] extended Lemma 2 to the case of terms of the form 1/(1+delta)
-
-------------------------------------------------------------------------
-r7323 | vlefevre | 2011-01-13 15:27:13 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tvalist.c
-
-tests: return 77 for skipped tests (see GNU Automake manual).
-------------------------------------------------------------------------
-r7322 | vlefevre | 2011-01-13 15:20:24 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-------------------------------------------------------------------------
-r7321 | vlefevre | 2011-01-13 15:19:32 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO update after r7317 and r7320.
-------------------------------------------------------------------------
-r7320 | vlefevre | 2011-01-13 15:17:16 +0000 (Thu, 13 Jan 2011) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/tvalist.c
-
-Support multiple inclusions of mpfr.h w.r.t. <stdio.h> and <stdarg.h>
-(MPFR_USE_FILE and/or MPFR_USE_VA_LIST are needed until GMP is fixed).
-Added test "tests/tvalist.c".
-------------------------------------------------------------------------
-r7319 | zimmerma | 2011-01-13 14:46:07 +0000 (Thu, 13 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[src/mpfr-longlong.h] idem as previous commit for other 2 FIXME's
-
-------------------------------------------------------------------------
-r7318 | zimmerma | 2011-01-13 14:43:29 +0000 (Thu, 13 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-longlong.h
-
-[mpfr-longlong.h] resolved one FIXME, by adding a new one :-)
-
-------------------------------------------------------------------------
-r7317 | vlefevre | 2011-01-13 14:42:53 +0000 (Thu, 13 Jan 2011) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
- M /trunk/tests/Makefile.am
-
-Support multiple inclusions of mpfr.h w.r.t. <stdint.h> / <inttypes.h>.
-------------------------------------------------------------------------
-r7314 | zimmerma | 2011-01-06 16:53:07 +0000 (Thu, 06 Jan 2011) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/mfv5-mpfr.cc
- M /trunk/tools/mbench/mfv5.cc
- M /trunk/tools/mbench/mfv5.h
-
-another patch from Patrick Pelissier to test get_ld (with export of data used)
-
-------------------------------------------------------------------------
-r7313 | zimmerma | 2011-01-06 16:44:13 +0000 (Thu, 06 Jan 2011) | 6 lines
-Changed paths:
- M /trunk/tools/mbench/Makefile
- M /trunk/tools/mbench/timp.h
-
-patch from Patrick Pelissier to use clock_getime instead of rdtsc
-(use "make rt" instead of "make")
-References:
-http://stackoverflow.com/questions/3388134/rdtsc-accuracy-across-cpu-cores
-http://en.wikipedia.org/wiki/Time_Stamp_Counter
-
-------------------------------------------------------------------------
-r7312 | vlefevre | 2010-12-25 17:24:58 +0000 (Sat, 25 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Updated a comment about the last change.
-------------------------------------------------------------------------
-r7311 | vlefevre | 2010-12-25 17:08:16 +0000 (Sat, 25 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/get_ld.c
-
-[src/get_ld.c] Minor performance improvement.
-------------------------------------------------------------------------
-r7310 | vlefevre | 2010-12-19 02:00:52 +0000 (Sun, 19 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/tools/mbench/Makefile
-
-[tools/mbench/Makefile] Update due to source reorganization (r7087):
-patch from Patrick Pelissier.
-------------------------------------------------------------------------
-r7309 | vlefevre | 2010-12-17 16:29:47 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Update (exp-int branch, internal macro).
-------------------------------------------------------------------------
-r7308 | vlefevre | 2010-12-17 16:22:37 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/sin.c
-
-[src/sin.c] Fixed failure in debug mode (missing MPFR_IS_ZERO test).
-------------------------------------------------------------------------
-r7307 | vlefevre | 2010-12-17 16:08:54 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Improved comment.
-------------------------------------------------------------------------
-r7305 | zimmerma | 2010-12-17 15:54:55 +0000 (Fri, 17 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[rec_sqrt.c] put back some information lost in commit 7302
-
-------------------------------------------------------------------------
-r7304 | vlefevre | 2010-12-17 15:31:24 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/cmp2.c
-
-[src/cmp2.c] Corrected a comment.
-------------------------------------------------------------------------
-r7303 | vlefevre | 2010-12-17 15:25:04 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/cos.c
- M /trunk/src/sin.c
- M /trunk/src/zeta.c
-
-Replaced some MPFR_EXP by MPFR_GET_EXP.
-------------------------------------------------------------------------
-r7302 | vlefevre | 2010-12-17 13:15:46 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/rec_sqrt.c
-
-[src/rec_sqrt.c] Removed a variable that was used only once.
-------------------------------------------------------------------------
-r7301 | vlefevre | 2010-12-17 11:40:51 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Changed comment for mpfrlint.
-------------------------------------------------------------------------
-r7300 | vlefevre | 2010-12-17 11:38:36 +0000 (Fri, 17 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/add1sp.c
- M /trunk/src/div.c
- M /trunk/src/div_ui.c
- M /trunk/src/get_str.c
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mpn_exp.c
- M /trunk/src/mul.c
- M /trunk/src/mul_ui.c
- M /trunk/src/mulders.c
- M /trunk/src/rec_sqrt.c
- M /trunk/src/round_prec.c
- M /trunk/src/set_f.c
- M /trunk/src/sqr.c
- M /trunk/src/sqrt.c
- M /trunk/src/strtofr.c
- M /trunk/src/sub1.c
- M /trunk/src/sub1sp.c
- M /trunk/tools/mpfrlint
-
-Added MPFR_TMP_LIMBS_ALLOC macro and updated the source to use it.
-tools/mpfrlint: check its use instead of MPFR_TMP_ALLOC.
-------------------------------------------------------------------------
-r7299 | vlefevre | 2010-12-17 11:31:08 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/sum.c
-
-[src/sum.c] Improved readability.
-------------------------------------------------------------------------
-r7298 | vlefevre | 2010-12-17 09:40:03 +0000 (Fri, 17 Dec 2010) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Formatting.
-------------------------------------------------------------------------
-r7297 | vlefevre | 2010-12-14 14:36:06 +0000 (Tue, 14 Dec 2010) | 1 line
-Changed paths:
- M /trunk/TODO
-
-[TODO] Added year on a date (the item was added on 2007-07-28 in r4707).
-------------------------------------------------------------------------
-r7296 | vlefevre | 2010-12-13 00:02:38 +0000 (Mon, 13 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/src
-
-Added configure.lineno (generated by configure) to the svn:ignore
-property of the src directory.
-------------------------------------------------------------------------
-r7295 | vlefevre | 2010-12-12 23:39:43 +0000 (Sun, 12 Dec 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update concerning the --with-gmp-build configure option.
-------------------------------------------------------------------------
-r7294 | vlefevre | 2010-12-12 23:36:38 +0000 (Sun, 12 Dec 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Corrected a typo from r7293.
-------------------------------------------------------------------------
-r7293 | vlefevre | 2010-12-12 23:35:04 +0000 (Sun, 12 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Updated INSTALL file after the recent changes in configure.ac concerning
-the --with-gmp-build configure option.
-------------------------------------------------------------------------
-r7292 | vlefevre | 2010-12-12 23:29:50 +0000 (Sun, 12 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] With --with-gmp-build, do not duplicate the include
-search paths if the GMP source and build directories are the same.
-------------------------------------------------------------------------
-r7291 | vlefevre | 2010-12-12 22:31:51 +0000 (Sun, 12 Dec 2010) | 3 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Fixed another bug in r7289. This new version now seems
-to work with GMP's srcdir pointing to a relative directory or to an
-absolute one.
-------------------------------------------------------------------------
-r7290 | vlefevre | 2010-12-12 22:28:53 +0000 (Sun, 12 Dec 2010) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Fixed bug in r7289.
-------------------------------------------------------------------------
-r7289 | vlefevre | 2010-12-12 22:17:16 +0000 (Sun, 12 Dec 2010) | 1 line
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Corrected Patrick Pelissier's patch (not tested).
-------------------------------------------------------------------------
-r7288 | zimmerma | 2010-12-12 20:47:23 +0000 (Sun, 12 Dec 2010) | 4 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] patch from Patrick Pelissier to solve the problem with
- --with-gmp-build when the GMP build directory and the GMP
- source directory differ
-
-------------------------------------------------------------------------
-r7287 | vlefevre | 2010-12-12 11:02:00 +0000 (Sun, 12 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] tversion is also run at the end (after a discussion
-with Patrick and Paul).
-------------------------------------------------------------------------
-r7286 | vlefevre | 2010-12-12 09:55:44 +0000 (Sun, 12 Dec 2010) | 4 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Fixed two problems with --with-gmp-build:
- * "grep -w" isn't POSIX (an error shouldn't matter with recent GMP
- versions, as CFLAGS and CC would then be retrieved from gmp.h).
- * "sed" was used instead of "$SED".
-------------------------------------------------------------------------
-r7279 | vlefevre | 2010-12-07 13:59:45 +0000 (Tue, 07 Dec 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added a section "If 'gmp.h' and 'libgmp' do not match".
-------------------------------------------------------------------------
-r7278 | vlefevre | 2010-12-07 12:51:14 +0000 (Tue, 07 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Improved warning message in case of unmatched 'gmp.h'
-and 'libgmp'.
-------------------------------------------------------------------------
-r7277 | vlefevre | 2010-12-07 11:41:09 +0000 (Tue, 07 Dec 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Update concerning "configure".
-------------------------------------------------------------------------
-r7276 | zimmerma | 2010-12-06 20:54:14 +0000 (Mon, 06 Dec 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] fixed news for 3.0.0
-
-------------------------------------------------------------------------
-r7275 | vlefevre | 2010-12-03 08:55:24 +0000 (Fri, 03 Dec 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-[tests/tversion.c] Now fail if the versions of gmp.h and libgmp do not
-match (error message improved); previously, the warning could remain
-unnoticed, in particular with automatic installations.
-------------------------------------------------------------------------
-r7274 | schevill | 2010-11-30 16:41:38 +0000 (Tue, 30 Nov 2010) | 3 lines
-Changed paths:
- A /trunk/tools/metaMPFR
- A /trunk/tools/metaMPFR/metaMPFR_common.mpl
- A /trunk/tools/metaMPFR/metaMPFR_straightforwardAlgo.mpl
- A /trunk/tools/metaMPFR/metaMPFR_tests.mpl
-
-Added metaMPFR in the tools directory of MPFR.
-
-
-------------------------------------------------------------------------
-r7273 | vlefevre | 2010-11-29 15:35:52 +0000 (Mon, 29 Nov 2010) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Defined MPFR_DEPRECATED to mark MPFR functions, types
-or variables as deprecated.
-------------------------------------------------------------------------
-r7272 | vlefevre | 2010-11-25 07:52:24 +0000 (Thu, 25 Nov 2010) | 1 line
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-[tests/tui_pow.c] Updated a comment.
-------------------------------------------------------------------------
-r7271 | vlefevre | 2010-11-23 08:28:00 +0000 (Tue, 23 Nov 2010) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Support BSD sed.
-------------------------------------------------------------------------
-r7270 | vlefevre | 2010-11-19 08:53:09 +0000 (Fri, 19 Nov 2010) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Detect the use of __mpfr_struct structure members
-in .c files.
-------------------------------------------------------------------------
-r7269 | vlefevre | 2010-11-19 08:46:38 +0000 (Fri, 19 Nov 2010) | 1 line
-Changed paths:
- M /trunk/src/min_prec.c
-
-[src/min_prec.c] Replaced x->_mpfr_d by MPFR_MANT(x).
-------------------------------------------------------------------------
-r7268 | vlefevre | 2010-11-18 23:41:50 +0000 (Thu, 18 Nov 2010) | 2 lines
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Commented out the declaration of mpfr_round_raw_3
-(since this function is no longer defined).
-------------------------------------------------------------------------
-r7267 | vlefevre | 2010-11-18 23:20:59 +0000 (Thu, 18 Nov 2010) | 2 lines
-Changed paths:
- M /trunk/src/min_prec.c
-
-[src/min_prec.c] Major simplification of mpfr_min_prec by using
-mpn_scan1 (suggestion by Andreas Enge).
-------------------------------------------------------------------------
-r7266 | vlefevre | 2010-11-15 15:20:03 +0000 (Mon, 15 Nov 2010) | 1 line
-Changed paths:
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added a comment about mpn_sqr_n.
-------------------------------------------------------------------------
-r7265 | zimmerma | 2010-11-15 13:56:51 +0000 (Mon, 15 Nov 2010) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[algorithms.tex] replaced reference to Graillat05 by earlier one (Higham02)
-
-------------------------------------------------------------------------
-r7263 | vlefevre | 2010-11-12 11:38:42 +0000 (Fri, 12 Nov 2010) | 1 line
-Changed paths:
- M /trunk/tools/nightly-test
-
-[tools/nightly-test] Added a comment about the use of -pedantic-errors.
-------------------------------------------------------------------------
-r7262 | vlefevre | 2010-11-10 23:17:02 +0000 (Wed, 10 Nov 2010) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Minor simplification.
-------------------------------------------------------------------------
-r7261 | vlefevre | 2010-11-10 22:48:27 +0000 (Wed, 10 Nov 2010) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-[tests/tpow.c] Avoid warnings if mpfr_exp_t < long.
-------------------------------------------------------------------------
-r7260 | zimmerma | 2010-11-10 20:17:17 +0000 (Wed, 10 Nov 2010) | 3 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[mul.c] fixed bug introduced in revision 7183, and reported by Brian Gladman
- on Windows, where mpfr_exp_t has 32 bits and mp_limb_t has 64 bits
-
-------------------------------------------------------------------------
-r7257 | vlefevre | 2010-11-09 14:24:34 +0000 (Tue, 09 Nov 2010) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Use only mpfr_* types in __MPFR_EXP_* macro definitions
-(should have been done in r7236).
-------------------------------------------------------------------------
-r7255 | vlefevre | 2010-11-09 13:43:29 +0000 (Tue, 09 Nov 2010) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Changed a "void" into a "mpfr_void" in a macro definition
-(should have been done in r7236).
-------------------------------------------------------------------------
-r7254 | vlefevre | 2010-11-09 12:37:23 +0000 (Tue, 09 Nov 2010) | 1 line
-Changed paths:
- M /trunk/tests/tset_si.c
-
-[tests/tset_si.c] Added testcase for problem fixed in r7236.
-------------------------------------------------------------------------
-r7251 | vlefevre | 2010-11-08 13:22:04 +0000 (Mon, 08 Nov 2010) | 3 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Removed some useless casts that where added in r7121 and
-r7236 (such casts prevented the compiler from emitting diagnostics in
-incorrect calls).
-------------------------------------------------------------------------
-r7250 | vlefevre | 2010-11-08 12:55:16 +0000 (Mon, 08 Nov 2010) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Added a comment (warning about LOADLIBES).
-------------------------------------------------------------------------
-r7247 | zimmerma | 2010-10-25 13:53:16 +0000 (Mon, 25 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tests/taway.c
-
-[taway.c] reduced time of the test
-
-------------------------------------------------------------------------
-r7246 | vlefevre | 2010-10-25 10:00:45 +0000 (Mon, 25 Oct 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/NEWS
-
-Mentioned --enable-gmp-internals in INSTALL and NEWS.
-------------------------------------------------------------------------
-r7244 | vlefevre | 2010-10-24 13:27:47 +0000 (Sun, 24 Oct 2010) | 1 line
-Changed paths:
- M /trunk/tests/taway.c
-
-[tests/taway.c] Added a FIXME (test is too long on old machines).
-------------------------------------------------------------------------
-r7243 | vlefevre | 2010-10-24 12:41:01 +0000 (Sun, 24 Oct 2010) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Corrected comment for PowerPC.
-------------------------------------------------------------------------
-r7242 | zimmerma | 2010-10-24 08:01:49 +0000 (Sun, 24 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/Makefile.am
- A /trunk/src/hppa
- A /trunk/src/hppa/mparam.h
- M /trunk/src/mparam_h.in
-
-added tuning parameters for HPPA (on HP-UX machine kindly provided by David
-Kirkby)
-
-------------------------------------------------------------------------
-r7241 | zimmerma | 2010-10-23 16:45:32 +0000 (Sat, 23 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/src/powerpc32/mparam.h
-
-[powerpc32/mparam.h] added more info on processor and operating system used
-
-------------------------------------------------------------------------
-r7240 | zimmerma | 2010-10-23 09:18:12 +0000 (Sat, 23 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/src/Makefile.am
- M /trunk/src/mparam_h.in
-
-needed stuff to use src/powerpc32/mparam.h file
-(note that long double is IEEE double on PowerPC32)
-
-------------------------------------------------------------------------
-r7239 | zimmerma | 2010-10-23 09:07:33 +0000 (Sat, 23 Oct 2010) | 2 lines
-Changed paths:
- A /trunk/src/powerpc32
- A /trunk/src/powerpc32/mparam.h
-
-[powerpc32/mparam.h] param file for powerpc32 (made on PowerPC 604 under AIX)
-
-------------------------------------------------------------------------
-r7238 | zimmerma | 2010-10-22 14:54:43 +0000 (Fri, 22 Oct 2010) | 5 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] added cast from time_t to long, after warning under HP-UX:
-tuneup.c:1131: warning: format '%ld' expects type 'long int', but argument 3 has type 'time_t'
-tuneup.c:1133: warning: format '%ld' expects type 'long int', but argument 2 has type 'time_t'
-(I don't know if it is because time_t is unsigned, or has a different width)
-
-------------------------------------------------------------------------
-r7237 | vlefevre | 2010-10-22 13:30:50 +0000 (Fri, 22 Oct 2010) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added a space.
-------------------------------------------------------------------------
-r7236 | vlefevre | 2010-10-22 13:27:59 +0000 (Fri, 22 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Avoid some problems with macro expansion if the user
-defines macros with the same name as keywords.
-[doc/mpfr.texi] Document the use of macros.
-------------------------------------------------------------------------
-r7235 | schevill | 2010-10-22 10:10:37 +0000 (Fri, 22 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/src/Makefile.am
-
-Included the new /arch/mparam.h files into the dist.
-
-
-------------------------------------------------------------------------
-r7231 | schevill | 2010-10-20 16:08:04 +0000 (Wed, 20 Oct 2010) | 6 lines
-Changed paths:
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/ia64/mparam.h
- M /trunk/src/mparam_h.in
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/tune/tuneup.c
-
-Cosmetic change: the constant MPFR_TUNE_CASE is now defined in mparam_h.in.
-Hence the files src/some-architecture/mparam.h are now simply obtained by
-performing 'make tune' on some architecture and copying the resulting
-src/mparam.h to src/some-architecture/mparam.h.
-
-
-------------------------------------------------------------------------
-r7230 | schevill | 2010-10-20 13:16:51 +0000 (Wed, 20 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-Typo.
-
-
-------------------------------------------------------------------------
-r7229 | schevill | 2010-10-20 11:40:52 +0000 (Wed, 20 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/src/amd/athlon/mparam.h
- M /trunk/src/amd/k8/mparam.h
- M /trunk/src/arm/mparam.h
- M /trunk/src/ia64/mparam.h
- M /trunk/src/mparam_h.in
- M /trunk/src/powerpc64/mparam.h
- M /trunk/src/sparc64/mparam.h
- M /trunk/src/x86/core2/mparam.h
- M /trunk/src/x86/mparam.h
- M /trunk/src/x86_64/core2/mparam.h
- M /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/tune/tuneup.c
-
-Up-to-date thresholds.
-
-
-------------------------------------------------------------------------
-r7228 | vlefevre | 2010-10-20 01:23:23 +0000 (Wed, 20 Oct 2010) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] mp_prec_t -> mpfr_prec_t
-------------------------------------------------------------------------
-r7227 | vlefevre | 2010-10-20 01:22:38 +0000 (Wed, 20 Oct 2010) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Removed trailing spaces.
-------------------------------------------------------------------------
-r7226 | vlefevre | 2010-10-19 16:21:41 +0000 (Tue, 19 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsprintf.c
-
-[tests/*.c] Support the case where mpfr_exp_t is not a long int
-(but with such a future extension, one should probably provide
-a MPFR_PRIexp macro, similar to what <inttypes.h> does).
-------------------------------------------------------------------------
-r7225 | vlefevre | 2010-10-19 15:56:24 +0000 (Tue, 19 Oct 2010) | 1 line
-Changed paths:
- M /trunk/tests/texceptions.c
-
-[tests/texceptions.c] Added casts, in case mpfr_exp_t is not a long int.
-------------------------------------------------------------------------
-r7224 | zimmerma | 2010-10-19 15:03:32 +0000 (Tue, 19 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] replaced hexadecimal long double constants by decimal constants
-
-------------------------------------------------------------------------
-r7223 | vlefevre | 2010-10-19 14:43:12 +0000 (Tue, 19 Oct 2010) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tests/tset_ld.c] Added a FIXME for r7222 change.
-------------------------------------------------------------------------
-r7222 | zimmerma | 2010-10-19 14:22:09 +0000 (Tue, 19 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/src/set_ld.c
- M /trunk/tests/tset_ld.c
-
-[set_ld.c] fixed bug #11300 on bug tracker
-[tset_ld.c] added corresponding tests
-
-------------------------------------------------------------------------
-r7221 | zimmerma | 2010-10-19 12:24:21 +0000 (Tue, 19 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[algorithms.tex] modified proof of mpfr_sub in accordance with source code
-
-------------------------------------------------------------------------
-r7220 | zimmerma | 2010-10-19 12:06:00 +0000 (Tue, 19 Oct 2010) | 13 lines
-Changed paths:
- A /trunk/doc/sub_tree.pdf
-
-this is a tree of all possible cases that can happen for rounding in mpfr_sub
-(file sub1.c) for rounding to nearest.
-
-The nodes at depth 1 of the tree correspond to the 3 possible cases before
-rounding: (1) sh=0, (2) sh>0 and the low sh bits are 1/2 ulp, (3) sh>0 and
-the low sh bits are 0.
-
-The nodes at depth 2 represent the possible subcases for k=0 in the rounding
-loop.
-
-The nodes at depth 3 represent the possible subcases for k=1 in the rounding
-loop.
-
-------------------------------------------------------------------------
-r7219 | zimmerma | 2010-10-19 11:12:07 +0000 (Tue, 19 Oct 2010) | 7 lines
-Changed paths:
- M /trunk/src/sub1.c
- M /trunk/tests/tsub.c
-
-[src/sub1.c] fixed another remaining issue in case 1d1
- (case sh=0, i.e., the result uses a full number of limbs,
- the first neglected limbs of b and c match,
- and for the next limbs, low(b) > low(c)).
- This case was incorrectly rounded up (add_one_ulp).
-[tests/tsub.c] added more test cases
-
-------------------------------------------------------------------------
-r7218 | zimmerma | 2010-10-19 11:06:38 +0000 (Tue, 19 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tgmpop.c] in case of error, print mpz_t in decimal instead of binary
-
-------------------------------------------------------------------------
-r7217 | zimmerma | 2010-10-19 06:36:56 +0000 (Tue, 19 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] increase maximal number of calls to speed_measure from 5 to 30
- (seems to solve problems on gcc15)
-
-------------------------------------------------------------------------
-r7215 | vlefevre | 2010-10-18 23:51:35 +0000 (Mon, 18 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-[tests/tcan_round.c] Removed an incorrect cast, fixing a bug (in the
-test) that was producing a failure for GMP_CHECK_RANDOMIZE=1287710095
-on 64-bit machines (visible since mpfr_prec_t is now signed).
-------------------------------------------------------------------------
-r7214 | vlefevre | 2010-10-18 22:21:33 +0000 (Mon, 18 Oct 2010) | 1 line
-Changed paths:
- M /trunk/src/sub1.c
-
-[src/sub1.c] Removed trailing whitespace.
-------------------------------------------------------------------------
-r7213 | zimmerma | 2010-10-18 21:02:22 +0000 (Mon, 18 Oct 2010) | 4 lines
-Changed paths:
- M /trunk/src/sub1.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tsub.c
-
-[sub1.c] previous fix was not incorrect (but strangely our tests cases did
- not exhibit that)
-[tfma.c] added more test cases from Jakub Jelinek
-
-------------------------------------------------------------------------
-r7212 | zimmerma | 2010-10-18 18:54:56 +0000 (Mon, 18 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/src/sub1.c
-
-[sub1.c] fixed bug found by Jakub Jelinek (#11301 on tracker)
-
-------------------------------------------------------------------------
-r7211 | vlefevre | 2010-10-18 17:17:11 +0000 (Mon, 18 Oct 2010) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7209 | vlefevre | 2010-10-18 16:16:39 +0000 (Mon, 18 Oct 2010) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Fixed inex test in bug20101017.
-------------------------------------------------------------------------
-r7208 | schevill | 2010-10-18 14:14:49 +0000 (Mon, 18 Oct 2010) | 9 lines
-Changed paths:
- M /trunk/INSTALL
-
-Mention the warning message displayed by gcc when the ABI of gcc and MPFR
-differ.
-
-Note: the message does not automatically imply the problem; however, if the
-message appears, the ABI somehow differ, so it is worth mentioning it.
-Users might look for the message in INSTALL in order to see if their problem is
-mentioned.
-
-
-------------------------------------------------------------------------
-r7206 | zimmerma | 2010-10-18 13:01:12 +0000 (Mon, 18 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added "Notes about ABI" section
-
-------------------------------------------------------------------------
-r7205 | vlefevre | 2010-10-18 12:18:11 +0000 (Mon, 18 Oct 2010) | 1 line
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Updated comment of bug20101017.
-------------------------------------------------------------------------
-r7204 | vlefevre | 2010-10-18 11:59:39 +0000 (Mon, 18 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-[tests/tsub.c] Added testcase for bug found by Jakub Jelinek
-(bug 11301 on INRIAGforge).
-------------------------------------------------------------------------
-r7203 | zimmerma | 2010-10-18 09:41:37 +0000 (Mon, 18 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] print size when speed_measure fails
-
-------------------------------------------------------------------------
-r7202 | zimmerma | 2010-10-17 19:33:37 +0000 (Sun, 17 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[mpfr.texi] added that the 'N' mode rounds ties to even in the mpfr*printf
- functions
-
-------------------------------------------------------------------------
-r7201 | schevill | 2010-10-15 15:18:18 +0000 (Fri, 15 Oct 2010) | 4 lines
-Changed paths:
- A /trunk/src/amd
- A /trunk/src/amd/athlon
- A /trunk/src/amd/athlon/mparam.h
- A /trunk/src/amd/k8
- A /trunk/src/amd/k8/mparam.h
- A /trunk/src/arm
- A /trunk/src/arm/mparam.h
- M /trunk/src/buildopt.c
- A /trunk/src/generic
- A /trunk/src/generic/mparam.h
- A /trunk/src/ia64
- A /trunk/src/ia64/mparam.h
- M /trunk/src/mparam_h.in
- M /trunk/src/mpfr.h
- A /trunk/src/powerpc64
- A /trunk/src/powerpc64/mparam.h
- A /trunk/src/sparc64
- A /trunk/src/sparc64/mparam.h
- A /trunk/src/x86
- A /trunk/src/x86/core2
- A /trunk/src/x86/core2/mparam.h
- A /trunk/src/x86/mparam.h
- A /trunk/src/x86_64
- A /trunk/src/x86_64/core2
- A /trunk/src/x86_64/core2/mparam.h
- A /trunk/src/x86_64/pentium4
- A /trunk/src/x86_64/pentium4/mparam.h
- M /trunk/tune/tuneup.c
-
-Reorganized mparam_h.in in separate files.
-Added mpfr_buildopt_tune_case function.
-
-
-------------------------------------------------------------------------
-r7200 | schevill | 2010-10-14 15:31:16 +0000 (Thu, 14 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-Modified the number of iterations in the loop of mpfr_speed_measure.
-
-
-------------------------------------------------------------------------
-r7199 | zimmerma | 2010-10-14 10:55:09 +0000 (Thu, 14 Oct 2010) | 4 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] new function mpfr_speed_measure, which calls speed_measure() several
- times (currently 30) until there is no failure.
- In case all 30 calls fail, give some hints to the user.
-
-------------------------------------------------------------------------
-r7198 | zimmerma | 2010-10-13 19:58:28 +0000 (Wed, 13 Oct 2010) | 5 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] try again when speed_measure returns -1.0 (i.e. fails)
- also check return value of speed_measure in all cases
- (was not done for mulhigh, sqrhigh and divhigh, reported
- by Sylvain Chevillard)
-
-------------------------------------------------------------------------
-r7197 | schevill | 2010-10-12 15:39:21 +0000 (Tue, 12 Oct 2010) | 3 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-Small indication explaining what is the negative threshold for Ai.
-
-
-------------------------------------------------------------------------
-r7196 | vlefevre | 2010-10-10 20:48:51 +0000 (Sun, 10 Oct 2010) | 4 lines
-Changed paths:
- M /trunk/src/add1.c
- M /trunk/src/mpfr-impl.h
-
-[src/mpfr-impl.h] Added MPFR_UEXP macro to check (in debug mode) that
-a value is nonnegative before a cast to mpfr_uexp_t.
-[src/add1.c] Use the MPFR_UEXP macro to make sure that the avoided
-warning doesn't hide a real bug.
-------------------------------------------------------------------------
-r7195 | zimmerma | 2010-10-10 17:28:05 +0000 (Sun, 10 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/taway.c
- M /trunk/tests/tests.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trint.c
- M /trunk/tests/tsprintf.c
-
-avoid several compiler warnings with g++
-
-------------------------------------------------------------------------
-r7194 | zimmerma | 2010-10-10 17:00:18 +0000 (Sun, 10 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-[nightly-test] added -Wno-sign-compare for g++, to avoid spurious warnings
-
-------------------------------------------------------------------------
-r7193 | zimmerma | 2010-10-10 09:04:53 +0000 (Sun, 10 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/tools/nightly-test
-
-[nightly-test] do not use -Wmissing-prototypes for g++
-
-------------------------------------------------------------------------
-r7192 | zimmerma | 2010-10-10 08:54:37 +0000 (Sun, 10 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/src/add1.c
-
-[add1.c] fixed compiler warning (from g++)
-
-------------------------------------------------------------------------
-r7191 | zimmerma | 2010-10-08 18:29:16 +0000 (Fri, 08 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] fixed comment
-
-------------------------------------------------------------------------
-r7189 | zimmerma | 2010-10-03 07:39:44 +0000 (Sun, 03 Oct 2010) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
- M /trunk/src/sqrt.c
-
-[sqrt.c,mulders.c] added missing cast (detected by nightly builds with g++)
-
-------------------------------------------------------------------------
-r7188 | vlefevre | 2010-10-01 15:58:44 +0000 (Fri, 01 Oct 2010) | 1 line
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Untabified.
-------------------------------------------------------------------------
-r7187 | zimmerma | 2010-09-30 19:14:00 +0000 (Thu, 30 Sep 2010) | 3 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] fixed comments about error analysis in short product,
- and improved short division code
-
-------------------------------------------------------------------------
-r7186 | vlefevre | 2010-09-30 16:46:23 +0000 (Thu, 30 Sep 2010) | 1 line
-Changed paths:
- M /trunk/src/mparam_h.in
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mul.c
- M /trunk/tune/tuneup.c
-
-Removed trailing spaces and untabified several files.
-------------------------------------------------------------------------
-r7185 | vlefevre | 2010-09-30 16:40:04 +0000 (Thu, 30 Sep 2010) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Added comments concerning the latest changes about mulhigh.
-------------------------------------------------------------------------
-r7184 | zimmerma | 2010-09-30 07:10:37 +0000 (Thu, 30 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] removed leftover debug stuff
-
-------------------------------------------------------------------------
-r7183 | zimmerma | 2010-09-29 16:03:04 +0000 (Wed, 29 Sep 2010) | 11 lines
-Changed paths:
- M /trunk/src/mparam_h.in
- M /trunk/src/mpfr-impl.h
- M /trunk/src/mul.c
- M /trunk/src/mulders.c
- M /trunk/src/round_p.c
- M /trunk/src/sqrt.c
- M /trunk/tune/tuneup.c
-
-[src/mulders.c] added new function mpfr_divhigh_n() for short division
- (not used yet), fixed comments and added error analysis
- in mpfr_mulhigh_n() and mpfr_sqrhigh_n()
-[src/sqrt.c] fixed ill-placed MPFR_TMP_MARK
-[src/mparam_h.in] added default MPFR_DIVHIGH_TAB for mpfr_divhigh_n()
-[src/round_p.c] typo
-[src/mpfr-impl.h] added prototype for mpfr_divhigh_n
-[src/mul.c] added comment, simplified code
-[tune/tuneup.c] added tuning for mpfr_divhigh_n(), increased MAX_STEPS to get
- a better tuning (will take longer), set tolerance to 1.0
-
-------------------------------------------------------------------------
-r7182 | zimmerma | 2010-09-29 13:15:33 +0000 (Wed, 29 Sep 2010) | 3 lines
-Changed paths:
- M /trunk/configure.ac
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/sqrt.c
-
-added new option --enable-gmp-internals to use GMP undocumented function
-(at user's own risk). So far only mpn_rootrem is used in mpfr_sqrt.
-
-------------------------------------------------------------------------
-r7181 | zimmerma | 2010-09-29 10:07:00 +0000 (Wed, 29 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/sqrt.c
-
-[doc/README.dev] added comment about mpn_rootrem
-
-------------------------------------------------------------------------
-r7180 | vlefevre | 2010-09-28 23:09:34 +0000 (Tue, 28 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] Added a FIXME note about incorrect use of an internal
-GMP symbol (__gmpn_rootrem).
-------------------------------------------------------------------------
-r7179 | zimmerma | 2010-09-28 15:40:36 +0000 (Tue, 28 Sep 2010) | 4 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] followup to previous commit: only compute an extra limb of the
- square root for rounding to nearest (for directed rounding, it
- suffices to know if the remainder is zero or not)
-
-------------------------------------------------------------------------
-r7178 | zimmerma | 2010-09-28 15:08:34 +0000 (Tue, 28 Sep 2010) | 5 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/configure.ac
- M /trunk/src/mpfr-gmp.h
- M /trunk/src/mpfr-impl.h
- M /trunk/src/sqrt.c
- M /trunk/tests/reuse.c
-
-[src/sqrt.c] now uses mpn_rootrem (if available) instead of mpn_sqrtrem since
- mpn_rootrem is faster. Also refactored the code: now compute one
- more limb of the square root when the target precision is a
- multiple of GMP_NUMB_LIMB. This greatly simplifies the code.
-
-------------------------------------------------------------------------
-r7177 | zimmerma | 2010-09-28 11:40:08 +0000 (Tue, 28 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/sqrt.c
-
-[src/sqrt.c] simplified computation of sticky bit
-
-------------------------------------------------------------------------
-r7176 | zimmerma | 2010-09-27 11:34:08 +0000 (Mon, 27 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[mulders.c] fixed typo
-
-------------------------------------------------------------------------
-r7175 | vlefevre | 2010-09-27 10:25:08 +0000 (Mon, 27 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[src/mulders.c] Replaced MPFR_ASSERTD with constant expression
-by MPFR_ASSERTN.
-------------------------------------------------------------------------
-r7174 | vlefevre | 2010-09-27 10:21:17 +0000 (Mon, 27 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Added a test:
-Constant checking should use MPFR_ASSERTN, not MPFR_ASSERTD.
-------------------------------------------------------------------------
-r7173 | zimmerma | 2010-09-27 08:17:11 +0000 (Mon, 27 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[mulders.c] modified mpfr_sqrhigh_n threshold so that it is > n/2
-
-------------------------------------------------------------------------
-r7172 | vlefevre | 2010-09-27 00:54:13 +0000 (Mon, 27 Sep 2010) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added a FIXME concerning autoconf 2.68.
-------------------------------------------------------------------------
-r7171 | zimmerma | 2010-09-25 03:57:06 +0000 (Sat, 25 Sep 2010) | 4 lines
-Changed paths:
- M /trunk/src/mulders.c
-
-[mulders.c] use mpn_lshift instead of mpn_add_n, and improved the default
- Mulders cutoff k beyond 1024 limbs (extrapolated from the cutoff
- k for n=1023 on Core 2, and checked experimentally it is faster)
-
-------------------------------------------------------------------------
-r7170 | zimmerma | 2010-09-24 19:57:30 +0000 (Fri, 24 Sep 2010) | 4 lines
-Changed paths:
- M /trunk/tune/tuneup.c
-
-[tuneup.c] changed lower bound for exp_2 threshold from MPFR_PREC_MIN (2) to
- GMP_NUMB_BITS. Seems to be better (since for p=2 the 2nd routine
- was sometimes already faster).
-
-------------------------------------------------------------------------
-r7169 | zimmerma | 2010-09-24 19:12:08 +0000 (Fri, 24 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/mul.c
-
-[mul.c] another changes for Mulders' algorithm in case of a square
-
-------------------------------------------------------------------------
-r7168 | vlefevre | 2010-09-24 18:51:54 +0000 (Fri, 24 Sep 2010) | 1 line
-Changed paths:
- M /trunk/src/mul.c
-
-[src/mul.c] Change in r7166 was incomplete. Fixed suspicious code.
-------------------------------------------------------------------------
-r7167 | zimmerma | 2010-09-24 18:35:00 +0000 (Fri, 24 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/mparam_h.in
-
-[mparam_h.in] updated for 64-bit Core2
-
-------------------------------------------------------------------------
-r7166 | zimmerma | 2010-09-24 18:27:25 +0000 (Fri, 24 Sep 2010) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/mparam_h.in
- M /trunk/src/mul.c
- M /trunk/src/sqr.c
- M /trunk/tune/tuneup.c
-
-now use Mulders' algorithm also for mpfr_sqr, provides nice speed improvement
-in all functions that perform squarings
-
-------------------------------------------------------------------------
-r7165 | vlefevre | 2010-09-21 10:57:23 +0000 (Tue, 21 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] API compatibility section: noted that mpfr_urandom
-and mpfr_urandomb changed for MPFR 3.1.
-------------------------------------------------------------------------
-r7164 | zimmerma | 2010-09-21 08:50:50 +0000 (Tue, 21 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] update about "make tune"
-
-------------------------------------------------------------------------
-r7163 | vlefevre | 2010-09-21 08:43:47 +0000 (Tue, 21 Sep 2010) | 1 line
-Changed paths:
- M /trunk/doc/FAQ.html
-
-[doc] Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r7159 | schevill | 2010-09-20 15:47:36 +0000 (Mon, 20 Sep 2010) | 3 lines
-Changed paths:
- M /trunk/README
-
-Indicated the location of README.dev.
-
-
-------------------------------------------------------------------------
-r7158 | vlefevre | 2010-09-19 17:58:10 +0000 (Sun, 19 Sep 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Minor update.
-------------------------------------------------------------------------
-r7157 | zimmerma | 2010-09-19 12:32:22 +0000 (Sun, 19 Sep 2010) | 3 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] inform the users that mpfr_add_one_ulp and mpfr_sub_one_ulp will be
- removed
-
-------------------------------------------------------------------------
-r7156 | zimmerma | 2010-09-18 19:50:36 +0000 (Sat, 18 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added efficiency item
-
-------------------------------------------------------------------------
-r7150 | zimmerma | 2010-09-16 02:56:41 +0000 (Thu, 16 Sep 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tset_z_exp.c
-
-replaced calls to mpfr_printf by calls to mpfr_dump
-(mpfr_printf might not be defined)
-
-------------------------------------------------------------------------
-r7149 | zimmerma | 2010-09-16 00:41:32 +0000 (Thu, 16 Sep 2010) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/doc/mpfr.texi
-
-[NEWS,doc/mpfr.texi] updated: the GMP random functions do not depend on the
- computer word size
-
-------------------------------------------------------------------------
-r7145 | vlefevre | 2010-09-15 15:17:09 +0000 (Wed, 15 Sep 2010) | 1 line
-Changed paths:
- M /trunk/tools/mpfrlint
-
-[tools/mpfrlint] Check for mpfr_printf-like functions in the tests.
-------------------------------------------------------------------------
-r7144 | vlefevre | 2010-09-15 15:15:06 +0000 (Wed, 15 Sep 2010) | 1 line
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] Updated the month.
-------------------------------------------------------------------------
-r7143 | zimmerma | 2010-09-15 13:26:39 +0000 (Wed, 15 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/doc/mpfr.texi
-
-[doc/mpfr.texi] added notes for mpfr_urandom and mpfr_urandomb
-
-------------------------------------------------------------------------
-r7142 | zimmerma | 2010-09-15 09:27:38 +0000 (Wed, 15 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[Makefile.am] updated LOADLIBES with reorganization of the sources
-
-------------------------------------------------------------------------
-r7141 | zimmerma | 2010-09-15 09:15:57 +0000 (Wed, 15 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/doc/algorithms.tex
-
-[algorithms.tex] added sections for pow_ui and root
-
-------------------------------------------------------------------------
-r7140 | zimmerma | 2010-09-15 08:30:10 +0000 (Wed, 15 Sep 2010) | 4 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/src/urandom.c
- M /trunk/tests/turandom.c
-
-[src/urandom.c] now mpfr_urandom also returns identical values on 32-bit and
- 64-bit machines
-[tests/turandom.c] modified corresponding test
-
-------------------------------------------------------------------------
-r7139 | zimmerma | 2010-09-15 07:47:50 +0000 (Wed, 15 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
- M /trunk/tests/turandom.c
-
-replaced mpfr_printf in tests by calls to mpfr_out_str
-
-------------------------------------------------------------------------
-r7138 | vlefevre | 2010-09-15 07:35:16 +0000 (Wed, 15 Sep 2010) | 1 line
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Updated the paragraph added in r7137.
-------------------------------------------------------------------------
-r7137 | vlefevre | 2010-09-15 07:30:13 +0000 (Wed, 15 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/doc/README.dev
-
-[doc/README.dev] Added a paragraph about the use of system-dependent
-functions in the test suite.
-------------------------------------------------------------------------
-r7136 | vlefevre | 2010-09-15 07:28:34 +0000 (Wed, 15 Sep 2010) | 1 line
-Changed paths:
- M /trunk/src/init2.c
- M /trunk/src/set_ld.c
- M /trunk/src/vasprintf.c
-
-Some minor corrections in comments.
-------------------------------------------------------------------------
-r7135 | vlefevre | 2010-09-15 07:24:05 +0000 (Wed, 15 Sep 2010) | 1 line
-Changed paths:
- M /trunk/src/printf.c
-
-[src/printf.c] Typo in a comment.
-------------------------------------------------------------------------
-r7134 | vlefevre | 2010-09-15 07:23:25 +0000 (Wed, 15 Sep 2010) | 1 line
-Changed paths:
- M /trunk/src/printf.c
-
-[src/printf.c] Slight modification of a comment.
-------------------------------------------------------------------------
-r7133 | zimmerma | 2010-09-15 02:50:32 +0000 (Wed, 15 Sep 2010) | 8 lines
-Changed paths:
- M /trunk/src/urandom.c
- M /trunk/src/urandomb.c
- M /trunk/tests/trandom.c
- M /trunk/tests/turandom.c
-
-[urandomb.c] modified to leave the GMP random generator in the same state,
- independent of GMP_NUMB_BITS
-[trandom.c] test of the above
-[urandom.c] added FIXME's
-[turandom.c] check we leave the GMP random generator in the same state,
- independent of GMP_NUMB_BITS. Currently this fails on 64-bit
- computers.
-
-------------------------------------------------------------------------
-r7132 | zimmerma | 2010-09-15 01:57:46 +0000 (Wed, 15 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/urandomb.c
-
-[urandomb.c] added comment + slight change
-
-------------------------------------------------------------------------
-r7121 | vlefevre | 2010-09-01 11:30:22 +0000 (Wed, 01 Sep 2010) | 4 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added casts to improve robustness in case of undefined
-behavior and compiler extensions based on UB (in particular -fwrapv).
-MPFR doesn't use such extensions, but these macros will be used by
-3rd-party code, where such extensions may be required.
-------------------------------------------------------------------------
-r7120 | vlefevre | 2010-09-01 11:06:07 +0000 (Wed, 01 Sep 2010) | 1 line
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Updated a comment concerning -Wconversion.
-------------------------------------------------------------------------
-r7118 | vlefevre | 2010-09-01 10:42:55 +0000 (Wed, 01 Sep 2010) | 6 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added casts to unsigned long in mpfr_cmp_si and mpfr_set_si
-macros for GCC, in order to avoid warnings in programs that use MPFR and
-are compiled with -Wconversion (suggestion by Andreas Enge); such casts
-are OK since if X is a constant expression, then (unsigned long) X is
-also a constant expression, so that the optimizations still work.
-Reformatted these macros.
-------------------------------------------------------------------------
-r7116 | vlefevre | 2010-09-01 09:25:27 +0000 (Wed, 01 Sep 2010) | 4 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Fixed bug in the mpfr_cmp_ui macro for GCC (also used
-by mpfr_cmp_si), when the evaluation of the first argument yields
-side effects and the second argument is a constant expression with
-the value 0.
-------------------------------------------------------------------------
-r7115 | vlefevre | 2010-09-01 09:19:43 +0000 (Wed, 01 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-[tests/tcmp_ui.c] Added side-effect tests similar to those in tset_si.c,
-showing a bug in the mpfr_cmp_ui and mpfr_cmp_si macros.
-------------------------------------------------------------------------
-r7114 | vlefevre | 2010-09-01 09:07:59 +0000 (Wed, 01 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-[tests/tcmp_ui.c] Check mpfr_cmp_ui and mpfr_cmp_si macros against
-side effects in the arguments.
-------------------------------------------------------------------------
-r7113 | vlefevre | 2010-09-01 08:58:22 +0000 (Wed, 01 Sep 2010) | 2 lines
-Changed paths:
- M /trunk/src/mpfr.h
-
-[src/mpfr.h] Added a comment about the macros that use
-__builtin_constant_p.
-------------------------------------------------------------------------
-r7112 | zimmerma | 2010-08-30 09:04:00 +0000 (Mon, 30 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tsqrt.c] improved comment, and added test sqrt(+0) == +0
-
-------------------------------------------------------------------------
-r7111 | vlefevre | 2010-08-29 19:26:00 +0000 (Sun, 29 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] Renamed check_nan() to check_singular().
-------------------------------------------------------------------------
-r7110 | vlefevre | 2010-08-29 19:23:52 +0000 (Sun, 29 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] Check that sqrt(-0) has a negative sign.
-------------------------------------------------------------------------
-r7108 | vlefevre | 2010-08-26 14:44:41 +0000 (Thu, 26 Aug 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Replaced "patches" by "allpatches".
-------------------------------------------------------------------------
-r7107 | zimmerma | 2010-08-25 20:15:24 +0000 (Wed, 25 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/configure.ac
-
-[configure.ac] fixed typo
-
-------------------------------------------------------------------------
-r7106 | vlefevre | 2010-08-23 15:24:10 +0000 (Mon, 23 Aug 2010) | 1 line
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Extend the exponent range in mpfr_cmp_q and mpfr_cmp_f.
-------------------------------------------------------------------------
-r7105 | vlefevre | 2010-08-23 15:03:37 +0000 (Mon, 23 Aug 2010) | 5 lines
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] In mpfr_add_q / mpfr_sub_q, check with MPFR_ASSERTN
-that an internal overflow/underflow doesn't occur. In theory, such
-an exception is possible, but only if q has a huge numerator or
-denominator. This is not supported (note: other problems may occur
-first, such as insufficient memory).
-------------------------------------------------------------------------
-r7104 | vlefevre | 2010-08-23 14:46:44 +0000 (Mon, 23 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Added overflow tests for mpfr_add_q / mpfr_sub_q.
-------------------------------------------------------------------------
-r7103 | vlefevre | 2010-08-23 14:03:07 +0000 (Mon, 23 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
-
-[tests/{mpfr-test.h,tests.c}] Added flags_out function to output flags.
-------------------------------------------------------------------------
-r7102 | vlefevre | 2010-08-23 13:34:08 +0000 (Mon, 23 Aug 2010) | 3 lines
-Changed paths:
- M /trunk/src/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-[src/gmp_op.c] Extend the exponent range in mpfr_add_q / mpfr_sub_q
- (overflow/underflow exceptions are not supported yet).
-[tests/tgmpop.c] Added corresponding testcases.
-------------------------------------------------------------------------
-r7101 | vlefevre | 2010-08-19 12:08:41 +0000 (Thu, 19 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/src/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-[src/gmp_op.c] Fixed the Inf +/- Inf cases for mpfr_add_q / mpfr_sub_q.
-[tests/tgmpop.c] Added Inf +/- Inf tests.
-------------------------------------------------------------------------
-r7100 | thevenyp | 2010-08-19 08:56:31 +0000 (Thu, 19 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Fix rounding mode in overflow tests
-------------------------------------------------------------------------
-r7099 | vlefevre | 2010-08-19 01:26:16 +0000 (Thu, 19 Aug 2010) | 3 lines
-Changed paths:
- M /trunk/src/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-[src/gmp_op.c] The function mpfr_cmp_z could fail in a reduced
-exponent range.
-[tests/tgmpop.c] Added a corresponding testcase.
-------------------------------------------------------------------------
-r7098 | vlefevre | 2010-08-19 01:00:53 +0000 (Thu, 19 Aug 2010) | 3 lines
-Changed paths:
- M /trunk/src/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-[src/gmp_op.c] The functions mpfr_mul_z, mpfr_div_z, mpfr_add_z and
-mpfr_sub_z could fail in a reduced exponent range. Fixed.
-[tests/tgmpop.c] Added corresponding testcase.
-------------------------------------------------------------------------
-r7097 | vlefevre | 2010-08-18 21:19:07 +0000 (Wed, 18 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Disabled buggy tests.
-------------------------------------------------------------------------
-r7096 | vlefevre | 2010-08-18 13:24:30 +0000 (Wed, 18 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Fixed the intermediate overflow case in mpfr_muldiv_z
-(for mpfr_mul_q and mpfr_div_q).
-------------------------------------------------------------------------
-r7095 | vlefevre | 2010-08-18 11:55:19 +0000 (Wed, 18 Aug 2010) | 5 lines
-Changed paths:
- M /trunk/src/gmp_op.c
-
-[src/gmp_op.c] Added function mpfr_muldiv_z (currently static -- should
-it be in the API?) that computes y = RND(x*n/d), where n and d are mpz
-integers. Changed mpfr_mul_q and mpfr_div_q to use this function.
-Note: the code of the general case is currently the same as the old
-mpfr_mul_q/mpfr_div_q code, thus needs to be fixed.
-------------------------------------------------------------------------
-r7094 | vlefevre | 2010-08-18 08:59:58 +0000 (Wed, 18 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Replaced GMP_RNDN by MPFR_RNDN.
-------------------------------------------------------------------------
-r7093 | vlefevre | 2010-08-18 08:29:03 +0000 (Wed, 18 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Added testcase for mpfr_mul_q/mpfr_div_q bug noted
-in src/gmp_op.c (due to intermediate overflow).
-------------------------------------------------------------------------
-r7092 | vlefevre | 2010-08-17 15:32:53 +0000 (Tue, 17 Aug 2010) | 1 line
-Changed paths:
- M /trunk/src/logging.c
-
-[src/logging.c] Added a comment about register_printf_function.
-------------------------------------------------------------------------
-r7091 | vlefevre | 2010-08-17 12:45:22 +0000 (Tue, 17 Aug 2010) | 6 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/tools/ck-version-info
-
-Added tools/ck-version-info Perl script with the same license as
-Makefile.am, to check consistency concerning -version-info and
-that the -version-info value is up-to-date.
-Updated Makefile.am:
- * In dist-hook, replaced complex sh code by a call to ck-version-info.
- * Distribute ck-version-info (EXTRA_DIST).
-------------------------------------------------------------------------
-r7090 | vlefevre | 2010-08-17 12:30:02 +0000 (Tue, 17 Aug 2010) | 1 line
-Changed paths:
- M /trunk
- M /trunk/doc
- M /trunk/src
- M /trunk/tune
-
-Updated svn:ignore properties.
-------------------------------------------------------------------------
-r7089 | vlefevre | 2010-08-17 09:31:09 +0000 (Tue, 17 Aug 2010) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Put tools/get_patches.sh back to EXTRA_DIST.
-------------------------------------------------------------------------
-r7088 | vlefevre | 2010-08-17 09:25:39 +0000 (Tue, 17 Aug 2010) | 1 line
-Changed paths:
- M /trunk/src/Makefile.am
-
-[src/Makefile.am] Fixed -version-info (I forgot to increment CURRENT).
-------------------------------------------------------------------------
-r7087 | vlefevre | 2010-08-17 09:10:13 +0000 (Tue, 17 Aug 2010) | 38 lines
-Changed paths:
- D /trunk/FAQ.html
- M /trunk/INSTALL
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- D /trunk/README.dev
- M /trunk/TODO
- D /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- D /trunk/acos.c
- D /trunk/acosh.c
- D /trunk/add.c
- D /trunk/add1.c
- D /trunk/add1sp.c
- D /trunk/add_d.c
- D /trunk/add_ui.c
- D /trunk/agm.c
- D /trunk/ai.c
- D /trunk/algorithm2e.sty
- D /trunk/algorithms.bib
- D /trunk/algorithms.tex
- D /trunk/asin.c
- D /trunk/asinh.c
- D /trunk/atan.c
- D /trunk/atan2.c
- D /trunk/atanh.c
- D /trunk/bernoulli.c
- D /trunk/bidimensional_sample.c
- D /trunk/buildopt.c
- D /trunk/cache.c
- D /trunk/cbrt.c
- D /trunk/check.c
- D /trunk/check_inits_clears
- D /trunk/clear.c
- D /trunk/clears.c
- D /trunk/cmp.c
- D /trunk/cmp2.c
- D /trunk/cmp_abs.c
- D /trunk/cmp_d.c
- D /trunk/cmp_ld.c
- D /trunk/cmp_si.c
- D /trunk/cmp_ui.c
- D /trunk/comparisons.c
- A /trunk/configure.ac (from /trunk/configure.in:7086)
- D /trunk/configure.in
- D /trunk/const_catalan.c
- D /trunk/const_euler.c
- D /trunk/const_log2.c
- D /trunk/const_pi.c
- D /trunk/constant.c
- D /trunk/copysign.c
- D /trunk/cos.c
- D /trunk/cosh.c
- D /trunk/cot.c
- D /trunk/coth.c
- D /trunk/coverage
- D /trunk/cputime.h
- D /trunk/csc.c
- D /trunk/csch.c
- D /trunk/d_div.c
- D /trunk/d_sub.c
- D /trunk/digamma.c
- D /trunk/dim.c
- D /trunk/div-short.c
- D /trunk/div.c
- D /trunk/div_2exp.c
- D /trunk/div_2si.c
- D /trunk/div_2ui.c
- D /trunk/div_d.c
- D /trunk/div_ui.c
- A /trunk/doc
- A /trunk/doc/FAQ.html (from /trunk/FAQ.html:7086)
- A /trunk/doc/Makefile.am
- A /trunk/doc/README.dev (from /trunk/README.dev:7086)
- A /trunk/doc/algorithm2e.sty (from /trunk/algorithm2e.sty:7086)
- A /trunk/doc/algorithms.bib (from /trunk/algorithms.bib:7086)
- A /trunk/doc/algorithms.tex (from /trunk/algorithms.tex:7086)
- A /trunk/doc/faq.xsl (from /trunk/faq.xsl:7086)
- A /trunk/doc/fdl.texi (from /trunk/fdl.texi:7086)
- A /trunk/doc/mpfr.texi (from /trunk/mpfr.texi:7086)
- A /trunk/doc/update-faq (from /trunk/update-faq:7086)
- D /trunk/dump.c
- D /trunk/eint.c
- D /trunk/eq.c
- D /trunk/erf.c
- D /trunk/erfc.c
- D /trunk/exceptions.c
- D /trunk/exp.c
- D /trunk/exp10.c
- D /trunk/exp2.c
- D /trunk/exp3.c
- D /trunk/exp_2.c
- D /trunk/expm1.c
- D /trunk/extract.c
- D /trunk/factorial.c
- D /trunk/faq.xsl
- D /trunk/fdl.texi
- D /trunk/fits_intmax.c
- D /trunk/fits_s.h
- D /trunk/fits_sint.c
- D /trunk/fits_slong.c
- D /trunk/fits_sshort.c
- D /trunk/fits_u.h
- D /trunk/fits_uint.c
- D /trunk/fits_uintmax.c
- D /trunk/fits_ulong.c
- D /trunk/fits_ushort.c
- D /trunk/fma.c
- D /trunk/fms.c
- D /trunk/frac.c
- D /trunk/free_cache.c
- D /trunk/gamma.c
- D /trunk/gammaonethird.c
- D /trunk/gen_inverse.h
- D /trunk/get_d.c
- D /trunk/get_d64.c
- D /trunk/get_exp.c
- D /trunk/get_f.c
- D /trunk/get_flt.c
- D /trunk/get_ld.c
- D /trunk/get_patches.sh
- D /trunk/get_si.c
- D /trunk/get_sj.c
- D /trunk/get_str.c
- D /trunk/get_ui.c
- D /trunk/get_uj.c
- D /trunk/get_z.c
- D /trunk/get_z_exp.c
- D /trunk/gmp_op.c
- D /trunk/hypot.c
- D /trunk/ieee_floats.h
- D /trunk/init.c
- D /trunk/init2.c
- D /trunk/inits.c
- D /trunk/inits2.c
- D /trunk/inp_str.c
- D /trunk/int_ceil_log2.c
- D /trunk/isinf.c
- D /trunk/isinteger.c
- D /trunk/isnan.c
- D /trunk/isnum.c
- D /trunk/isqrt.c
- D /trunk/isregular.c
- D /trunk/iszero.c
- D /trunk/jn.c
- D /trunk/jyn_asympt.c
- D /trunk/li2.c
- D /trunk/lngamma.c
- D /trunk/log.c
- D /trunk/log10.c
- D /trunk/log1p.c
- D /trunk/log2.c
- D /trunk/logging.c
- D /trunk/mbench
- D /trunk/min_prec.c
- D /trunk/minmax.c
- D /trunk/modf.c
- D /trunk/mp_clz_tab.c
- D /trunk/mparam_h.in
- D /trunk/mpf2mpfr.h
- D /trunk/mpfr-gmp.c
- D /trunk/mpfr-gmp.h
- D /trunk/mpfr-impl.h
- D /trunk/mpfr-longlong.h
- D /trunk/mpfr-thread.h
- D /trunk/mpfr.h
- D /trunk/mpfr.texi
- D /trunk/mpfrlint
- D /trunk/mpn_exp.c
- D /trunk/mul.c
- D /trunk/mul_2exp.c
- D /trunk/mul_2si.c
- D /trunk/mul_2ui.c
- D /trunk/mul_d.c
- D /trunk/mul_ui.c
- D /trunk/mulders.c
- D /trunk/neg.c
- D /trunk/next.c
- D /trunk/nightly-test
- A /trunk/other
- A /trunk/other/cputime.h (from /trunk/cputime.h:7086)
- A /trunk/other/div-short.c (from /trunk/div-short.c:7086)
- D /trunk/out_str.c
- D /trunk/pow.c
- D /trunk/pow_si.c
- D /trunk/pow_ui.c
- D /trunk/pow_z.c
- D /trunk/powerof2.c
- D /trunk/print_raw.c
- D /trunk/print_rnd_mode.c
- D /trunk/printf.c
- D /trunk/rec_sqrt.c
- D /trunk/reldiff.c
- D /trunk/rem1.c
- D /trunk/replace_all
- D /trunk/rint.c
- D /trunk/root.c
- D /trunk/round_near_x.c
- D /trunk/round_p.c
- D /trunk/round_prec.c
- D /trunk/round_raw_generic.c
- D /trunk/scale2.c
- D /trunk/sec.c
- D /trunk/sech.c
- D /trunk/set.c
- D /trunk/set_d.c
- D /trunk/set_d64.c
- D /trunk/set_dfl_prec.c
- D /trunk/set_exp.c
- D /trunk/set_f.c
- D /trunk/set_flt.c
- D /trunk/set_inf.c
- D /trunk/set_ld.c
- D /trunk/set_nan.c
- D /trunk/set_prc_raw.c
- D /trunk/set_prec.c
- D /trunk/set_q.c
- D /trunk/set_rnd.c
- D /trunk/set_si.c
- D /trunk/set_si_2exp.c
- D /trunk/set_sj.c
- D /trunk/set_str.c
- D /trunk/set_str_raw.c
- D /trunk/set_ui.c
- D /trunk/set_ui_2exp.c
- D /trunk/set_uj.c
- D /trunk/set_z.c
- D /trunk/set_z_exp.c
- D /trunk/set_zero.c
- D /trunk/setmax.c
- D /trunk/setmin.c
- D /trunk/setsign.c
- D /trunk/sgn.c
- D /trunk/si_op.c
- D /trunk/signbit.c
- D /trunk/sin.c
- D /trunk/sin_cos.c
- D /trunk/sinh.c
- D /trunk/sinh_cosh.c
- D /trunk/speed.c
- D /trunk/sqr.c
- D /trunk/sqrt.c
- D /trunk/sqrt_ui.c
- A /trunk/src
- A /trunk/src/Makefile.am (from /trunk/Makefile.am:7086)
- A /trunk/src/abort_prec_max.c (from /trunk/abort_prec_max.c:7086)
- A /trunk/src/acos.c (from /trunk/acos.c:7086)
- A /trunk/src/acosh.c (from /trunk/acosh.c:7086)
- A /trunk/src/add.c (from /trunk/add.c:7086)
- A /trunk/src/add1.c (from /trunk/add1.c:7086)
- A /trunk/src/add1sp.c (from /trunk/add1sp.c:7086)
- A /trunk/src/add_d.c (from /trunk/add_d.c:7086)
- A /trunk/src/add_ui.c (from /trunk/add_ui.c:7086)
- A /trunk/src/agm.c (from /trunk/agm.c:7086)
- A /trunk/src/ai.c (from /trunk/ai.c:7086)
- A /trunk/src/asin.c (from /trunk/asin.c:7086)
- A /trunk/src/asinh.c (from /trunk/asinh.c:7086)
- A /trunk/src/atan.c (from /trunk/atan.c:7086)
- A /trunk/src/atan2.c (from /trunk/atan2.c:7086)
- A /trunk/src/atanh.c (from /trunk/atanh.c:7086)
- A /trunk/src/bernoulli.c (from /trunk/bernoulli.c:7086)
- A /trunk/src/buildopt.c (from /trunk/buildopt.c:7086)
- A /trunk/src/cache.c (from /trunk/cache.c:7086)
- A /trunk/src/cbrt.c (from /trunk/cbrt.c:7086)
- A /trunk/src/check.c (from /trunk/check.c:7086)
- A /trunk/src/clear.c (from /trunk/clear.c:7086)
- A /trunk/src/clears.c (from /trunk/clears.c:7086)
- A /trunk/src/cmp.c (from /trunk/cmp.c:7086)
- A /trunk/src/cmp2.c (from /trunk/cmp2.c:7086)
- A /trunk/src/cmp_abs.c (from /trunk/cmp_abs.c:7086)
- A /trunk/src/cmp_d.c (from /trunk/cmp_d.c:7086)
- A /trunk/src/cmp_ld.c (from /trunk/cmp_ld.c:7086)
- A /trunk/src/cmp_si.c (from /trunk/cmp_si.c:7086)
- A /trunk/src/cmp_ui.c (from /trunk/cmp_ui.c:7086)
- A /trunk/src/comparisons.c (from /trunk/comparisons.c:7086)
- A /trunk/src/const_catalan.c (from /trunk/const_catalan.c:7086)
- A /trunk/src/const_euler.c (from /trunk/const_euler.c:7086)
- A /trunk/src/const_log2.c (from /trunk/const_log2.c:7086)
- A /trunk/src/const_pi.c (from /trunk/const_pi.c:7086)
- A /trunk/src/constant.c (from /trunk/constant.c:7086)
- A /trunk/src/copysign.c (from /trunk/copysign.c:7086)
- A /trunk/src/cos.c (from /trunk/cos.c:7086)
- A /trunk/src/cosh.c (from /trunk/cosh.c:7086)
- A /trunk/src/cot.c (from /trunk/cot.c:7086)
- A /trunk/src/coth.c (from /trunk/coth.c:7086)
- A /trunk/src/csc.c (from /trunk/csc.c:7086)
- A /trunk/src/csch.c (from /trunk/csch.c:7086)
- A /trunk/src/d_div.c (from /trunk/d_div.c:7086)
- A /trunk/src/d_sub.c (from /trunk/d_sub.c:7086)
- A /trunk/src/digamma.c (from /trunk/digamma.c:7086)
- A /trunk/src/dim.c (from /trunk/dim.c:7086)
- A /trunk/src/div.c (from /trunk/div.c:7086)
- A /trunk/src/div_2exp.c (from /trunk/div_2exp.c:7086)
- A /trunk/src/div_2si.c (from /trunk/div_2si.c:7086)
- A /trunk/src/div_2ui.c (from /trunk/div_2ui.c:7086)
- A /trunk/src/div_d.c (from /trunk/div_d.c:7086)
- A /trunk/src/div_ui.c (from /trunk/div_ui.c:7086)
- A /trunk/src/dump.c (from /trunk/dump.c:7086)
- A /trunk/src/eint.c (from /trunk/eint.c:7086)
- A /trunk/src/eq.c (from /trunk/eq.c:7086)
- A /trunk/src/erf.c (from /trunk/erf.c:7086)
- A /trunk/src/erfc.c (from /trunk/erfc.c:7086)
- A /trunk/src/exceptions.c (from /trunk/exceptions.c:7086)
- A /trunk/src/exp.c (from /trunk/exp.c:7086)
- A /trunk/src/exp10.c (from /trunk/exp10.c:7086)
- A /trunk/src/exp2.c (from /trunk/exp2.c:7086)
- A /trunk/src/exp3.c (from /trunk/exp3.c:7086)
- A /trunk/src/exp_2.c (from /trunk/exp_2.c:7086)
- A /trunk/src/expm1.c (from /trunk/expm1.c:7086)
- A /trunk/src/extract.c (from /trunk/extract.c:7086)
- A /trunk/src/factorial.c (from /trunk/factorial.c:7086)
- A /trunk/src/fits_intmax.c (from /trunk/fits_intmax.c:7086)
- A /trunk/src/fits_s.h (from /trunk/fits_s.h:7086)
- A /trunk/src/fits_sint.c (from /trunk/fits_sint.c:7086)
- A /trunk/src/fits_slong.c (from /trunk/fits_slong.c:7086)
- A /trunk/src/fits_sshort.c (from /trunk/fits_sshort.c:7086)
- A /trunk/src/fits_u.h (from /trunk/fits_u.h:7086)
- A /trunk/src/fits_uint.c (from /trunk/fits_uint.c:7086)
- A /trunk/src/fits_uintmax.c (from /trunk/fits_uintmax.c:7086)
- A /trunk/src/fits_ulong.c (from /trunk/fits_ulong.c:7086)
- A /trunk/src/fits_ushort.c (from /trunk/fits_ushort.c:7086)
- A /trunk/src/fma.c (from /trunk/fma.c:7086)
- A /trunk/src/fms.c (from /trunk/fms.c:7086)
- A /trunk/src/frac.c (from /trunk/frac.c:7086)
- A /trunk/src/free_cache.c (from /trunk/free_cache.c:7086)
- A /trunk/src/gamma.c (from /trunk/gamma.c:7086)
- A /trunk/src/gammaonethird.c (from /trunk/gammaonethird.c:7086)
- A /trunk/src/gen_inverse.h (from /trunk/gen_inverse.h:7086)
- A /trunk/src/get_d.c (from /trunk/get_d.c:7086)
- A /trunk/src/get_d64.c (from /trunk/get_d64.c:7086)
- A /trunk/src/get_exp.c (from /trunk/get_exp.c:7086)
- A /trunk/src/get_f.c (from /trunk/get_f.c:7086)
- A /trunk/src/get_flt.c (from /trunk/get_flt.c:7086)
- A /trunk/src/get_ld.c (from /trunk/get_ld.c:7086)
- A /trunk/src/get_si.c (from /trunk/get_si.c:7086)
- A /trunk/src/get_sj.c (from /trunk/get_sj.c:7086)
- A /trunk/src/get_str.c (from /trunk/get_str.c:7086)
- A /trunk/src/get_ui.c (from /trunk/get_ui.c:7086)
- A /trunk/src/get_uj.c (from /trunk/get_uj.c:7086)
- A /trunk/src/get_z.c (from /trunk/get_z.c:7086)
- A /trunk/src/get_z_exp.c (from /trunk/get_z_exp.c:7086)
- A /trunk/src/gmp_op.c (from /trunk/gmp_op.c:7086)
- A /trunk/src/hypot.c (from /trunk/hypot.c:7086)
- A /trunk/src/ieee_floats.h (from /trunk/ieee_floats.h:7086)
- A /trunk/src/init.c (from /trunk/init.c:7086)
- A /trunk/src/init2.c (from /trunk/init2.c:7086)
- A /trunk/src/inits.c (from /trunk/inits.c:7086)
- A /trunk/src/inits2.c (from /trunk/inits2.c:7086)
- A /trunk/src/inp_str.c (from /trunk/inp_str.c:7086)
- A /trunk/src/int_ceil_log2.c (from /trunk/int_ceil_log2.c:7086)
- A /trunk/src/isinf.c (from /trunk/isinf.c:7086)
- A /trunk/src/isinteger.c (from /trunk/isinteger.c:7086)
- A /trunk/src/isnan.c (from /trunk/isnan.c:7086)
- A /trunk/src/isnum.c (from /trunk/isnum.c:7086)
- A /trunk/src/isqrt.c (from /trunk/isqrt.c:7086)
- A /trunk/src/isregular.c (from /trunk/isregular.c:7086)
- A /trunk/src/iszero.c (from /trunk/iszero.c:7086)
- A /trunk/src/jn.c (from /trunk/jn.c:7086)
- A /trunk/src/jyn_asympt.c (from /trunk/jyn_asympt.c:7086)
- A /trunk/src/li2.c (from /trunk/li2.c:7086)
- A /trunk/src/lngamma.c (from /trunk/lngamma.c:7086)
- A /trunk/src/log.c (from /trunk/log.c:7086)
- A /trunk/src/log10.c (from /trunk/log10.c:7086)
- A /trunk/src/log1p.c (from /trunk/log1p.c:7086)
- A /trunk/src/log2.c (from /trunk/log2.c:7086)
- A /trunk/src/logging.c (from /trunk/logging.c:7086)
- A /trunk/src/min_prec.c (from /trunk/min_prec.c:7086)
- A /trunk/src/minmax.c (from /trunk/minmax.c:7086)
- A /trunk/src/modf.c (from /trunk/modf.c:7086)
- A /trunk/src/mp_clz_tab.c (from /trunk/mp_clz_tab.c:7086)
- A /trunk/src/mparam_h.in (from /trunk/mparam_h.in:7086)
- A /trunk/src/mpf2mpfr.h (from /trunk/mpf2mpfr.h:7086)
- A /trunk/src/mpfr-gmp.c (from /trunk/mpfr-gmp.c:7086)
- A /trunk/src/mpfr-gmp.h (from /trunk/mpfr-gmp.h:7086)
- A /trunk/src/mpfr-impl.h (from /trunk/mpfr-impl.h:7086)
- A /trunk/src/mpfr-longlong.h (from /trunk/mpfr-longlong.h:7086)
- A /trunk/src/mpfr-thread.h (from /trunk/mpfr-thread.h:7086)
- A /trunk/src/mpfr.h (from /trunk/mpfr.h:7086)
- A /trunk/src/mpn_exp.c (from /trunk/mpn_exp.c:7086)
- A /trunk/src/mul.c (from /trunk/mul.c:7086)
- A /trunk/src/mul_2exp.c (from /trunk/mul_2exp.c:7086)
- A /trunk/src/mul_2si.c (from /trunk/mul_2si.c:7086)
- A /trunk/src/mul_2ui.c (from /trunk/mul_2ui.c:7086)
- A /trunk/src/mul_d.c (from /trunk/mul_d.c:7086)
- A /trunk/src/mul_ui.c (from /trunk/mul_ui.c:7086)
- A /trunk/src/mulders.c (from /trunk/mulders.c:7086)
- A /trunk/src/neg.c (from /trunk/neg.c:7086)
- A /trunk/src/next.c (from /trunk/next.c:7086)
- A /trunk/src/out_str.c (from /trunk/out_str.c:7086)
- A /trunk/src/pow.c (from /trunk/pow.c:7086)
- A /trunk/src/pow_si.c (from /trunk/pow_si.c:7086)
- A /trunk/src/pow_ui.c (from /trunk/pow_ui.c:7086)
- A /trunk/src/pow_z.c (from /trunk/pow_z.c:7086)
- A /trunk/src/powerof2.c (from /trunk/powerof2.c:7086)
- A /trunk/src/print_raw.c (from /trunk/print_raw.c:7086)
- A /trunk/src/print_rnd_mode.c (from /trunk/print_rnd_mode.c:7086)
- A /trunk/src/printf.c (from /trunk/printf.c:7086)
- A /trunk/src/rec_sqrt.c (from /trunk/rec_sqrt.c:7086)
- A /trunk/src/reldiff.c (from /trunk/reldiff.c:7086)
- A /trunk/src/rem1.c (from /trunk/rem1.c:7086)
- A /trunk/src/rint.c (from /trunk/rint.c:7086)
- A /trunk/src/root.c (from /trunk/root.c:7086)
- A /trunk/src/round_near_x.c (from /trunk/round_near_x.c:7086)
- A /trunk/src/round_p.c (from /trunk/round_p.c:7086)
- A /trunk/src/round_prec.c (from /trunk/round_prec.c:7086)
- A /trunk/src/round_raw_generic.c (from /trunk/round_raw_generic.c:7086)
- A /trunk/src/scale2.c (from /trunk/scale2.c:7086)
- A /trunk/src/sec.c (from /trunk/sec.c:7086)
- A /trunk/src/sech.c (from /trunk/sech.c:7086)
- A /trunk/src/set.c (from /trunk/set.c:7086)
- A /trunk/src/set_d.c (from /trunk/set_d.c:7086)
- A /trunk/src/set_d64.c (from /trunk/set_d64.c:7086)
- A /trunk/src/set_dfl_prec.c (from /trunk/set_dfl_prec.c:7086)
- A /trunk/src/set_exp.c (from /trunk/set_exp.c:7086)
- A /trunk/src/set_f.c (from /trunk/set_f.c:7086)
- A /trunk/src/set_flt.c (from /trunk/set_flt.c:7086)
- A /trunk/src/set_inf.c (from /trunk/set_inf.c:7086)
- A /trunk/src/set_ld.c (from /trunk/set_ld.c:7086)
- A /trunk/src/set_nan.c (from /trunk/set_nan.c:7086)
- A /trunk/src/set_prc_raw.c (from /trunk/set_prc_raw.c:7086)
- A /trunk/src/set_prec.c (from /trunk/set_prec.c:7086)
- A /trunk/src/set_q.c (from /trunk/set_q.c:7086)
- A /trunk/src/set_rnd.c (from /trunk/set_rnd.c:7086)
- A /trunk/src/set_si.c (from /trunk/set_si.c:7086)
- A /trunk/src/set_si_2exp.c (from /trunk/set_si_2exp.c:7086)
- A /trunk/src/set_sj.c (from /trunk/set_sj.c:7086)
- A /trunk/src/set_str.c (from /trunk/set_str.c:7086)
- A /trunk/src/set_str_raw.c (from /trunk/set_str_raw.c:7086)
- A /trunk/src/set_ui.c (from /trunk/set_ui.c:7086)
- A /trunk/src/set_ui_2exp.c (from /trunk/set_ui_2exp.c:7086)
- A /trunk/src/set_uj.c (from /trunk/set_uj.c:7086)
- A /trunk/src/set_z.c (from /trunk/set_z.c:7086)
- A /trunk/src/set_z_exp.c (from /trunk/set_z_exp.c:7086)
- A /trunk/src/set_zero.c (from /trunk/set_zero.c:7086)
- A /trunk/src/setmax.c (from /trunk/setmax.c:7086)
- A /trunk/src/setmin.c (from /trunk/setmin.c:7086)
- A /trunk/src/setsign.c (from /trunk/setsign.c:7086)
- A /trunk/src/sgn.c (from /trunk/sgn.c:7086)
- A /trunk/src/si_op.c (from /trunk/si_op.c:7086)
- A /trunk/src/signbit.c (from /trunk/signbit.c:7086)
- A /trunk/src/sin.c (from /trunk/sin.c:7086)
- A /trunk/src/sin_cos.c (from /trunk/sin_cos.c:7086)
- A /trunk/src/sinh.c (from /trunk/sinh.c:7086)
- A /trunk/src/sinh_cosh.c (from /trunk/sinh_cosh.c:7086)
- A /trunk/src/sqr.c (from /trunk/sqr.c:7086)
- A /trunk/src/sqrt.c (from /trunk/sqrt.c:7086)
- A /trunk/src/sqrt_ui.c (from /trunk/sqrt_ui.c:7086)
- A /trunk/src/stack_interface.c (from /trunk/stack_interface.c:7086)
- A /trunk/src/strtofr.c (from /trunk/strtofr.c:7086)
- A /trunk/src/sub.c (from /trunk/sub.c:7086)
- A /trunk/src/sub1.c (from /trunk/sub1.c:7086)
- A /trunk/src/sub1sp.c (from /trunk/sub1sp.c:7086)
- A /trunk/src/sub_d.c (from /trunk/sub_d.c:7086)
- A /trunk/src/sub_ui.c (from /trunk/sub_ui.c:7086)
- A /trunk/src/subnormal.c (from /trunk/subnormal.c:7086)
- A /trunk/src/sum.c (from /trunk/sum.c:7086)
- A /trunk/src/swap.c (from /trunk/swap.c:7086)
- A /trunk/src/tan.c (from /trunk/tan.c:7086)
- A /trunk/src/tanh.c (from /trunk/tanh.c:7086)
- A /trunk/src/uceil_exp2.c (from /trunk/uceil_exp2.c:7086)
- A /trunk/src/uceil_log2.c (from /trunk/uceil_log2.c:7086)
- A /trunk/src/ufloor_log2.c (from /trunk/ufloor_log2.c:7086)
- A /trunk/src/ui_div.c (from /trunk/ui_div.c:7086)
- A /trunk/src/ui_pow.c (from /trunk/ui_pow.c:7086)
- A /trunk/src/ui_pow_ui.c (from /trunk/ui_pow_ui.c:7086)
- A /trunk/src/ui_sub.c (from /trunk/ui_sub.c:7086)
- A /trunk/src/urandom.c (from /trunk/urandom.c:7086)
- A /trunk/src/urandomb.c (from /trunk/urandomb.c:7086)
- A /trunk/src/vasprintf.c (from /trunk/vasprintf.c:7086)
- A /trunk/src/version.c (from /trunk/version.c:7086)
- A /trunk/src/volatile.c (from /trunk/volatile.c:7086)
- A /trunk/src/yn.c (from /trunk/yn.c:7086)
- A /trunk/src/zeta.c (from /trunk/zeta.c:7086)
- A /trunk/src/zeta_ui.c (from /trunk/zeta_ui.c:7086)
- D /trunk/stack_interface.c
- D /trunk/strtofr.c
- D /trunk/sub.c
- D /trunk/sub1.c
- D /trunk/sub1sp.c
- D /trunk/sub_d.c
- D /trunk/sub_ui.c
- D /trunk/subnormal.c
- D /trunk/sum.c
- D /trunk/swap.c
- D /trunk/tan.c
- D /trunk/tanh.c
- M /trunk/tests/Makefile.am
- A /trunk/tools
- A /trunk/tools/check_inits_clears (from /trunk/check_inits_clears:7086)
- A /trunk/tools/coverage (from /trunk/coverage:7086)
- A /trunk/tools/get_patches.sh (from /trunk/get_patches.sh:7086)
- A /trunk/tools/mbench (from /trunk/mbench:7086)
- A /trunk/tools/mpfrlint (from /trunk/mpfrlint:7086)
- A /trunk/tools/nightly-test (from /trunk/nightly-test:7086)
- A /trunk/tools/update-patchv (from /trunk/update-patchv:7086)
- A /trunk/tools/update-version (from /trunk/update-version:7086)
- A /trunk/tune
- A /trunk/tune/Makefile.am
- A /trunk/tune/bidimensional_sample.c (from /trunk/bidimensional_sample.c:7086)
- A /trunk/tune/speed.c (from /trunk/speed.c:7086)
- A /trunk/tune/tuneup.c (from /trunk/tuneup.c:7086)
- D /trunk/tuneup.c
- D /trunk/uceil_exp2.c
- D /trunk/uceil_log2.c
- D /trunk/ufloor_log2.c
- D /trunk/ui_div.c
- D /trunk/ui_pow.c
- D /trunk/ui_pow_ui.c
- D /trunk/ui_sub.c
- D /trunk/update-faq
- D /trunk/update-patchv
- D /trunk/update-version
- D /trunk/urandom.c
- D /trunk/urandomb.c
- D /trunk/vasprintf.c
- D /trunk/version.c
- D /trunk/volatile.c
- D /trunk/yn.c
- D /trunk/zeta.c
- D /trunk/zeta_ui.c
-
-Source reorganization. In short:
- * Added directories and moved related files into them:
- - src for the MPFR source files (to build the library).
- - doc for documentation files (except INSTALL, README...).
- - tools for various tools (scripts) and mbench.
- - tune for tuneup-related source files.
- - other for other source files (not distributed in tarballs).
- Existing directories:
- - tests for the source files of the test suite (make check).
- - examples for examples.
- - m4 for m4 files.
- * Renamed configure.in to configure.ac.
- * Added/updated Makefile.am files where needed.
- * Updated acinclude.m4 and configure.ac (AC_CONFIG_FILES line).
- * Updated the documentation (INSTALL, README, doc/README.dev and
- doc/mpfr.texi).
- * Updated NEWS and TODO.
- * Updated the scripts now in tools.
-
-The following script was used:
-
-#!/usr/bin/env zsh
-svn mkdir doc other src tools tune
-svn mv ${${(M)$(sed -n '/libmpfr_la_SOURCES/,/[^\]$/p' \
- Makefile.am):#*.[ch]}:#get_patches.c} mparam_h.in \
- round_raw_generic.c jyn_asympt.c src
-svn mv mbench check_inits_clears coverage get_patches.sh mpfrlint \
- nightly-test update-patchv update-version tools
-svn mv bidimensional_sample.c speed.c tuneup.c tune
-svn mv *.{c,h} other
-svn mv FAQ.html README.dev algorithm* faq.xsl fdl.texi mpfr.texi \
- update-faq doc
-svn mv configure.in configure.ac
-svn cp Makefile.am src/Makefile.am
-svn rm replace_all
-[Modifying some files, see above]
-svn add doc/Makefile.am
-svn add tune/Makefile.am
-------------------------------------------------------------------------
-r7086 | vlefevre | 2010-08-16 13:09:20 +0000 (Mon, 16 Aug 2010) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Updated -version-info (the interface hasn't really been
-changed yet -- though the future bug fix / rewrite of mpfr_mul_q and
-mpfr_div_q could be seen as an addition -- but this eases maintenance
-and avoids -version-info conflict with the 3.0 branch).
-------------------------------------------------------------------------
-r7085 | vlefevre | 2010-08-16 12:40:14 +0000 (Mon, 16 Aug 2010) | 1 line
-Changed paths:
- M /trunk/bidimensional_sample.c
-
-[bidimensional_sample.c] Added copyright notice.
-------------------------------------------------------------------------
-r7084 | vlefevre | 2010-08-16 12:37:37 +0000 (Mon, 16 Aug 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
-
-[ai.c] Prototype clean-up.
-------------------------------------------------------------------------
-r7083 | vlefevre | 2010-08-16 09:21:21 +0000 (Mon, 16 Aug 2010) | 12 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/acinclude.m4
- M /trunk/fits_intmax.c
- M /trunk/fits_uintmax.c
- M /trunk/get_sj.c
- M /trunk/get_uj.c
- M /trunk/m4/size_max.m4
- M /trunk/set_sj.c
- M /trunk/set_uj.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_sj.c
- M /trunk/vasprintf.c
-
-Avoid a compilation failure on OSF/1 (Tru64) 5.1 due to non-C99
-conformance though <inttypes.h> is available. In various source
-files and m4 files, use the following form only:
-
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#if HAVE_STDINT_H
-# include <stdint.h>
-#endif
-
-Updated README.dev to mention this form.
-------------------------------------------------------------------------
-r7078 | vlefevre | 2010-08-13 14:46:58 +0000 (Fri, 13 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/random2.c
-
-Deleted old svn:mergeinfo property on tests/random2.c
-------------------------------------------------------------------------
-r7077 | vlefevre | 2010-08-13 10:11:25 +0000 (Fri, 13 Aug 2010) | 10 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tzeta_ui.c
-
-[tests] Avoid warning due to -Wunused-but-set-variable (from future
-GCC 4.6). Only let the one from tsubnormal.c because it's a TODO.
- * mpf_compat.h: use the variables, that are there for prototype
- checking.
- * tpow.c, tpow_z.c: test the ternary value.
- * tremquo.c: removed inex variables (the bug due to the MPFR value).
- * tset.c: test the ternary value.
- * tset_ld.c: removed the long double variable (it cannot be tested
- in a portable way and the bug was an assertion failure).
- * tzeta_ui.c: removed the inexact variable (not really useful here).
-------------------------------------------------------------------------
-r7076 | vlefevre | 2010-08-13 09:44:19 +0000 (Fri, 13 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/get_f.c
-
-[get_f.c] Avoid warning due to -Wunused-but-set-variable (from
-future GCC 4.6).
-------------------------------------------------------------------------
-r7075 | vlefevre | 2010-08-13 09:41:27 +0000 (Fri, 13 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-[gamma.c] Avoid warning due to -Wunused-but-set-variable (from
-future GCC 4.6).
-------------------------------------------------------------------------
-r7074 | vlefevre | 2010-08-13 09:38:28 +0000 (Fri, 13 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
-
-[gmp_op.c] Avoid warning due to -Wunused-but-set-variable (from
-future GCC 4.6).
-------------------------------------------------------------------------
-r7073 | vlefevre | 2010-08-13 09:32:58 +0000 (Fri, 13 Aug 2010) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] No longer define qn and sizer, which are no longer used since
-r6919. This was detected by gcc-snapshot (4.6.0 prerelease) under Debian
-(-Wunused-but-set-variable).
-------------------------------------------------------------------------
-r7072 | vlefevre | 2010-08-13 08:12:06 +0000 (Fri, 13 Aug 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Update.
-------------------------------------------------------------------------
-r7071 | vlefevre | 2010-08-13 08:11:16 +0000 (Fri, 13 Aug 2010) | 3 lines
-Changed paths:
- M /trunk/ieee_floats.h
-
-[ieee_floats.h] Avoid breaking aliasing-rules when _GMP_IEEE_FLOATS is
-defined (e.g. with --with-gmp-build), by replacing a struct by a union
-like in r6381 for long double.
-------------------------------------------------------------------------
-r7070 | vlefevre | 2010-08-13 07:58:14 +0000 (Fri, 13 Aug 2010) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-[configure.in] Removed useless slash.
-------------------------------------------------------------------------
-r7069 | vlefevre | 2010-08-12 14:28:59 +0000 (Thu, 12 Aug 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Prepare for new version 3.1.0.
-------------------------------------------------------------------------
-r7067 | vlefevre | 2010-08-12 14:13:48 +0000 (Thu, 12 Aug 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Removed obsolete paragraph about the old prepare script.
-------------------------------------------------------------------------
-r7066 | vlefevre | 2010-08-12 13:46:41 +0000 (Thu, 12 Aug 2010) | 1 line
-Changed paths:
- M /trunk/update-version
-
-[update-version] Detect errors.
-------------------------------------------------------------------------
-r7065 | vlefevre | 2010-08-12 10:51:17 +0000 (Thu, 12 Aug 2010) | 1 line
-Changed paths:
- M /trunk/FAQ.html
-
-Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r7064 | vlefevre | 2010-08-12 10:50:56 +0000 (Thu, 12 Aug 2010) | 1 line
-Changed paths:
- M /trunk/faq.xsl
-
-[faq.xsl] Do not copy XML comments.
-------------------------------------------------------------------------
-r7063 | vlefevre | 2010-08-12 10:48:45 +0000 (Thu, 12 Aug 2010) | 1 line
-Changed paths:
- M /trunk/FAQ.html
-
-Updated FAQ.html with update-faq.
-------------------------------------------------------------------------
-r7059 | vlefevre | 2010-08-12 08:52:54 +0000 (Thu, 12 Aug 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] INRIAGforge -> INRIAGForge.
-------------------------------------------------------------------------
-r7058 | vlefevre | 2010-08-12 08:49:23 +0000 (Thu, 12 Aug 2010) | 5 lines
-Changed paths:
- M /trunk/README
-
-[README] Update:
- * InriaGforge -> INRIAGForge (official typography).
- * Updated URL of the Subversion FAQ (now on apache.org).
- * README.dev provided via SVN only.
- * Removed the old note about the old CVS repository.
-------------------------------------------------------------------------
-r7057 | vlefevre | 2010-08-11 13:56:25 +0000 (Wed, 11 Aug 2010) | 1 line
-Changed paths:
- M /trunk/gmp_op.c
-
-[gmp_op.c] mpfr_mul_q and mpfr_div_q are still buggy; added comment.
-------------------------------------------------------------------------
-r7056 | vlefevre | 2010-08-11 13:39:05 +0000 (Wed, 11 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-[tests/tgmpop.c] Added missing "static".
-------------------------------------------------------------------------
-r7055 | thevenyp | 2010-08-11 10:48:45 +0000 (Wed, 11 Aug 2010) | 1 line
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-gmp_op.c: Fix ternary value returned by mpfr_mul_q and mpfr_div_q in overflow cases.
-------------------------------------------------------------------------
-r7051 | vlefevre | 2010-08-04 23:51:21 +0000 (Wed, 04 Aug 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release" (test of FP division by 0).
-------------------------------------------------------------------------
-r7050 | vlefevre | 2010-08-04 23:45:25 +0000 (Wed, 04 Aug 2010) | 10 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tests.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_ld.c
-
-Support implementations where the floating-point division by 0 fails.
- * acinclude.m4: added a test to check whether the FP division by 0
- fails, and define MPFR_ERRDIVZERO in such a case.
- * tests/tests.c: if MPFR_TEST_DIVBYZERO is defined, test whether
- there has been a floating-point division by 0 (FE_DIVBYZERO or
- FE_INVALID exception).
- * tests/tgeneric.c: if MPFR_ERRDIVZERO is defined, disable the
- huge and tiny cases.
- * tests/t*_{flt,d,ld}.c: if MPFR_ERRDIVZERO is defined, disable
- tests involving NaN and infinities.
-------------------------------------------------------------------------
-r7049 | vlefevre | 2010-08-04 22:09:17 +0000 (Wed, 04 Aug 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Update about the compilers.
-------------------------------------------------------------------------
-r7048 | vlefevre | 2010-08-04 14:50:54 +0000 (Wed, 04 Aug 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Mention clang.
-------------------------------------------------------------------------
-r7047 | vlefevre | 2010-08-04 14:25:17 +0000 (Wed, 04 Aug 2010) | 7 lines
-Changed paths:
- M /trunk/get_sj.c
-
-[get_sj.c] Fixed bug found by John Regehr:
-https://gforge.inria.fr/tracker/index.php?func=detail&aid=10839&group_id=136&atid=619
-Note: the problem was an undefined behavior that could occur when
-sizeof(mp_limb_t) < sizeof(intmax_t) and |x| was small enough,
-because a right shift was >= the type width. However as the shifted
-value was 0, most platforms should not be affected by this bug. This
-problem was detected with clang -fcatch-undefined-ansic-behavior.
-------------------------------------------------------------------------
-r7046 | vlefevre | 2010-08-04 14:05:09 +0000 (Wed, 04 Aug 2010) | 1 line
-Changed paths:
- M /trunk/tests/tget_sj.c
-
-[tests/tget_sj.c] Added tests of 1 and -1.
-------------------------------------------------------------------------
-r7045 | vlefevre | 2010-08-04 13:35:48 +0000 (Wed, 04 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/get_sj.c
-
-[get_sj.c] Added assertions concerning
-https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=10839&group_id=136
-------------------------------------------------------------------------
-r7044 | vlefevre | 2010-08-04 10:59:01 +0000 (Wed, 04 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-[configure.in] When logging is enabled, remove the possible -pedantic
-from GMP's CFLAGS to avoid warnings about C conformance.
-------------------------------------------------------------------------
-r7043 | vlefevre | 2010-08-04 10:17:14 +0000 (Wed, 04 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-[mpfr-impl.h] Reverse-merged changeset r7042. The code was not
-incorrect: the warning is due to the -pedantic from GMP's CFLAGS.
-------------------------------------------------------------------------
-r7042 | vlefevre | 2010-08-04 09:58:06 +0000 (Wed, 04 Aug 2010) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-[mpfr-impl.h] Correction to avoid GCC warnings
- warning: invalid storage class for function 'x_f'
- warning: invalid storage class for function '__mpfr_log_cleanup'
-when building MPFR with logging support.
-------------------------------------------------------------------------
-r7041 | vlefevre | 2010-08-03 15:16:22 +0000 (Tue, 03 Aug 2010) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-[mpfrlint] Correction for the future MPFR source structure.
-------------------------------------------------------------------------
-r7040 | vlefevre | 2010-08-03 15:08:22 +0000 (Tue, 03 Aug 2010) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-[mpfrlint] Execute check_inits_clears.
-------------------------------------------------------------------------
-r7039 | vlefevre | 2010-08-03 15:06:58 +0000 (Tue, 03 Aug 2010) | 1 line
-Changed paths:
- M /trunk/check_inits_clears
-
-[check_inits_clears] Correction.
-------------------------------------------------------------------------
-r7038 | vlefevre | 2010-08-02 15:07:51 +0000 (Mon, 02 Aug 2010) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Moved ieee_floats.h from EXTRA_DIST to libmpfr_la_SOURCES.
-------------------------------------------------------------------------
-r7037 | vlefevre | 2010-08-02 15:03:24 +0000 (Mon, 02 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Clean-up: removed gen_inverse.h from EXTRA_DIST because
-it is already in libmpfr_la_SOURCES.
-------------------------------------------------------------------------
-r7036 | vlefevre | 2010-08-01 19:47:36 +0000 (Sun, 01 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] Removed the comment about the dependency bug.
-(svn merge -r7032:7031 mparam_h.in)
-------------------------------------------------------------------------
-r7033 | vlefevre | 2010-08-01 19:26:12 +0000 (Sun, 01 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Added "BUILT_SOURCES = mparam.h", fixing bug
-https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619
-------------------------------------------------------------------------
-r7032 | vlefevre | 2010-08-01 18:45:45 +0000 (Sun, 01 Aug 2010) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] Added a comment concerning the bug in the mparam.h dependency rule:
-https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619
-------------------------------------------------------------------------
-r7031 | vlefevre | 2010-08-01 18:39:52 +0000 (Sun, 01 Aug 2010) | 1 line
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] Enable C mode for Emacs.
-------------------------------------------------------------------------
-r7030 | vlefevre | 2010-08-01 17:09:24 +0000 (Sun, 01 Aug 2010) | 1 line
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] Deleted trailing whitespace.
-------------------------------------------------------------------------
-r7029 | vlefevre | 2010-08-01 17:08:36 +0000 (Sun, 01 Aug 2010) | 1 line
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] Bug fix: added a newline at the end of the file.
-------------------------------------------------------------------------
-r7026 | vlefevre | 2010-07-30 15:44:24 +0000 (Fri, 30 Jul 2010) | 4 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/INSTALL
- M /trunk/NEWS
- M /trunk/README
- M /trunk/README.dev
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/ai.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/bernoulli.c
- M /trunk/buildopt.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/digamma.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erfc.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/examples/version.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gammaonethird.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_flt.c
- M /trunk/get_ld.c
- M /trunk/get_patches.sh
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/ieee_floats.h
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/isregular.c
- M /trunk/iszero.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/min_prec.c
- M /trunk/minmax.c
- M /trunk/modf.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-thread.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/printf.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/scale2.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_flt.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/set_z_exp.c
- M /trunk/set_zero.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/setsign.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/signbit.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tai.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstdint.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandom.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/yn.c
- M /trunk/zeta_ui.c
-
-Replaced
- Contributed by the Arenaire and Cacao projects
-by
- Contributed by the Arenaire and Caramel projects
-------------------------------------------------------------------------
-r7024 | vlefevre | 2010-07-30 15:26:12 +0000 (Fri, 30 Jul 2010) | 1 line
-Changed paths:
- M /trunk/AUTHORS
-
-[AUTHORS] Updated a sentence.
-------------------------------------------------------------------------
-r7021 | vlefevre | 2010-07-30 09:36:55 +0000 (Fri, 30 Jul 2010) | 1 line
-Changed paths:
- M /trunk
-
-Added configure.lineno (generated by configure) to svn:ignore property.
-------------------------------------------------------------------------
-r7016 | vlefevre | 2010-07-29 16:01:45 +0000 (Thu, 29 Jul 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] For announces, changed mpfr into mpfr-announce.
-------------------------------------------------------------------------
-r7014 | vlefevre | 2010-07-26 11:12:22 +0000 (Mon, 26 Jul 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
-
-[ai.c] Replaced mp_exp_t by mpfr_exp_t.
-------------------------------------------------------------------------
-r7013 | vlefevre | 2010-07-25 19:31:31 +0000 (Sun, 25 Jul 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
-
-[ai.c] Fixed several bugs in mpfr_ai.
-------------------------------------------------------------------------
-r7010 | schevill | 2010-07-20 13:18:42 +0000 (Tue, 20 Jul 2010) | 3 lines
-Changed paths:
- M /trunk/bidimensional_sample.c
-
-Updated bidimensional_sample to take into account the fact the mpfr_ai1 and mpfr_ai2 are now statically defined.
-
-
-------------------------------------------------------------------------
-r7009 | schevill | 2010-07-20 12:49:26 +0000 (Tue, 20 Jul 2010) | 3 lines
-Changed paths:
- M /trunk/ai.c
- M /trunk/mpfr.h
-
-mpfr_ai1 and mpfr_ai2 are now declared static. Only mpfr_ai is global.
-
-
-------------------------------------------------------------------------
-r7008 | schevill | 2010-07-20 12:38:44 +0000 (Tue, 20 Jul 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Forgot a declaration in the previous commit.
-
-
-------------------------------------------------------------------------
-r7007 | schevill | 2010-07-20 12:32:42 +0000 (Tue, 20 Jul 2010) | 9 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/ai.c
- D /trunk/ai2.c
- M /trunk/bidimensional_sample.c
- M /trunk/mparam_h.in
- M /trunk/mpfr-impl.h
- M /trunk/tuneup.c
-
-Added automatic tuning of mpfr_ai.
-
-More precisely:
-* removed ai2.c: both implementations are now in the same file ai.c
-* added thresholds and automatic choice of the method to use in function of the thresholds.
-* added procedures for tuning functions like ai into tuneup.c
-* added a tuning procedure into tuneup.c
-
-
-------------------------------------------------------------------------
-r7005 | vlefevre | 2010-07-19 08:29:11 +0000 (Mon, 19 Jul 2010) | 1 line
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tests/tget_flt.c] Fixed printf strings (missing backslash).
-------------------------------------------------------------------------
-r7004 | zimmerma | 2010-07-15 12:54:15 +0000 (Thu, 15 Jul 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tget_flt.c] completed previous commit
-
-------------------------------------------------------------------------
-r7003 | zimmerma | 2010-07-15 12:49:09 +0000 (Thu, 15 Jul 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tget_flt.c] print more information in case a test fails
-
-------------------------------------------------------------------------
-r6999 | vlefevre | 2010-07-09 23:59:50 +0000 (Fri, 09 Jul 2010) | 1 line
-Changed paths:
- M /trunk/gamma.c
-
-[gamma.c] Added an assert concerning the mpfr_exp_t size.
-------------------------------------------------------------------------
-r6998 | vlefevre | 2010-07-09 23:48:40 +0000 (Fri, 09 Jul 2010) | 1 line
-Changed paths:
- M /trunk/tests/tgamma.c
-
-[tests/tgamma.c] Use mpfr_set_str instead of mpfr_set_d.
-------------------------------------------------------------------------
-r6997 | vlefevre | 2010-07-09 23:33:24 +0000 (Fri, 09 Jul 2010) | 1 line
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] Untabified.
-------------------------------------------------------------------------
-r6996 | zimmerma | 2010-07-09 20:09:08 +0000 (Fri, 09 Jul 2010) | 6 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-[gamma.c] fixed bug reported on MPFR list:
- https://sympa.inria.fr/sympa/arc/mpfr/2010-07/msg00001.html
- In the underflow detection:
- * we took log instead of log2
- * at the end, we added the wrong terms
-
-------------------------------------------------------------------------
-r6995 | vlefevre | 2010-07-01 12:58:19 +0000 (Thu, 01 Jul 2010) | 1 line
-Changed paths:
- M /trunk/mpfr-impl.h
-
-[mpfr-impl.h] Added a comment concerning the 'noreturn' property.
-------------------------------------------------------------------------
-r6994 | zimmerma | 2010-06-28 15:32:21 +0000 (Mon, 28 Jun 2010) | 6 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] added 3 more bits to initial working precision. On a sample of 20247
- tests by Sylvain Chevillard with precisions in [50, 100], the number
- of Ziv's failures decreased from 1184 to 144, which is less than 1%
- (to reduce to zero, we would have to increase the number of extra
- bits from 8 to 17).
-
-------------------------------------------------------------------------
-r6993 | vlefevre | 2010-06-28 13:10:28 +0000 (Mon, 28 Jun 2010) | 3 lines
-Changed paths:
- M /trunk/round_prec.c
-
-[round_prec.c] Applied a patch from Patrick Pélissier (with
-slightly modified comments) to make mpfr_prec_round compatible
-with non-mpfr_init allocation methods when no realloc is needed.
-------------------------------------------------------------------------
-r6989 | vlefevre | 2010-06-25 12:46:50 +0000 (Fri, 25 Jun 2010) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-gmp.h
-
-[acinclude.m4] Use AC_FUNC_ALLOCA to have HAVE_ALLOCA_H defined
-when available. This problem was introduced when AC_FUNC_ALLOCA
-was removed from configure.in in r6765. Note: building MPFR with
---with-gmp-build is not affected as GMP's config.h is used.
-------------------------------------------------------------------------
-r6988 | vlefevre | 2010-06-25 11:44:00 +0000 (Fri, 25 Jun 2010) | 1 line
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-[mpfr-gmp.h] Reverted incorrect changeset r6987 (see code about alloca).
-------------------------------------------------------------------------
-r6987 | zimmerma | 2010-06-25 10:00:44 +0000 (Fri, 25 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-[mpfr-gmp.h] include alloca.h
-
-------------------------------------------------------------------------
-r6986 | zimmerma | 2010-06-25 08:20:10 +0000 (Fri, 25 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] added comment about config.log
-
-------------------------------------------------------------------------
-r6985 | zimmerma | 2010-06-24 20:39:09 +0000 (Thu, 24 Jun 2010) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] fixed problem reported by Sylvain Chevillard for large x, where the
- cancelled bits were counted twice
-
-------------------------------------------------------------------------
-r6983 | vlefevre | 2010-06-24 06:11:32 +0000 (Thu, 24 Jun 2010) | 1 line
-Changed paths:
- M /trunk/tests/tfprintf.c
-
-[tests/tfprintf.c] Cosmetic improvement suggested by Denis Excoffier.
-------------------------------------------------------------------------
-r6982 | vlefevre | 2010-06-23 13:47:19 +0000 (Wed, 23 Jun 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Minor change to match a filename on the website.
-------------------------------------------------------------------------
-r6979 | vlefevre | 2010-06-23 10:13:07 +0000 (Wed, 23 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-[tests/tout_str.c] Fixed bug introduced in r6976: changed size_t into
-unsigned int for printf (the size of unsigned int is sufficient here).
-------------------------------------------------------------------------
-r6978 | vlefevre | 2010-06-22 15:59:16 +0000 (Tue, 22 Jun 2010) | 1 line
-Changed paths:
- M /trunk/out_str.c
-
-[out_str.c] Handle the output errors.
-------------------------------------------------------------------------
-r6977 | vlefevre | 2010-06-22 15:27:34 +0000 (Tue, 22 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-[out_str.c] Handle output error in the special cases of mpfr_out_str
-(and use MPFR_IS_SINGULAR like in the other functions).
-------------------------------------------------------------------------
-r6976 | thevenyp | 2010-06-22 14:59:21 +0000 (Tue, 22 Jun 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/out_str.c
- M /trunk/tests/tout_str.c
-
-Fix wrong return value of mpfr_out_str on special values.
-------------------------------------------------------------------------
-r6974 | vlefevre | 2010-06-22 13:24:56 +0000 (Tue, 22 Jun 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated version to 3.1.0-dev.
-------------------------------------------------------------------------
-r6973 | vlefevre | 2010-06-22 13:23:33 +0000 (Tue, 22 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Added a paragraph about the precision, rounding mode and
-exponent types.
-------------------------------------------------------------------------
-r6972 | vlefevre | 2010-06-22 13:17:29 +0000 (Tue, 22 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/ai2.c
- M /trunk/bidimensional_sample.c
- M /trunk/gammaonethird.c
- M /trunk/get_f.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfrlint
-
-In mpfrlint, detect the use of mp_exp_t and mp_prec_t.
-Fixed the files that were generating warnings.
-------------------------------------------------------------------------
-r6971 | schevill | 2010-06-22 13:12:09 +0000 (Tue, 22 Jun 2010) | 3 lines
-Changed paths:
- M /trunk/ai2.c
-
-I forgot to replace one occurrence of isqrt.
-
-
-------------------------------------------------------------------------
-r6968 | schevill | 2010-06-22 08:45:00 +0000 (Tue, 22 Jun 2010) | 4 lines
-Changed paths:
- M /trunk/ai2.c
-
-Use of __gmpfr_isqrt instead of my own isqrt wrapper.
-
-
-
-------------------------------------------------------------------------
-r6967 | schevill | 2010-06-22 08:43:18 +0000 (Tue, 22 Jun 2010) | 6 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/bidimensional_sample.c
-
-Added a tool for nicely displaying which method is the best in function of x
-and prec when several method can be used for evaluating a given function f in x
-at precision prec.
-
-
-
-------------------------------------------------------------------------
-r6965 | vlefevre | 2010-06-21 12:32:44 +0000 (Mon, 21 Jun 2010) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Fixed dist-hook for -dev versions (I assumed that ||
-and && were right associative, while they are left associative).
-Thanks to Laurent Rineau for noticing this problem.
-------------------------------------------------------------------------
-r6964 | zimmerma | 2010-06-21 09:40:15 +0000 (Mon, 21 Jun 2010) | 9 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] fixed inefficiency for large x: the initial precision was too small,
- which had the effect that the first Ziv iteration did fail with
- non-negligible probability (problem reported by Sylvain Chevillard).
- Also in case of 2 iterations or more the K variable was corrupted.
-Note (2012-03-03): huge inefficiency has been noticed when evaluating
-mpfr_exp on an argument close to log(2^n) in RNDU:
- https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00000.html
-One has an obvious hard-to-round case, meaning that several iterations
-are needed and that K is corrupted. This changeset fixes this bug.
-------------------------------------------------------------------------
-r6962 | zimmerma | 2010-06-15 21:14:08 +0000 (Tue, 15 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added note about problem with MSVC runtime (seems to be fixed)
-
-------------------------------------------------------------------------
-r6961 | zimmerma | 2010-06-15 20:46:21 +0000 (Tue, 15 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/mbench/Makefile
-
-[Makefile] alternate patch to r6959 from Patrick Pelissier
-
-------------------------------------------------------------------------
-r6960 | zimmerma | 2010-06-15 16:56:09 +0000 (Tue, 15 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] comments from Vincent Lefevre
-
-------------------------------------------------------------------------
-r6959 | zimmerma | 2010-06-15 12:14:12 +0000 (Tue, 15 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/mbench/Makefile
- M /trunk/mbench/mfv5.h
-
-[mbench] fixes to make mbench work again (tested with GCC 4.4.3)
-
-------------------------------------------------------------------------
-r6958 | zimmerma | 2010-06-15 11:18:50 +0000 (Tue, 15 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] updated notes on Windows (contributed by Brian Gladman)
-
-------------------------------------------------------------------------
-r6955 | vlefevre | 2010-06-10 14:10:03 +0000 (Thu, 10 Jun 2010) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] Reordered check_PROGRAMS.
-------------------------------------------------------------------------
-r6953 | vlefevre | 2010-06-10 11:49:55 +0000 (Thu, 10 Jun 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Untabified.
-------------------------------------------------------------------------
-r6951 | vlefevre | 2010-06-10 11:26:38 +0000 (Thu, 10 Jun 2010) | 1 line
-Changed paths:
- M /trunk/BUGS
-
-[BUGS] Update.
-------------------------------------------------------------------------
-r6943 | vlefevre | 2010-06-09 11:26:02 +0000 (Wed, 09 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added a note on Mac OS X; thanks to FX Coudert and Fumihiro
-Chiba: https://sympa.inria.fr/sympa/arc/mpfr/2010-06/msg00011.html
-------------------------------------------------------------------------
-r6940 | vlefevre | 2010-06-08 16:17:48 +0000 (Tue, 08 Jun 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Update concerning CC/CFLAGS and the --with-gmp-build option.
-------------------------------------------------------------------------
-r6938 | vlefevre | 2010-06-07 08:20:58 +0000 (Mon, 07 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added an item about the --with-gmp-build configure option and
-the use of GMP's internal header files.
-------------------------------------------------------------------------
-r6933 | vlefevre | 2010-06-06 11:21:26 +0000 (Sun, 06 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] Reverted incorrect optimization patch r6922 (added a comment).
-There were failures on 32-bit machines.
-------------------------------------------------------------------------
-r6932 | vlefevre | 2010-06-06 11:17:06 +0000 (Sun, 06 Jun 2010) | 1 line
-Changed paths:
- M /trunk/mpfr-impl.h
-
-[mpfr-impl.h] Added log messages for the MPFR_GROUP_* macros.
-------------------------------------------------------------------------
-r6930 | vlefevre | 2010-06-06 10:16:01 +0000 (Sun, 06 Jun 2010) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-[mpfrlint] Detect incorrect use of MPFR_LOG_MSG.
-------------------------------------------------------------------------
-r6929 | vlefevre | 2010-06-06 10:06:40 +0000 (Sun, 06 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/ai2.c
-
-[ai2.c] Fixed build failure with --enable-logging, due to incorrect
-MPFR_LOG_MSG usage (see README.dev).
-------------------------------------------------------------------------
-r6927 | vlefevre | 2010-06-06 10:00:50 +0000 (Sun, 06 Jun 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release".
-------------------------------------------------------------------------
-r6925 | vlefevre | 2010-06-06 09:47:32 +0000 (Sun, 06 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/ai.c
-
-[ai.c] Fixed build failure with --enable-logging, due to incorrect
-MPFR_LOG_MSG usage (see README.dev).
-------------------------------------------------------------------------
-r6922 | zimmerma | 2010-06-04 18:32:18 +0000 (Fri, 04 Jun 2010) | 9 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] speed improvement using MPFR_GROUP_* (from Patrick Pelissier):
-Pass 69
- mpfr_add: 63 / 102.97 / 126
- mpfr_exp: 430 / 11861.26 / 46588
-Was before we removed MY_MPZ_INIT:
-Pass 50
- mpfr_add: 63 / 103.09 / 126
- mpfr_exp: 430 / 10911.86 / 44215
-
-------------------------------------------------------------------------
-r6920 | vlefevre | 2010-06-04 08:37:54 +0000 (Fri, 04 Jun 2010) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] Removed useless and possibly incorrect cast
-(in case -q doesn't necessarily fit in an int).
-------------------------------------------------------------------------
-r6919 | zimmerma | 2010-06-04 07:51:27 +0000 (Fri, 04 Jun 2010) | 14 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] got rid of MY_INIT_MPZ, small slowdown, but code should be more
- robust. Below are timings from Patrick Pelissier with mbench:
-mpz_init:
-Pass 78
- mpfr_add: 63 / 102.86 / 126
- mpfr_exp: 441 / 12067.81 / 47355
-
-MY_MPZ_INIT
-Pass 50
- mpfr_add: 63 / 103.09 / 126
- mpfr_exp: 430 / 10911.86 / 44215
-
-Prec=53 bits (core 2 duo 64 bits)
-
-------------------------------------------------------------------------
-r6918 | zimmerma | 2010-06-03 16:18:31 +0000 (Thu, 03 Jun 2010) | 22 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] fixed problem reported by Sylvain Chevillard with following code
- and MPFR_EXP_2_THRESHOLD=36 (valgrind complains).
- It was due to the fact that GMP might allocate extra limbs,
- see http://gmplib.org/list-archives/gmp-devel/2010-June/001577.html.
- The fix is not optimal in the sense that GMP does not give a bound
- on the allocated memory, thus we can only guess.
-
-#include "mpfr.h"
-int main(void) {
- mpfr_t x,w;
-
- mpfr_init2(x, 37);
- mpfr_init2(w, 37);
- mpfr_set_str(x, "-1.000001100100100001111110110101010001p+20", 2, MPFR_RNDN);
- mpfr_exp (w, x, MPFR_RNDN);
-
- mpfr_clear (w);
- mpfr_clear (x);
-
- return 0;
-}
-
-------------------------------------------------------------------------
-r6915 | vlefevre | 2010-06-03 15:07:52 +0000 (Thu, 03 Jun 2010) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Math library check: removed rule specific to HP-UX
-(only -lM was tested while this library may not be available; so,
-let's use the default rule as -lm works).
-------------------------------------------------------------------------
-r6912 | vlefevre | 2010-06-03 08:24:49 +0000 (Thu, 03 Jun 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Arenaire -> Arénaire.
-------------------------------------------------------------------------
-r6909 | vlefevre | 2010-06-02 11:02:34 +0000 (Wed, 02 Jun 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] 3.0 -> 3.0.0.
-------------------------------------------------------------------------
-r6907 | vlefevre | 2010-06-02 11:01:18 +0000 (Wed, 02 Jun 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added test coverage for MPFR 3.0.0.
-------------------------------------------------------------------------
-r6904 | vlefevre | 2010-05-31 22:43:23 +0000 (Mon, 31 May 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Added missing blank lines (consistency).
-------------------------------------------------------------------------
-r6901 | vlefevre | 2010-05-31 22:27:56 +0000 (Mon, 31 May 2010) | 1 line
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] Fixed type in a printf.
-------------------------------------------------------------------------
-r6900 | zimmerma | 2010-05-31 20:10:06 +0000 (Mon, 31 May 2010) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added instructions for "make tune"
-
-------------------------------------------------------------------------
-r6899 | zimmerma | 2010-05-31 20:01:03 +0000 (Mon, 31 May 2010) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] completed missing instructions for "make tune"
-
-------------------------------------------------------------------------
-r6898 | zimmerma | 2010-05-31 19:36:42 +0000 (Mon, 31 May 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tset_z_exp.c] fixed two FIXME
-
-------------------------------------------------------------------------
-r6897 | vlefevre | 2010-05-31 14:29:44 +0000 (Mon, 31 May 2010) | 1 line
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] Added 2 FIXME in the test.
-------------------------------------------------------------------------
-r6896 | vlefevre | 2010-05-31 14:20:24 +0000 (Mon, 31 May 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] Removed testcase bug20100531 (this was a bug in
-the test, which didn't detect overflow cases due to too large random
-exponent).
-------------------------------------------------------------------------
-r6895 | vlefevre | 2010-05-31 14:12:27 +0000 (Mon, 31 May 2010) | 1 line
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-[tests/tset_z_exp.c] Added testcase bug20100531.
-------------------------------------------------------------------------
-r6893 | vlefevre | 2010-05-31 13:44:36 +0000 (Mon, 31 May 2010) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-[mpfr.texi, NEWS] Update related to r6879: "Made defined the previously
-undefined cases of mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj,
-mpfr_get_z and mpfr_get_z_2exp. In such cases, the erange flag is set.".
-------------------------------------------------------------------------
-r6892 | vlefevre | 2010-05-31 13:08:17 +0000 (Mon, 31 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Corrected mpfr_atan2 range (added in r6831).
-------------------------------------------------------------------------
-r6891 | vlefevre | 2010-05-28 15:07:49 +0000 (Fri, 28 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Made an example fit on 80 columns for the info manual.
-------------------------------------------------------------------------
-r6890 | vlefevre | 2010-05-28 14:29:08 +0000 (Fri, 28 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Changed some @math into @var in the mpfr_fmod description
-(for consistency).
-------------------------------------------------------------------------
-r6889 | vlefevre | 2010-05-28 10:54:55 +0000 (Fri, 28 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Corrected a paragraph.
-------------------------------------------------------------------------
-r6888 | vlefevre | 2010-05-28 10:33:21 +0000 (Fri, 28 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Added an example to get the MPFR version (and at the same
-time, check whether MPFR is already installed).
-------------------------------------------------------------------------
-r6886 | vlefevre | 2010-05-28 09:52:37 +0000 (Fri, 28 May 2010) | 1 line
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/examples/version.c
-
-Added examples/version.c (and updated Makefile.am).
-------------------------------------------------------------------------
-r6885 | vlefevre | 2010-05-28 09:25:36 +0000 (Fri, 28 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Correction (English usage).
-------------------------------------------------------------------------
-r6883 | vlefevre | 2010-05-28 08:16:16 +0000 (Fri, 28 May 2010) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Improved dist-hook rule.
-------------------------------------------------------------------------
-r6882 | thevenyp | 2010-05-27 09:14:02 +0000 (Thu, 27 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix typo.
-------------------------------------------------------------------------
-r6881 | zimmerma | 2010-05-26 19:39:02 +0000 (Wed, 26 May 2010) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed one item, added one
-
-------------------------------------------------------------------------
-r6880 | zimmerma | 2010-05-26 19:35:30 +0000 (Wed, 26 May 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] removed FIXME (resolved: Philippe confirmed that gmp_printf does
- not work with mpf2mpfr.h)
-
-------------------------------------------------------------------------
-r6879 | vlefevre | 2010-05-25 16:19:48 +0000 (Tue, 25 May 2010) | 3 lines
-Changed paths:
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/mpfr.texi
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tset_si.c
-
-Made defined the previously undefined cases of mpfr_get_si, mpfr_get_ui,
-mpfr_get_sj, mpfr_get_uj, mpfr_get_z and mpfr_get_z_2exp. In such cases,
-the erange flag is set.
-------------------------------------------------------------------------
-r6878 | schevill | 2010-05-25 14:27:57 +0000 (Tue, 25 May 2010) | 3 lines
-Changed paths:
- M /trunk/ai.c
- M /trunk/ai2.c
-
-* 80 columns.
-
-
-------------------------------------------------------------------------
-r6877 | schevill | 2010-05-25 14:14:37 +0000 (Tue, 25 May 2010) | 3 lines
-Changed paths:
- M /trunk/gammaonethird.c
-
-do ... while(0) style for macros.
-
-
-------------------------------------------------------------------------
-r6875 | vlefevre | 2010-05-25 13:20:34 +0000 (Tue, 25 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Correction.
-------------------------------------------------------------------------
-r6873 | vlefevre | 2010-05-25 11:05:42 +0000 (Tue, 25 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Minor changes.
-------------------------------------------------------------------------
-r6872 | vlefevre | 2010-05-25 10:43:08 +0000 (Tue, 25 May 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] Reverted incorrect changeset r6870.
-------------------------------------------------------------------------
-r6871 | vlefevre | 2010-05-25 10:41:44 +0000 (Tue, 25 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Added a comment about non-ASCII characters.
-------------------------------------------------------------------------
-r6870 | thevenyp | 2010-05-25 10:38:51 +0000 (Tue, 25 May 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/mpfr.texi
-
-More explicit documentation on the use of specifiers in printf function.
-------------------------------------------------------------------------
-r6869 | vlefevre | 2010-05-25 10:34:07 +0000 (Tue, 25 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Encoding correction for ±.
-------------------------------------------------------------------------
-r6868 | vlefevre | 2010-05-25 10:26:12 +0000 (Tue, 25 May 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-[NEWS, mpfr.texi] mpfr_custom_get_mantissa was renamed to
-mpfr_custom_get_significand.
-------------------------------------------------------------------------
-r6867 | vlefevre | 2010-05-25 10:15:30 +0000 (Tue, 25 May 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-[tests/tstckintc.c] Changed mpfr_custom_get_mantissa into
-mpfr_custom_get_significand (but mpfr_custom_get_mantissa
-was still working thanks to the #define).
-------------------------------------------------------------------------
-r6866 | vlefevre | 2010-05-25 10:13:26 +0000 (Tue, 25 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/stack_interface.c
-
-[mpfr.h, stack_interface.c] Changed mpfr_custom_get_mantissa into
-mpfr_custom_get_significand (r6862 was incomplete).
-------------------------------------------------------------------------
-r6865 | vlefevre | 2010-05-25 09:29:40 +0000 (Tue, 25 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-[mpfr.h] <stdint.h> support: also test _STDINT (for MS Visual Studio).
-Thanks to Brian Gladman for the information.
-------------------------------------------------------------------------
-r6863 | vlefevre | 2010-05-25 07:24:18 +0000 (Tue, 25 May 2010) | 3 lines
-Changed paths:
- M /trunk/buildopt.c
- M /trunk/mpfrlint
-
-[buildopt.c] Missing #include "mpfr-impl.h" for cygwin builds.
-[mpfrlint] Detect such errors (mpfr-impl.h may be needed because it
- includes config.h when there is one).
-------------------------------------------------------------------------
-r6862 | zimmerma | 2010-05-24 16:56:52 +0000 (Mon, 24 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-[mpfr.texi] more changes after answers by Vincent to my questions
-
-------------------------------------------------------------------------
-r6860 | vlefevre | 2010-05-24 10:54:03 +0000 (Mon, 24 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Reformat / fixed typography.
-------------------------------------------------------------------------
-r6855 | vlefevre | 2010-05-24 00:01:40 +0000 (Mon, 24 May 2010) | 6 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-[sub1sp.c] Fixed a problem that appeared after mpfr_prec_t has been
-made signed. It was visible on PowerPC (tested on Linux 32 bits and
-on Mac OS X 32 & 64 bits), but could potentially affect any platform
-as a negative shift count was generated. As the faulty expressions
-were in a MPFR_ASSERTD, the failure could occur only when assertion
-checking had been enabled.
-------------------------------------------------------------------------
-r6852 | vlefevre | 2010-05-22 23:08:17 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Removed trailing spaces.
-------------------------------------------------------------------------
-r6851 | vlefevre | 2010-05-22 23:06:49 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Added information about intmax_t and corresponding macros.
-------------------------------------------------------------------------
-r6849 | vlefevre | 2010-05-22 22:42:05 +0000 (Sat, 22 May 2010) | 6 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/fits_intmax.c
- M /trunk/fits_uintmax.c
- M /trunk/get_sj.c
- M /trunk/get_uj.c
- M /trunk/mpfr-impl.h
- M /trunk/tests/tfits.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tset_sj.c
-
-Detect when the intmax_t type is available but INTMAX_MAX doesn't work
-(e.g. with gcc -ansi -pedantic-errors in 32-bit mode under GNU/Linux).
-New macros MPFR_UINTMAX_MAX, MPFR_INTMAX_MAX and MPFR_INTMAX_MIN are
-defined and used internally instead of UINTMAX_MAX, INTMAX_MAX and
-INTMAX_MIN. If these C99 macros work, then the MPFR_* macros use them,
-otherwise MPFR uses its own definitions.
-------------------------------------------------------------------------
-r6846 | vlefevre | 2010-05-22 19:41:07 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/gammaonethird.c
- M /trunk/mpfr-impl.h
-
-mpfr_div_ui8 and mpfr_mul_ui5 didn't have to be exported.
-------------------------------------------------------------------------
-r6845 | vlefevre | 2010-05-22 19:33:22 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
- M /trunk/ai2.c
- M /trunk/bernoulli.c
- M /trunk/buildopt.c
- M /trunk/digamma.c
- M /trunk/gammaonethird.c
- M /trunk/get_flt.c
- M /trunk/ieee_floats.h
- M /trunk/isregular.c
- M /trunk/mbench/mfv5.h
- M /trunk/mbench/timp.h
- M /trunk/min_prec.c
- M /trunk/scale2.c
- M /trunk/set_flt.c
- M /trunk/set_z_exp.c
- M /trunk/set_zero.c
- M /trunk/speed.c
- M /trunk/tests/tai.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tstdint.c
-
-Updated Subversion properties.
-------------------------------------------------------------------------
-r6844 | vlefevre | 2010-05-22 19:13:37 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/ai2.c
-
-[ai2.c] GNU style.
-------------------------------------------------------------------------
-r6843 | vlefevre | 2010-05-22 16:04:13 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/ai2.c
-
-[ai2.c] Style correction (necessary for ansi2knr, if still useful).
-------------------------------------------------------------------------
-r6842 | vlefevre | 2010-05-22 13:55:22 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
- M /trunk/ai2.c
-
-[ai.c, ai2.c] Untabified / removed trailing spaces.
-------------------------------------------------------------------------
-r6841 | vlefevre | 2010-05-22 13:53:19 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
-
-[ai.c] GNU style.
-------------------------------------------------------------------------
-r6840 | vlefevre | 2010-05-22 10:21:11 +0000 (Sat, 22 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Corrected the paragraph about whether MPFR is installed.
-------------------------------------------------------------------------
-r6839 | vlefevre | 2010-05-22 00:12:31 +0000 (Sat, 22 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Corrections and answers to PZ comments from r6831.
-The document encoding is now UTF-8.
-------------------------------------------------------------------------
-r6838 | vlefevre | 2010-05-21 21:06:07 +0000 (Fri, 21 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] n-char-sequence was changed into n-char-sequence-opt
-in r6132, but I forgot to update all the occurrences.
-------------------------------------------------------------------------
-r6837 | schevill | 2010-05-21 09:47:13 +0000 (Fri, 21 May 2010) | 5 lines
-Changed paths:
- M /trunk/ai.c
- M /trunk/ai2.c
-
-* Removed double precision numbers.
-* Handle +0 and -0 the same way.
-* Use MPFR_GET_EXP in ai2.c
-
-
-------------------------------------------------------------------------
-r6836 | schevill | 2010-05-20 14:19:47 +0000 (Thu, 20 May 2010) | 3 lines
-Changed paths:
- M /trunk/ai.c
-
-* Corrected a bug when x=0 (MPFR_GET_EXP requires to assert that x!=0).
-
-
-------------------------------------------------------------------------
-r6835 | schevill | 2010-05-20 13:34:26 +0000 (Thu, 20 May 2010) | 3 lines
-Changed paths:
- M /trunk/ai.c
- M /trunk/ai2.c
- M /trunk/gammaonethird.c
- M /trunk/mpfr-impl.h
-
-Corrected some warnings.
-
-
-------------------------------------------------------------------------
-r6834 | schevill | 2010-05-20 12:39:34 +0000 (Thu, 20 May 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Corrected an error that prevented the doc from compiling.
-
-
-------------------------------------------------------------------------
-r6833 | vlefevre | 2010-05-20 09:47:02 +0000 (Thu, 20 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: corrections.
-------------------------------------------------------------------------
-r6832 | zimmerma | 2010-05-20 09:35:06 +0000 (Thu, 20 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] explain why mpfr_sum uses an array of pointers to mpfr_t
-
-------------------------------------------------------------------------
-r6831 | zimmerma | 2010-05-20 09:10:47 +0000 (Thu, 20 May 2010) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/fdl.texi
- M /trunk/mpfr.texi
-
-[mpfr.texi] changes after a complete reading of the documentation.
- There are some issues left that I don't know how to solve,
- they are marked with @c PZ in mpfr.texi.
-
-------------------------------------------------------------------------
-r6829 | vlefevre | 2010-05-19 23:07:54 +0000 (Wed, 19 May 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-[mpfr.texi, NEWS] Noted that the mpfr_ai implementation is incomplete
-and experimental.
-------------------------------------------------------------------------
-r6827 | vlefevre | 2010-05-19 23:04:40 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
-
-[ai.c] Use MPFR_IS_SINGULAR. Added a FIXME comment for Ai(0).
-------------------------------------------------------------------------
-r6825 | vlefevre | 2010-05-19 22:41:29 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/tests/texceptions.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/turandom.c
-
-Type corrections for C++ compilers (in particular, mpfr_rnd_t vs int).
-------------------------------------------------------------------------
-r6822 | vlefevre | 2010-05-19 14:30:02 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
-
-[ai.c] Fixed possible problem in reduced exponent range.
-------------------------------------------------------------------------
-r6821 | vlefevre | 2010-05-19 14:25:02 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/ai.c
- M /trunk/ai2.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r6820 | schevill | 2010-05-19 13:48:46 +0000 (Wed, 19 May 2010) | 4 lines
-Changed paths:
- M /trunk/ai.c
- M /trunk/ai2.c
- M /trunk/gammaonethird.c
-
-* Removed some warnings.
-* More conform to GNU coding standards.
-
-
-------------------------------------------------------------------------
-r6818 | vlefevre | 2010-05-19 13:09:29 +0000 (Wed, 19 May 2010) | 2 lines
-Changed paths:
- M /trunk/README.dev
- D /trunk/patch-aclocal-icc
-
-Removed obsolete patch-aclocal-icc and updated README.dev (about
-"To make a release").
-------------------------------------------------------------------------
-r6813 | vlefevre | 2010-05-19 12:38:01 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] Added a comment concerning -version-info and MPFR 3.0.x.
-------------------------------------------------------------------------
-r6812 | vlefevre | 2010-05-19 11:53:33 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r6811 | vlefevre | 2010-05-19 10:18:37 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Preliminary interfaces are no longer preliminary.
-------------------------------------------------------------------------
-r6810 | vlefevre | 2010-05-19 10:13:39 +0000 (Wed, 19 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] API Compatibility: mention the detection of the availability
-of intmax_t with C++ compilers.
-------------------------------------------------------------------------
-r6809 | vlefevre | 2010-05-19 09:07:33 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] signness -> signedness (thanks to Philippe).
-------------------------------------------------------------------------
-r6808 | vlefevre | 2010-05-19 00:11:39 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Missing @code.
-------------------------------------------------------------------------
-r6807 | vlefevre | 2010-05-19 00:09:11 +0000 (Wed, 19 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Corrected C terminology (table -> array).
-------------------------------------------------------------------------
-r6806 | vlefevre | 2010-05-18 14:40:36 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-[mpfr.texi, NEWS] Mention that mpfr_ai is a new function in MPFR 3.0.
-------------------------------------------------------------------------
-r6805 | vlefevre | 2010-05-18 14:36:05 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- D /trunk/prepare
-
-Removed obsolete prepare script (autoreconf does the same thing).
-------------------------------------------------------------------------
-r6804 | schevill | 2010-05-18 14:34:57 +0000 (Tue, 18 May 2010) | 21 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/ai.c
- A /trunk/ai2.c
- A /trunk/gammaonethird.c
- M /trunk/mpfr.h
-
-* I added a new implementation of Airy Ai. This implementation uses Smith's
-algorithm.
-Currently, it is provided as a separate implementation mpfr_ai2.
-
-* Please note that both mpfr_ai and mpfr_ai2 need to efficiently evaluate
-Gamma(1/3) and Gamma(2/3). This is provided by functions in the file
-gammaonethird.c
-
-* There is no test file for mpfr_ai2 since it should quickly disappear behind
-a single implementation using the best of mpfr_ai and mpfr_ai2.
-However, if necessary, a test file can be obtained by copying tai.c and
-replacing mpfr_ai by mpfr_ai2 everywhere.
-
-* I do not know if gammaonethird.c will remain like that in the future. Should
-we make this implementation available as a public MPFR function? In this case,
-I have to write a wrapper for providing a correctly rounded implementation.
-Moreover, it contains functions that could be interesting for the
-implementation of other functions (the functions mpfr_div_ui*). Maybe, it
-could be worth providing a file specially for this purpose.
-
-
-------------------------------------------------------------------------
-r6803 | vlefevre | 2010-05-18 14:32:07 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Added release name.
-------------------------------------------------------------------------
-r6802 | vlefevre | 2010-05-18 14:30:38 +0000 (Tue, 18 May 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] Updated "Changes from versions 2.3.* to version 2.4.0"
-from MPFR 2.4.2.
-------------------------------------------------------------------------
-r6801 | vlefevre | 2010-05-18 14:25:20 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Completed Section 6.1 "Type and Macro Changes".
-------------------------------------------------------------------------
-r6800 | vlefevre | 2010-05-18 14:07:26 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Updated Section 6.1 "Type and Macro Changes".
-------------------------------------------------------------------------
-r6799 | vlefevre | 2010-05-18 13:57:03 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Missing space.
-------------------------------------------------------------------------
-r6798 | vlefevre | 2010-05-18 13:54:47 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Updated Section 6.1 "Type and Macro Changes".
-------------------------------------------------------------------------
-r6797 | vlefevre | 2010-05-18 13:53:06 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] A bit less ambiguous...
-------------------------------------------------------------------------
-r6796 | vlefevre | 2010-05-18 13:12:49 +0000 (Tue, 18 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] More details for mp_rnd_t/mpfr_rnd_t, like mp_prec_t/mpfr_prec_t.
-------------------------------------------------------------------------
-r6795 | vlefevre | 2010-05-17 15:51:28 +0000 (Mon, 17 May 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-Added "API Compatibility" section to the MPFR manual.
-TODO: Section 6.1 "Type and Macro Changes".
-------------------------------------------------------------------------
-r6794 | vlefevre | 2010-05-17 13:31:19 +0000 (Mon, 17 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] mpfr_strtofr now accepts bases from 37 to 62 (r5965).
-------------------------------------------------------------------------
-r6793 | vlefevre | 2010-05-10 09:25:01 +0000 (Mon, 10 May 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: updated section about MS Windows.
-------------------------------------------------------------------------
-r6792 | vlefevre | 2010-05-10 09:05:12 +0000 (Mon, 10 May 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: updated section about MS Windows.
-------------------------------------------------------------------------
-r6791 | vlefevre | 2010-05-08 17:17:18 +0000 (Sat, 08 May 2010) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] Fixed code when _MPFR_PREC_FORMAT != 3.
-------------------------------------------------------------------------
-r6790 | zimmerma | 2010-05-08 08:01:05 +0000 (Sat, 08 May 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests/tests.c] fixed compiler warning (found by nightly tests)
-
-------------------------------------------------------------------------
-r6789 | vlefevre | 2010-05-07 15:13:02 +0000 (Fri, 07 May 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/README.dev
- M /trunk/TODO
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/ai.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/cmp.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/const_euler.c
- M /trunk/cos.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/digamma.c
- M /trunk/div.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_u.h
- M /trunk/fits_uintmax.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/gamma.c
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_flt.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/isinteger.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/mbench/mfv5.cc
- M /trunk/mbench/mpfr-v6.c
- M /trunk/modf.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_z.c
- M /trunk/print_raw.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/set_d.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_ld.c
- M /trunk/set_si_2exp.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_z_exp.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tanh.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/random2.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tset_z_exp.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/turandom.c
- M /trunk/ui_pow_ui.c
- M /trunk/urandom.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/yn.c
- M /trunk/zeta.c
-
-New exponent type mpfr_exp_t for MPFR (replacing GMP's mp_exp_t).
-------------------------------------------------------------------------
-r6788 | vlefevre | 2010-05-07 14:18:54 +0000 (Fri, 07 May 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] Updated a paragraph concerning signed and unsigned types.
-------------------------------------------------------------------------
-r6787 | vlefevre | 2010-05-07 13:57:28 +0000 (Fri, 07 May 2010) | 12 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/tests/tcheck.c
-
-Changed the precision type mpfr_prec_t from an unsigned integer type
-into the corresponding signed integer type, in order to avoid problems
-due to the usual arithmetic conversions when mixing mpfr_prec_t and
-mp_exp_t in an expression.
-* NEWS: mentioned this change.
-* mpfr-impl.h: removed MPFR_INTPREC_MAX (which wasn't used) and updated
- the MPFR_UNSIGNED_MINUS_MODULO(S,A) macro, which assumed that A was
- unsigned; this macro now works even when A is signed.
-* mpfr.h: added mpfr_uprec_t; updated mpfr_prec_t and MPFR_PREC_MAX.
-* tests/tcheck.c: disabled a test on MPFR_PREC_MAX+1 with MPFR >= 3
- (this test doesn't work with a signed mpfr_prec_t and isn't needed).
-Note: all tests pass under GNU Linux x86 and x86_64.
-------------------------------------------------------------------------
-r6786 | vlefevre | 2010-05-07 12:36:55 +0000 (Fri, 07 May 2010) | 1 line
-Changed paths:
- M /trunk/tests/tcheck.c
-
-[tests/tcheck.c] Forgot to remove a printf (added during testing).
-------------------------------------------------------------------------
-r6785 | vlefevre | 2010-05-07 12:33:57 +0000 (Fri, 07 May 2010) | 1 line
-Changed paths:
- M /trunk/tests/tcheck.c
-
-[tests/tcheck.c] Support signed mpfr_prec_t (avoid integer overflow).
-------------------------------------------------------------------------
-r6784 | vlefevre | 2010-05-07 12:31:53 +0000 (Fri, 07 May 2010) | 1 line
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-[tests/mpf_compat.h] Fixed prototype of function main.
-------------------------------------------------------------------------
-r6783 | vlefevre | 2010-05-07 12:23:22 +0000 (Fri, 07 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-[mpfr.h] Added a comment concerning the definition of MPFR_PREC_MAX.
-------------------------------------------------------------------------
-r6782 | vlefevre | 2010-05-06 10:10:52 +0000 (Thu, 06 May 2010) | 2 lines
-Changed paths:
- M /trunk/print_rnd_mode.c
-
-print_rnd_mode.c: added an assertion so that we do not forget to update
-this file after a new rounding mode is added.
-------------------------------------------------------------------------
-r6780 | vlefevre | 2010-05-03 14:26:06 +0000 (Mon, 03 May 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Added a paragraph about multiple inclusions of mpfr.h and/or
-gmp.h header files.
-------------------------------------------------------------------------
-r6779 | thevenyp | 2010-05-03 14:19:20 +0000 (Mon, 03 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-Update documentation for mpfr_print_rnd_mode.
-------------------------------------------------------------------------
-r6778 | vlefevre | 2010-05-03 13:15:15 +0000 (Mon, 03 May 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-To avoid breaking the ABI when faithful rounding gets implemented, added
-MPFR_RNDF to the mpfr_rnd_t enum type now, and removed MPFR_RND_MAX from
-the enumeration (it is now defined as a macro in mpfr-impl.h).
-------------------------------------------------------------------------
-r6777 | vlefevre | 2010-05-03 12:52:28 +0000 (Mon, 03 May 2010) | 1 line
-Changed paths:
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
-
-fits_* (signed version): corrections and optimizations.
-------------------------------------------------------------------------
-r6776 | vlefevre | 2010-05-03 12:30:46 +0000 (Mon, 03 May 2010) | 5 lines
-Changed paths:
- M /trunk/fits_u.h
- M /trunk/fits_uintmax.c
-
-[fits_uintmax.c, fits_u.h] Some casts could be incorrect in the case
-mp_exp_t > mpfr_prec_t. Set prec to the int type since in practice,
-prec will be small enough to fit in an int. The fact that prec is now
-signed allows us to remove a useless test (also note that prec should
-be computed at compile time, so that this should be at least as fast).
-------------------------------------------------------------------------
-r6775 | vlefevre | 2010-05-03 12:04:56 +0000 (Mon, 03 May 2010) | 1 line
-Changed paths:
- M /trunk/fits_u.h
- M /trunk/fits_uintmax.c
-
-[fits_uintmax.c, fits_u.h] Comments: doesn't -> don't
-------------------------------------------------------------------------
-r6774 | vlefevre | 2010-05-03 11:10:41 +0000 (Mon, 03 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6773 | thevenyp | 2010-05-03 09:20:38 +0000 (Mon, 03 May 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-Add specifier 'Y' for the rounding away from zero mode in printf-like functions.
-------------------------------------------------------------------------
-r6772 | zimmerma | 2010-04-30 16:10:44 +0000 (Fri, 30 Apr 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] removed obsolete mpfr_round_prec
-
-------------------------------------------------------------------------
-r6770 | vlefevre | 2010-04-30 15:57:34 +0000 (Fri, 30 Apr 2010) | 1 line
-Changed paths:
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
-
-[fits_intmax.c,fits_s.h] Added FIXME comments.
-------------------------------------------------------------------------
-r6769 | vlefevre | 2010-04-30 15:50:27 +0000 (Fri, 30 Apr 2010) | 2 lines
-Changed paths:
- M /trunk/fits_u.h
- M /trunk/fits_uintmax.c
-
-Optimized fits_u.h and made fits_uintmax.c like fits_u.h for the
-special numbers.
-------------------------------------------------------------------------
-r6768 | vlefevre | 2010-04-30 15:44:39 +0000 (Fri, 30 Apr 2010) | 1 line
-Changed paths:
- M /trunk/fits_uintmax.c
-
-Optimized mpfr_fits_uintmax_p.
-------------------------------------------------------------------------
-r6767 | vlefevre | 2010-04-30 14:37:47 +0000 (Fri, 30 Apr 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/README.dev
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/cmp2.c
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/digamma.c
- M /trunk/eint.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/examples/rndo-add.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_u.h
- M /trunk/fits_uintmax.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_f.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init2.c
- M /trunk/inits2.c
- M /trunk/isinteger.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/mbench/mpfr-gfx.c
- M /trunk/mbench/mpfr-v4.c
- M /trunk/mbench/mpfr-v6.c
- M /trunk/modf.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/print_raw.c
- M /trunk/rec_sqrt.c
- M /trunk/root.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_z_exp.c
- M /trunk/setmax.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/taway.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tuneup.c
- M /trunk/ui_pow_ui.c
- M /trunk/urandom.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Changed mp_prec_t into mpfr_prec_t.
-------------------------------------------------------------------------
-r6766 | vlefevre | 2010-04-19 14:35:35 +0000 (Mon, 19 Apr 2010) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-[configure.in] r6765 introduced non-POSIX syntax. Fixed.
-------------------------------------------------------------------------
-r6765 | zimmerma | 2010-04-19 11:26:12 +0000 (Mon, 19 Apr 2010) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-[configure.in] check for GMP internal files only with --with-gmp-build
-
-------------------------------------------------------------------------
-r6764 | vlefevre | 2010-04-12 00:11:48 +0000 (Mon, 12 Apr 2010) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] New function mpfr_regular_p (was added in r6417, 2009-09-14).
-------------------------------------------------------------------------
-r6762 | vlefevre | 2010-04-07 02:15:06 +0000 (Wed, 07 Apr 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-[mpfr-gmp.h] Fixed alloca prototype (bug detected by tcc 0.9.25
-under Linux/x86_64).
-------------------------------------------------------------------------
-r6753 | vlefevre | 2010-03-24 12:45:47 +0000 (Wed, 24 Mar 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Improved/corrected the documentation of functions
-mpfr_lgamma, mpfr_digamma, mpfr_j0/j1/jn, mpfr_y0/y1/yn, mpfr_agm,
-mpfr_hypot and mpfr_min_prec.
-------------------------------------------------------------------------
-r6752 | vlefevre | 2010-03-24 12:24:28 +0000 (Wed, 24 Mar 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Removed a "currently" that is no longer needed.
-------------------------------------------------------------------------
-r6751 | vlefevre | 2010-03-24 12:20:41 +0000 (Wed, 24 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Updated description of mpfr_atan2, now that IEEE 754-2008
-has been published and follows the same conventions as C99 for atan2.
-------------------------------------------------------------------------
-r6750 | vlefevre | 2010-03-24 12:12:00 +0000 (Wed, 24 Mar 2010) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Updated description of mpfr_pow, now that IEEE 754-2008
-has been published and follows the same conventions as C99 for pow.
-(IEEE 754-2008 doesn't currently specify pow(±inf,non-zero), but
-I've suggested a correction for the errata page.)
-------------------------------------------------------------------------
-r6747 | vlefevre | 2010-03-23 15:28:41 +0000 (Tue, 23 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Improved documentation of mpfr_print_rnd_mode (from a
-suggestion by Chris Saunders).
-------------------------------------------------------------------------
-r6746 | vlefevre | 2010-03-22 10:59:28 +0000 (Mon, 22 Mar 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Various corrections and other improvements.
-------------------------------------------------------------------------
-r6745 | vlefevre | 2010-03-22 10:38:59 +0000 (Mon, 22 Mar 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Improved the documentation of mpfr_dim too.
-------------------------------------------------------------------------
-r6744 | zimmerma | 2010-03-22 10:04:29 +0000 (Mon, 22 Mar 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] improved the documentation of mpfr_rec_sqrt and mpfr_cbrt
- (thanks Vincent)
-
-------------------------------------------------------------------------
-r6743 | zimmerma | 2010-03-22 09:30:44 +0000 (Mon, 22 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] improved documentation of mpfr_sqrt and mpfr_sqrt_ui
-
-------------------------------------------------------------------------
-r6741 | vlefevre | 2010-03-21 18:17:12 +0000 (Sun, 21 Mar 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-[mpfr.h] Added a comment about integer overflows in macros.
-------------------------------------------------------------------------
-r6740 | zimmerma | 2010-03-19 14:48:17 +0000 (Fri, 19 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tai.c] enable first test of check_large, and reduced total time
-
-------------------------------------------------------------------------
-r6739 | schevill | 2010-03-19 14:15:23 +0000 (Fri, 19 Mar 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Added a mention about the current limitation of mpfr_ai in mpfr.texi.
-
-
-------------------------------------------------------------------------
-r6738 | schevill | 2010-03-19 13:43:13 +0000 (Fri, 19 Mar 2010) | 6 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/tests/tai.c
-
-Removed check of ai.c for large arguments. I added in algorithms.tex a
-mention about the fact that mpfr_ai is currently not made for large
-arguments.
-
-
-
-------------------------------------------------------------------------
-r6737 | schevill | 2010-03-19 12:16:12 +0000 (Fri, 19 Mar 2010) | 3 lines
-Changed paths:
- M /trunk/ai.c
-
-* Corrected problems regarding the GNU recommendations for formatting source code.
-
-
-------------------------------------------------------------------------
-r6735 | vlefevre | 2010-03-18 12:55:37 +0000 (Thu, 18 Mar 2010) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: added tai to the svn:ignore property.
-------------------------------------------------------------------------
-r6734 | zimmerma | 2010-03-18 12:37:13 +0000 (Thu, 18 Mar 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tai.c] reduce the maximal exponents in test_generic()
- also reduce the number of random tests to decrease the test time
-
-------------------------------------------------------------------------
-r6733 | vlefevre | 2010-03-18 12:26:19 +0000 (Thu, 18 Mar 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: in the tests, use mpfr_equal_p rather than mpfr_cmp.
-------------------------------------------------------------------------
-r6732 | zimmerma | 2010-03-18 12:23:43 +0000 (Thu, 18 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tai.c] replace mpfr_cmp by mpfr_equal_p
-
-------------------------------------------------------------------------
-r6731 | vlefevre | 2010-03-18 12:11:29 +0000 (Thu, 18 Mar 2010) | 1 line
-Changed paths:
- M /trunk/tests/tset_z_exp.c
-
-tests/tset_z_exp.c untabified.
-------------------------------------------------------------------------
-r6730 | vlefevre | 2010-03-18 12:11:13 +0000 (Thu, 18 Mar 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: removed trailing whitespace.
-------------------------------------------------------------------------
-r6729 | vlefevre | 2010-03-18 11:59:57 +0000 (Thu, 18 Mar 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6728 | vlefevre | 2010-03-18 11:54:24 +0000 (Thu, 18 Mar 2010) | 1 line
-Changed paths:
- M /trunk/AUTHORS
-
-Untabified AUTHORS (consistency).
-------------------------------------------------------------------------
-r6727 | schevill | 2010-03-18 11:50:39 +0000 (Thu, 18 Mar 2010) | 4 lines
-Changed paths:
- M /trunk/ai.c
-
-* Corrected problems regarding the GNU recommendations for formatting source code.
-* Corrected the date of the copyright.
-
-
-------------------------------------------------------------------------
-r6726 | zimmerma | 2010-03-18 09:50:20 +0000 (Thu, 18 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tai.c
-
-[tai.c] added test for large inputs
-
-------------------------------------------------------------------------
-r6725 | zimmerma | 2010-03-18 09:22:02 +0000 (Thu, 18 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-[AUTHORS] added Sylvain Chevillard
-
-------------------------------------------------------------------------
-r6724 | zimmerma | 2010-03-17 21:12:09 +0000 (Wed, 17 Mar 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] added Sylvain as contributor
-
-------------------------------------------------------------------------
-r6723 | schevill | 2010-03-17 17:35:59 +0000 (Wed, 17 Mar 2010) | 18 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/README.dev
- A /trunk/ai.c
- A /trunk/algorithm2e.sty
- M /trunk/algorithms.tex
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tai.c
-
-* Added function mpfr_ai. The implementation is the most naive: it evaluates
- the series step by step until it can stop.
- A special strategy is used to detect possible problems when Ai(x) is very
- close to 0.
-
-* Updated algorithms.tex with the technical description of the implementation
- of mpfr_ai.
-
-* Added algorithm2e.sty and algorithm2e-compatibility.sty (necessary to
- compile algorithms.tex now).
-
-* Updated mpfr.texi to let it know this new function.
-
-* Added a basic test file for mpfr_ai. I will add other test cases later.
-
-* Added a small HOWTO to README.dev about how to add a new test file for new
- functions.
-
-------------------------------------------------------------------------
-r6720 | vlefevre | 2010-03-11 09:43:53 +0000 (Thu, 11 Mar 2010) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-GMP_RNDx -> MPFR_RNDx
-------------------------------------------------------------------------
-r6719 | zimmerma | 2010-03-11 09:24:00 +0000 (Thu, 11 Mar 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-[tstrtofr.c] added test for 1.23e, cf
- http://gmplib.org/list-archives/gmp-bugs/2010-March/001898.html
-
-------------------------------------------------------------------------
-r6718 | vlefevre | 2010-03-11 01:02:58 +0000 (Thu, 11 Mar 2010) | 4 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] Add the test -1 <= x/sqrt(x^2) <= 1, which corresponds
-to -1 <= x/sqrt(x^2+y^2) <= 1 with y = 0. I don't think the test with
-random y is still necessary, though, since even a bad sqrt accuracy
-would not be detected.
-------------------------------------------------------------------------
-r6717 | vlefevre | 2010-03-10 10:07:46 +0000 (Wed, 10 Mar 2010) | 1 line
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tests/tsqrt.c] Added a comment about the x/sqrt(x^2+y^2) test.
-------------------------------------------------------------------------
-r6716 | zimmerma | 2010-03-10 09:00:47 +0000 (Wed, 10 Mar 2010) | 4 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-[tsqrt.c] fixed bug reported by Sam Rawlins
- (https://sympa.inria.fr/sympa/arc/mpfr/2010-03/msg00007.html)
-Note: this "bug" had no noticeable consequences; this can just be seen
-as an incomplete test.
-------------------------------------------------------------------------
-r6715 | zimmerma | 2010-02-26 08:27:10 +0000 (Fri, 26 Feb 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] added item
-
-------------------------------------------------------------------------
-r6714 | zimmerma | 2010-02-24 15:49:04 +0000 (Wed, 24 Feb 2010) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] now also recognize "IEEE double, little endian" long-double
- format (not tested, should happen on ARM)
-
-------------------------------------------------------------------------
-r6713 | zimmerma | 2010-02-24 15:07:39 +0000 (Wed, 24 Feb 2010) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] added recognition of "IEEE double big endian" long double format
- (tested on gcc40.fsffrance.org and gcc53, both PowerPC's)
-
-------------------------------------------------------------------------
-r6712 | vlefevre | 2010-02-24 12:59:19 +0000 (Wed, 24 Feb 2010) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] Added test for long double = double-double (GCC/PowerPC).
-This test cannot currently be reliable, so we just output a warning.
-------------------------------------------------------------------------
-r6711 | zimmerma | 2010-02-23 16:39:02 +0000 (Tue, 23 Feb 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] minor grammar fix
-
-------------------------------------------------------------------------
-r6710 | zimmerma | 2010-02-23 16:27:08 +0000 (Tue, 23 Feb 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] be more precise about API compatibility
-
-------------------------------------------------------------------------
-r6709 | zimmerma | 2010-02-23 15:54:30 +0000 (Tue, 23 Feb 2010) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.h
-
-[mpfr.h] added #define mpfr_get_z_exp mpfr_get_z_2exp for compatibility
-
-------------------------------------------------------------------------
-r6708 | vlefevre | 2010-02-23 01:35:39 +0000 (Tue, 23 Feb 2010) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: added tset_z_exp to the svn:ignore property.
-------------------------------------------------------------------------
-r6707 | zimmerma | 2010-02-22 17:23:27 +0000 (Mon, 22 Feb 2010) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/atan.c
- M /trunk/cbrt.c
- M /trunk/cos.c
- M /trunk/eint.c
- M /trunk/exp_2.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/pow.c
- M /trunk/rem1.c
- M /trunk/root.c
- M /trunk/set_z.c
- M /trunk/set_z_exp.c
- M /trunk/sin_cos.c
- M /trunk/tests/tset_z_exp.c
-
-changed mpfr_get_z_exp -> mpfr_get_z_2exp (old function)
- mpfr_set_z_exp -> mpfr_set_z_2exp (new function)
-
-------------------------------------------------------------------------
-r6706 | zimmerma | 2010-02-22 15:45:30 +0000 (Mon, 22 Feb 2010) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_z.c
- A /trunk/set_z_exp.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tset_z_exp.c
-
-added new function mpfr_set_z_exp (companion to mpfr_get_z_exp)
-
-------------------------------------------------------------------------
-r6705 | vlefevre | 2010-02-18 17:05:48 +0000 (Thu, 18 Feb 2010) | 6 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/tests
- A /trunk/tests/tstdint.c
-
-* Added tests/tstdint.c to test the double inclusion of mpfr.h when only
- the second occurrence needs <stdint.h> (this can happen when one uses
- several libraries that use MPFR under different conditions).
-* Added tstdint to the svn:ignore property of "tests".
-* TODO: mentions that tstdint should be added to check_PROGRAMS in
- the tests/Makefile.am file once this is fixed.
-------------------------------------------------------------------------
-r6701 | vlefevre | 2010-02-18 02:02:55 +0000 (Thu, 18 Feb 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated Section "Internals".
-------------------------------------------------------------------------
-r6700 | vlefevre | 2010-02-16 17:43:28 +0000 (Tue, 16 Feb 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6699 | vlefevre | 2010-02-16 17:02:40 +0000 (Tue, 16 Feb 2010) | 5 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-mpfr.h: disable the INTMAX_C / UINTMAX_C test with C++ compilers as it
-doesn't work well in this case (e.g. possible failure with Boost); see
- https://sympa.inria.fr/sympa/arc/mpfr/2010-02/msg00025.html
-and the whole discussion.
-mpfr.texi: update.
-------------------------------------------------------------------------
-r6696 | zimmerma | 2010-02-05 07:13:10 +0000 (Fri, 05 Feb 2010) | 3 lines
-Changed paths:
- M /trunk/configure.in
-
-[configure.in] removed check for C++ and Fortran compiler (comment said to
- remove it for libtool >= 2.0)
-
-------------------------------------------------------------------------
-r6695 | zimmerma | 2010-02-01 09:25:46 +0000 (Mon, 01 Feb 2010) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] dummy change to check if we still get commit mails
-
-------------------------------------------------------------------------
-r6694 | zimmerma | 2010-01-29 13:44:58 +0000 (Fri, 29 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] added note about mpfr_set_str
-
-------------------------------------------------------------------------
-r6691 | vlefevre | 2010-01-25 10:54:30 +0000 (Mon, 25 Jan 2010) | 3 lines
-Changed paths:
- M /trunk/get_patches.sh
-
-Simplified get_patches.sh; minor consequence: the trailing space in
-the string returned by mpfr_get_patches() when there are patches is
-no longer present (this trailing space wasn't desired anyway).
-------------------------------------------------------------------------
-r6687 | vlefevre | 2010-01-25 00:33:37 +0000 (Mon, 25 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: updated message for different gmp.h and libgmp versions.
-See <https://sympa.inria.fr/sympa/arc/mpfr/2010-01/msg00051.html>.
-------------------------------------------------------------------------
-r6686 | vlefevre | 2010-01-20 12:09:45 +0000 (Wed, 20 Jan 2010) | 6 lines
-Changed paths:
- M /trunk/FAQ.html
- M /trunk/README
- M /trunk/TODO
- M /trunk/faq.xsl
-
-FAQ.html, faq.xsl, README, TODO: slightly changed the copyright notice
-to make it consistent with the one of the other files. In short, "and
-the GNU General Public License" has been removed, but it was ambiguous
-(we did not say which version of the GNU GPL) and useless (for GPLv3)
-because the LGPLv3 is compatible with the GPLv3:
- http://www.fsf.org/licensing/licenses/gpl-faq.html#WhatDoesCompatMean
-------------------------------------------------------------------------
-r6685 | vlefevre | 2010-01-20 11:56:23 +0000 (Wed, 20 Jan 2010) | 3 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL:
- * added copyright notice (at the top, like GMP);
- * replaced "Installing MPFR" by "Installing GNU MPFR".
-------------------------------------------------------------------------
-r6684 | vlefevre | 2010-01-20 11:48:25 +0000 (Wed, 20 Jan 2010) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/bernoulli.c
- M /trunk/buildopt.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/digamma.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/examples/divworst.c
- M /trunk/examples/rndo-add.c
- M /trunk/examples/sample.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_flt.c
- M /trunk/get_ld.c
- M /trunk/get_patches.sh
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/ieee_floats.h
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/isregular.c
- M /trunk/iszero.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/min_prec.c
- M /trunk/minmax.c
- M /trunk/modf.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-longlong.h
- M /trunk/mpfr-thread.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/printf.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/scale2.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_flt.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/set_zero.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/setsign.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/signbit.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/digamma
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdigamma.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_flt.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/turandom.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandom.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Copyright notice update: added 2010 with
- perl -pi -e 's/2009 Free Software/2009, 2010 Free Software/' **/*(^/)
-under zsh, reverting the ChangeLog file and the mbench directory.
-------------------------------------------------------------------------
-r6683 | vlefevre | 2010-01-20 11:35:49 +0000 (Wed, 20 Jan 2010) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: added turandom to the svn:ignore property.
-------------------------------------------------------------------------
-r6682 | vlefevre | 2010-01-20 11:33:30 +0000 (Wed, 20 Jan 2010) | 3 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: updated paragraphs about the search paths (in particular,
---with-gmp=/usr/local is no longer chosen as an example as it does
-not work as expected; a note has been added about that).
-------------------------------------------------------------------------
-r6681 | vlefevre | 2010-01-20 09:57:24 +0000 (Wed, 20 Jan 2010) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: rewrote a paragraph about search paths.
-------------------------------------------------------------------------
-r6680 | thevenyp | 2010-01-18 18:30:44 +0000 (Mon, 18 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Fix case emin > 0.
-------------------------------------------------------------------------
-r6679 | zimmerma | 2010-01-18 15:28:50 +0000 (Mon, 18 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added more details for random distribution functions
-
-------------------------------------------------------------------------
-r6678 | zimmerma | 2010-01-18 14:30:15 +0000 (Mon, 18 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-[tprintf.c, tfprintf.c] cleaned up previous commit
-
-------------------------------------------------------------------------
-r6677 | vlefevre | 2010-01-18 13:50:17 +0000 (Mon, 18 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/tests/turandom.c
-
-tests/turandom.c: updated a test (if emin > 1 and rnd == MPFR_RNDN,
-then the result is necessarily 0).
-------------------------------------------------------------------------
-r6676 | vlefevre | 2010-01-18 13:39:17 +0000 (Mon, 18 Jan 2010) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-tests/turandom.c: more tests in restricted exponent range.
-------------------------------------------------------------------------
-r6675 | vlefevre | 2010-01-18 13:27:04 +0000 (Mon, 18 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-urandom.c: corrected a comment.
-------------------------------------------------------------------------
-r6674 | zimmerma | 2010-01-18 12:37:30 +0000 (Mon, 18 Jan 2010) | 3 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-[tprintf.c,tfprintf.c] print obtained chain in test #8
- (https://sympa.inria.fr/sympa/arc/mpfr/2009-12/msg00035.html)
-
-------------------------------------------------------------------------
-r6673 | thevenyp | 2010-01-18 09:48:47 +0000 (Mon, 18 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Fix bug in setting random exponent.
-------------------------------------------------------------------------
-r6672 | vlefevre | 2010-01-16 10:13:53 +0000 (Sat, 16 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-urandom.c: added a FIXME comment.
-------------------------------------------------------------------------
-r6671 | vlefevre | 2010-01-15 17:11:08 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-urandom.c: removed unused variable k; updated a comment.
-------------------------------------------------------------------------
-r6670 | thevenyp | 2010-01-15 16:38:11 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Improve generation of random exponent.
-------------------------------------------------------------------------
-r6669 | thevenyp | 2010-01-15 16:36:42 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Fix bug introduced in r6667.
-------------------------------------------------------------------------
-r6668 | zimmerma | 2010-01-15 15:17:18 +0000 (Fri, 15 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added item
-
-------------------------------------------------------------------------
-r6667 | thevenyp | 2010-01-15 14:25:06 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Fix case nextabove(0) in reduced exponent range.
-------------------------------------------------------------------------
-r6666 | thevenyp | 2010-01-15 10:06:20 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/tests/turandom.c
-
-[tests/turandom.c] Change accumulation of ternary value in the loop, it was not portable in system with sign and magnitude representation for integers.
-------------------------------------------------------------------------
-r6665 | thevenyp | 2010-01-15 09:51:31 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Move generation of a random rounding bit in a separate function.
-------------------------------------------------------------------------
-r6664 | thevenyp | 2010-01-15 09:49:14 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Remove trailing whitespace.
-------------------------------------------------------------------------
-r6663 | thevenyp | 2010-01-15 09:32:43 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-[urandom.c] Call mpfr_nextabove in maximum exponent range.
-------------------------------------------------------------------------
-r6662 | vlefevre | 2010-01-15 04:21:01 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-urandom.c: added a FIXME so that it is not forgotten.
-------------------------------------------------------------------------
-r6661 | vlefevre | 2010-01-15 02:01:52 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6659 | vlefevre | 2010-01-15 01:57:05 +0000 (Fri, 15 Jan 2010) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: require bash.
-------------------------------------------------------------------------
-r6658 | vlefevre | 2010-01-14 16:03:37 +0000 (Thu, 14 Jan 2010) | 1 line
-Changed paths:
- M /trunk/urandom.c
-
-urandom.c: clean-up (avoid a useless goto).
-------------------------------------------------------------------------
-r6657 | vlefevre | 2010-01-14 15:22:37 +0000 (Thu, 14 Jan 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a paragraph (use MPFR_ASSERTN, not printf + exit).
-------------------------------------------------------------------------
-r6656 | thevenyp | 2010-01-14 12:16:15 +0000 (Thu, 14 Jan 2010) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Cosmetic change.
-------------------------------------------------------------------------
-r6655 | thevenyp | 2010-01-14 11:55:05 +0000 (Thu, 14 Jan 2010) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/turandom.c
- M /trunk/urandom.c
-
-[urandom.c, mpfr.texi] Change the behavior of mpfr_urandom to the usual mpfr function interface (wrt the ternary value and the out-of-range behavior).
-[tests/turandom.c] Check new behavior and add a test for the inclusion in [0, 1].
-
-------------------------------------------------------------------------
-r6654 | thevenyp | 2010-01-13 18:12:54 +0000 (Wed, 13 Jan 2010) | 1 line
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/turandom.c (from /trunk/tests/trandom.c:6653)
- A /trunk/urandom.c (from /trunk/urandomb.c:6653)
-
-New function mpfr_urandom.
-------------------------------------------------------------------------
-r6652 | vlefevre | 2010-01-11 15:42:05 +0000 (Mon, 11 Jan 2010) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a note about patches and the autotools.
-------------------------------------------------------------------------
-r6650 | vlefevre | 2010-01-10 23:24:54 +0000 (Sun, 10 Jan 2010) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-Added mpfrlint test for the required autoconf versions (see r6649).
-------------------------------------------------------------------------
-r6649 | zimmerma | 2010-01-10 10:27:09 +0000 (Sun, 10 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/acinclude.m4
-
-[README.dev] required version of autoconf did not agree with acinclude.m4
-
-------------------------------------------------------------------------
-r6648 | vlefevre | 2010-01-08 21:44:07 +0000 (Fri, 08 Jan 2010) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: replaced BITS_PER_MP_LIMB by GMP_NUMB_BITS (should have
-been done in r6645).
-------------------------------------------------------------------------
-r6647 | vlefevre | 2010-01-08 21:37:05 +0000 (Fri, 08 Jan 2010) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: check that GMP_LIMB_BITS isn't used.
-------------------------------------------------------------------------
-r6646 | vlefevre | 2010-01-08 21:36:26 +0000 (Fri, 08 Jan 2010) | 1 line
-Changed paths:
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/algorithms.tex
- M /trunk/atan.c
- M /trunk/check.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/configure.in
- M /trunk/div-short.c
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/eq.c
- M /trunk/exp.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/extract.c
- M /trunk/frac.c
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_f.c
- M /trunk/get_flt.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/gmp_op.c
- M /trunk/init2.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinteger.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/min_prec.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/rec_sqrt.c
- M /trunk/rint.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_f.c
- M /trunk/set_ld.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_si_2exp.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sin_cos.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_ui.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/random2.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tests.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tsqrt.c
- M /trunk/tuneup.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/zeta_ui.c
-
-Replaced GMP_LIMB_BITS by GMP_NUMB_BITS to use only one of these macros.
-------------------------------------------------------------------------
-r6645 | zimmerma | 2010-01-08 20:04:27 +0000 (Fri, 08 Jan 2010) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-[configure.in] put back test BITS_PER_MP_LIMB == BYTES_PER_MP_LIMB * CHAR_BIT
- (this is done only with --with-gmp-build, and BYTES_PER_MP_LIMB
- is defined in this case in gmp-impl.h, at least in GMP 5)
-
-------------------------------------------------------------------------
-r6644 | zimmerma | 2010-01-08 19:13:48 +0000 (Fri, 08 Jan 2010) | 4 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/algorithms.tex
- M /trunk/atan.c
- M /trunk/check.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/configure.in
- M /trunk/div-short.c
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/eq.c
- M /trunk/exp.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/extract.c
- M /trunk/frac.c
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_f.c
- M /trunk/get_flt.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/gmp_op.c
- M /trunk/init2.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinteger.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/min_prec.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/rec_sqrt.c
- M /trunk/rint.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_f.c
- M /trunk/set_ld.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_si_2exp.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_ui.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/random2.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tests.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tsqrt.c
- M /trunk/tuneup.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/zeta_ui.c
-
-BITS_PER_MP_LIMB -> GMP_LIMB_BITS
-got rid of BYTES_PER_MP_LIMB in configure.in (no longer defined by GMP)
-Note[VL] (mpfr-impl.h): a mpn_sqr_n() macro is defined to use mpn_mul
-if it is not already defined (in gmp-impl.h from GMP 4.x).
-------------------------------------------------------------------------
-r6643 | vlefevre | 2009-12-23 19:10:15 +0000 (Wed, 23 Dec 2009) | 2 lines
-Changed paths:
- M /trunk/mbench/Makefile
-
-[mbench/Makefile] Patch from Patrick Pelissier to solve the -I problem
-with GCC.
-------------------------------------------------------------------------
-r6642 | vlefevre | 2009-12-21 00:44:35 +0000 (Mon, 21 Dec 2009) | 1 line
-Changed paths:
- M /trunk/mbench/Makefile
-
-[mbench/Makefile] Added a comment (warning about the use of -I).
-------------------------------------------------------------------------
-r6641 | zimmerma | 2009-12-20 10:26:22 +0000 (Sun, 20 Dec 2009) | 2 lines
-Changed paths:
- M /trunk/mbench/Makefile
-
-patch from Patrick Pelissier
-
-------------------------------------------------------------------------
-r6640 | zimmerma | 2009-12-18 14:57:19 +0000 (Fri, 18 Dec 2009) | 8 lines
-Changed paths:
- M /trunk/exp_2.c
- M /trunk/mparam_h.in
- M /trunk/scale2.c
- M /trunk/tuneup.c
-
-[scale2.c] added missing include (compilation with --with-gmp-build did fail)
-[exp_2.c] small improvements in Smith method: compute x^{2i} as (x^i)^2 instead
- of x^{i-1} * x. The error analysis is unchanged.
-[tuneup.c] fix for sin_cos threshold (we had a problem since mpfr_sin_cos
- was calling mpfr_cos, which was calling mpfr_sincos_fast in some
- cases
-[mparam_h.in] put new thresholds for Core 2 64-bit
-
-------------------------------------------------------------------------
-r6633 | zimmerma | 2009-12-11 09:41:47 +0000 (Fri, 11 Dec 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] reversed order for case "quad, mais en little endian" for
- coherence with other cases
-
-------------------------------------------------------------------------
-r6632 | zimmerma | 2009-12-10 21:05:50 +0000 (Thu, 10 Dec 2009) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-impl.h
-
-patch to recognize IEEE quad, little endian format for "long double"
-
-------------------------------------------------------------------------
-r6631 | zimmerma | 2009-12-10 15:43:28 +0000 (Thu, 10 Dec 2009) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/get_d.c
- M /trunk/get_flt.c
- M /trunk/mpfr-impl.h
- M /trunk/scale2.c
-
-[scale2.c] now mpfr_scale2 is included in mpfr-impl.h, instead of #including
- "scale2.c" twice (thus it was compiled twice)
-
-------------------------------------------------------------------------
-r6628 | vlefevre | 2009-12-07 11:53:04 +0000 (Mon, 07 Dec 2009) | 7 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-sin_cos.c: in case of tiny inputs, keep the flags. In practice, this
-fixes the following bug in mpfr_sin_cos (shown by the latest additions
-to tsin_cos.c): if emin is the minimal exponent (MPFR_EMIN_MIN), the
-absolute value of the input is the minimum positive number and the
-rounding mode is toward 0 (or equivalent), then the underflow flag is
-dropped. The other exception cases (e.g., in case of reduced exponent
-range) are handled by mpfr_check_range().
-------------------------------------------------------------------------
-r6627 | vlefevre | 2009-12-07 11:21:51 +0000 (Mon, 07 Dec 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: in consistency(), better error message.
-------------------------------------------------------------------------
-r6626 | vlefevre | 2009-12-07 11:15:46 +0000 (Mon, 07 Dec 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: in consistency(), improved testing on underflow case.
-------------------------------------------------------------------------
-r6625 | vlefevre | 2009-12-07 10:29:57 +0000 (Mon, 07 Dec 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: in consistency(), added testing on underflow case.
-------------------------------------------------------------------------
-r6624 | vlefevre | 2009-12-07 10:22:33 +0000 (Mon, 07 Dec 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: in consistency(), fixed flags testing.
-------------------------------------------------------------------------
-r6623 | vlefevre | 2009-12-07 10:16:17 +0000 (Mon, 07 Dec 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: in consistency(), test also the flags.
-------------------------------------------------------------------------
-r6622 | vlefevre | 2009-12-07 10:10:13 +0000 (Mon, 07 Dec 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: in consistency(), test also the returned value
-(the one that gives inexact-related information).
-------------------------------------------------------------------------
-r6619 | zimmerma | 2009-11-30 15:12:30 +0000 (Mon, 30 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfits.c
-
-[tfits.c] converted to GNU coding style
-
-------------------------------------------------------------------------
-r6612 | vlefevre | 2009-11-30 11:57:07 +0000 (Mon, 30 Nov 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release".
-------------------------------------------------------------------------
-r6602 | vlefevre | 2009-11-30 02:17:23 +0000 (Mon, 30 Nov 2009) | 1 line
-Changed paths:
- M /trunk/uceil_exp2.c
-
-uceil_exp2.c: fixed indentation.
-------------------------------------------------------------------------
-r6599 | vlefevre | 2009-11-29 03:17:53 +0000 (Sun, 29 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: got rid of broken code when _GMP_IEEE_FLOATS was defined
-(broken aliasing rules, yielding failures with GCC 4.5.0 20091119).
-------------------------------------------------------------------------
-r6598 | zimmerma | 2009-11-27 06:38:45 +0000 (Fri, 27 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-[tset_ld.c] now perform tests even if old gcc bug is present
-
-------------------------------------------------------------------------
-r6597 | zimmerma | 2009-11-26 16:38:26 +0000 (Thu, 26 Nov 2009) | 4 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-[tget_d.c] removed workaround for old gcc bug. Comment was:
- /* workaround for gcc bug on m68040-unknown-netbsd1.4.1,
- where DBL_MIN gives (1-2^(-52))/2^1022 */
-
-------------------------------------------------------------------------
-r6596 | zimmerma | 2009-11-26 16:26:06 +0000 (Thu, 26 Nov 2009) | 9 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tmul.c
-
-[tadd.c, tmul.c] got rid of workaround for old gcc bug. Comment was:
-/* Parameter "z1" of check() used to be last in the argument list, but that
- tickled a bug in 32-bit sparc gcc 2.95.2. A "double" in that position is
- passed on the stack at an address which is 4mod8, but the generated code
- didn't take into account that alignment, resulting in bus errors. The
- easiest workaround is to move it to the start of the arg list (where it's
- passed in registers), this macro does that. FIXME: Change the actual
- calls to check(), rather than using a macro. */
-
-------------------------------------------------------------------------
-r6595 | zimmerma | 2009-11-26 15:58:02 +0000 (Thu, 26 Nov 2009) | 3 lines
-Changed paths:
- M /trunk/strtofr.c
-
-[strtofr.c] removed patch for old FreeBsd/Alpha bug
- (http://www.freebsd.org/cgi/query-pr.cgi?pr=72024)
-
-------------------------------------------------------------------------
-r6594 | vlefevre | 2009-11-26 14:15:51 +0000 (Thu, 26 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-[pow_si.c] Updated comment added in r4355 concerning a bug
-in Sun's compiler for Solaris/x86.
-------------------------------------------------------------------------
-r6593 | vlefevre | 2009-11-26 13:38:38 +0000 (Thu, 26 Nov 2009) | 1 line
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/strtofr.c
-
-Updated comments concerning the old FreeBSD bug 72024 on LONG_MIN / 1.
-------------------------------------------------------------------------
-r6587 | vlefevre | 2009-11-25 12:16:22 +0000 (Wed, 25 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-[tfprintf.c,tprintf.c] Fixed other types in function with variable
-arguments (even though there were no warnings on the tested machine).
-------------------------------------------------------------------------
-r6586 | vlefevre | 2009-11-25 12:00:43 +0000 (Wed, 25 Nov 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-[tfprintf.c,tprintf.c] Fixed types in function with variable arguments.
-------------------------------------------------------------------------
-r6585 | zimmerma | 2009-11-25 11:03:20 +0000 (Wed, 25 Nov 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-[tfprintf.c,tprintf.c] applied patch from Philippe Theveny
-[acinclude.m4] removed check for %zu, no longer needed
-
-------------------------------------------------------------------------
-r6582 | zimmerma | 2009-11-25 10:20:53 +0000 (Wed, 25 Nov 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-[acinclude.m4] added test for %zu
-[tfprintf.c,tprintf.c] added #ifdef's for NPRINTF_ZU
-
-------------------------------------------------------------------------
-r6580 | vlefevre | 2009-11-25 10:16:29 +0000 (Wed, 25 Nov 2009) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: corrected a comment.
-------------------------------------------------------------------------
-r6577 | vlefevre | 2009-11-25 09:46:52 +0000 (Wed, 25 Nov 2009) | 1 line
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-tests/tstckintc.c: fixed types for the printf %p format specifier.
-------------------------------------------------------------------------
-r6576 | zimmerma | 2009-11-25 08:33:58 +0000 (Wed, 25 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tget_flt.c
-
-[tget_flt.c] replaced %a by %.8e
-
-------------------------------------------------------------------------
-r6575 | zimmerma | 2009-11-25 08:23:23 +0000 (Wed, 25 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_ld_2exp.c
-
-[tget_d.c,tget_ld_2exp.c] replaced %a and %La by %.16e and %.16Le
-
-------------------------------------------------------------------------
-r6574 | zimmerma | 2009-11-25 08:05:41 +0000 (Wed, 25 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-[tget_d.c] removed C99-specific instruction
-
-------------------------------------------------------------------------
-r6573 | zimmerma | 2009-11-25 07:51:47 +0000 (Wed, 25 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-[nightly-test] added -ansi -pedantic-errors
-
-------------------------------------------------------------------------
-r6571 | vlefevre | 2009-11-24 17:59:14 +0000 (Tue, 24 Nov 2009) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: completed the GMP CC/CFLAGS detection.
-------------------------------------------------------------------------
-r6570 | vlefevre | 2009-11-24 17:52:04 +0000 (Tue, 24 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: added a test to check for CC and CFLAGS in gmp.h only
-when the user doesn't redefine them and he isn't cross-compiling.
-------------------------------------------------------------------------
-r6569 | vlefevre | 2009-11-24 17:32:43 +0000 (Tue, 24 Nov 2009) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: improved the GMP CC/CFLAGS detection.
-------------------------------------------------------------------------
-r6568 | vlefevre | 2009-11-24 16:52:57 +0000 (Tue, 24 Nov 2009) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: try to fix the GMP CC/CFLAGS detection. Not finished.
-------------------------------------------------------------------------
-r6567 | vlefevre | 2009-11-24 15:48:35 +0000 (Tue, 24 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: replaced "test ... -o ..." (obsolete in POSIX)
-by "test ... || test ...".
-------------------------------------------------------------------------
-r6566 | vlefevre | 2009-11-24 15:44:44 +0000 (Tue, 24 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: replaced "test ... -a ..." (obsolete in POSIX)
-by "test ... && test ...".
-------------------------------------------------------------------------
-r6564 | vlefevre | 2009-11-24 15:23:00 +0000 (Tue, 24 Nov 2009) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: made instructions more clear.
-------------------------------------------------------------------------
-r6561 | vlefevre | 2009-11-23 13:55:54 +0000 (Mon, 23 Nov 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release".
-------------------------------------------------------------------------
-r6560 | vlefevre | 2009-11-23 13:51:21 +0000 (Mon, 23 Nov 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: last things to do when making a release.
-------------------------------------------------------------------------
-r6557 | vlefevre | 2009-11-22 23:29:45 +0000 (Sun, 22 Nov 2009) | 10 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-sin_cos.c: fixed a potential bug by changing a rnd_mode into MPFR_RNDZ
-in mpfr_can_round. Indeed, in r4574, the change from
- if (!mpfr_can_round (c, m, GMP_RNDZ, rnd_mode, MPFR_PREC (z)))
-to
- if (!mpfr_can_round (c, m, GMP_RNDN, rnd_mode,
- MPFR_PREC (z) + (rnd_mode == GMP_RNDN)))
-looks wrong to me: in RNDN, the extra bit due to rnd_mode == GMP_RNDN
-changes a RNDN worst case into a RNDZ worst case.
-Note: The second mpfr_can_round with the same problem has been fixed
-in r6513.
-------------------------------------------------------------------------
-r6556 | vlefevre | 2009-11-22 22:44:40 +0000 (Sun, 22 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: ported bug20091122 from the 2.4 branch to the trunk.
-But no failure in the trunk.
-------------------------------------------------------------------------
-r6550 | vlefevre | 2009-11-20 21:40:00 +0000 (Fri, 20 Nov 2009) | 1 line
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-tests/tconst_pi.c: fixed types for C++.
-------------------------------------------------------------------------
-r6545 | vlefevre | 2009-11-20 12:48:49 +0000 (Fri, 20 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Changeset r6162 broke Solaris builds. Fixed that by no longer checking
-INTMAX_MAX and UINTMAX_MAX to detect use of <stdint.h> / <inttypes.h>.
-------------------------------------------------------------------------
-r6535 | zimmerma | 2009-11-01 21:22:16 +0000 (Sun, 01 Nov 2009) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-[cos.c] fixed case where reduced argument is zero
-
-------------------------------------------------------------------------
-r6534 | vlefevre | 2009-10-30 15:13:05 +0000 (Fri, 30 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-tcos.c: added a testcase yielding an assertion failure (this bug makes
-tsin_cos fail).
-------------------------------------------------------------------------
-r6533 | vlefevre | 2009-10-30 15:05:28 +0000 (Fri, 30 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: ported the consistency test from the 2.4 branch.
-This yields an assertion failure (Linux/x86_64).
-------------------------------------------------------------------------
-r6527 | zimmerma | 2009-10-30 10:09:56 +0000 (Fri, 30 Oct 2009) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/cache.c
- M /trunk/tests/tconst_pi.c
-
-[cache.c] fixed bug with directed rounding
-[tconst_pi.c] added test for bug with directed rounding
-
-------------------------------------------------------------------------
-r6524 | vlefevre | 2009-10-21 13:38:30 +0000 (Wed, 21 Oct 2009) | 1 line
-Changed paths:
- M /trunk/exceptions.c
-
-exceptions.c: improved a comment.
-------------------------------------------------------------------------
-r6523 | vlefevre | 2009-10-21 13:21:04 +0000 (Wed, 21 Oct 2009) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: added an overflow test.
-------------------------------------------------------------------------
-r6522 | vlefevre | 2009-10-21 13:13:54 +0000 (Wed, 21 Oct 2009) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: added an overflow test in RNDZ.
-------------------------------------------------------------------------
-r6521 | zimmerma | 2009-10-20 07:21:23 +0000 (Tue, 20 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added efficiency item
-
-------------------------------------------------------------------------
-r6520 | zimmerma | 2009-10-19 08:16:45 +0000 (Mon, 19 Oct 2009) | 3 lines
-Changed paths:
- M /trunk/lngamma.c
-
-[lngamma.c] fixed typo, added comments about argument reduction, and replaced
- code using doubles
-
-------------------------------------------------------------------------
-r6519 | zimmerma | 2009-10-19 06:57:02 +0000 (Mon, 19 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added efficiency item
-
-------------------------------------------------------------------------
-r6518 | zimmerma | 2009-10-15 11:19:20 +0000 (Thu, 15 Oct 2009) | 4 lines
-Changed paths:
- M /trunk/exp.c
-
-[exp.c] binary splitting is now used for prec >= MPFR_EXP_THRESHOLD
- (instead of prec > MPFR_EXP_THRESHOLD before). This is more
- consistent with the other thresholds.
-
-------------------------------------------------------------------------
-r6517 | zimmerma | 2009-10-15 11:07:26 +0000 (Thu, 15 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added efficiency item
-
-------------------------------------------------------------------------
-r6516 | zimmerma | 2009-10-15 10:30:55 +0000 (Thu, 15 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] added /* bits */ for MPFR_EXP_THRESHOLD and MPFR_EXP_2_THRESHOLD
-
-------------------------------------------------------------------------
-r6514 | zimmerma | 2009-10-13 08:11:10 +0000 (Tue, 13 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-[tsin_cos.c] removed useless instruction, and added comments
-
-------------------------------------------------------------------------
-r6513 | zimmerma | 2009-10-13 06:57:06 +0000 (Tue, 13 Oct 2009) | 3 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tests/tsin_cos.c
-
-[sin_cos.c] fixed call to mpfr_can_round (rounding mode was wrong)
-[tsin_cos.c] added new test
-
-------------------------------------------------------------------------
-r6512 | zimmerma | 2009-10-13 06:37:15 +0000 (Tue, 13 Oct 2009) | 3 lines
-Changed paths:
- M /trunk/li2.c
- M /trunk/tests/tli2.c
-
-[li2.c] fixed bug when x is near 0
-[tli2.c] added new test
-
-------------------------------------------------------------------------
-r6510 | vlefevre | 2009-10-09 07:29:54 +0000 (Fri, 09 Oct 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
-------------------------------------------------------------------------
-r6509 | vlefevre | 2009-10-09 07:27:36 +0000 (Fri, 09 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: added a comment about bug20091008, corresponding to
-r6507; in fact, the bug concerns only the return value (see r6444).
-------------------------------------------------------------------------
-r6507 | zimmerma | 2009-10-08 07:51:49 +0000 (Thu, 08 Oct 2009) | 3 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tests/tsin_cos.c
-
-[sin_cos.c] fixed error analysis
-[tsin_cos.c] added new test
-
-------------------------------------------------------------------------
-r6506 | vlefevre | 2009-10-07 14:18:35 +0000 (Wed, 07 Oct 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
-------------------------------------------------------------------------
-r6505 | vlefevre | 2009-10-07 12:06:35 +0000 (Wed, 07 Oct 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tests/tsin_cos.c: removed trailing spaces.
-------------------------------------------------------------------------
-r6504 | zimmerma | 2009-10-07 08:58:51 +0000 (Wed, 07 Oct 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-[tsin_cos.c] changed binary to hexadecimal string (was too long for C89)
-
-------------------------------------------------------------------------
-r6503 | zimmerma | 2009-10-07 07:05:13 +0000 (Wed, 07 Oct 2009) | 3 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tests/tsin_cos.c
-
-[sin_cos.c] fixed bug introduced in r6447 (some variables had their precision not updated in Ziv's loop)
-[tsin_cos.c] added a new test
-
-------------------------------------------------------------------------
-r6498 | vlefevre | 2009-09-29 14:44:22 +0000 (Tue, 29 Sep 2009) | 1 line
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update.
-------------------------------------------------------------------------
-r6497 | zimmerma | 2009-09-29 11:28:00 +0000 (Tue, 29 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/round_prec.c
- M /trunk/tests/tcan_round.c
-
-[mpfr.texi] added note about mpfr_can_round
-[tcan_round.c] added more tests
-
-------------------------------------------------------------------------
-r6490 | zimmerma | 2009-09-24 06:16:52 +0000 (Thu, 24 Sep 2009) | 4 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] added item for new releases: we should say if they are binary
- and/or API compatible with previous releases (we often forgot
- to say it in the past)
-
-------------------------------------------------------------------------
-r6489 | vlefevre | 2009-09-23 15:09:42 +0000 (Wed, 23 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: added tget_flt to the svn:ignore property.
-------------------------------------------------------------------------
-r6488 | vlefevre | 2009-09-23 15:08:39 +0000 (Wed, 23 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/Makefile.am
-
-tests/Makefile.am: added information about LOADLIBES.
-------------------------------------------------------------------------
-r6487 | zimmerma | 2009-09-23 13:32:35 +0000 (Wed, 23 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] put back LOADLIBES=... (enables to compile a program foo.c
- in the test directory by simply doing "make foo")
-
-------------------------------------------------------------------------
-r6486 | zimmerma | 2009-09-23 06:21:27 +0000 (Wed, 23 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-[atan.c] updated the comments
-
-------------------------------------------------------------------------
-r6485 | vlefevre | 2009-09-22 15:56:16 +0000 (Tue, 22 Sep 2009) | 1 line
-Changed paths:
- M /trunk/atan.c
-
-atan.c: added a FIXME comment.
-------------------------------------------------------------------------
-r6484 | vlefevre | 2009-09-22 15:51:15 +0000 (Tue, 22 Sep 2009) | 1 line
-Changed paths:
- M /trunk/atan.c
-
-atan.c: added some assertions.
-------------------------------------------------------------------------
-r6483 | zimmerma | 2009-09-22 13:58:25 +0000 (Tue, 22 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/algorithms.tex
- M /trunk/atan.c
-
-[atan.c] implemented argument reduction (cf error analysis in algorithms.tex)
-
-------------------------------------------------------------------------
-r6482 | zimmerma | 2009-09-21 07:34:07 +0000 (Mon, 21 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-[tests/Makefile.am] removed LOADLIBES=...
-
-------------------------------------------------------------------------
-r6480 | vlefevre | 2009-09-20 23:31:37 +0000 (Sun, 20 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: check that lines aren't too long.
-------------------------------------------------------------------------
-r6478 | vlefevre | 2009-09-20 19:07:03 +0000 (Sun, 20 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: line-wrap libmpfr_la_SOURCES (M-q with Emacs) for
-compatibility with some vendor grep.
-------------------------------------------------------------------------
-r6476 | vlefevre | 2009-09-20 19:00:11 +0000 (Sun, 20 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/tests/Makefile.am
-
-Makefile.am, tests/Makefile.am: patch from Ralf Wildenhues.
-https://lists.gnu.org/archive/html/bug-automake/2009-09/msg00033.html
-------------------------------------------------------------------------
-r6475 | vlefevre | 2009-09-18 15:00:09 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/sin_cos.c
- M /trunk/tests/tsin_cos.c
-
-mpfr-impl.h, sin_cos.c, tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
-------------------------------------------------------------------------
-r6474 | vlefevre | 2009-09-18 14:55:57 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/sin_cos.c
-
-sin_cos.c: GMP_RNDx -> MPFR_RNDx.
-------------------------------------------------------------------------
-r6473 | vlefevre | 2009-09-18 14:54:38 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/sin_cos.c
-
-sin_cos.c: untabified.
-------------------------------------------------------------------------
-r6471 | vlefevre | 2009-09-18 14:45:47 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/frac.c
- M /trunk/tests/tfrac.c
-
-frac.c, tests/tfrac.c: fixed underflow case in mpfr_frac and added
-testcase.
-------------------------------------------------------------------------
-r6470 | zimmerma | 2009-09-18 14:03:56 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/atan.c
-
-[acos.c] initial working precision was too small
-
-------------------------------------------------------------------------
-r6469 | vlefevre | 2009-09-18 13:56:21 +0000 (Fri, 18 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/modf.c
-
-modf.c: no longer extend the exponent range at all, since there are
-no intermediate computations (note: the mpfr_frac bug that has just
-been fixed affected this change in modf.c).
-------------------------------------------------------------------------
-r6467 | vlefevre | 2009-09-18 13:50:21 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/frac.c
-
-[frac.c] Patch r6456 was incorrect: the problem with the non-significant
-bits had to be dealt with only in the case t = r. This is now fixed.
-------------------------------------------------------------------------
-r6466 | vlefevre | 2009-09-18 13:47:10 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: reverted overflow case test (was incorrect because the
-input was too large).
-------------------------------------------------------------------------
-r6465 | vlefevre | 2009-09-18 13:42:12 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: also test the overflow case.
-------------------------------------------------------------------------
-r6464 | vlefevre | 2009-09-18 13:33:43 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: more tests (case where the fractional part rounds to 1).
-------------------------------------------------------------------------
-r6463 | zimmerma | 2009-09-18 13:31:56 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] added item
-
-------------------------------------------------------------------------
-r6461 | zimmerma | 2009-09-18 13:10:35 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.texi
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/tuneup.c
-
-[sin.c,cos.c] use mpfr_sincos_fast when prec >= MPFR_SINCOS_THRESHOLD
-
-------------------------------------------------------------------------
-r6460 | vlefevre | 2009-09-18 12:03:38 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: more tests (there are also problems in rounding away
-from zero or equivalent).
-------------------------------------------------------------------------
-r6459 | zimmerma | 2009-09-18 11:59:23 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
- M /trunk/sin_cos.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tuneup.c
-
-added tuning mechanism for mpfr_sin_cos
-
-------------------------------------------------------------------------
-r6458 | vlefevre | 2009-09-18 11:46:28 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: also test the ternary value (it is incorrect too).
-------------------------------------------------------------------------
-r6456 | vlefevre | 2009-09-18 11:27:48 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/frac.c
-
-frac.c: fixed bug in mpfr_frac (the non-significant bits in low limb
-were not cleared).
-------------------------------------------------------------------------
-r6455 | vlefevre | 2009-09-18 11:19:11 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: improved the testcase so that it triggers the bug for
-both 32 bits and 64 bits.
-------------------------------------------------------------------------
-r6454 | vlefevre | 2009-09-18 11:16:00 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: added a comment for latest testcase.
-------------------------------------------------------------------------
-r6453 | vlefevre | 2009-09-18 11:09:03 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfrac.c
-
-tests/tfrac.c: added testcase for bug in mpfr_frac.
-------------------------------------------------------------------------
-r6451 | vlefevre | 2009-09-18 10:38:19 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tmodf.c
-
-tests/tmodf.c: typo in error message.
-------------------------------------------------------------------------
-r6450 | vlefevre | 2009-09-18 10:26:26 +0000 (Fri, 18 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/modf.c
-
-modf.c: extending the exponent range in the first two cases is useless
-because there are no intermediate computations (just a mpfr_set). Let's
-do that only for the general case.
-------------------------------------------------------------------------
-r6449 | vlefevre | 2009-09-18 10:23:07 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tmodf.c
-
-tests/tmodf.c: added overflow tests.
-------------------------------------------------------------------------
-r6448 | vlefevre | 2009-09-18 09:27:10 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/modf.c
-
-modf.c: corrected a comment (rounding can yield an overflow, but not
-an underflow).
-------------------------------------------------------------------------
-r6447 | zimmerma | 2009-09-18 09:08:01 +0000 (Fri, 18 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tests/tsin_cos.c
-
-[sin_cos.c] added asymptotically fast code, with threshold currently hardcoded
- at 20000 bits, should be determined by tuneup.c
-
-------------------------------------------------------------------------
-r6446 | vlefevre | 2009-09-18 09:00:24 +0000 (Fri, 18 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tget_flt.c
-
-Deleted trailing spaces.
-------------------------------------------------------------------------
-r6445 | zimmerma | 2009-09-18 08:13:43 +0000 (Fri, 18 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/modf.c
- M /trunk/mpfr.texi
- M /trunk/tests/tmodf.c
-
-[modf.c] changed semantics of return value in accordance with mpfr_sin_cos
-
-------------------------------------------------------------------------
-r6444 | zimmerma | 2009-09-17 11:30:18 +0000 (Thu, 17 Sep 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/sin_cos.c
- M /trunk/sinh_cosh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tsin_cos.c
-
-[sin_cos.c] more precise meaning of the return value
-[sinh_cosh.c] idem as above
-[taway.c] fixed to check the more precise return value
-
-------------------------------------------------------------------------
-r6443 | zimmerma | 2009-09-16 06:17:47 +0000 (Wed, 16 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] t was not initialized in Newton's example
-
-------------------------------------------------------------------------
-r6442 | zimmerma | 2009-09-15 13:48:15 +0000 (Tue, 15 Sep 2009) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- D /trunk/get_binary32.c
- A /trunk/get_flt.c (from /trunk/get_binary32.c:6441)
- D /trunk/set_binary32.c
- A /trunk/set_flt.c (from /trunk/set_binary32.c:6441)
- M /trunk/tests/Makefile.am
- D /trunk/tests/tget_binary32.c
- A /trunk/tests/tget_flt.c (from /trunk/tests/tget_binary32.c:6441)
-
-changed _binary32 into _flt for file names too:
- svn mv get_binary32.c get_flt.c
- svn mv set_binary32.c set_flt.c
- svn mv tests/tget_binary32.c tests/tget_flt.c
-
-------------------------------------------------------------------------
-r6441 | zimmerma | 2009-09-15 13:42:49 +0000 (Tue, 15 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.texi
-
-[TODO] removed an item
-[mpfr.texi] added an example for mpfr_prec_round
-
-------------------------------------------------------------------------
-r6440 | zimmerma | 2009-09-15 13:26:11 +0000 (Tue, 15 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-[NEWS] added mpfr_set_flt and mpfr_get_flt
-
-------------------------------------------------------------------------
-r6439 | zimmerma | 2009-09-15 13:17:40 +0000 (Tue, 15 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/get_binary32.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_binary32.c
- M /trunk/tests/tget_binary32.c
-
-changed suffix _binary32 -> _flt
-[get_binary32.c] fixed a bug in subnormal range
-
-------------------------------------------------------------------------
-r6437 | vlefevre | 2009-09-15 13:15:23 +0000 (Tue, 15 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: bug fix.
-------------------------------------------------------------------------
-r6435 | vlefevre | 2009-09-15 13:13:28 +0000 (Tue, 15 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6433 | vlefevre | 2009-09-15 13:12:38 +0000 (Tue, 15 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: execute svn in C locale.
-------------------------------------------------------------------------
-r6431 | vlefevre | 2009-09-15 13:10:50 +0000 (Tue, 15 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: check mpfr.texi's UPDATED-MONTH.
-------------------------------------------------------------------------
-r6428 | zimmerma | 2009-09-15 12:21:15 +0000 (Tue, 15 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-[tget_d.c] fixed FIXME
-
-------------------------------------------------------------------------
-r6427 | vlefevre | 2009-09-15 12:12:35 +0000 (Tue, 15 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tget_d.c
-
-tget_d.c code is C99-only (bug introduced in r6424). Please fix!
-------------------------------------------------------------------------
-r6426 | zimmerma | 2009-09-15 11:42:27 +0000 (Tue, 15 Sep 2009) | 2 lines
-Changed paths:
- A /trunk/get_binary32.c
-
-[get_binary32.c] also forgot in previous commit
-
-------------------------------------------------------------------------
-r6425 | zimmerma | 2009-09-15 11:41:52 +0000 (Tue, 15 Sep 2009) | 2 lines
-Changed paths:
- A /trunk/set_binary32.c
-
-[set_binary32.c] file forgot in previous commit
-
-------------------------------------------------------------------------
-r6424 | zimmerma | 2009-09-15 11:37:40 +0000 (Tue, 15 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/get_d.c
- M /trunk/get_d64.c
- A /trunk/ieee_floats.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/scale2.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_binary32.c
- M /trunk/tests/tget_d.c
-
-added new functions mpfr_set_binary32 and mpfr_get_binary32
-fixed bug in mpfr_get_d and mpfr_get_decimal64 for RNDA
-
-------------------------------------------------------------------------
-r6423 | zimmerma | 2009-09-15 08:27:20 +0000 (Tue, 15 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] improved description of mpfr_sum, and fixed typo
-
-------------------------------------------------------------------------
-r6421 | vlefevre | 2009-09-14 16:29:44 +0000 (Mon, 14 Sep 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: added mpfr_regular_p macro.
-------------------------------------------------------------------------
-r6419 | zimmerma | 2009-09-14 14:12:03 +0000 (Mon, 14 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-[sum.c] added reference
-
-------------------------------------------------------------------------
-r6418 | zimmerma | 2009-09-14 13:10:57 +0000 (Mon, 14 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/get_ld.c
- M /trunk/tests/tget_ld_2exp.c
-
-[get_ld.c] fixed bug reported by Nelson Beebe
- https://sympa.inria.fr/sympa/arc/mpfr/2009-05/msg00061.html
-
-------------------------------------------------------------------------
-r6417 | zimmerma | 2009-09-14 09:29:55 +0000 (Mon, 14 Sep 2009) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/isregular.c
- M /trunk/iszero.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tisnan.c
-
-[isregular.c] new function mpfr_regular_p
-[iszero.c] fixed typo in comment
-[tests/tisnan.c] added tests for mpfr_regular_p
-
-------------------------------------------------------------------------
-r6415 | vlefevre | 2009-09-11 22:03:10 +0000 (Fri, 11 Sep 2009) | 6 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: changeset r6414 was incorrect, in particular under Linux
-(at least some platforms), where wint_t is an unsigned int, not an int.
-Instead, let's detect whether integer promotion will occur or not, even
-though the ISO C99 standard requires a wint_t type that doesn't yield
-an integer promotion (7.24.1#2), because mingw32 defines wint_t as an
-unsigned short (thus with integer promotion).
-------------------------------------------------------------------------
-r6414 | zimmerma | 2009-09-11 07:52:33 +0000 (Fri, 11 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-[vasprintf.c] https://sympa.inria.fr/sympa/arc/mpfr/2009-09/msg00012.html
- (changed __wint_type into int)
-
-------------------------------------------------------------------------
-r6413 | vlefevre | 2009-09-08 08:49:33 +0000 (Tue, 08 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests/tdigamma.c
-
-tests/tdigamma.c: added missing void in prototype.
-------------------------------------------------------------------------
-r6412 | zimmerma | 2009-09-08 08:35:04 +0000 (Tue, 08 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/digamma.c
- M /trunk/tests/tdigamma.c
-
-[digamma.c] forgot to set sign for Psi(+Inf)
-
-------------------------------------------------------------------------
-r6411 | zimmerma | 2009-09-04 12:29:27 +0000 (Fri, 04 Sep 2009) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/bernoulli.c
- M /trunk/digamma.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/mpfr-impl.h
-
-changed function into bernoulli.c (which was static, included 3 times) into
-an internal function mpfr_bernoulli_internal
-
-------------------------------------------------------------------------
-r6410 | zimmerma | 2009-09-03 06:45:11 +0000 (Thu, 03 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] removed psi(=digamma)
-
-------------------------------------------------------------------------
-r6409 | vlefevre | 2009-09-02 23:17:32 +0000 (Wed, 02 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/tests/data/digamma
-
-tests/data/digamma: for the special values, use the new mode '*'
-(exact cases) instead of 'n'.
-------------------------------------------------------------------------
-r6408 | vlefevre | 2009-09-02 23:16:03 +0000 (Wed, 02 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: added special support for exact cases in data_check (to test
-all the rounding modes and check the ternary value).
-------------------------------------------------------------------------
-r6407 | vlefevre | 2009-09-02 23:02:29 +0000 (Wed, 02 Sep 2009) | 1 line
-Changed paths:
- M /trunk/atan2.c
- M /trunk/div.c
- M /trunk/exp2.c
- M /trunk/gen_inverse.h
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-longlong.h
- M /trunk/mpn_exp.c
- M /trunk/pow.c
- M /trunk/pow_z.c
- M /trunk/rec_sqrt.c
- M /trunk/rint.c
- M /trunk/round_near_x.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tsqrt.c
-
-towards -> toward (consistency).
-------------------------------------------------------------------------
-r6404 | vlefevre | 2009-09-02 12:13:23 +0000 (Wed, 02 Sep 2009) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: added tdigamma to svn:ignore property.
-------------------------------------------------------------------------
-r6403 | vlefevre | 2009-09-02 12:11:05 +0000 (Wed, 02 Sep 2009) | 1 line
-Changed paths:
- M /trunk/digamma.c
-
-digamma.c: moved a comment.
-------------------------------------------------------------------------
-r6402 | zimmerma | 2009-09-02 12:08:05 +0000 (Wed, 02 Sep 2009) | 4 lines
-Changed paths:
- M /trunk/digamma.c
- M /trunk/tests/data/digamma
- M /trunk/tests/tests.c
-
-[digamma.c] fixed bug (emin/emax were not restored)
-[data/digamma] added special values
-[tests/tests.c] fix to allow putting nan in data/* files
-
-------------------------------------------------------------------------
-r6401 | zimmerma | 2009-09-02 11:56:48 +0000 (Wed, 02 Sep 2009) | 3 lines
-Changed paths:
- A /trunk/tests/data/digamma
- M /trunk/tests/tdigamma.c
-
-[data/digamma] unitary test file for mpfr_digamma
-[tdigamma.c] now use data/digamma
-
-------------------------------------------------------------------------
-r6400 | vlefevre | 2009-09-02 11:54:53 +0000 (Wed, 02 Sep 2009) | 1 line
-Changed paths:
- M /trunk/digamma.c
-
-Removed trailing whitespace.
-------------------------------------------------------------------------
-r6399 | zimmerma | 2009-09-02 11:39:14 +0000 (Wed, 02 Sep 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-bernoulli.c goes into EXTRA_DIST
-
-------------------------------------------------------------------------
-r6398 | zimmerma | 2009-09-02 11:38:07 +0000 (Wed, 02 Sep 2009) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/algorithms.tex
- A /trunk/bernoulli.c
- A /trunk/digamma.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tdigamma.c
-
-[digamma.c] new function mpfr_digamma
-[lngamma.c,li2.c] factored computation of Bernoulli numbers in new file
- bernoulli.c (also used by digamma.c)
-
-------------------------------------------------------------------------
-r6397 | zimmerma | 2009-08-27 09:27:10 +0000 (Thu, 27 Aug 2009) | 8 lines
-Changed paths:
- M /trunk/cbrt.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/cos.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/get_z.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/pow.c
- M /trunk/rem1.c
- M /trunk/root.c
- M /trunk/tests/mpf_compat.h
- M /trunk/urandomb.c
- M /trunk/zeta_ui.c
-
-replaced obsolete GMP functions (suggested by Brian Gladman):
-1. mpz_div_2exp ==> mpz_fdiv_q_2exp
-2. mpz_div_ui ==> mpz_fdiv_q_ui
-3. gmp_randinit (state, GMP_RAND_ALG_LC, 128) ==> gmp_randinit_lc_2exp_size (state, 128)
-(Didn't replace mpn_divrem by mpn_tdiv_qr since the parameters differ, and also
-for efficiency reasons.)
-
-
-------------------------------------------------------------------------
-r6396 | vlefevre | 2009-08-26 23:30:06 +0000 (Wed, 26 Aug 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: fixed locale_da_DK test.
-------------------------------------------------------------------------
-r6394 | zimmerma | 2009-08-26 20:13:50 +0000 (Wed, 26 Aug 2009) | 3 lines
-Changed paths:
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
-
-[csch.c,coth.c,csc.c,cot.c] fixed bug for tiny input and RNDA (result was
- rounded to zero instead of away)
-
-------------------------------------------------------------------------
-r6393 | vlefevre | 2009-08-26 17:01:54 +0000 (Wed, 26 Aug 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: bug fix (uncommented an "exit(1);").
-------------------------------------------------------------------------
-r6390 | zimmerma | 2009-08-26 15:28:25 +0000 (Wed, 26 Aug 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tgeneric.c] revert previous change, bug is elsewhere
-
-------------------------------------------------------------------------
-r6389 | zimmerma | 2009-08-26 15:23:51 +0000 (Wed, 26 Aug 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-[tgeneric.c] temporary fix in mpfr_can_round call (mpfr_can_round does not
- correctly handle MPFR_RNDA)
-
-------------------------------------------------------------------------
-r6381 | vlefevre | 2009-08-26 08:48:37 +0000 (Wed, 26 Aug 2009) | 5 lines
-Changed paths:
- M /trunk/set_ld.c
-
-set_ld.c: replaced a struct by a union. The struct was triggering the
-following warning with GCC 4.4:
- dereferencing type-punned pointer will break strict-aliasing rules
-(possibly due to possible memory alignment problems). The old code
-looked strange anyway and unions are exactly for such kind of things.
-------------------------------------------------------------------------
-r6380 | zimmerma | 2009-08-26 08:10:51 +0000 (Wed, 26 Aug 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-[tset.c] removed unused variables
-
-------------------------------------------------------------------------
-r6378 | vlefevre | 2009-08-25 12:23:42 +0000 (Tue, 25 Aug 2009) | 4 lines
-Changed paths:
- M /trunk/tests/tcmp_ld.c
-
-tcmp_ld.c: use "long double" constants.
-Note: this might solve the tcmp_ld failure reported on
-http://www.linuxquestions.org/questions/linux-from-scratch-13/mpfr-2.4.1-check-failures-in-lfs-6.5-rc2-746538/
-(not tested).
-------------------------------------------------------------------------
-r6376 | vlefevre | 2009-08-24 13:21:03 +0000 (Mon, 24 Aug 2009) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS: update (new function mpfr_set_zero, added in r6339).
-------------------------------------------------------------------------
-r6375 | vlefevre | 2009-08-24 13:01:15 +0000 (Mon, 24 Aug 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: NaN has a sign bit (in its binary representation),
-but as a FP datum, it does not have a sign.
-------------------------------------------------------------------------
-r6374 | zimmerma | 2009-08-24 12:48:30 +0000 (Mon, 24 Aug 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] added mention of unspecified NaN sign bit for mpfr_set_nan
-
-------------------------------------------------------------------------
-r6372 | vlefevre | 2009-08-21 21:58:15 +0000 (Fri, 21 Aug 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: do not use @code for roundTiesToAway and binary64 as this is
-not code and the IEEE 754-2008 standard doesn't use special typography.
-------------------------------------------------------------------------
-r6369 | vlefevre | 2009-08-21 21:43:16 +0000 (Fri, 21 Aug 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: the sign bit of a NaN is unspecified.
-------------------------------------------------------------------------
-r6368 | vlefevre | 2009-08-18 15:51:08 +0000 (Tue, 18 Aug 2009) | 7 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/README
- A /trunk/examples
- A /trunk/examples/ReadMe
- A /trunk/examples/divworst.c
- A /trunk/examples/rndo-add.c
- A /trunk/examples/sample.c
-
-Add examples into $docdir (without using a subdir, as this would be
-a bit bloated just to add a few files).
- * Added "examples" directory with a ReadMe file and 3 examples.
- * Makefile.am: added files from the "examples" directory and changed
- dist_doc_DATA into nobase_dist_doc_DATA so that the "examples"
- directory is not stripped in the target directory $docdir.
- * README: added "examples/".
-------------------------------------------------------------------------
-r6367 | vlefevre | 2009-08-18 13:46:15 +0000 (Tue, 18 Aug 2009) | 1 line
-Changed paths:
- M /trunk/get_str.c
-
-get_str.c: corrected copyright notice, incorrectly modified in r6364.
-------------------------------------------------------------------------
-r6366 | thevenyp | 2009-08-12 14:30:48 +0000 (Wed, 12 Aug 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Fix typo.
-
-------------------------------------------------------------------------
-r6365 | thevenyp | 2009-08-12 14:10:33 +0000 (Wed, 12 Aug 2009) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-get_str.c: Format a comment.
-
-------------------------------------------------------------------------
-r6364 | thevenyp | 2009-08-12 14:07:24 +0000 (Wed, 12 Aug 2009) | 4 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr.texi
- M /trunk/tests/tget_str.c
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-get_str.c vasprintf.c: Add support for the rounding away from zero mode.
-mpfr.texi: MPFR_RNDA mode support in printf functions.
-tests/tsprintf.c tests/tget_str.c: Test MPFR_RNDA support.
-
-------------------------------------------------------------------------
-r6363 | vlefevre | 2009-08-06 00:21:17 +0000 (Thu, 06 Aug 2009) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS: update.
-------------------------------------------------------------------------
-r6362 | vlefevre | 2009-08-06 00:18:37 +0000 (Thu, 06 Aug 2009) | 1 line
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.texi
-
-Install some documentation files.
-------------------------------------------------------------------------
-r6360 | vlefevre | 2009-08-05 11:39:30 +0000 (Wed, 05 Aug 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated section "Installing MPFR".
-------------------------------------------------------------------------
-r6358 | vlefevre | 2009-08-05 10:39:20 +0000 (Wed, 05 Aug 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: corrected a spelling mistake.
-------------------------------------------------------------------------
-r6356 | vlefevre | 2009-08-05 10:24:16 +0000 (Wed, 05 Aug 2009) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.in
-
-Since GNU Automake 1.11 is available on too few platforms, removed its
-requirement (reverted to 1.10 requirement: 1.10.1 was needed only for
-dist-lzma, which has been removed). Instead, added hardcoded dist-xz
-support (tested with both Automake 1.10.2 and Automake 1.11).
-------------------------------------------------------------------------
-r6354 | vlefevre | 2009-08-04 00:55:30 +0000 (Tue, 04 Aug 2009) | 3 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: replaced dist-lzma by dist-xz (the xz format is the
-successor of the lzma format); as a consequence, automake 1.11 is
-needed.
-------------------------------------------------------------------------
-r6353 | vlefevre | 2009-07-30 18:06:49 +0000 (Thu, 30 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/tests/Makefile.am
-
-Makefile.am, tests/Makefile.am: added copyright notice (similar to
-the one of the generated Makefile.in file).
-------------------------------------------------------------------------
-r6352 | vlefevre | 2009-07-30 17:59:36 +0000 (Thu, 30 Jul 2009) | 3 lines
-Changed paths:
- M /trunk/COPYING
- M /trunk/README
-
-Since COPYING.LESSER makes a reference to the GPLv3, updated COPYING
-to the GPLv3. Autotools files are now distributed under the same license
-as MPFR (to avoid any reference to the GPLv2).
-------------------------------------------------------------------------
-r6351 | vlefevre | 2009-07-30 17:47:39 +0000 (Thu, 30 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/BUGS
- A /trunk/COPYING.LESSER (from /trunk/COPYING.LIB:6350)
- D /trunk/COPYING.LIB
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/buildopt.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_patches.sh
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/mbench/Makefile
- M /trunk/mbench/generate.c
- M /trunk/mbench/mfv5-arprec.cc
- M /trunk/mbench/mfv5-cln.cc
- M /trunk/mbench/mfv5-crlibm.cc
- M /trunk/mbench/mfv5-libc.cc
- M /trunk/mbench/mfv5-lidia.cc
- M /trunk/mbench/mfv5-mpf.cc
- M /trunk/mbench/mfv5-mpfr.cc
- M /trunk/mbench/mfv5-ntl.cc
- M /trunk/mbench/mfv5-pari.cc
- M /trunk/mbench/mfv5-void.cc
- M /trunk/mbench/mfv5.cc
- M /trunk/mbench/mfv5.h
- M /trunk/mbench/mpfr-gfx.c
- M /trunk/mbench/mpfr-v4.c
- M /trunk/mbench/mpfr-v6.c
- M /trunk/mbench/timp.h
- M /trunk/min_prec.c
- M /trunk/minmax.c
- M /trunk/modf.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-thread.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/printf.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/set_zero.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/setsign.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/signbit.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/random2.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tbuildopt.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmin_prec.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Renamed COPYING.LIB as COPYING.LESSER (GNU Coding Standards, #7.3)
-and updated all the references (except in ChangeLog).
-------------------------------------------------------------------------
-r6350 | vlefevre | 2009-07-30 17:38:46 +0000 (Thu, 30 Jul 2009) | 1 line
-Changed paths:
- M /trunk
-
-Added algorithms.fdb_latexmk to svn:ignore property.
-------------------------------------------------------------------------
-r6349 | thevenyp | 2009-07-30 16:30:24 +0000 (Thu, 30 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-tests/tset.c: With revision 6339, some tests were moved and added in the function check_special but this one was not called.
-
-------------------------------------------------------------------------
-r6348 | thevenyp | 2009-07-30 16:22:55 +0000 (Thu, 30 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-tests/Makefile.am: Strech check_PROGRAMS list to ease insertion of new tests.
-
-------------------------------------------------------------------------
-r6347 | thevenyp | 2009-07-30 16:03:04 +0000 (Thu, 30 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-Makefile.am: Sort tests in alphabetical order except the very first ones which are needed by the test suite itself.
-
-------------------------------------------------------------------------
-r6340 | thevenyp | 2009-07-20 14:40:40 +0000 (Mon, 20 Jul 2009) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c mpfr.texi: Change behavior with %Rf and an empty precision field. The default precision is now 6 with %Rf and %Rg.
-tests/tprintf.c tests/tfprintf.c tests/tsprintf.c: Change tests with empty precision field and %Rf.
-
-------------------------------------------------------------------------
-r6339 | thevenyp | 2009-07-20 09:22:08 +0000 (Mon, 20 Jul 2009) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/set_zero.c
- M /trunk/tests/tset.c
-
-Makefile.am mpfr.h mpfr.texi set_zero.c: New function mpfr_set_zero.
-tests/tset.c: Replace all MPFR_ASSERTN with verbose message. Add tests for mpfr_set_zero.
-
-------------------------------------------------------------------------
-r6336 | zimmerma | 2009-07-15 00:30:44 +0000 (Wed, 15 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] hint about patch command
-
-------------------------------------------------------------------------
-r6335 | zimmerma | 2009-07-14 08:37:32 +0000 (Tue, 14 Jul 2009) | 3 lines
-Changed paths:
- M /trunk/mpn_exp.c
-
-[mpn_exp.c] reverted previous change (MPN_ZERO is a macro for memset, which
- does not forbid zero size)
-
-------------------------------------------------------------------------
-r6334 | zimmerma | 2009-07-14 07:47:57 +0000 (Tue, 14 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/coth.c
- M /trunk/tests/tcoth.c
-
-[coth.c, tcoth.c] fixed coth(+/0) which was wrong (reported by Christopher Creutzig)
-
-------------------------------------------------------------------------
-r6333 | zimmerma | 2009-07-14 07:39:38 +0000 (Tue, 14 Jul 2009) | 3 lines
-Changed paths:
- M /trunk/mpn_exp.c
-
-[mpn_exp.c] fixed bug reported by David Kirkby on Solaris (GMP compiled with
- Solaris compiler)
-
-------------------------------------------------------------------------
-r6330 | vlefevre | 2009-07-08 13:35:34 +0000 (Wed, 08 Jul 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: typo in a comment.
-------------------------------------------------------------------------
-r6329 | thevenyp | 2009-07-08 13:24:46 +0000 (Wed, 08 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug with %Rf, non-zero precision and a value rounded up to the next power of ten.
-
-------------------------------------------------------------------------
-r6328 | vlefevre | 2009-07-08 10:44:31 +0000 (Wed, 08 Jul 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: deleted trailing spaces.
-------------------------------------------------------------------------
-r6326 | vlefevre | 2009-07-08 10:42:02 +0000 (Wed, 08 Jul 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: added tests of some halfway cases.
-------------------------------------------------------------------------
-r6325 | thevenyp | 2009-07-08 09:46:52 +0000 (Wed, 08 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug in precision 0 with format %.0Rf (0.5 rounds to 0).
-
-------------------------------------------------------------------------
-r6322 | vlefevre | 2009-07-08 07:39:56 +0000 (Wed, 08 Jul 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: added a test that triggers an assertion failure.
-------------------------------------------------------------------------
-r6319 | vlefevre | 2009-07-08 07:17:20 +0000 (Wed, 08 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: fixed a test and added more tests for %.0Rf with the even
-rounding rule (shows a bug added in the latest corrections).
-------------------------------------------------------------------------
-r6316 | vlefevre | 2009-07-07 08:18:45 +0000 (Tue, 07 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: completed the test on emax (for %Ra and %Rb).
-Everything is OK.
-------------------------------------------------------------------------
-r6315 | vlefevre | 2009-07-07 07:55:06 +0000 (Tue, 07 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: my test was incorrect (I forgot the R), sorry.
-Still completing it...
-------------------------------------------------------------------------
-r6314 | vlefevre | 2009-07-07 07:40:22 +0000 (Tue, 07 Jul 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: comment (so that the test can be ported to the 2.4 branch).
-------------------------------------------------------------------------
-r6313 | vlefevre | 2009-07-07 07:38:00 +0000 (Tue, 07 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: started to write a test for emax, showing a bug (random
-output).
-------------------------------------------------------------------------
-r6311 | vlefevre | 2009-07-06 12:44:41 +0000 (Mon, 06 Jul 2009) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r6307 | vlefevre | 2009-07-06 11:17:09 +0000 (Mon, 06 Jul 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6305 | vlefevre | 2009-07-06 11:15:38 +0000 (Mon, 06 Jul 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi consistency: @var{stdout} -> @code{stdout}.
-------------------------------------------------------------------------
-r6303 | vlefevre | 2009-07-06 11:04:50 +0000 (Mon, 06 Jul 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: do not use a potential function call in SAFE_ABS macro.
-------------------------------------------------------------------------
-r6301 | thevenyp | 2009-07-06 08:36:59 +0000 (Mon, 06 Jul 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c tests/tsprintf.c: deleted trailing spaces.
-
-------------------------------------------------------------------------
-r6298 | thevenyp | 2009-06-29 13:09:42 +0000 (Mon, 29 Jun 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg (continuation of fix in r6278).
-tests/tsprintf.c: Add tests for rounding to next power of ten bug with %Rf or %Rg.
-
-------------------------------------------------------------------------
-r6297 | vlefevre | 2009-06-26 15:47:03 +0000 (Fri, 26 Jun 2009) | 1 line
-Changed paths:
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/cmp2.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/get_z_exp.c
- M /trunk/hypot.c
- M /trunk/mpn_exp.c
- M /trunk/round_prec.c
- M /trunk/strtofr.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/vasprintf.c
-
-mp_exp_unsigned_t -> mpfr_uexp_t (internal type only).
-------------------------------------------------------------------------
-r6296 | vlefevre | 2009-06-26 15:40:06 +0000 (Fri, 26 Jun 2009) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: check the use of the obsolete mp_rnd_t type.
-------------------------------------------------------------------------
-r6295 | vlefevre | 2009-06-26 15:35:01 +0000 (Fri, 26 Jun 2009) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/README.dev
- M /trunk/TODO
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/eint.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_u.h
- M /trunk/fits_uintmax.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_z.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/inp_str.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/minmax.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/print_rnd_mode.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_f.c
- M /trunk/set_ld.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setsign.c
- M /trunk/si_op.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/taway.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/vasprintf.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-mp_rnd_t -> mpfr_rnd_t
-------------------------------------------------------------------------
-r6294 | vlefevre | 2009-06-26 15:19:14 +0000 (Fri, 26 Jun 2009) | 1 line
-Changed paths:
- M /trunk/add.c
- M /trunk/agm.c
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/frac.c
- M /trunk/hypot.c
- M /trunk/inp_str.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/next.c
- M /trunk/pow_si.c
- M /trunk/rec_sqrt.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_si_2exp.c
- M /trunk/set_ui_2exp.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/tests/random2.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tui_div.c
- M /trunk/urandomb.c
-
-Suppressed MPFR_CLEAR_FLAGS (no longer did anything).
-------------------------------------------------------------------------
-r6290 | vlefevre | 2009-06-23 02:17:04 +0000 (Tue, 23 Jun 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6287 | vlefevre | 2009-06-23 02:06:27 +0000 (Tue, 23 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: fixed description of mpfr_get_str (clash with variables,
-inconsistent cases in the info format).
-------------------------------------------------------------------------
-r6286 | vlefevre | 2009-06-23 01:56:01 +0000 (Tue, 23 Jun 2009) | 1 line
-Changed paths:
- M /trunk/get_str.c
-
-get_str.c: added a space.
-------------------------------------------------------------------------
-r6283 | vlefevre | 2009-06-21 20:54:34 +0000 (Sun, 21 Jun 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: corrected comments.
-------------------------------------------------------------------------
-r6282 | thevenyp | 2009-06-19 19:55:18 +0000 (Fri, 19 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: convert GMP_RNDx to MPFR_RNDx.
-
-------------------------------------------------------------------------
-r6280 | thevenyp | 2009-06-19 16:40:57 +0000 (Fri, 19 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: Add brace to disambiguate nested if, and remove unused variable.
-
-------------------------------------------------------------------------
-r6279 | thevenyp | 2009-06-19 15:57:09 +0000 (Fri, 19 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-tests/tfprintf.c tests/tprintf.c: Do not test very small values with %f.
-
-------------------------------------------------------------------------
-r6278 | thevenyp | 2009-06-19 15:55:57 +0000 (Fri, 19 Jun 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg.
-tests/tsprintf.c: Add tests for rounding to next power of ten bug.
-
-------------------------------------------------------------------------
-r6277 | zimmerma | 2009-06-18 12:34:24 +0000 (Thu, 18 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added new functions to implement
-
-------------------------------------------------------------------------
-r6276 | thevenyp | 2009-06-16 11:14:48 +0000 (Tue, 16 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/sinh_cosh.c
-
-sinh_cosh.c: precision of intermediate computation no more depends on precision of input variables.
-
-------------------------------------------------------------------------
-r6275 | vlefevre | 2009-06-15 01:58:34 +0000 (Mon, 15 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: new MPFR_VALUE_OF macro, now used by mpfr_get_prec and
-mpfr_get_exp macros (this is cleaner than the old hack).
-------------------------------------------------------------------------
-r6274 | vlefevre | 2009-06-14 11:57:18 +0000 (Sun, 14 Jun 2009) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: Make sure results of calculations on constants used with
-the fesetround() test are not precomputed by GCC (occurs on MIPS).
-Patch from Maciej W. Rozycki.
- https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00036.html
- gmane.comp.lib.mpfr.general:174
-------------------------------------------------------------------------
-r6272 | zimmerma | 2009-06-13 02:00:58 +0000 (Sat, 13 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-[algorithms.tex] bounds for get_str were checked by Mark Dickinson
-
-------------------------------------------------------------------------
-r6271 | zimmerma | 2009-06-12 04:25:44 +0000 (Fri, 12 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-[algorithms.tex] fixed typo
-
-------------------------------------------------------------------------
-r6270 | zimmerma | 2009-06-12 04:17:46 +0000 (Fri, 12 Jun 2009) | 4 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/mpfr.texi
-
-[algorithms.tex] fixed and completed up to b=62 table of bounds for get_str
-[mpfr.texi] fixed description of case n=0 for get_str (case of powers of two
- bases was not coherent with the code)
-
-------------------------------------------------------------------------
-r6269 | zimmerma | 2009-06-10 18:52:10 +0000 (Wed, 10 Jun 2009) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/get_str.c
- M /trunk/mpfr.texi
-
-[algorithms.tex] analyzed precisely the cases where the value is m+1 instead
- of m
-
-------------------------------------------------------------------------
-r6268 | vlefevre | 2009-06-10 05:21:05 +0000 (Wed, 10 Jun 2009) | 11 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: reverted incorrect patch r6267 that makes the test
-no longer work on x86 (with traditional FPU, no SSE), where one
-should get
- checking for gcc float-conversion bug... yes, use -ffloat-store
-instead of
- checking for gcc float-conversion bug... no
-Indeed the "volatile" has the effect to have all the intermediate
-results x stored into memory, i.e. it is more or less equivalent
-to the -ffloat-store option, so that it does not allow one to test
-whether -ffloat-store is needed or not (which is the goal of this
-test).
-------------------------------------------------------------------------
-r6267 | zimmerma | 2009-06-09 22:02:10 +0000 (Tue, 09 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-[acinclude.m4] patch from Maciej W. Rozycki on mpfr mailing-list, 9 Jun 2009
-
-------------------------------------------------------------------------
-r6266 | zimmerma | 2009-06-09 18:42:04 +0000 (Tue, 09 Jun 2009) | 3 lines
-Changed paths:
- M /trunk/tests/data/j0
- M /trunk/tests/data/j1
- M /trunk/tests/data/y0
- M /trunk/tests/data/y1
-
-added more test cases for the Bessel functions (from John Harrison paper at
-Arith19)
-
-------------------------------------------------------------------------
-r6265 | thevenyp | 2009-06-04 17:15:24 +0000 (Thu, 04 Jun 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: Binary output with no digit after the decimal point is now supported. Fix bug when the binary or hexadecimal output value is rounded to the next power of the base. This also change outputs like 0xf.f with format string "%.0Ra" from 8p+1 to 1p+4 (as does gnu libc's printf).
-tests/tsprintf.c: add check for rounding to the next base power and fix some test value with %.0Ra (now output 1p+4 instead of 8p+3).
-
-------------------------------------------------------------------------
-r6264 | thevenyp | 2009-06-03 09:01:22 +0000 (Wed, 03 Jun 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr-longlong.h
-
-mpfr-longlong.h: Update to newer GMP version (changeset 12418:12a1d0bf21f0 Sun Mar 01 23:47:31 2009 +0100), merging modifications from r4657.
-
-------------------------------------------------------------------------
-r6263 | vlefevre | 2009-05-29 13:53:06 +0000 (Fri, 29 May 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: do not use GMP's namespace for identifiers defined in MPFR.
-------------------------------------------------------------------------
-r6261 | vlefevre | 2009-05-29 13:05:24 +0000 (Fri, 29 May 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added: do not use the GMP namespaces...
-------------------------------------------------------------------------
-r6259 | vlefevre | 2009-05-29 12:27:38 +0000 (Fri, 29 May 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: rewrote a comment.
-------------------------------------------------------------------------
-r6258 | thevenyp | 2009-05-29 07:37:23 +0000 (Fri, 29 May 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug, "%%" was not correctly displayed when used alone or before a mpfr_t output.
-tests/tfprintf.c tests/tprintf.c: Fix expected values for tests with "%%".
-
-------------------------------------------------------------------------
-r6257 | thevenyp | 2009-05-29 06:56:02 +0000 (Fri, 29 May 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Restate subsection Formatted Output Functions/Format String.
-
-------------------------------------------------------------------------
-r6256 | thevenyp | 2009-05-28 07:33:43 +0000 (Thu, 28 May 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: details on use of 'P' type in mpfr_printf.
-
-------------------------------------------------------------------------
-r6252 | thevenyp | 2009-05-27 14:59:54 +0000 (Wed, 27 May 2009) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS: remind bug fixes since version 2.4.0.
-
-------------------------------------------------------------------------
-r6248 | thevenyp | 2009-05-27 13:17:03 +0000 (Wed, 27 May 2009) | 2 lines
-Changed paths:
- M /trunk/set_d64.c
-
-set_d64.c: Partial revert of r6190 to fix problem in a simpler way: the decimal digits can be stored in array of char (no need to be unsigned).
-
-------------------------------------------------------------------------
-r6245 | vlefevre | 2009-05-27 02:26:50 +0000 (Wed, 27 May 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6241 | vlefevre | 2009-05-27 02:20:51 +0000 (Wed, 27 May 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfmod.c
-
-tests/tfmod.c: deleted trailing whitespace.
-------------------------------------------------------------------------
-r6240 | thevenyp | 2009-05-22 10:44:03 +0000 (Fri, 22 May 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tests/tatan.c: Add test triggering underflow (test coverage is now 100%).
-
-------------------------------------------------------------------------
-r6237 | vlefevre | 2009-05-20 21:54:03 +0000 (Wed, 20 May 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tests/tgeneric.c: for the second computation, increase the precision
-of the inputs in order to trigger the mpfr_fmod bug fixed in r6230
-(and potentially other bugs). Thanks to Eric Veach for the idea.
-------------------------------------------------------------------------
-r6236 | vlefevre | 2009-05-20 21:34:52 +0000 (Wed, 20 May 2009) | 1 line
-Changed paths:
- M /trunk/tests
-
-Added tbuildopt to svn:ignore property of tests.
-------------------------------------------------------------------------
-r6234 | thevenyp | 2009-05-20 15:28:07 +0000 (Wed, 20 May 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfmod.c
-
-tests/tfmod.c: complete tests with special values.
-
-------------------------------------------------------------------------
-r6233 | thevenyp | 2009-05-20 15:26:47 +0000 (Wed, 20 May 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfmod.c
-
-tests/tfmod.c: code simplification + check ternary value too.
-
-------------------------------------------------------------------------
-r6232 | vlefevre | 2009-05-20 10:34:33 +0000 (Wed, 20 May 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfmod.c
-
-tests/tfmod.c: replaced NULL by (mpfr_ptr) 0 in mpfr_inits2/mpfr_clears.
-------------------------------------------------------------------------
-r6231 | vlefevre | 2009-05-20 10:32:07 +0000 (Wed, 20 May 2009) | 3 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tfmod.c
-
-tests/mpfr-test.h: added mpfr_cmp_ui0 macro (check that x is not a NaN).
-tests/tfmod.c (bug20090519): check that the results are not NaN's and
-replaced GMP_RNDN by MPFR_RNDN.
-------------------------------------------------------------------------
-r6230 | zimmerma | 2009-05-20 10:17:17 +0000 (Wed, 20 May 2009) | 3 lines
-Changed paths:
- M /trunk/rem1.c
- M /trunk/tests/tfmod.c
-
-[tests/tfmod.c] added testcase for bug reported by Eric Veach
-[rem1.c] fixed bug reported by Eric Veach
-
-------------------------------------------------------------------------
-r6229 | zimmerma | 2009-05-19 08:20:15 +0000 (Tue, 19 May 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added one item
-
-------------------------------------------------------------------------
-r6220 | lfousse | 2009-05-13 20:33:03 +0000 (Wed, 13 May 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Clarify the fact that mpfr_sum guarantees correct rounding.
-
-------------------------------------------------------------------------
-r6211 | vlefevre | 2009-05-13 15:40:36 +0000 (Wed, 13 May 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: updated a comment.
-------------------------------------------------------------------------
-r6210 | thevenyp | 2009-05-13 15:37:35 +0000 (Wed, 13 May 2009) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: Add a warning comment (removed in r6026).
-[merge -c 6209 from branch 2.4]
-
-------------------------------------------------------------------------
-r6196 | vlefevre | 2009-05-13 00:02:10 +0000 (Wed, 13 May 2009) | 2 lines
-Changed paths:
- M /trunk/fms.c
-
-fms.c: improve the performance of memory allocations in small precision
-(almost identical to changeset 6195 for fma.c).
-------------------------------------------------------------------------
-r6195 | vlefevre | 2009-05-12 23:54:31 +0000 (Tue, 12 May 2009) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-fma.c: patch by Patrick Pélissier to improve the performance of
-memory allocations in small precision.
-------------------------------------------------------------------------
-r6192 | thevenyp | 2009-05-05 17:13:37 +0000 (Tue, 05 May 2009) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/dump.c
- M /trunk/get_d64.c
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/out_str.c
- M /trunk/printf.c
- M /trunk/set_d.c
- M /trunk/strtofr.c
- M /trunk/swap.c
- M /trunk/tests/tests.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tversion.c
- M /trunk/vasprintf.c
-
-Put '#include <string.h>' in mpfr-impl.h, remove it elsewhere.
-Other cleanup of header inclusion.
-Other change (by mistake): corrections in algorithms.tex
-------------------------------------------------------------------------
-r6191 | vlefevre | 2009-05-05 15:42:32 +0000 (Tue, 05 May 2009) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS: corrections / limit to 80 characters per line.
-------------------------------------------------------------------------
-r6190 | thevenyp | 2009-05-05 14:37:42 +0000 (Tue, 05 May 2009) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/set_d64.c
-
-get_d64.c set_d64.c: Fix types.
-
-------------------------------------------------------------------------
-r6189 | thevenyp | 2009-05-05 14:34:41 +0000 (Tue, 05 May 2009) | 2 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/tests/tpow_all.c
-
-printf.c tests/tpow_all.c: <string.h> is not automatically included when compiling with --with-gmp-build option.
-
-------------------------------------------------------------------------
-r6188 | thevenyp | 2009-05-05 14:06:43 +0000 (Tue, 05 May 2009) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- A /trunk/buildopt.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tbuildopt.c
-
-NEWS Makefile.am mpfr.h mpfr.texi buildopt.c: New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p.
-tests/Makefile.am tests/tbuildopt.c: Add tests for mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p.
-
-------------------------------------------------------------------------
-r6187 | vlefevre | 2009-05-05 13:55:21 +0000 (Tue, 05 May 2009) | 1 line
-Changed paths:
- M /trunk/atan.c
-
-atan.c: added comments after checking r6186.
-------------------------------------------------------------------------
-r6186 | thevenyp | 2009-05-05 10:07:47 +0000 (Tue, 05 May 2009) | 3 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/tests/tatan.c
-
-atan.c: expand exponent range when computing arctan(Inf) and arctan(+-1).
-tests/tatan.c: Check underflow of arctan(Inf) and arctan(1) with reduced exponent range.
-
-------------------------------------------------------------------------
-r6185 | vlefevre | 2009-05-04 16:27:56 +0000 (Mon, 04 May 2009) | 1 line
-Changed paths:
- M /trunk/tests/tatan.c
-
-tests/tatan.c: replaced GMP_RNDN by MPFR_RNDN.
-------------------------------------------------------------------------
-r6182 | vlefevre | 2009-04-29 16:19:26 +0000 (Wed, 29 Apr 2009) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/tests/tget_f.c
-
-Removed trailing spaces.
-------------------------------------------------------------------------
-r6181 | zimmerma | 2009-04-29 16:07:29 +0000 (Wed, 29 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-[atan.c] fixed bug when x is very near but differs from 1
-
-------------------------------------------------------------------------
-r6180 | vlefevre | 2009-04-29 15:41:23 +0000 (Wed, 29 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tests/tatan.c: added testcase for bug found by Christopher Creutzig
-(atan2_different_prec).
-------------------------------------------------------------------------
-r6177 | vlefevre | 2009-04-22 12:46:41 +0000 (Wed, 22 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c (data_check): try to open the data file first from the
-build directory, then from the source directory.
-------------------------------------------------------------------------
-r6176 | vlefevre | 2009-04-22 12:00:23 +0000 (Wed, 22 Apr 2009) | 4 lines
-Changed paths:
- M /trunk/init2.c
-
-init2.c: check that mp_bits_per_limb == BITS_PER_MP_LIMB (useful
-in case GMP is upgraded with a different ABI, e.g. 32 vs mode32
-on PowerPC 64). Without such a check, MPFR can give incorrect
-results if the ABI's don't match.
-------------------------------------------------------------------------
-r6175 | vlefevre | 2009-04-22 08:33:57 +0000 (Wed, 22 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/tmul.c
-
-Improved fix for problem dealt with in r6174: use function src_fopen()
-(from tests.c) instead of a macro MPFR_SRCDIR.
-------------------------------------------------------------------------
-r6174 | vlefevre | 2009-04-22 08:13:40 +0000 (Wed, 22 Apr 2009) | 10 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/tmul.c
-
-Fixed problem when the srcdir value contains a word that is #define'd
-by the C implementation (test failure) or a comma (worse, the build of
-the tests terminates with an error). This can happen only when objdir
-and srcdir are different directories.
- * tests/Makefile.am (tmul_CPPFLAGS): Put srcdir pathname in quotes.
- * tests/tmul.c (MPFR_SRCDIR): Make the default a string.
- (QUOTE, NAME): Delete.
- (check_regression): Don't QUOTE MPFR_SRCDIR.
-Thanks to Sandra Loosemore for the patch.
-https://sympa.inria.fr/sympa/arc/mpfr/2009-04/msg00038.html
-------------------------------------------------------------------------
-r6173 | thevenyp | 2009-04-15 17:07:42 +0000 (Wed, 15 Apr 2009) | 3 lines
-Changed paths:
- M /trunk/get_f.c
- M /trunk/tests/tget_f.c
-
-get_f.c: remove dead code (x and z always have the same number of limbs).
-tests/tget_f.c: Add tests with every rounding mode, add tests with random values.
-
-------------------------------------------------------------------------
-r6172 | thevenyp | 2009-04-15 09:34:54 +0000 (Wed, 15 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-tests/tget_f.c: Fix typos, better error messages.
-
-------------------------------------------------------------------------
-r6171 | thevenyp | 2009-04-14 14:34:20 +0000 (Tue, 14 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/get_f.c
- M /trunk/tests/tget_f.c
-
-tests/tget_f.c get_f.c: Set result to the maximum value when the mpfr_t is plus infinity and set correct ternary value.
-
-------------------------------------------------------------------------
-r6170 | thevenyp | 2009-04-14 14:29:16 +0000 (Tue, 14 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-tests/tget_f.c: Fix typo, increase size of y so that x and y have different limb size (they had the same size on MacOS X-32bits).
-
-------------------------------------------------------------------------
-r6168 | vlefevre | 2009-04-10 08:29:47 +0000 (Fri, 10 Apr 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: update concerning intmax_t after the change in r6166.
-------------------------------------------------------------------------
-r6166 | vlefevre | 2009-04-10 08:23:33 +0000 (Fri, 10 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: for intmax_t, also test _STDINT_H and _STDINT_H_.
-[merged changeset r6165 from the 2.4 branch]
-------------------------------------------------------------------------
-r6164 | vlefevre | 2009-04-10 08:10:37 +0000 (Fri, 10 Apr 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r6162 | vlefevre | 2009-04-10 08:09:47 +0000 (Fri, 10 Apr 2009) | 5 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-mpfr.h: for the intmax_t detection, also test INTMAX_MAX / UINTMAX_MAX
-(this may be useful for users of C++ compilers, if they have defined
-__STDC_LIMIT_MACROS but not __STDC_CONSTANT_MACROS).
-mpfr.texi: improvement concerning the use of intmax_t and uintmax_t.
-[merged changesets r6160 and r6161 from the 2.4 branch]
-------------------------------------------------------------------------
-r6159 | zimmerma | 2009-04-09 07:40:14 +0000 (Thu, 09 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] updated Notes on AIX/PowerPC
-
-------------------------------------------------------------------------
-r6158 | thevenyp | 2009-04-08 14:59:21 +0000 (Wed, 08 Apr 2009) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/get_f.c
- M /trunk/mpfr.texi
- M /trunk/tests/tget_f.c
-
-NEWS mpfr.texi get_f.c: mpfr_get_f now returns the usual ternary value.
-tests/tget_f.c: test the ternary value and the erange flag.
-
-------------------------------------------------------------------------
-r6157 | vlefevre | 2009-04-08 14:25:26 +0000 (Wed, 08 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/get_z.c
- M /trunk/tests/tget_z.c
-
-tests/tget_z.c: do not assume specific values of the ternary value.
-get_z.c: simplified code.
-------------------------------------------------------------------------
-r6156 | vlefevre | 2009-04-08 14:19:23 +0000 (Wed, 08 Apr 2009) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS: s/an inexact value/a ternary value/
-------------------------------------------------------------------------
-r6155 | thevenyp | 2009-04-08 12:53:37 +0000 (Wed, 08 Apr 2009) | 4 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/get_z.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tget_z.c
-
-NEWS mpfr.texi get_z.c: mpfr_get_z now returns an inexact value.
-mpfr.h: change prototype of mpfr_get_z.
-tests/tget_z.c: test inexact value.
-
-------------------------------------------------------------------------
-r6154 | zimmerma | 2009-04-08 11:10:46 +0000 (Wed, 08 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-[mpf2mpfr.h] added comment for #endif
-
-------------------------------------------------------------------------
-r6153 | thevenyp | 2009-04-08 11:09:14 +0000 (Wed, 08 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-mpf2mpfr.h: fix typo
-
-------------------------------------------------------------------------
-r6152 | vlefevre | 2009-04-02 16:03:05 +0000 (Thu, 02 Apr 2009) | 1 line
-Changed paths:
- M /trunk/get_z.c
-
-get_z.c: fixed title in comment.
-------------------------------------------------------------------------
-r6151 | vlefevre | 2009-04-01 14:22:03 +0000 (Wed, 01 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/get_z.c
-
-get_z.c: detect out-of-range precision (such a detection could be missed
-if mpfr_exp_t > mpfr_prec_t).
-------------------------------------------------------------------------
-r6150 | vlefevre | 2009-04-01 14:07:29 +0000 (Wed, 01 Apr 2009) | 2 lines
-Changed paths:
- M /trunk/get_z.c
- M /trunk/mpfr.h
-
-Removed the comment from mpfr.h added in r6149, and patched get_z.c
-(safer code is better than a comment).
-------------------------------------------------------------------------
-r6149 | vlefevre | 2009-04-01 14:02:14 +0000 (Wed, 01 Apr 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: important comment to validate the change done in r6147.
-------------------------------------------------------------------------
-r6148 | vlefevre | 2009-04-01 13:46:30 +0000 (Wed, 01 Apr 2009) | 1 line
-Changed paths:
- M /trunk/get_z_exp.c
-
-get_z_exp.c: updated comments.
-------------------------------------------------------------------------
-r6147 | zimmerma | 2009-04-01 13:26:42 +0000 (Wed, 01 Apr 2009) | 3 lines
-Changed paths:
- M /trunk/get_z.c
- M /trunk/tests/tget_z.c
-
-[get_z.c] simplified the code, removed the FIXME
-[tget_z.c] added new test
-
-------------------------------------------------------------------------
-r6146 | zimmerma | 2009-04-01 13:11:13 +0000 (Wed, 01 Apr 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tget_z.c
-
-[mpfr.texi] completed documentation of mpfr_get_z_exp (was incomplete for 0)
-[tget_z.c] added test case for 0 with emin > 0 (should give 100% coverage for
- get_z.c)
-
-------------------------------------------------------------------------
-r6145 | thevenyp | 2009-03-30 14:47:28 +0000 (Mon, 30 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/strtofr.c
- M /trunk/tests/tset_str.c
- M /trunk/vasprintf.c
-
-strtofr.c tests/tset_str.c: Code simplification (sizeof (char) is always 1).
-vasprintf.c: Cast into size_t (just in case).
-
-------------------------------------------------------------------------
-r6144 | thevenyp | 2009-03-30 12:15:40 +0000 (Mon, 30 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: Code simplification (sizeof (char) is always 1).
-
-------------------------------------------------------------------------
-r6143 | thevenyp | 2009-03-27 09:34:03 +0000 (Fri, 27 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-acinclude.m4: remove definition of va_copy, just detect its presence.
-printf.c vasprintf.c: #define a replacement of va_copy if needed (in the same way as gmp).
-
-------------------------------------------------------------------------
-r6142 | thevenyp | 2009-03-26 15:09:38 +0000 (Thu, 26 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: Change MPFR_FUNC_PRINTF_SPEC (renamed MPFR_FUNC_GMP_PRINTF_SPEC) so that it actually checks output.
-
-------------------------------------------------------------------------
-r6141 | thevenyp | 2009-03-25 17:53:50 +0000 (Wed, 25 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/out_str.c
- M /trunk/tests/inp_str.data
- M /trunk/tests/tget_str.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset_str.c
-
-Change base upper limit in string conversion up to 62.
-
-------------------------------------------------------------------------
-r6140 | zimmerma | 2009-03-25 12:13:58 +0000 (Wed, 25 Mar 2009) | 4 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr.texi
- M /trunk/tests/tget_str.c
-
-[mpfr.texi] fixed documentation of mpfr_get_str which was wrong
-[tget_str.c] added test cases for odd base and tie breaking case
-[get_str.c] fixed typos in comments
-
-------------------------------------------------------------------------
-r6139 | zimmerma | 2009-03-25 08:54:17 +0000 (Wed, 25 Mar 2009) | 5 lines
-Changed paths:
- M /trunk/tests/random2.c
-
-[tests/random2.c] added missing mpfr-test.h (revealed by nightly tests), and
- removed mpfr-impl.h (already included in mpfr-test.h)
- I have also removed MPFR_NEED_LONGLONG_H: I don't see why it
- is needed, and all tests pass.
-
-------------------------------------------------------------------------
-r6138 | thevenyp | 2009-03-24 17:19:55 +0000 (Tue, 24 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Add a note on mpfr_printf output in binary with precision one.
-
-------------------------------------------------------------------------
-r6137 | thevenyp | 2009-03-24 16:51:17 +0000 (Tue, 24 Mar 2009) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/tests/random2.c
- M /trunk/tests/tests.c
- M /trunk/urandomb.c
-
-urandomb.c mpfr-gmp.c mpfr-gmp.h: mpfr_rand_raw is now in urandom.c.
-mpfr-impl.h: mpfr_rand_raw is now always build as an internal function.
-TODO tests/tests.c tests/random2.c: Use mpfr_rand_raw instead of _gmp_rand
-
-------------------------------------------------------------------------
-r6136 | thevenyp | 2009-03-24 15:10:52 +0000 (Tue, 24 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- D /trunk/random2.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- A /trunk/tests/random2.c (from /trunk/random2.c:6135)
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
-
-Move mpfr_random2 to tests directory, remove it from API.
-
-------------------------------------------------------------------------
-r6135 | thevenyp | 2009-03-24 14:29:04 +0000 (Tue, 24 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Improve documentation in Formatted Output Functions/Format String subsection.
-
-------------------------------------------------------------------------
-r6134 | vlefevre | 2009-03-24 11:33:41 +0000 (Tue, 24 Mar 2009) | 1 line
-Changed paths:
- M /trunk/cos.c
- M /trunk/sin.c
-
-cos.c, sin.c: added MPFR_ASSERTN for huge expx.
-------------------------------------------------------------------------
-r6132 | vlefevre | 2009-03-21 00:52:31 +0000 (Sat, 21 Mar 2009) | 6 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tstrtofr.c
-
-mpfr.texi: corrected mpfr_strtofr documentation ("NAN()" is accepted).
-tests/tstrtofr.c: added a test for "NAN()".
-Note: the code follows the ISO C99 standard for strtod, as explained
-in the mpfr_strtofr documentation, so that the code was correct.
-[merged changeset 6131 from the 2.4 branch and changed GMP_RNDN into
-MPFR_RNDN]
-------------------------------------------------------------------------
-r6130 | vlefevre | 2009-03-19 02:11:38 +0000 (Thu, 19 Mar 2009) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: added some tests for acinclude.m4 and configure.in (sh).
-------------------------------------------------------------------------
-r6128 | vlefevre | 2009-03-19 02:03:29 +0000 (Thu, 19 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Applied patch from Ralf Wildenhues.
- * configure.in: Avoid unportable (and unneeded) shell quoting.
- * acinclude.m4: Avoid non-POSIX shell construct.
-------------------------------------------------------------------------
-r6126 | vlefevre | 2009-03-18 11:15:05 +0000 (Wed, 18 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tmin_prec.c
-
-tests/tmin_prec.c: replaced GMP_RNDN by MPFR_RNDN.
-------------------------------------------------------------------------
-r6125 | vlefevre | 2009-03-16 18:38:03 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-tests/tset_ld.c: removed unused variable.
-------------------------------------------------------------------------
-r6124 | thevenyp | 2009-03-16 17:46:18 +0000 (Mon, 16 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-tests/tset_ld.c: Add test case for the bug fixed with r6101.
-
-------------------------------------------------------------------------
-r6123 | vlefevre | 2009-03-16 15:50:58 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tmin_prec.c
-
-tests/tmin_prec.c: added tests.
-------------------------------------------------------------------------
-r6122 | vlefevre | 2009-03-16 15:43:39 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-------------------------------------------------------------------------
-r6121 | vlefevre | 2009-03-16 15:40:48 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/min_prec.c
-
-min_prec.c: fixed another bug (the code was incorrect with >= 2 limbs).
-------------------------------------------------------------------------
-r6120 | vlefevre | 2009-03-16 15:37:10 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tmin_prec.c
-
-tests/tmin_prec.c: bug fix (side effects in MPFR_ASSERTN), new tests.
-------------------------------------------------------------------------
-r6119 | vlefevre | 2009-03-16 15:28:11 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a note about assertions and code with side effects.
-------------------------------------------------------------------------
-r6118 | thevenyp | 2009-03-16 15:23:46 +0000 (Mon, 16 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
-
-tests/tfprintf.c: Use a value less than 2^31-1 compatible (thus < LONG_MAX) in bug_20090316 (cf r6112).
-
-------------------------------------------------------------------------
-r6117 | vlefevre | 2009-03-16 15:07:50 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tmin_prec.c
-
-Replaced GMP_RND* by MPFR_RND*.
-------------------------------------------------------------------------
-r6116 | zimmerma | 2009-03-16 12:50:24 +0000 (Mon, 16 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tmin_prec.c
-
-[tests/tmin_prec.c] new file contributed from Laurent Fousse
-[tests/Makefile.am] added tmin_prec
-
-------------------------------------------------------------------------
-r6115 | vlefevre | 2009-03-16 12:35:27 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/min_prec.c
-
-min_prec.c: removed a useless test.
-------------------------------------------------------------------------
-r6114 | vlefevre | 2009-03-16 12:30:20 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/min_prec.c
-
-min_prec.c: fixed another bug.
-------------------------------------------------------------------------
-r6113 | thevenyp | 2009-03-16 12:26:29 +0000 (Mon, 16 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: Add more debug assertion on the buffer size.
-
-------------------------------------------------------------------------
-r6112 | thevenyp | 2009-03-16 12:03:43 +0000 (Mon, 16 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug_20090316 (in buffer_cat, the buffer was 1 character too small in some cases).
-tests/tfprintf.c: Add test for bug_20090316.
-
-------------------------------------------------------------------------
-r6111 | vlefevre | 2009-03-16 11:57:41 +0000 (Mon, 16 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-tests/tadd.c: changed GMP_RND* (from r6071) into MPFR_RND*; this should
-have been done when porting the patch from the 2.4 branch.
-------------------------------------------------------------------------
-r6110 | thevenyp | 2009-03-16 10:25:16 +0000 (Mon, 16 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: Use new environment variable MPFR_CHECK_LARGEMEM for memory expensive test.
-
-------------------------------------------------------------------------
-r6109 | vlefevre | 2009-03-16 10:12:57 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/min_prec.c
-
-min_prec.c: bug fixed by Laurent.
-------------------------------------------------------------------------
-r6108 | thevenyp | 2009-03-16 10:01:24 +0000 (Mon, 16 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: Fix typo.
-
-------------------------------------------------------------------------
-r6107 | vlefevre | 2009-03-16 09:32:21 +0000 (Mon, 16 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/min_prec.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Fixed the prototype of mpfr_min_prec (should return a mpfr_prec_t)
-and its description.
-------------------------------------------------------------------------
-r6106 | vlefevre | 2009-03-16 09:26:54 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/min_prec.c
-
-min_prec.c: fixed a bug (but the code should be improved).
-------------------------------------------------------------------------
-r6105 | vlefevre | 2009-03-16 09:23:46 +0000 (Mon, 16 Mar 2009) | 1 line
-Changed paths:
- M /trunk/min_prec.c
-
-min_prec.c: simplified the singular cases (see other functions).
-------------------------------------------------------------------------
-r6104 | lfousse | 2009-03-15 20:44:23 +0000 (Sun, 15 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Add prototype for mpfr_min_prec in mpfr.h.
-
-------------------------------------------------------------------------
-r6103 | lfousse | 2009-03-15 20:34:33 +0000 (Sun, 15 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add documentation for mpfr_min_prec.
-
-------------------------------------------------------------------------
-r6102 | lfousse | 2009-03-15 20:34:00 +0000 (Sun, 15 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/min_prec.c
-
-New function mpfr_min_prec.
-
-------------------------------------------------------------------------
-r6101 | vlefevre | 2009-03-15 03:17:06 +0000 (Sun, 15 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/get_ld.c
-
-get_ld.c: fixed bugs in the case HAVE_LDOUBLE_IEEE_EXT_LITTLE (one found
-by Steve Kargl, and another one concerning the mpfr_set_emax value).
-------------------------------------------------------------------------
-r6100 | thevenyp | 2009-03-13 17:58:59 +0000 (Fri, 13 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: This is probably dead code, but being uncertain, put an assert here.
-
-------------------------------------------------------------------------
-r6099 | thevenyp | 2009-03-13 17:55:13 +0000 (Fri, 13 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: As the buffer helper functions are not used in the current code with a zero parameter len, do not handle this case anymore, check that these cases do not happened in MPFR_ASSERTD macros, add some additional assert to ensure consistency.
-
-------------------------------------------------------------------------
-r6098 | thevenyp | 2009-03-13 17:47:57 +0000 (Fri, 13 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: make clear that string_buffer.curr is a pointer to the null terminating character, fix the only place where it was not handle so.
-
-------------------------------------------------------------------------
-r6097 | thevenyp | 2009-03-13 17:36:20 +0000 (Fri, 13 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug.
-
-------------------------------------------------------------------------
-r6096 | thevenyp | 2009-03-13 17:30:10 +0000 (Fri, 13 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-tests/tprintf.c: Add an expensive test where the output number has more than INT_MAX characters.
-vasprintf.c: Fix the bug triggered by the new test in tsprintf.c.
-
-------------------------------------------------------------------------
-r6095 | thevenyp | 2009-03-13 17:17:42 +0000 (Fri, 13 Mar 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-mpfr.texi: Do cosmetic changes and add some details on printf behavior when the precision field is empty.
-tests/tsprintf.c: improve code coverage.
-tests/tprintf.c: improve code coverage, check the behavior describe in mpfr.texi.
-
-------------------------------------------------------------------------
-r6091 | vlefevre | 2009-03-12 12:54:29 +0000 (Thu, 12 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/zeta_ui.c
-
-zeta_ui.c: correction r6090 was incorrect as there was another problem:
-the 3rd argument of mpz_divexact_ui is an unsigned long, not a limb.
-So, fixed the shift count (assuming no padding bits in unsigned long).
-------------------------------------------------------------------------
-r6090 | vlefevre | 2009-03-12 12:45:21 +0000 (Thu, 12 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/zeta_ui.c
-
-zeta_ui.c bug fix: a shift count could be >= width of type (if a limb is
-a long long and long long is twice the size of a long). This problem was
-detected by a warning on gcc40 with CFLAGS="-mpowerpc64 -mcpu=970 -O2".
-------------------------------------------------------------------------
-r6088 | vlefevre | 2009-03-10 01:11:36 +0000 (Tue, 10 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: added missing cast to void * for %p.
-------------------------------------------------------------------------
-r6086 | vlefevre | 2009-03-09 15:51:27 +0000 (Mon, 09 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfprintf.c
-
-tests/tfprintf.c: added missing cast to void * for %p.
-------------------------------------------------------------------------
-r6084 | vlefevre | 2009-03-09 15:42:51 +0000 (Mon, 09 Mar 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: fixed bug in CONSUME_VA_ARG for case MP_LIMB_ARG (%Mu).
-------------------------------------------------------------------------
-r6082 | vlefevre | 2009-03-09 14:09:10 +0000 (Mon, 09 Mar 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: GMP with ABI=mode32 should be tested on 64-bit PowerPC.
-------------------------------------------------------------------------
-r6081 | thevenyp | 2009-03-06 18:07:12 +0000 (Fri, 06 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: now return -1 when the format string is invalid (undefined behavior in standard C99)
-tests/tprintf.c: Additional checks with invalid format strings.
-
-------------------------------------------------------------------------
-r6080 | thevenyp | 2009-03-06 18:01:24 +0000 (Fri, 06 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Add missing conversion specifier accepted with mpfr_t variable.
-
-------------------------------------------------------------------------
-r6079 | vlefevre | 2009-03-06 13:03:44 +0000 (Fri, 06 Mar 2009) | 1 line
-Changed paths:
- M /trunk/add1.c
-
-add1.c: assertions on the argument values should use MPFR_ASSERTN.
-------------------------------------------------------------------------
-r6077 | zimmerma | 2009-03-06 11:50:19 +0000 (Fri, 06 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/cache.c
-
-[cache.c] improved comment for mpfr_init_cache
-
-------------------------------------------------------------------------
-r6076 | zimmerma | 2009-03-06 11:44:10 +0000 (Fri, 06 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/add1.c
-
-[add1.c] transformed switch() into if-then-else, to get 100% coverage
-
-------------------------------------------------------------------------
-r6074 | vlefevre | 2009-03-06 00:45:57 +0000 (Fri, 06 Mar 2009) | 1 line
-Changed paths:
- M /trunk/atan.c
- M /trunk/cache.c
-
-untabify
-------------------------------------------------------------------------
-r6073 | vlefevre | 2009-03-06 00:40:20 +0000 (Fri, 06 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/update-faq
-
-update-faq: change GMP_RND into MPFR_RND from the version on the web
-(since MPFR 3.0 hasn't been released yet, the FAQ still uses the 2.x
-API).
-------------------------------------------------------------------------
-r6071 | vlefevre | 2009-03-05 23:46:45 +0000 (Thu, 05 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests/tadd.c
-
-tests/tadd.c: completed the code coverage (case bk == 0 in add1.c).
-------------------------------------------------------------------------
-r6070 | zimmerma | 2009-03-05 19:44:05 +0000 (Thu, 05 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/mpfr-impl.h
-
-[mpfr-impl.h,cache.c] commented out mpfr_init_cache
-
-------------------------------------------------------------------------
-r6069 | zimmerma | 2009-03-05 16:37:19 +0000 (Thu, 05 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/const_catalan.c
-
-[const_catalan.c] decreased initial Ziv precision to get 100% coverage
-
-------------------------------------------------------------------------
-r6068 | zimmerma | 2009-03-05 16:28:13 +0000 (Thu, 05 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/cmp2.c
- M /trunk/tests/tcmp2.c
-
-[cmp2.c] added comments
-[tcmp2.c] added test to improve coverage to 100%
-
-------------------------------------------------------------------------
-r6067 | zimmerma | 2009-03-05 14:12:32 +0000 (Thu, 05 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/atan2.c
- M /trunk/tests/tatan.c
-
-[atan2.c,tatan.c] reduced Ziv's initial precision and added test to have
- 100% coverage of atan2.c
-
-------------------------------------------------------------------------
-r6066 | zimmerma | 2009-03-05 13:43:18 +0000 (Thu, 05 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-[atan.c] coverage should now be 100%
-
-------------------------------------------------------------------------
-r6065 | zimmerma | 2009-03-04 17:09:02 +0000 (Wed, 04 Mar 2009) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-[algorithms.bib] added new reference
-[TODO] added pointers
-
-------------------------------------------------------------------------
-r6059 | vlefevre | 2009-03-04 12:59:50 +0000 (Wed, 04 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
-
-mpfr-gmp.c (mpfr_assert_fail): output "MPFR" too in assertion failure
-messages.
-------------------------------------------------------------------------
-r6057 | vlefevre | 2009-03-04 01:33:17 +0000 (Wed, 04 Mar 2009) | 1 line
-Changed paths:
- M /trunk/mpfrlint
-
-Updated mpfrlint script.
-------------------------------------------------------------------------
-r6056 | vlefevre | 2009-03-04 01:06:47 +0000 (Wed, 04 Mar 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated month.
-------------------------------------------------------------------------
-r6055 | vlefevre | 2009-03-04 01:02:26 +0000 (Wed, 04 Mar 2009) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS: say that the license has changed.
-------------------------------------------------------------------------
-r6054 | vlefevre | 2009-03-03 17:32:00 +0000 (Tue, 03 Mar 2009) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-Updated NEWS (function mpfr_random has been removed).
-------------------------------------------------------------------------
-r6053 | zimmerma | 2009-03-03 16:51:07 +0000 (Tue, 03 Mar 2009) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/div.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/eint.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/fits_intmax.c
- M /trunk/fits_uintmax.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_ld.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/modf.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/mul_2si.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/print_rnd_mode.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/replace_all
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sech.c
- M /trunk/set_ld.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_str_raw.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/vasprintf.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-GMP_RNDX -> MPFR_RNDX
-
-------------------------------------------------------------------------
-r6051 | vlefevre | 2009-03-03 14:05:38 +0000 (Tue, 03 Mar 2009) | 1 line
-Changed paths:
- M /trunk/tests
-
-tests: added taway to svn:ignore property.
-------------------------------------------------------------------------
-r6050 | vlefevre | 2009-03-03 14:03:06 +0000 (Tue, 03 Mar 2009) | 1 line
-Changed paths:
- M /trunk/BUGS
- M /trunk/COPYING.LIB
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_patches.sh
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/mbench/Makefile
- M /trunk/mbench/README
- M /trunk/mbench/generate.c
- M /trunk/mbench/mfv5-arprec.cc
- M /trunk/mbench/mfv5-cln.cc
- M /trunk/mbench/mfv5-crlibm.cc
- M /trunk/mbench/mfv5-libc.cc
- M /trunk/mbench/mfv5-lidia.cc
- M /trunk/mbench/mfv5-mpf.cc
- M /trunk/mbench/mfv5-mpfr.cc
- M /trunk/mbench/mfv5-ntl.cc
- M /trunk/mbench/mfv5-pari.cc
- M /trunk/mbench/mfv5-void.cc
- M /trunk/mbench/mfv5.cc
- M /trunk/mbench/mfv5.h
- M /trunk/mbench/mpfr-gfx.c
- M /trunk/mbench/mpfr-v4.c
- M /trunk/mbench/mpfr-v6.c
- M /trunk/mbench/timp.h
- M /trunk/minmax.c
- M /trunk/modf.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-longlong.h
- M /trunk/mpfr-thread.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/printf.c
- M /trunk/random2.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/setsign.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/signbit.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/speed.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/taway.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Update to LGPL v3+, as decided by the main MPFR developers.
-------------------------------------------------------------------------
-r6043 | vlefevre | 2009-02-27 15:46:06 +0000 (Fri, 27 Feb 2009) | 1 line
-Changed paths:
- M /trunk/add.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/rem1.c
- M /trunk/round_near_x.c
- M /trunk/set_z.c
- M /trunk/tests/taway.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tpow_all.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Untabified and deleted trailing spaces (for patches).
-------------------------------------------------------------------------
-r6041 | zimmerma | 2009-02-27 14:33:12 +0000 (Fri, 27 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/rint.c
- M /trunk/tests/tget_sj.c
-
-[rint.c] fixed a bug incorporated with the round away mode
-[tget_sj.c] fixed the tests for round away
-
-------------------------------------------------------------------------
-r6040 | zimmerma | 2009-02-27 14:11:22 +0000 (Fri, 27 Feb 2009) | 5 lines
-Changed paths:
- M /trunk/rint.c
- M /trunk/set_z.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/taway.c
-
-[rint.c] fixed bug with round away
-[taway.c] new test file for round away (with random values)
-[tests/Makefile.am] added taway
-[set_z.c] GNU style
-
-------------------------------------------------------------------------
-r6037 | thevenyp | 2009-02-27 13:38:30 +0000 (Fri, 27 Feb 2009) | 5 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: Change test5rm (formerly test4rm) so that it checks the new
-GMP_RNDA rounding mode, and that the corresponding rounding towards infinity
-is checked with GMP_RNDZ or with GMP_RNDA in one-pass mode (now, two-pass
-mode). Remove a comment about a warning from gcc solved with r5057.
-
-------------------------------------------------------------------------
-r6036 | zimmerma | 2009-02-27 13:27:41 +0000 (Fri, 27 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/rem1.c
- M /trunk/tests/tremquo.c
-
-[rem1.c] fixed bug found in adding tests for round away
-
-------------------------------------------------------------------------
-r6035 | zimmerma | 2009-02-27 06:36:54 +0000 (Fri, 27 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-[add.c] added comment for 0 + 0 with round away
-
-------------------------------------------------------------------------
-r6034 | vlefevre | 2009-02-26 23:02:57 +0000 (Thu, 26 Feb 2009) | 1 line
-Changed paths:
- M /trunk/tests/texceptions.c
-
-tests/texceptions.c: removed obsolete comments from r2427.
-------------------------------------------------------------------------
-r6033 | zimmerma | 2009-02-26 21:28:42 +0000 (Thu, 26 Feb 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/tests/texceptions.c
- M /trunk/tests/tsub.c
-
-[mpfr.h] added comment about order of rounding modes
-[texceptions.c] added comments, fixed typo
-[tsub.c] added test, fixed typo
-
-------------------------------------------------------------------------
-r6032 | thevenyp | 2009-02-26 18:21:14 +0000 (Thu, 26 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
-
-Add tests with round away mode.
-
-------------------------------------------------------------------------
-r6031 | vlefevre | 2009-02-26 17:25:26 +0000 (Thu, 26 Feb 2009) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated version to 3.0.0-dev.
-------------------------------------------------------------------------
-r6030 | zimmerma | 2009-02-26 15:47:06 +0000 (Thu, 26 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/add1.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/div_ui.c
- M /trunk/erf.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/hypot.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/print_rnd_mode.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/set_rnd.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_all.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-added round to away (still experimental)
-
-------------------------------------------------------------------------
-r6026 | zimmerma | 2009-02-26 10:31:39 +0000 (Thu, 26 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-[mpfr.h] added comments for rounding modes
-
-------------------------------------------------------------------------
-r6022 | vlefevre | 2009-02-26 01:41:26 +0000 (Thu, 26 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/m4
-
-Added svn:ignore property on the m4 directory (these .m4 files are
-generated automatically).
-------------------------------------------------------------------------
-r6021 | vlefevre | 2009-02-26 01:36:06 +0000 (Thu, 26 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: updated -version-info (since mpfr_random has been removed,
-we already know its value).
-------------------------------------------------------------------------
-r6019 | vlefevre | 2009-02-26 01:26:45 +0000 (Thu, 26 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: do not check libtool -version-info value if the VERSION
-file contains "-dev".
-------------------------------------------------------------------------
-r6018 | vlefevre | 2009-02-26 01:16:02 +0000 (Thu, 26 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: In a "make dist", check that libtool -version-info value
-is up-to-date (this is a heuristic only).
-------------------------------------------------------------------------
-r6016 | vlefevre | 2009-02-26 00:36:25 +0000 (Thu, 26 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release" -- it is important to read
-this section entirely before making any release (even if some steps
-may be skipped for some particular releases).
-------------------------------------------------------------------------
-r6010 | vlefevre | 2009-02-25 22:06:27 +0000 (Wed, 25 Feb 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: do not use VLA's (C99 only).
-------------------------------------------------------------------------
-r6003 | vlefevre | 2009-02-25 14:24:06 +0000 (Wed, 25 Feb 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: update about patches.
-------------------------------------------------------------------------
-r5999 | vlefevre | 2009-02-25 12:44:51 +0000 (Wed, 25 Feb 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: coding style: removed spurious spaces.
-------------------------------------------------------------------------
-r5997 | vlefevre | 2009-02-25 12:16:17 +0000 (Wed, 25 Feb 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated month.
-------------------------------------------------------------------------
-r5996 | vlefevre | 2009-02-25 12:14:38 +0000 (Wed, 25 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/printf.c
-
-printf.c: fixed assertion failures in the case buffer == NULL and
-size == 0 (see r5995). Also replaced MPFR_ASSERTD(buf != NULL) by
-MPFR_ASSERTN(buf != NULL) since buf is provided as an argument.
-------------------------------------------------------------------------
-r5995 | vlefevre | 2009-02-25 12:12:52 +0000 (Wed, 25 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: added mpfr_snprintf/mpfr_vsnprintf tests with
-buffer == NULL and size == 0 (as allowed in C99 snprintf/vsnprintf
-and by the MPFR documentation).
-------------------------------------------------------------------------
-r5994 | thevenyp | 2009-02-25 09:58:15 +0000 (Wed, 25 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Fix typos.
-
-------------------------------------------------------------------------
-r5993 | vlefevre | 2009-02-24 19:40:06 +0000 (Tue, 24 Feb 2009) | 1 line
-Changed paths:
- M /trunk/tuneup.c
-
-tuneup.c: untabified.
-------------------------------------------------------------------------
-r5992 | thevenyp | 2009-02-24 18:04:04 +0000 (Tue, 24 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/tests/tsprintf.c
-
-printf.c: Fix wrong return value, mpfr_snprintf and mpfr_vsnprintf functions must always return the number of character that would be written if the parameter n had been sufficiently large (it previously returned zero when n == 0).
-tests/tsprintf.c: Fix test of mpfr_snprintf and mpfr_vsnprintf (the wrong return value was checked).
-
-------------------------------------------------------------------------
-r5991 | vlefevre | 2009-02-24 15:38:37 +0000 (Tue, 24 Feb 2009) | 1 line
-Changed paths:
- M /trunk/printf.c
-
-printf.c: fix buffer overflow in mpfr_snprintf and mpfr_vsnprintf.
-------------------------------------------------------------------------
-r5990 | vlefevre | 2009-02-24 15:37:33 +0000 (Tue, 24 Feb 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: added a test showing a buffer overflow in mpfr_vsnprintf.
-------------------------------------------------------------------------
-r5989 | vlefevre | 2009-02-24 15:30:06 +0000 (Tue, 24 Feb 2009) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: added a test showing a buffer overflow in mpfr_snprintf.
-------------------------------------------------------------------------
-r5985 | vlefevre | 2009-02-23 12:21:47 +0000 (Mon, 23 Feb 2009) | 12 lines
-Changed paths:
- M /trunk/tests/tests.c
- M /trunk/tests/tversion.c
- M /trunk/update-version
-
-Changed how the test of MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and
-MPFR_VERSION_PATCHLEVEL vs MPFR_VERSION_STRING is performed.
-Detailed explanations:
- The test was enabled only in release tarballs (suffix not present),
- where tests/tversion.c normally contained a "#if 1" (though this
- is not the case in the MPFR 2.4.0 tarball). In patches, this test
- should be disabled by changing the "#if 1" into "#if 0", due to
- the suffix. But as one should be able to apply any patches (in any
- order), this method was not satisfactory. The test has been moved
- from tests/tversion.c to tests/tests.c (in function test_version),
- and the suffix is now ignored in this test; the change of #if has
- been removed from the update-version script.
-------------------------------------------------------------------------
-r5981 | vlefevre | 2009-02-20 21:51:01 +0000 (Fri, 20 Feb 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: corrected update-version usage for patches.
-------------------------------------------------------------------------
-r5978 | vlefevre | 2009-02-20 16:04:19 +0000 (Fri, 20 Feb 2009) | 1 line
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update.
-------------------------------------------------------------------------
-r5975 | zimmerma | 2009-02-20 15:11:17 +0000 (Fri, 20 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/mparam_h.in
- M /trunk/tuneup.c
-
-[mparam_h.in] added default thresholds for sparc64
-[tuneup.c] print gcc patchlevel
-
-------------------------------------------------------------------------
-r5970 | vlefevre | 2009-02-19 01:10:31 +0000 (Thu, 19 Feb 2009) | 1 line
-Changed paths:
- M /trunk/speed.c
- M /trunk/tests/texp.c
-
-speed.c, tests/texp.c: untabified.
-------------------------------------------------------------------------
-r5969 | vlefevre | 2009-02-19 01:08:00 +0000 (Thu, 19 Feb 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: improved mpfr_strtofr documentation (completing r5965).
-------------------------------------------------------------------------
-r5967 | zimmerma | 2009-02-18 21:31:24 +0000 (Wed, 18 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] added tuning for powerpc64
-
-------------------------------------------------------------------------
-r5966 | thevenyp | 2009-02-18 17:06:02 +0000 (Wed, 18 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: fix typo.
-
-------------------------------------------------------------------------
-r5965 | thevenyp | 2009-02-18 16:55:21 +0000 (Wed, 18 Feb 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-strtofr.c: accept bases up to 62.
-mpfr.texi: modify mpfr_strtofr documentation accordingly.
-tests/tstrtofr.c: add tests for bases 62, 60, and 61.
-
-------------------------------------------------------------------------
-r5964 | thevenyp | 2009-02-17 16:52:33 +0000 (Tue, 17 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-mparam_h.in: Change core2/64bit parameters.
-
-------------------------------------------------------------------------
-r5963 | vlefevre | 2009-02-17 16:46:56 +0000 (Tue, 17 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-Checks whether C99 length modifiers 'hh' and 'll' are supported by the
-system ('hh' is absent on alpha-OSF1-V5, bug reported by Kate Minola).
-[Merged changeset 5956 from the 2.4 branch.]
-------------------------------------------------------------------------
-r5962 | zimmerma | 2009-02-17 16:31:46 +0000 (Tue, 17 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-[texp.c] yet another better fix
-
-------------------------------------------------------------------------
-r5961 | zimmerma | 2009-02-17 16:23:41 +0000 (Tue, 17 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-[texp.c] fixed previous patch and added comment
-
-------------------------------------------------------------------------
-r5960 | zimmerma | 2009-02-17 16:19:25 +0000 (Tue, 17 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-[texp.c] fixed corner case test
-
-------------------------------------------------------------------------
-r5958 | vlefevre | 2009-02-16 14:27:52 +0000 (Mon, 16 Feb 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: improved latest change.
-------------------------------------------------------------------------
-r5957 | vlefevre | 2009-02-16 14:25:10 +0000 (Mon, 16 Feb 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: mentioned update-version for patches.
-------------------------------------------------------------------------
-r5955 | zimmerma | 2009-02-11 10:09:36 +0000 (Wed, 11 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mbench/mpfr-gfx.c
-
-[mpfr-gfx.c] added -p option to produce a Postscript file
-
-------------------------------------------------------------------------
-r5954 | zimmerma | 2009-02-10 21:02:22 +0000 (Tue, 10 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] added thresholds for ARM
-
-------------------------------------------------------------------------
-r5953 | zimmerma | 2009-02-10 17:39:27 +0000 (Tue, 10 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] added description of how to tune MPFR
-
-------------------------------------------------------------------------
-r5952 | zimmerma | 2009-02-10 15:52:48 +0000 (Tue, 10 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] added another example of using mpfr-gfx
-
-------------------------------------------------------------------------
-r5951 | zimmerma | 2009-02-10 15:50:40 +0000 (Tue, 10 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/mbench/Makefile
-
-[Makefile] modified Makefile to compile statically, and to allow also
- build directories of GMP/MPFR
-
-------------------------------------------------------------------------
-r5950 | thevenyp | 2009-02-10 14:21:45 +0000 (Tue, 10 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mbench/mpfr-gfx.c
-
-mbench/mpfr-gfx.c: add option -rPREC_RATIO for geometric progression.
-
-------------------------------------------------------------------------
-r5949 | zimmerma | 2009-02-10 12:10:46 +0000 (Tue, 10 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] updated Itanium parameters (now for Itanium2)
-
-------------------------------------------------------------------------
-r5948 | zimmerma | 2009-02-10 11:26:25 +0000 (Tue, 10 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] added symbol __itanium__ for Itanium[12]
-
-------------------------------------------------------------------------
-r5947 | zimmerma | 2009-02-09 21:50:22 +0000 (Mon, 09 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/mbench/mpfr-gfx.c
-
-[README.dev] fixed typo
-[mpfr-gfx.c] added comments in the code (might be useful)
-
-------------------------------------------------------------------------
-r5946 | zimmerma | 2009-02-09 20:25:42 +0000 (Mon, 09 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] added pointer to mbench to check the thresholds
-
-------------------------------------------------------------------------
-r5945 | zimmerma | 2009-02-09 20:17:46 +0000 (Mon, 09 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mbench/mpfr-gfx.c
-
-[mpfr-gfx.c] now also produces a plot.gnuplot file together with plot.data
-
-------------------------------------------------------------------------
-r5944 | zimmerma | 2009-02-09 16:18:50 +0000 (Mon, 09 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] updated default thresholds with gmp-4.2.4
-
-------------------------------------------------------------------------
-r5943 | zimmerma | 2009-02-09 16:16:33 +0000 (Mon, 09 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/tuneup.c
-
-[tuneup.c] fixed typo
-
-------------------------------------------------------------------------
-r5942 | zimmerma | 2009-02-09 14:34:34 +0000 (Mon, 09 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-[Makefile.am] added stuff to compile speed program
-
-------------------------------------------------------------------------
-r5941 | zimmerma | 2009-02-09 14:22:20 +0000 (Mon, 09 Feb 2009) | 5 lines
-Changed paths:
- A /trunk/speed.c
-
-[speed.c] preliminary program to check the tuning of mpfr (based on tuneup.c)
- So far it only measures mpfr_mul up to 1000 bits, with increment
- ratio of 1.1. Requires --with-gmp-build like tuneup.
- Feel free to improve!
-
-------------------------------------------------------------------------
-r5940 | zimmerma | 2009-02-09 13:26:07 +0000 (Mon, 09 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] allow __tune_ia64__ in addition to __ia64
-
-------------------------------------------------------------------------
-r5937 | zimmerma | 2009-02-09 08:16:08 +0000 (Mon, 09 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-[mparam_h.in] replaced __pentium4 by __tune_pentium4__, ...
-
-------------------------------------------------------------------------
-r5936 | zimmerma | 2009-02-08 21:58:11 +0000 (Sun, 08 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mparam_h.in
-
-[acinclude.m4] removed detection of HAVE_HOST_CORE2
-[mparam_h.in] replaced HAVE_HOST_CORE2 by __tune_core2__
-
-------------------------------------------------------------------------
-r5930 | thevenyp | 2009-02-06 14:06:54 +0000 (Fri, 06 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-tests/mpf_compat.h: complete r5922 adding missing mpz_init/mpz_clear.
-
-------------------------------------------------------------------------
-r5927 | vlefevre | 2009-02-06 11:57:57 +0000 (Fri, 06 Feb 2009) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO: updated efficiency items.
-------------------------------------------------------------------------
-r5926 | zimmerma | 2009-02-06 11:18:48 +0000 (Fri, 06 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added 2 efficiency items
-
-------------------------------------------------------------------------
-r5925 | vlefevre | 2009-02-06 00:02:35 +0000 (Fri, 06 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: moved MPFR_DECL_INIT specification into Section
-"Initialization Functions" (now in the standard MPFR API),
-and removed now empty Section "Advanced Functions".
-------------------------------------------------------------------------
-r5924 | vlefevre | 2009-02-05 14:40:38 +0000 (Thu, 05 Feb 2009) | 1 line
-Changed paths:
- M /trunk/mparam_h.in
-
-mparam_h.in: updated comment to mention -march=native and -mtune=native.
-------------------------------------------------------------------------
-r5923 | vlefevre | 2009-02-05 11:42:26 +0000 (Thu, 05 Feb 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: updated a comment concerning MPFR_DECL_INIT.
-------------------------------------------------------------------------
-r5922 | zimmerma | 2009-02-05 08:01:46 +0000 (Thu, 05 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
- M /trunk/tests/mpf_compat.h
-
-[mpf2mpfr.h] added mpz_set_f (reported by Francois Morain)
-
-------------------------------------------------------------------------
-r5921 | zimmerma | 2009-02-05 07:26:51 +0000 (Thu, 05 Feb 2009) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.texi
-
-[mpfr.texi] moved mpfr_inits, mpfr_inits2, mpfr_clears to supported functions
-[TODO] added new info about MPIR
-
-------------------------------------------------------------------------
-r5920 | zimmerma | 2009-02-04 19:46:50 +0000 (Wed, 04 Feb 2009) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-[TODO] added info to distinguish GMP and MPIR
-
-------------------------------------------------------------------------
-r5893 | vlefevre | 2009-01-26 17:04:26 +0000 (Mon, 26 Jan 2009) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated the version on the trunk.
-------------------------------------------------------------------------
-r5888 | zimmerma | 2009-01-25 12:50:42 +0000 (Sun, 25 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-[nightly-test] removed --disable-alloca (GMP option)
-
-------------------------------------------------------------------------
-r5887 | vlefevre | 2009-01-25 00:19:30 +0000 (Sun, 25 Jan 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: --disable-alloca is a GMP configure option.
-------------------------------------------------------------------------
-r5886 | thevenyp | 2009-01-21 15:01:25 +0000 (Wed, 21 Jan 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: remove tests against libc's printf with "%a" (not in ISO C90), and with "%p" (implementation defined).
-[merge -c 5885 from branches/2.4]
-
-------------------------------------------------------------------------
-r5883 | vlefevre | 2009-01-21 12:43:57 +0000 (Wed, 21 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: avoid a compiler bug under Mac OS X Tiger + Xcode (&x == &x
-is false) that makes tset_d fail; this problem was introduced in r5880.
-------------------------------------------------------------------------
-r5880 | vlefevre | 2009-01-20 22:12:11 +0000 (Tue, 20 Jan 2009) | 6 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/tests/tset_ld.c
-
-Fixed bug reported by Chris Saunders: if _GMP_IEEE_FLOATS is defined,
-the build of tset_ld.c fails because DOUBLE_ISNAN expects a lvalue.
-* mpfr-impl.h: documented that for such macros, the argument must
- be a lvalue, and always make sure that it is a lvalue (so that
- a failure doesn't depend on the environment).
-* tests/tset_ld.c: fixed the bug.
-------------------------------------------------------------------------
-r5879 | vlefevre | 2009-01-20 15:08:45 +0000 (Tue, 20 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-tests/tversion.c: be more tolerant when checking whether gmp.h version
-and libgmp version are the same (in case patch level is 0).
-------------------------------------------------------------------------
-r5878 | vlefevre | 2009-01-20 12:47:05 +0000 (Tue, 20 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-tests/tset_ld.c: added explanation of NaN-related failures in case
-MPFR_NANISNAN is defined.
-------------------------------------------------------------------------
-r5875 | vlefevre | 2009-01-20 00:43:20 +0000 (Tue, 20 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tstrtofr.c
-
-Added missing void's.
-------------------------------------------------------------------------
-r5874 | vlefevre | 2009-01-20 00:35:41 +0000 (Tue, 20 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: removed a blank line (for consistency with the
-2.4 branch).
-------------------------------------------------------------------------
-r5873 | vlefevre | 2009-01-20 00:33:09 +0000 (Tue, 20 Jan 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: deleted trailing spaces.
-------------------------------------------------------------------------
-r5869 | vlefevre | 2009-01-19 23:57:53 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: comment for DOUBLE_ISNAN with MPFR_NANISNAN defined.
-------------------------------------------------------------------------
-r5868 | vlefevre | 2009-01-19 23:42:33 +0000 (Mon, 19 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-tests/tset_d.c: fixed test of mpfr_set_d on -0 with gcc -ffast-math
-(the -d for d = 0.0 was giving 0.0, hence a spurious failure).
-------------------------------------------------------------------------
-r5867 | vlefevre | 2009-01-19 23:34:54 +0000 (Mon, 19 Jan 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/tests/tset_ld.c
-
-mpfr-impl.h: the DOUBLE_ISNAN macro wasn't working with gcc -ffast-math
-(at least on x86_64); fixed that by adding another test.
-tests/tset_ld.c: Isnan_ld wasn't working either; also the NaN test was
-incorrect. Now, the failure on NaN is correctly reported.
-------------------------------------------------------------------------
-r5866 | vlefevre | 2009-01-19 22:44:45 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tset_d.c
-
-tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: corrected message.
-------------------------------------------------------------------------
-r5865 | vlefevre | 2009-01-19 22:37:27 +0000 (Mon, 19 Jan 2009) | 4 lines
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tset_d.c
-
-tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: added explanations
-of NaN-related failures in case MPFR_NANISNAN is defined.
-Note: in tset_d.c, moved the NaN test before the signed-zero test
-to catch the failure on the NaN first.
-------------------------------------------------------------------------
-r5864 | vlefevre | 2009-01-19 22:23:26 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: improved warning message.
-------------------------------------------------------------------------
-r5863 | vlefevre | 2009-01-19 22:16:15 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: updated "In case of problem".
-------------------------------------------------------------------------
-r5862 | vlefevre | 2009-01-19 22:12:09 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: added a warning message for the NAN != NAN test.
-------------------------------------------------------------------------
-r5860 | thevenyp | 2009-01-19 19:59:12 +0000 (Mon, 19 Jan 2009) | 3 lines
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tests.c
- M /trunk/tests/tset_d.c
-
-tcmp_d.c tset_d.c tcmp_ld.c: Remove tests with NaN when MPFR_NANISNAN is defined.
-tests.c: Add a warning in a comment that Isnan always returns 0 on systems where MPFR_NANISNAN is defined.
-
-------------------------------------------------------------------------
-r5855 | thevenyp | 2009-01-19 18:14:55 +0000 (Mon, 19 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: do not support 't' when NPRINTF_T is defined, HAVE_STDINT_H -> _MPFR_H_HAVE_INTMAX_T.
-
-------------------------------------------------------------------------
-r5853 | thevenyp | 2009-01-19 17:05:13 +0000 (Mon, 19 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
-
-tests/tfprintf.c: renumber tests (there was two tests #9).
-
-------------------------------------------------------------------------
-r5852 | vlefevre | 2009-01-19 16:56:17 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tfprintf.c
-
-tests/tfprintf.c: %c takes an int argument, not a char (see C standard).
-------------------------------------------------------------------------
-r5851 | vlefevre | 2009-01-19 16:53:56 +0000 (Mon, 19 Jan 2009) | 4 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-tests/tprintf.c, tests/tsprintf.c:
- * %c takes an int argument, not a char (see C standard), even though
- this may be equivalent due to integer promotion.
- * Add void in prototypes of functions taking no arguments.
-------------------------------------------------------------------------
-r5844 | vlefevre | 2009-01-19 15:46:41 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated references to the GMP manual.
-------------------------------------------------------------------------
-r5843 | vlefevre | 2009-01-19 15:31:54 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: typo in comment.
-------------------------------------------------------------------------
-r5842 | vlefevre | 2009-01-19 15:30:52 +0000 (Mon, 19 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added .info extension in cross-references, to avoid the bug
-reported here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484740
-------------------------------------------------------------------------
-r5841 | vlefevre | 2009-01-19 14:34:22 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added a reference to a texinfo bug in a comment.
-------------------------------------------------------------------------
-r5840 | vlefevre | 2009-01-19 14:02:49 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added missing @code{}.
-------------------------------------------------------------------------
-r5839 | vlefevre | 2009-01-19 14:01:13 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: don't -> do not, doesn't -> does not, won't -> will not.
-------------------------------------------------------------------------
-r5838 | vlefevre | 2009-01-19 13:58:50 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: improved Section "Format String".
-------------------------------------------------------------------------
-r5837 | thevenyp | 2009-01-19 13:51:45 +0000 (Mon, 19 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: check if native types are really processed by libc printf.
-
-------------------------------------------------------------------------
-r5836 | vlefevre | 2009-01-19 13:31:27 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: no longer mentions HAVE_QUAD_T since it is no longer used.
-------------------------------------------------------------------------
-r5835 | thevenyp | 2009-01-19 12:50:08 +0000 (Mon, 19 Jan 2009) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr.texi
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-mpfr.texi: Explicit list of type supported by mpfr_printf functions.
-acinclude.m4: Remove detection of type modifier 'q'.
-vasprintf.c: Remove support of type modifier 'q'.
-tests/tfprintf.c tests/tprintf.c: Remove tests with type modifier 'q'.
-
-------------------------------------------------------------------------
-r5834 | thevenyp | 2009-01-19 11:05:10 +0000 (Mon, 19 Jan 2009) | 3 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/configure.in
-
-INSTALL: Warn that --with-gmp, --with-gmp-include/--with-gmp-lib, and --with-gmp-build options are mutually exclusive.
-configure.in: Check and fail if --with-gmp, --with-gmp-include/--with-gmp-lib, or --with-gmp-build are use simultaneously.
-
-------------------------------------------------------------------------
-r5833 | vlefevre | 2009-01-19 10:08:58 +0000 (Mon, 19 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: include <sys/fpu.h> only if need be.
-------------------------------------------------------------------------
-r5831 | zimmerma | 2009-01-16 15:32:11 +0000 (Fri, 16 Jan 2009) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] made difference between mpfr_set_str and mpfr_strtofr clearer
- (after remark from Luis Rivera)
-
-------------------------------------------------------------------------
-r5830 | zimmerma | 2009-01-16 15:24:45 +0000 (Fri, 16 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] fixed order -> kind (typo found by Luis Rivera, thanks)
-
-------------------------------------------------------------------------
-r5828 | thevenyp | 2009-01-16 13:35:04 +0000 (Fri, 16 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-tfprintf.c tprintf.c: Test double with "%f" instead of "%e" so as to avoid failure due to exponent "e+000" on MS Windows.
-
-------------------------------------------------------------------------
-r5827 | thevenyp | 2009-01-16 13:06:27 +0000 (Fri, 16 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-tests/tfprintf.c tests/tsprintf.c tests/tprintf.c acinclude.m4 vasprintf.c: No longer check libc's printf.
-
-------------------------------------------------------------------------
-r5826 | thevenyp | 2009-01-16 09:53:15 +0000 (Fri, 16 Jan 2009) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
-
-acinclude.m4: Check if %Ld specification is supported (not always the case with MS Windows)
-tests/tfprintf.c tests/tprintf.c tests/tsprintf.c: do not check %Ld specification when not available.
-
-------------------------------------------------------------------------
-r5825 | thevenyp | 2009-01-16 09:26:18 +0000 (Fri, 16 Jan 2009) | 3 lines
-Changed paths:
- M /trunk/fits_intmax.c
- M /trunk/fits_uintmax.c
- M /trunk/get_sj.c
- M /trunk/get_uj.c
- M /trunk/set_sj.c
- M /trunk/set_uj.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tset_sj.c
- M /trunk/vasprintf.c
-
-get_uj.c get_sj.c tests/tset_sj.c tests/tfits.c fits_intmax.c fits_uintmax.c set_uj.c set_sj.c: make #include-s for intmax_t uniform.
-vasprintf.c: make #include-s for intmax_t uniform and use _MPFR_H_HAVE_INTMAX_T instead of HAVE_INTMAX_T.
-
-------------------------------------------------------------------------
-r5823 | thevenyp | 2009-01-15 13:24:35 +0000 (Thu, 15 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-tfprintf.c tprintf.c: Remove tests with u_quad_t (on Solaris 10, quad_t exists but u_quad_t doesn't, bug reported by Michael Abshoff).
-
-------------------------------------------------------------------------
-r5822 | thevenyp | 2009-01-15 13:17:14 +0000 (Thu, 15 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-tfprintf.c tprintf.c: Fix included headers, type intmax_t may be defined in inttypes.h or in stdint.h (see autoconf manual 5.6.1 Portability of Headers).
-
-------------------------------------------------------------------------
-r5821 | vlefevre | 2009-01-15 10:13:44 +0000 (Thu, 15 Jan 2009) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r5817 | vlefevre | 2009-01-15 02:22:45 +0000 (Thu, 15 Jan 2009) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: deleted trailing spaces.
-------------------------------------------------------------------------
-r5816 | vlefevre | 2009-01-15 02:21:57 +0000 (Thu, 15 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: be more tolerant when checking whether gmp.h version
-and libgmp version are the same (in case patch level is 0).
-------------------------------------------------------------------------
-r5814 | vlefevre | 2009-01-15 01:56:55 +0000 (Thu, 15 Jan 2009) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/ChangeLog
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_patches.sh
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/mbench/Makefile
- M /trunk/mbench/generate.c
- M /trunk/mbench/mfv5-arprec.cc
- M /trunk/mbench/mfv5-cln.cc
- M /trunk/mbench/mfv5-crlibm.cc
- M /trunk/mbench/mfv5-libc.cc
- M /trunk/mbench/mfv5-lidia.cc
- M /trunk/mbench/mfv5-mpf.cc
- M /trunk/mbench/mfv5-mpfr.cc
- M /trunk/mbench/mfv5-ntl.cc
- M /trunk/mbench/mfv5-pari.cc
- M /trunk/mbench/mfv5-void.cc
- M /trunk/mbench/mfv5.cc
- M /trunk/mbench/mfv5.h
- M /trunk/mbench/mpfr-gfx.c
- M /trunk/mbench/mpfr-v4.c
- M /trunk/mbench/mpfr-v6.c
- M /trunk/mbench/timp.h
- M /trunk/minmax.c
- M /trunk/modf.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-thread.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/printf.c
- M /trunk/random2.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/setsign.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/signbit.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Copyright notice update: added 2009 with
- perl -pi -e 's/2008 Free Software/2008, 2009 Free Software/' **/*(^/)
-under zsh.
-------------------------------------------------------------------------
-r5813 | vlefevre | 2009-01-14 00:46:45 +0000 (Wed, 14 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tcan_round.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tsqrt.c
-
-Fixed remaining printf format strings.
-------------------------------------------------------------------------
-r5812 | vlefevre | 2009-01-14 00:27:06 +0000 (Wed, 14 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tsub1sp.c
-
-tests/tadd1sp.c, tests/tsub1sp.c: fixed function prototypes.
-------------------------------------------------------------------------
-r5811 | vlefevre | 2009-01-14 00:23:44 +0000 (Wed, 14 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/teq.c
- M /trunk/tests/tests.c
-
-tests/teq.c, tests/tests.c: fixed printf format strings.
-------------------------------------------------------------------------
-r5810 | vlefevre | 2009-01-14 00:06:00 +0000 (Wed, 14 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-tests/tcmp2.c: fixed printf format strings.
-------------------------------------------------------------------------
-r5809 | vlefevre | 2009-01-13 23:59:17 +0000 (Tue, 13 Jan 2009) | 1 line
-Changed paths:
- M /trunk/tests/tset_str.c
-
-tests/tset_str.c: fixed printf format string.
-------------------------------------------------------------------------
-r5804 | vlefevre | 2009-01-12 17:30:00 +0000 (Mon, 12 Jan 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: consistency changes and corrections concerning the "erange"
-flag (do not use @code{} as this is not an identifier, @emph{} is used
-as this is not an English word -- but @emph{} should probably be used
-too for the other flag names).
-------------------------------------------------------------------------
-r5803 | vlefevre | 2009-01-12 17:18:45 +0000 (Mon, 12 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: typo.
-------------------------------------------------------------------------
-r5801 | thevenyp | 2009-01-12 16:01:14 +0000 (Mon, 12 Jan 2009) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-acinclude.m4: New macro MPFR_CHECK_PRINTF_SPEC looking for support of the "%jd", "%qd", and "%td" conversion specifications in printf and gmp_printf.
-configure.in: Call MPFR_CHECK_PRINTF_SPEC when we can link against a suitable gmp library and run test programs at compile time, otherwise (for instance, when cross compiling), everything is enable by default.
-vasprintf.c: Disable support for length modifiers not supported by libc's printf ('j' and 'q' for this time).
-tests/tprintf.c, tests/tfprintf.c: Disable tests for length modifiers not supported by gmp_printf ('j', 'q', and 't' for this time).
-
-------------------------------------------------------------------------
-r5800 | thevenyp | 2009-01-12 14:16:22 +0000 (Mon, 12 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Fix typo.
-
-------------------------------------------------------------------------
-r5795 | vlefevre | 2009-01-08 15:36:55 +0000 (Thu, 08 Jan 2009) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: update to January 2009.
-------------------------------------------------------------------------
-r5794 | vlefevre | 2009-01-08 15:34:27 +0000 (Thu, 08 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tsprintf.c
-
-Removed useless #include of gmp.h from tests/tfprintf.c and
-tests/tsprintf.c for consistency.
-------------------------------------------------------------------------
-r5788 | thevenyp | 2009-01-08 11:56:10 +0000 (Thu, 08 Jan 2009) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tfprintf.c
- M /trunk/vasprintf.c
-
-tests/tfprintf.c: Make tests with 'M' specifier optional.
-mpfr.texi: Add a warning that gmp may not support 'M' specifier.
-vasprintf.c: Add warning comment about 'M' specifier.
-
-------------------------------------------------------------------------
-r5787 | thevenyp | 2009-01-08 11:52:52 +0000 (Thu, 08 Jan 2009) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: Fix wrong definition of rounding specifiers.
-
-------------------------------------------------------------------------
-r5786 | vlefevre | 2008-12-30 13:57:11 +0000 (Tue, 30 Dec 2008) | 1 line
-Changed paths:
- M /trunk/out_str.c
-
-out_str.c: added assert (check that base is in the required range).
-------------------------------------------------------------------------
-r5785 | vlefevre | 2008-12-26 14:10:24 +0000 (Fri, 26 Dec 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: suggest "-Wformat=2".
-------------------------------------------------------------------------
-r5784 | vlefevre | 2008-12-26 14:02:55 +0000 (Fri, 26 Dec 2008) | 1 line
-Changed paths:
- M /trunk/zeta.c
-
-zeta.c: fixed types for printf when DEBUG is defined.
-------------------------------------------------------------------------
-r5783 | vlefevre | 2008-12-26 13:57:32 +0000 (Fri, 26 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-sub1sp.c: fixed types for printf when WANT_ASSERT >= 2 and
-when DEBUG is defined.
-------------------------------------------------------------------------
-r5782 | vlefevre | 2008-12-26 13:50:14 +0000 (Fri, 26 Dec 2008) | 1 line
-Changed paths:
- M /trunk/sub1.c
-
-sub1.c: fixed types for printf when DEBUG is defined.
-------------------------------------------------------------------------
-r5781 | vlefevre | 2008-12-26 13:44:28 +0000 (Fri, 26 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/set_d64.c
-
-set_d64.c: set T[] to unsigned int (instead of int) since its values
-are printed with %u.
-------------------------------------------------------------------------
-r5780 | vlefevre | 2008-12-26 13:36:13 +0000 (Fri, 26 Dec 2008) | 1 line
-Changed paths:
- M /trunk/add1sp.c
-
-add1sp.c: fixed types for printf when DEBUG is defined.
-------------------------------------------------------------------------
-r5779 | vlefevre | 2008-12-26 13:33:05 +0000 (Fri, 26 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: fixed MPFR_UNSIGNED_MINUS_MODULO logic and added missing
-parentheses.
-------------------------------------------------------------------------
-r5778 | vlefevre | 2008-12-26 13:06:14 +0000 (Fri, 26 Dec 2008) | 1 line
-Changed paths:
- M /trunk/div.c
-
-div.c: fixed types for fprintf when DEBUG and/or DEBUG2 is defined.
-------------------------------------------------------------------------
-r5777 | vlefevre | 2008-12-26 12:56:09 +0000 (Fri, 26 Dec 2008) | 1 line
-Changed paths:
- M /trunk/div.c
-
-div.c: fixed #ifdef.
-------------------------------------------------------------------------
-r5775 | vlefevre | 2008-12-26 12:39:03 +0000 (Fri, 26 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/round_p.c
-
-round_p.c: fixed types for fprintf when WANT_ASSERT >= 2 (since
-mp_prec_t is unsigned, it's better to use unsigned long).
-------------------------------------------------------------------------
-r5774 | vlefevre | 2008-12-26 12:02:07 +0000 (Fri, 26 Dec 2008) | 1 line
-Changed paths:
- M /trunk/round_p.c
-
-round_p.c: fixed types for fprintf when WANT_ASSERT >= 2.
-------------------------------------------------------------------------
-r5772 | zimmerma | 2008-12-22 10:40:24 +0000 (Mon, 22 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.tex] improve documentation of %P
-
-------------------------------------------------------------------------
-r5768 | vlefevre | 2008-12-18 15:59:55 +0000 (Thu, 18 Dec 2008) | 1 line
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-Deleted trailing spaces.
-------------------------------------------------------------------------
-r5762 | thevenyp | 2008-12-17 16:07:32 +0000 (Wed, 17 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: clean-up code, improve comment, and put optional tests in tail so that they fail last.
-
-------------------------------------------------------------------------
-r5761 | thevenyp | 2008-12-17 15:55:20 +0000 (Wed, 17 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: Add two regression tests.
-
-------------------------------------------------------------------------
-r5760 | thevenyp | 2008-12-16 15:56:42 +0000 (Tue, 16 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr.texi
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-acinclude.m4, vasprintf.c, tests/tfprintf.c, tests/tprintf.c, mpfr.texi: quad_t support
-
-------------------------------------------------------------------------
-r5759 | thevenyp | 2008-12-16 15:51:59 +0000 (Tue, 16 Dec 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-tests/tfprintf.c: code clean-up and output improvement.
-tests/tprintf.c: code clean-up.
-Note that unsigned long long variable is not set to 1 instead of -1 which was architecture dependent.
-
-------------------------------------------------------------------------
-r5758 | vlefevre | 2008-12-16 13:56:28 +0000 (Tue, 16 Dec 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c:
- * stdout_redirect is a boolean (i.e., 0 or 1).
- * output freopen(..., stdout) error message to stderr.
-------------------------------------------------------------------------
-r5757 | thevenyp | 2008-12-16 13:10:05 +0000 (Tue, 16 Dec 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-tfprintf.c: more user-friendly messages.
-tprintf.c: more user-friendly messages. Warning: because stdout might be redirected, error messages are printed to stderr.
-
-------------------------------------------------------------------------
-r5756 | vlefevre | 2008-12-15 23:38:21 +0000 (Mon, 15 Dec 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: more explanations on the precision field for mpfr_printf.
-------------------------------------------------------------------------
-r5755 | vlefevre | 2008-12-15 17:37:05 +0000 (Mon, 15 Dec 2008) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/tests/tsprintf.c
-
-untabify and remove trailing spaces
-------------------------------------------------------------------------
-r5754 | thevenyp | 2008-12-15 17:07:40 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: more explanations on the precision field.
-
-------------------------------------------------------------------------
-r5753 | thevenyp | 2008-12-15 16:19:26 +0000 (Mon, 15 Dec 2008) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr.texi
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-mpfr.texi: Clearly mention that the length modifier 'q' is unsupported by mpfr-*printf.
-vasprintf.c: Do not take quad_t as a long long but as an insupported length modifier.
-acinclude.m4: Remove check for quad_t.
-tests/tprintf.c tests/tfprintf.c: Remove tests with 'q' length modifier.
-
-------------------------------------------------------------------------
-r5751 | vlefevre | 2008-12-15 14:52:54 +0000 (Mon, 15 Dec 2008) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-tests/tstrtofr.c: fixed a test (in case |res| > 1).
-------------------------------------------------------------------------
-r5750 | vlefevre | 2008-12-15 14:35:01 +0000 (Mon, 15 Dec 2008) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-tests/tstrtofr.c: fixed alignment bug in error message.
-------------------------------------------------------------------------
-r5749 | zimmerma | 2008-12-15 13:44:25 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-[nightly-test] added MPFR_CHECK_LIBC_PRINTF
-
-------------------------------------------------------------------------
-r5748 | thevenyp | 2008-12-15 13:43:52 +0000 (Mon, 15 Dec 2008) | 4 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/acinclude.m4
- M /trunk/vasprintf.c
-
-acinclude.m4: Check for quad_t.
-vasprintf.c: Accept length modifier 'q' if HAVE_QUAD_T is defined (instead of HAVE_LONG_LONG).
-README.dev: Add notice for new HAVE_QUAD_T macro.
-
-------------------------------------------------------------------------
-r5747 | zimmerma | 2008-12-15 13:43:40 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] added warning about usage of mpfr_init
-
-------------------------------------------------------------------------
-r5746 | vlefevre | 2008-12-15 13:39:35 +0000 (Mon, 15 Dec 2008) | 1 line
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: _MPFR_H_HAVE_INTMAX_T -> HAVE_STDINT_H for <stdint.h>.
-------------------------------------------------------------------------
-r5745 | thevenyp | 2008-12-15 13:33:22 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: Tests against libc's sprintf function are no more executed unless the MPFR_CHECK_LIBC_PRINTF is defined.
-
-------------------------------------------------------------------------
-r5744 | thevenyp | 2008-12-15 13:27:49 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: move bugs 20080610 and 20081214 outside the function random_double.
-
-------------------------------------------------------------------------
-r5743 | vlefevre | 2008-12-15 12:49:58 +0000 (Mon, 15 Dec 2008) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: completed comment about the sign of a null exponent.
-------------------------------------------------------------------------
-r5742 | vlefevre | 2008-12-15 12:44:09 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: added a note saying the L modifier was added in C89 (source:
-C99 rationale, Section 7.19.6.1).
-------------------------------------------------------------------------
-r5741 | zimmerma | 2008-12-15 12:17:46 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] more Windows-related changes
-
-------------------------------------------------------------------------
-r5740 | zimmerma | 2008-12-15 11:02:17 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] update on Windows (from Brian Gladman)
-
-------------------------------------------------------------------------
-r5739 | zimmerma | 2008-12-15 09:47:46 +0000 (Mon, 15 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-[configure.in] removed useless comment
-
-------------------------------------------------------------------------
-r5738 | vlefevre | 2008-12-14 15:28:17 +0000 (Sun, 14 Dec 2008) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: references to ISO (international) instead of ANSI (American).
-------------------------------------------------------------------------
-r5737 | vlefevre | 2008-12-14 15:18:54 +0000 (Sun, 14 Dec 2008) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: corrected a comment.
-------------------------------------------------------------------------
-r5736 | zimmerma | 2008-12-14 09:43:40 +0000 (Sun, 14 Dec 2008) | 3 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-[printf.c,vasprintf.c] include config.h if HAVE_CONFIG_H is defined, to
- solve problem noticed by Brian Gladman
-
-------------------------------------------------------------------------
-r5735 | vlefevre | 2008-12-14 09:37:05 +0000 (Sun, 14 Dec 2008) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: untabified.
-------------------------------------------------------------------------
-r5734 | zimmerma | 2008-12-14 09:27:08 +0000 (Sun, 14 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added hint for using the MinGW runtime
-
-------------------------------------------------------------------------
-r5733 | zimmerma | 2008-12-14 08:36:37 +0000 (Sun, 14 Dec 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tsprintf.c] added new hard-coded test (needs work to overcome error in
- system asprintf)
-
-------------------------------------------------------------------------
-r5732 | zimmerma | 2008-12-14 08:24:42 +0000 (Sun, 14 Dec 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-[tsprintf.c] fixed hard-coded test (spec was missing), and print values of
- xi,yi,spec in case of error
-
-------------------------------------------------------------------------
-r5731 | vlefevre | 2008-12-14 00:05:20 +0000 (Sun, 14 Dec 2008) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: corrections on r5730.
-------------------------------------------------------------------------
-r5730 | zimmerma | 2008-12-13 10:19:25 +0000 (Sat, 13 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added notes on Windows Vista 64 problem
-
-------------------------------------------------------------------------
-r5727 | vlefevre | 2008-12-12 15:00:33 +0000 (Fri, 12 Dec 2008) | 1 line
-Changed paths:
- M /trunk/README
-
-README: added "compile" since it is distributed in the tarball.
-------------------------------------------------------------------------
-r5723 | vlefevre | 2008-12-12 14:07:19 +0000 (Fri, 12 Dec 2008) | 2 lines
-Changed paths:
- M /trunk
-
-Added "compile" to svn:ignore property (this file is installed by
-"automake --add-missing" due to AM_PROG_CC_C_O, added in r5710).
-------------------------------------------------------------------------
-r5722 | vlefevre | 2008-12-12 14:01:33 +0000 (Fri, 12 Dec 2008) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: avoid an abort if field width or precision is > INT_MAX.
-------------------------------------------------------------------------
-r5721 | thevenyp | 2008-12-12 14:00:33 +0000 (Fri, 12 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tset_ld.c
-
-tests.c, tset_ld.c, tgeneric.c: Code clean-up based on icc warnings (as in r5492): Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO.
-
-------------------------------------------------------------------------
-r5720 | thevenyp | 2008-12-12 13:54:37 +0000 (Fri, 12 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: remove line 'GCC=' in icc tests which seems to confuse libtool.
-
-------------------------------------------------------------------------
-r5719 | vlefevre | 2008-12-12 12:54:10 +0000 (Fri, 12 Dec 2008) | 1 line
-Changed paths:
- M /trunk/set_ld.c
-
-set_ld.c: rewrote exp computation.
-------------------------------------------------------------------------
-r5718 | vlefevre | 2008-12-12 12:12:11 +0000 (Fri, 12 Dec 2008) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: avoid a possible gcc 4.1.2 bug with -ftrapv.
-------------------------------------------------------------------------
-r5717 | vlefevre | 2008-12-12 11:57:37 +0000 (Fri, 12 Dec 2008) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: revert incorrect change in r5713.
-------------------------------------------------------------------------
-r5716 | zimmerma | 2008-12-12 11:47:52 +0000 (Fri, 12 Dec 2008) | 8 lines
-Changed paths:
- M /trunk/set_ld.c
-
-[set_ld.c] fixed problem with CC=g++ on 64-bit computer:
-$ g++ -v
-Using built-in specs.
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release x86_64-linux-gnu
-Thread model: posix
-gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
-
-------------------------------------------------------------------------
-r5713 | zimmerma | 2008-12-12 10:05:49 +0000 (Fri, 12 Dec 2008) | 3 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-[vasprintf.c] patch to MPFR_ASSERTN(...) call to avoid failure with gcc -ftrapv
- with gcc 4.1.2 (probably compiler error)
-
-------------------------------------------------------------------------
-r5712 | thevenyp | 2008-12-12 09:20:14 +0000 (Fri, 12 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/tmul.c
-
-Makefile.am, tmul.c: Rename macro __SRCDIR to MPFR_SRCDIR.
-
-------------------------------------------------------------------------
-r5710 | thevenyp | 2008-12-11 15:20:56 +0000 (Thu, 11 Dec 2008) | 4 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/tests/Makefile.am
- M /trunk/tests/tmul.c
-
-configure.in: Add AM_PROG_CC_C_O needed by tmul_CPPFLAGS.
-tests/Makefile.am: Add tmul.dat in EXTRA_DIST and pass srcdir to tmul.c through tmul_CPPFLAGS.
-tests/tmul.c: Add path to tmul.dat.
-
-------------------------------------------------------------------------
-r5703 | vlefevre | 2008-12-09 16:46:13 +0000 (Tue, 09 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: TLS on darwin may work, but I don't know anything more.
-See thread <https://gcc.gnu.org/legacy-ml/gcc/2008-12/msg00107.html>.
-------------------------------------------------------------------------
-r5702 | vlefevre | 2008-12-08 16:02:29 +0000 (Mon, 08 Dec 2008) | 1 line
-Changed paths:
- M /trunk/README
-
-README: CVS -> Subversion.
-------------------------------------------------------------------------
-r5701 | vlefevre | 2008-12-03 12:40:01 +0000 (Wed, 03 Dec 2008) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: format --enable-decimal-float description on 80 columns.
-------------------------------------------------------------------------
-r5700 | vlefevre | 2008-12-03 12:38:06 +0000 (Wed, 03 Dec 2008) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: for --enable-thread-safe, say that the system must support
-it (like what has been done for --enable-logging, just above).
-------------------------------------------------------------------------
-r5699 | vlefevre | 2008-12-03 12:31:28 +0000 (Wed, 03 Dec 2008) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: added details about ---enable-thread-safe and TLS support.
-------------------------------------------------------------------------
-r5698 | vlefevre | 2008-11-28 12:09:08 +0000 (Fri, 28 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/urandomb.c
-
-urandomb.c: added comments and cleaned up code.
-mpfr.texi: improved description of mpfr_urandomb.
-------------------------------------------------------------------------
-r5697 | vlefevre | 2008-11-26 14:39:22 +0000 (Wed, 26 Nov 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: changed URL added in r5696 to avoid a redirection.
-------------------------------------------------------------------------
-r5696 | zimmerma | 2008-11-26 14:22:37 +0000 (Wed, 26 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] added official url on ftp.gnu.org
-
-------------------------------------------------------------------------
-r5695 | vlefevre | 2008-11-26 09:16:40 +0000 (Wed, 26 Nov 2008) | 1 line
-Changed paths:
- M /trunk/tests/tmul.c
-
-tests/tmul.c: removed useless variable.
-------------------------------------------------------------------------
-r5694 | vlefevre | 2008-11-26 09:14:38 +0000 (Wed, 26 Nov 2008) | 1 line
-Changed paths:
- M /trunk/tests/tmul.c
-
-tests/tmul.c: made reading a string from file more robust.
-------------------------------------------------------------------------
-r5693 | zimmerma | 2008-11-26 08:14:13 +0000 (Wed, 26 Nov 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tmul.c
- A /trunk/tests/tmul.dat
-
-[tmul.c] moved long strings to file tmul.dat, so that gcc -ansi
- -pedantic-errors works (ISO C90 does not support strings of length
- > 509)
-
-------------------------------------------------------------------------
-r5692 | vlefevre | 2008-11-26 00:55:32 +0000 (Wed, 26 Nov 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tinternals.c
-
-tests/tinternals.c: updated tests for guaranteed C90 support, e.g. with
-gcc -ansi -pedantic-errors (avoid error "string length 'nnn' is greater
-than the length '509' ISO C90 compilers are required to support" because
-expression for #expr in ASSERT_FAIL macro is too long).
-------------------------------------------------------------------------
-r5691 | vlefevre | 2008-11-26 00:48:12 +0000 (Wed, 26 Nov 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: in Section "To make a release", suggest -pedantic-errors.
-------------------------------------------------------------------------
-r5690 | vlefevre | 2008-11-22 15:49:07 +0000 (Sat, 22 Nov 2008) | 5 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/agm.c
- M /trunk/atan.c
- M /trunk/cos.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/gamma.c
- M /trunk/get_str.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/modf.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/mulders.c
- M /trunk/rec_sqrt.c
- M /trunk/root.c
- M /trunk/tanh.c
- M /trunk/vasprintf.c
- M /trunk/yn.c
-
-r5689 undone: some casts were incorrect (mp_exp_t may be greater than
-mp_prec_t, so that casting a mp_exp_t into a mp_prec_t can introduce a
-bug). There may be bugs in some cases, but the casts fix the symptom,
-not the bug (unless one casts the unsigned type to a signed type that
-is *strictly* larger, which is not possible here).
-------------------------------------------------------------------------
-r5689 | zimmerma | 2008-11-22 09:55:42 +0000 (Sat, 22 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/agm.c
- M /trunk/atan.c
- M /trunk/cos.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/gamma.c
- M /trunk/get_str.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/modf.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/mulders.c
- M /trunk/rec_sqrt.c
- M /trunk/root.c
- M /trunk/tanh.c
- M /trunk/vasprintf.c
- M /trunk/yn.c
-
-fixed some signed/unsigned warnings with g++ (please review)
-
-------------------------------------------------------------------------
-r5688 | zimmerma | 2008-11-21 12:53:47 +0000 (Fri, 21 Nov 2008) | 3 lines
-Changed paths:
- M /trunk/nightly-test
-
-[nightly-test] removed MPFR_CHECK_ALL (no longer used)
- added possibility to choose compiler (e.g., g++)
-
-------------------------------------------------------------------------
-r5687 | zimmerma | 2008-11-21 12:44:39 +0000 (Fri, 21 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] better check ./configure CC=g++
-
-------------------------------------------------------------------------
-r5686 | thevenyp | 2008-11-21 10:07:53 +0000 (Fri, 21 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-Fix inclusion order: the limit of integer types like size_t are defined in C++ only when __STDC_LIMIT_MACROS is defined before <stdint.h> is included (from ISO C99 7.18.3).
-
-------------------------------------------------------------------------
-r5685 | vlefevre | 2008-11-21 08:27:07 +0000 (Fri, 21 Nov 2008) | 1 line
-Changed paths:
- M /trunk/README
-
-README: added m4 directory (since it is distributed in the tarball).
-------------------------------------------------------------------------
-r5684 | vlefevre | 2008-11-20 19:29:58 +0000 (Thu, 20 Nov 2008) | 1 line
-Changed paths:
- M /trunk/Makefile.am
-
-Forgot to update Makefile.am too (for r5680).
-------------------------------------------------------------------------
-r5683 | vlefevre | 2008-11-20 19:20:18 +0000 (Thu, 20 Nov 2008) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: added AC_CONFIG_MACRO_DIR([m4]) for r5680.
-------------------------------------------------------------------------
-r5682 | zimmerma | 2008-11-20 17:14:35 +0000 (Thu, 20 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
-
-[mpfr-gmp.c] added comment on recent bug fix on MacOS
-
-------------------------------------------------------------------------
-r5681 | zimmerma | 2008-11-20 10:53:02 +0000 (Thu, 20 Nov 2008) | 3 lines
-Changed paths:
- M /trunk/tests/texp.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tpow_all.c
-
-[tests] changes to make compilation work with g++ (only fixed errors,
- several warnings remain)
-
-------------------------------------------------------------------------
-r5680 | vlefevre | 2008-11-20 10:42:50 +0000 (Thu, 20 Nov 2008) | 1 line
-Changed paths:
- A /trunk/m4
- A /trunk/m4/size_max.m4
-
-Added m4/size_max.m4 file (from gettext).
-------------------------------------------------------------------------
-r5679 | vlefevre | 2008-11-20 10:26:32 +0000 (Thu, 20 Nov 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: paragraph on tentative definitions.
-------------------------------------------------------------------------
-r5678 | zimmerma | 2008-11-20 09:13:09 +0000 (Thu, 20 Nov 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
-
-[mpfr-gmp.c] replace tentative definitions by real definitions, solves
- configure problems with mpc (see http://lists.gforge.inria.fr/pipermail/mpc-discuss/2008-November/000048.html)
-
-------------------------------------------------------------------------
-r5677 | vlefevre | 2008-11-18 01:01:33 +0000 (Tue, 18 Nov 2008) | 1 line
-Changed paths:
- M /trunk/hypot.c
-
-hypot.c: updated a comment.
-------------------------------------------------------------------------
-r5676 | vlefevre | 2008-11-18 00:40:13 +0000 (Tue, 18 Nov 2008) | 1 line
-Changed paths:
- M /trunk/tests/thypot.c
-
-tests/thypot.c: added a test.
-------------------------------------------------------------------------
-r5675 | vlefevre | 2008-11-18 00:21:09 +0000 (Tue, 18 Nov 2008) | 1 line
-Changed paths:
- M /trunk/hypot.c
-
-hypot.c: simplified an expression; cosmetic changes.
-------------------------------------------------------------------------
-r5674 | thevenyp | 2008-11-17 08:43:59 +0000 (Mon, 17 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-hypot.c: Fix underflow problem when diff_exp<=MPFR_EMAX_MAX-2 using fma (provided that mpfr_fma is immune to it).
-
-------------------------------------------------------------------------
-r5673 | thevenyp | 2008-11-17 08:40:52 +0000 (Mon, 17 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: Fix one typo in dilogarithm section.
-
-------------------------------------------------------------------------
-r5672 | vlefevre | 2008-11-12 14:53:07 +0000 (Wed, 12 Nov 2008) | 1 line
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-mpfr.texi, NEWS: update concerning mpfr_eq.
-------------------------------------------------------------------------
-r5671 | vlefevre | 2008-11-12 14:09:45 +0000 (Wed, 12 Nov 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: improved mpfr_eq documentation.
-------------------------------------------------------------------------
-r5670 | thevenyp | 2008-11-12 12:33:37 +0000 (Wed, 12 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-tests/tstrtofr.c: Add more information when test bug20081028 fails.
-
-------------------------------------------------------------------------
-r5669 | thevenyp | 2008-11-07 10:19:42 +0000 (Fri, 07 Nov 2008) | 3 lines
-Changed paths:
- M /trunk/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-strtofr.c: Replace non-zero digits look up by a simpler test, using the fact that parse_string did remove zeros at end of pstr->mant.
-tests/tstrtofr.c: Add other test values around 1 for the bug20081028 non regression test.
-
-------------------------------------------------------------------------
-r5668 | vlefevre | 2008-11-07 01:12:36 +0000 (Fri, 07 Nov 2008) | 1 line
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: improved style ("exact" is a boolean).
-------------------------------------------------------------------------
-r5667 | zimmerma | 2008-11-06 16:53:17 +0000 (Thu, 06 Nov 2008) | 4 lines
-Changed paths:
- M /trunk/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-[strtofr.c] new patch (ternary value was still wrong in some cases), should
- be ok now
-[tstrtofr.c] added new test
-
-------------------------------------------------------------------------
-r5666 | zimmerma | 2008-11-05 17:10:10 +0000 (Wed, 05 Nov 2008) | 2 lines
-Changed paths:
- M /trunk/mpn_exp.c
- M /trunk/strtofr.c
-
-[strtofr.c] review of patch added in revision 5660, and added comments
-
-------------------------------------------------------------------------
-r5665 | vlefevre | 2008-10-29 14:31:20 +0000 (Wed, 29 Oct 2008) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-Updated NEWS file.
-------------------------------------------------------------------------
-r5662 | vlefevre | 2008-10-29 13:52:17 +0000 (Wed, 29 Oct 2008) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: in r5660, as pstr_size and pstr->prec both have type size_t,
-changed the type of i from mp_size_t to size_t for consistency.
-------------------------------------------------------------------------
-r5661 | vlefevre | 2008-10-29 13:43:14 +0000 (Wed, 29 Oct 2008) | 3 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: reverted the change done in r3008, which led to a trivial
-assertion. I think the goal is to make sure that pstr_size (of type
-size_t) can be represented in a mp_exp_t (as required in the code).
-------------------------------------------------------------------------
-r5660 | thevenyp | 2008-10-29 12:05:11 +0000 (Wed, 29 Oct 2008) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: fix bug '[#6604] incorrect directed rounding in mpfr_strtofr'.
-
-------------------------------------------------------------------------
-r5659 | vlefevre | 2008-10-29 02:31:21 +0000 (Wed, 29 Oct 2008) | 3 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: replaced $(...) quoting style by "`...`" since the former
-is not supported everywhere (and indeed is not used by the autotools):
-https://gmplib.org/list-archives/gmp-bugs/2008-October/001185.html
-------------------------------------------------------------------------
-r5658 | vlefevre | 2008-10-29 01:21:29 +0000 (Wed, 29 Oct 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-tests/tstrtofr.c: added bug20081028 (bug found by Christoph Lauter
-in mpfr_set_str; this is the corresponding bug in mpfr_strtofr).
-------------------------------------------------------------------------
-r5657 | vlefevre | 2008-10-29 01:10:36 +0000 (Wed, 29 Oct 2008) | 1 line
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-tests/tstrtofr.c: corrections related to C usage.
-------------------------------------------------------------------------
-r5656 | vlefevre | 2008-10-29 00:59:00 +0000 (Wed, 29 Oct 2008) | 1 line
-Changed paths:
- M /trunk/tests/tset_str.c
-
-tests/tset_str.c: added bug20081028 (bug found by Christoph Lauter).
-------------------------------------------------------------------------
-r5655 | vlefevre | 2008-10-27 03:55:33 +0000 (Mon, 27 Oct 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated @dircategory (request by Karl Berry).
-------------------------------------------------------------------------
-r5654 | vlefevre | 2008-10-27 03:27:10 +0000 (Mon, 27 Oct 2008) | 1 line
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_patches.sh
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/modf.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-thread.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpfrlint
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/printf.c
- M /trunk/random2.c
- M /trunk/rec_sqrt.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/setsign.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/signbit.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_all.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-This is now GNU MPFR!
-------------------------------------------------------------------------
-r5653 | vlefevre | 2008-10-27 03:10:36 +0000 (Mon, 27 Oct 2008) | 1 line
-Changed paths:
- M /trunk/README
-
-README: CVS -> Subversion.
-------------------------------------------------------------------------
-r5652 | thevenyp | 2008-10-23 18:40:33 +0000 (Thu, 23 Oct 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: Fix bug with '#' and 'g' flag combination, see also defect report at http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_233.htm.
-tests/tsprintf.c: Fix wrong test value accordingly, add non-regression tests.
-
-------------------------------------------------------------------------
-r5651 | zimmerma | 2008-10-23 07:29:29 +0000 (Thu, 23 Oct 2008) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/set_d64.c
-
-[get_d64.c,set_d64.c] added reference to TR 24732
-
-------------------------------------------------------------------------
-r5650 | vlefevre | 2008-10-16 08:17:35 +0000 (Thu, 16 Oct 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: added a comment about MPFR_SIGN.
-------------------------------------------------------------------------
-r5649 | zimmerma | 2008-10-05 08:51:41 +0000 (Sun, 05 Oct 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-[mpfr.h] fixed typo, and added warning about MPFR_SIGN.
- Shouldn't we move it in mpfr-impl.h?
-
-------------------------------------------------------------------------
-r5647 | vlefevre | 2008-10-03 11:45:14 +0000 (Fri, 03 Oct 2008) | 1 line
-Changed paths:
- M /trunk/INSTALL
- M /trunk/configure.in
-
-INSTALL, configure.in: corrected documentation of --with-gmp* options.
-------------------------------------------------------------------------
-r5645 | vlefevre | 2008-10-02 11:40:42 +0000 (Thu, 02 Oct 2008) | 1 line
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: gave more details about --with-gmp-build.
-------------------------------------------------------------------------
-r5644 | zimmerma | 2008-10-02 11:17:49 +0000 (Thu, 02 Oct 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-[INSTALL] added warning about usage of --with-gmp-build
-
-------------------------------------------------------------------------
-r5643 | vlefevre | 2008-09-21 11:56:06 +0000 (Sun, 21 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: updated LIA-2 terminology ("pole" was in the latest public draft,
-"infinitary" in the final standard).
-------------------------------------------------------------------------
-r5642 | thevenyp | 2008-09-19 08:50:01 +0000 (Fri, 19 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-tests/tstrtofr.c: Remove underflow test unintentionally committed with revision 5640.
-
-------------------------------------------------------------------------
-r5640 | thevenyp | 2008-09-18 16:33:16 +0000 (Thu, 18 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- D /trunk/random.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsum.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
-
-Remove obsolete mpfr_random function and replace it by mpfr_urandomb in tests.
-
-------------------------------------------------------------------------
-r5639 | thevenyp | 2008-09-18 16:25:31 +0000 (Thu, 18 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
-
-Add void in prototype.
-
-------------------------------------------------------------------------
-r5638 | vlefevre | 2008-09-18 13:40:11 +0000 (Thu, 18 Sep 2008) | 1 line
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: added comments about the MPFR_FPU_PREC macro.
-------------------------------------------------------------------------
-r5636 | zimmerma | 2008-09-18 12:48:28 +0000 (Thu, 18 Sep 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-[tget_str.c] replaced 'double' input by 'char*' to avoid problems with single
- precision (partially solves #3353)
-
-------------------------------------------------------------------------
-r5634 | zimmerma | 2008-09-17 12:28:22 +0000 (Wed, 17 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-[README.dev] added item about coverage of releases
-
-------------------------------------------------------------------------
-r5632 | zimmerma | 2008-09-16 12:48:29 +0000 (Tue, 16 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/Makefile.am
- M /trunk/algorithms.tex
- M /trunk/atan.c
- M /trunk/extract.c
- M /trunk/mpfr.texi
-
-final got rid of generic.c (bug 6199)
-
-------------------------------------------------------------------------
-r5631 | zimmerma | 2008-09-16 12:37:11 +0000 (Tue, 16 Sep 2008) | 2 lines
-Changed paths:
- D /trunk/generic.c
-
-[generic.c] removed unused file
-
-------------------------------------------------------------------------
-r5630 | vlefevre | 2008-09-16 09:53:59 +0000 (Tue, 16 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-NEWS, mpfr.texi: documented the fact that mpfr_random and mpfr_random2
-will be suppressed in the next release.
-------------------------------------------------------------------------
-r5629 | vlefevre | 2008-09-16 08:53:00 +0000 (Tue, 16 Sep 2008) | 1 line
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
-------------------------------------------------------------------------
-r5623 | thevenyp | 2008-09-10 10:00:31 +0000 (Wed, 10 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-tests/tpow_z.c: Check test for bug20080904 with the minimum possible negative exponent so as not to underflow with (future) 128 bits machine.
-
-------------------------------------------------------------------------
-r5620 | vlefevre | 2008-09-06 10:19:10 +0000 (Sat, 06 Sep 2008) | 1 line
-Changed paths:
- M /trunk/pow.c
-
-pow.c: fixed bug20080904 (from tpow_z.c).
-------------------------------------------------------------------------
-r5619 | vlefevre | 2008-09-06 10:08:37 +0000 (Sat, 06 Sep 2008) | 1 line
-Changed paths:
- M /trunk/pow.c
-
-pow.c: added log messages.
-------------------------------------------------------------------------
-r5618 | thevenyp | 2008-09-05 10:10:41 +0000 (Fri, 05 Sep 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-tests/tpow_z.c: Add a test that underflows.
-
-------------------------------------------------------------------------
-r5616 | vlefevre | 2008-09-05 09:05:25 +0000 (Fri, 05 Sep 2008) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: updated a comment (for the next automake version).
-------------------------------------------------------------------------
-r5614 | vlefevre | 2008-09-05 08:56:53 +0000 (Fri, 05 Sep 2008) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS: added a note about mpfr_init_gmp_rand (removed in r4953).
-------------------------------------------------------------------------
-r5613 | vlefevre | 2008-09-04 02:44:04 +0000 (Thu, 04 Sep 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: update (about AM_MAINTAINER_MODE).
-------------------------------------------------------------------------
-r5609 | vlefevre | 2008-09-02 15:09:20 +0000 (Tue, 02 Sep 2008) | 1 line
-Changed paths:
- M /trunk/README
-
-Updated README file.
-------------------------------------------------------------------------
-r5607 | vlefevre | 2008-09-01 11:51:00 +0000 (Mon, 01 Sep 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
- D /trunk/patch-libtool
-
-Removed patch-libtool and updated README.dev as libtool has been fixed.
-------------------------------------------------------------------------
-r5606 | vlefevre | 2008-09-01 11:47:16 +0000 (Mon, 01 Sep 2008) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS file update (get default $CC and $CFLAGS from gmp.h).
-------------------------------------------------------------------------
-r5605 | vlefevre | 2008-09-01 11:46:24 +0000 (Mon, 01 Sep 2008) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: removed a useless blank line.
-------------------------------------------------------------------------
-r5604 | vlefevre | 2008-09-01 11:40:36 +0000 (Mon, 01 Sep 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: reverse-merged r5440 (about __GMP_CC/__GMP_CFLAGS) as said.
-------------------------------------------------------------------------
-r5602 | zimmerma | 2008-08-27 11:43:31 +0000 (Wed, 27 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-[algorithms.tex] the truncation error for rec_sqrt was correct, but the
-reasoning was not detailed enough
-
-------------------------------------------------------------------------
-r5600 | vlefevre | 2008-08-27 10:58:23 +0000 (Wed, 27 Aug 2008) | 3 lines
-Changed paths:
- A /trunk/patch-aclocal-icc
-
-Added patch-aclocal-icc; this is a port of the patch posted on
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485421
-for aclocal.m4 when libtool 1.5.26-4 from Debian has been used.
-------------------------------------------------------------------------
-r5599 | zimmerma | 2008-08-27 10:00:35 +0000 (Wed, 27 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/rec_sqrt.c
- M /trunk/round_p.c
-
-[rec_sqrt.c] fixed bug "bad_case1" (truncation error was forgotten, when
-output precision was smaller than input precision)
-
-------------------------------------------------------------------------
-r5595 | vlefevre | 2008-08-27 08:40:53 +0000 (Wed, 27 Aug 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-------------------------------------------------------------------------
-r5593 | vlefevre | 2008-08-26 13:56:06 +0000 (Tue, 26 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/trec_sqrt.c
-
-tests/trec_sqrt.c: enable the tests only with MPFR 2.4.0+.
-------------------------------------------------------------------------
-r5592 | vlefevre | 2008-08-26 13:32:45 +0000 (Tue, 26 Aug 2008) | 1 line
-Changed paths:
- M /trunk/NEWS
-
-NEWS: noted when some changes were applied in 2.3.* versions.
-------------------------------------------------------------------------
-r5590 | vlefevre | 2008-08-25 13:26:32 +0000 (Mon, 25 Aug 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: completed information about integer types.
-------------------------------------------------------------------------
-r5589 | vlefevre | 2008-08-25 10:55:38 +0000 (Mon, 25 Aug 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added information about mixing signed and unsigned types.
-------------------------------------------------------------------------
-r5588 | vlefevre | 2008-08-25 10:40:09 +0000 (Mon, 25 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/li2.c
-
-li2.c: avoid even more mixing between signed and unsigned types, by
-casting mpfr_prec_t to mp_exp_t in expressions involving mp_exp_t.
-This time the bug is fixed: tli2 no longer freezes in 64 bits.
-------------------------------------------------------------------------
-r5587 | vlefevre | 2008-08-25 10:26:54 +0000 (Mon, 25 Aug 2008) | 4 lines
-Changed paths:
- M /trunk/li2.c
-
-li2.c: use an "int" instead of "unsigned int" in li2_series() to avoid
-mixing signed and unsigned types, which can yield implicit conversions
-from signed into unsigned, and maybe problems on some platforms. This
-doesn't fix the current freeze of tli2 on 64-bit machines, though.
-------------------------------------------------------------------------
-r5585 | vlefevre | 2008-08-24 23:07:45 +0000 (Sun, 24 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tests/tgeneric.c: changed the way a warning with gcc 4.2+ is avoided
-(r5335), as suggested by Manuel López-Ibáñez on GCC bug 36299.
-------------------------------------------------------------------------
-r5584 | vlefevre | 2008-08-21 10:27:58 +0000 (Thu, 21 Aug 2008) | 2 lines
-Changed paths:
- A /trunk/tests/data/sqr
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
-
-Added data_check support to mpfr_sqr.
-Added bad_cases support to mpfr_sqr and mpfr_sqrt.
-------------------------------------------------------------------------
-r5582 | vlefevre | 2008-08-21 10:17:19 +0000 (Thu, 21 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tsqr.c
-
-tests/tsqr.c: corrected function definitions.
-------------------------------------------------------------------------
-r5581 | vlefevre | 2008-08-21 10:12:49 +0000 (Thu, 21 Aug 2008) | 1 line
-Changed paths:
- A /trunk/tests/data/rec_sqrt
- M /trunk/tests/trec_sqrt.c
-
-Added data_check & bad_cases support to mpfr_rec_sqrt.
-------------------------------------------------------------------------
-r5580 | vlefevre | 2008-08-21 10:09:34 +0000 (Thu, 21 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/trec_sqrt.c
-
-tests/trec_sqrt.c: added bad case that makes mpfr_rec_sqrt fail.
-------------------------------------------------------------------------
-r5579 | vlefevre | 2008-08-21 03:03:23 +0000 (Thu, 21 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: as not all ICC versions define the __ICC macro (only
-the __INTEL_COMPILER macro can be defined), define the __MPFR_ICC
-and __MPFR_GNUC macros in another way.
-------------------------------------------------------------------------
-r5578 | vlefevre | 2008-08-21 02:48:41 +0000 (Thu, 21 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: fixed compilation failure when HAVE_DENORMS isn't
-defined, such as with icc 10.1 on Itanium.
-------------------------------------------------------------------------
-r5577 | vlefevre | 2008-08-21 02:43:45 +0000 (Thu, 21 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: to allow random values to be reproducible,
-do not call randlimb several times in a same expression,
-because the evaluation order is unspecified.
-------------------------------------------------------------------------
-r5576 | vlefevre | 2008-08-21 02:38:07 +0000 (Thu, 21 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: added test of mpfr_rec_sqrt (only with MPFR 2.4.0+).
-------------------------------------------------------------------------
-r5575 | vlefevre | 2008-08-21 02:35:37 +0000 (Thu, 21 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: removed useless parentheses.
-------------------------------------------------------------------------
-r5574 | vlefevre | 2008-08-21 02:27:56 +0000 (Thu, 21 Aug 2008) | 1 line
-Changed paths:
- M /trunk/rec_sqrt.c
-
-rec_sqrt.c: added logging support.
-------------------------------------------------------------------------
-r5572 | vlefevre | 2008-08-21 01:27:38 +0000 (Thu, 21 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: replaced "towards" by "toward" for consistency with
-the MPFR manual and the standards.
-------------------------------------------------------------------------
-r5570 | vlefevre | 2008-08-21 01:22:42 +0000 (Thu, 21 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: corrected English usage, spelling and typography
-in the section on mpfr_hypot.
-------------------------------------------------------------------------
-r5566 | vlefevre | 2008-08-20 22:17:34 +0000 (Wed, 20 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-tests/thypot.c: added a test for tiny x and y (already done by the
-generic tests, but not yet in the 2.3 branch in extended exponent
-range).
-------------------------------------------------------------------------
-r5565 | vlefevre | 2008-08-20 21:43:34 +0000 (Wed, 20 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tests/tgeneric.c: for the special cases tested in precision p1
-for n <= 3, set the extended exponent range.
-------------------------------------------------------------------------
-r5564 | vlefevre | 2008-08-20 21:10:29 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/thypot.c
-
-tests/thypot.c: improved error messages.
-------------------------------------------------------------------------
-r5563 | vlefevre | 2008-08-20 20:48:44 +0000 (Wed, 20 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-tests/thypot.c: perform some tests both in the current exponent range
-and in the extended exponent range, so that the lost-overflow bug of
-MPFR 2.3.1 can be triggered on 64-bit machines too.
-------------------------------------------------------------------------
-r5561 | vlefevre | 2008-08-20 19:43:57 +0000 (Wed, 20 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c:
- * In cmpres(), if z1 and z2 were both zeros, their sign wasn't tested.
- * Added test of mpfr_sqr and mpfr_sqrt.
-------------------------------------------------------------------------
-r5559 | vlefevre | 2008-08-20 16:24:24 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added a paragraph on MPFR internal data.
-------------------------------------------------------------------------
-r5557 | vlefevre | 2008-08-20 14:11:18 +0000 (Wed, 20 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: fixed the underflow/overflow detection for n < 0 by using
-a method similar to mpfr_pow_z.
-------------------------------------------------------------------------
-r5556 | vlefevre | 2008-08-20 13:21:00 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: added logging support.
-------------------------------------------------------------------------
-r5555 | vlefevre | 2008-08-20 12:58:21 +0000 (Wed, 20 Aug 2008) | 4 lines
-Changed paths:
- M /trunk/pow.c
-
-pow.c: fixed bug in mpfr_pow_general by computing correct bounds
-on exp(y*ln|x|). ==> tpow no longer fails in bug20080820.
-Note: this bug could affect only underflow cases and possibly cases
-near overflow.
-------------------------------------------------------------------------
-r5554 | vlefevre | 2008-08-20 12:48:53 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: updated comment for bug20080820().
-------------------------------------------------------------------------
-r5553 | vlefevre | 2008-08-20 12:47:40 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: added testcase for bug mentioned in r5552.
-------------------------------------------------------------------------
-r5552 | vlefevre | 2008-08-20 11:41:13 +0000 (Wed, 20 Aug 2008) | 4 lines
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: solves the underflow problem in round-to-nearest by using
-mpfr_pow_general in precision 2 (like in mpfr_pow_pos_z), but this
-currently fails due to a more general bug from r4940 (the rounding
-modes to compute an upper bound on exp(y*ln|x|) are incorrect).
-------------------------------------------------------------------------
-r5551 | vlefevre | 2008-08-20 06:42:16 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: formatting.
-------------------------------------------------------------------------
-r5550 | vlefevre | 2008-08-20 06:36:59 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: moved a log message.
-------------------------------------------------------------------------
-r5549 | vlefevre | 2008-08-20 06:34:52 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: added log messages.
-------------------------------------------------------------------------
-r5548 | vlefevre | 2008-08-20 05:55:56 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: added an underflow test of x^y with y integer < 0.
-------------------------------------------------------------------------
-r5547 | vlefevre | 2008-08-20 04:17:03 +0000 (Wed, 20 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: no longer take care of the possibly lost overflow flag, as
-the other functions do not do this either; this general problem has
-been fixed in mpfr_check_range (r5545).
-------------------------------------------------------------------------
-r5545 | vlefevre | 2008-08-20 04:07:16 +0000 (Wed, 20 Aug 2008) | 7 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/exceptions.c
- M /trunk/mpfr.texi
-
-Fixed the following problem:
- The overflow flag can be lost in many functions called with the
- maximum exponent equal to MPFR_EMAX_MAX (this is the default on
- 32-bit machines) when the temporary result (in a higher precision)
- is representable but once rounded, it yields an overflow.
-This needed a slight change of behavior of the mpfr_check_range function
-(defined in exceptions.c). Described this change in mpfr.texi and NEWS.
-------------------------------------------------------------------------
-r5544 | vlefevre | 2008-08-20 02:59:16 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: fixed some of the underflow/overflow problems for z < 0.
-------------------------------------------------------------------------
-r5543 | vlefevre | 2008-08-20 02:56:38 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: fixed mpfr_clear in overflow_inv.
-------------------------------------------------------------------------
-r5542 | vlefevre | 2008-08-20 02:50:02 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: more detailed error messages.
-------------------------------------------------------------------------
-r5541 | vlefevre | 2008-08-20 01:23:30 +0000 (Wed, 20 Aug 2008) | 5 lines
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: improved overflow_inv tests to trigger a bug
-in mpfr_pow_z due to incorrect rounding mode settings in r5315:
-on a 64-bit Linux machine, "./tpow_all 1" ends with:
-Bad overflow flag in overflow_inv for mpfr_pow, extended exponent range,
-s = 1, t = 1, GMP_RNDZ
-------------------------------------------------------------------------
-r5540 | vlefevre | 2008-08-20 00:32:17 +0000 (Wed, 20 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: in overflow_inv, reduced t to [0,5] and added tests.
-------------------------------------------------------------------------
-r5539 | vlefevre | 2008-08-19 23:48:19 +0000 (Tue, 19 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: improved error messages.
-------------------------------------------------------------------------
-r5538 | vlefevre | 2008-08-19 23:39:35 +0000 (Tue, 19 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: changed the precisions in overflow_inv for clearer
-output (the reported failures are the same).
-------------------------------------------------------------------------
-r5537 | vlefevre | 2008-08-19 23:34:23 +0000 (Tue, 19 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: information about extended exponent range wasn't
-always output. For simplicity to provide such an information, made
-ext a global variable.
-------------------------------------------------------------------------
-r5536 | vlefevre | 2008-08-19 23:23:10 +0000 (Tue, 19 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: added overflow tests for x^(-1). -> Failure.
-------------------------------------------------------------------------
-r5535 | vlefevre | 2008-08-19 00:35:49 +0000 (Tue, 19 Aug 2008) | 1 line
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/pow.c
-
-Fixed basic underflow checking in mpfr_pow.
-------------------------------------------------------------------------
-r5534 | vlefevre | 2008-08-18 23:30:59 +0000 (Mon, 18 Aug 2008) | 4 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/lngamma.c
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: defined macro INITIALIZED to declare that some variable
- is initialized before being used.
-README.dev: described the use of this macro.
-lngamma.c: replaced the dummy initialization by this macro.
-------------------------------------------------------------------------
-r5533 | vlefevre | 2008-08-16 01:04:05 +0000 (Sat, 16 Aug 2008) | 1 line
-Changed paths:
- M /trunk/pow.c
-
-pow.c: updated comments.
-------------------------------------------------------------------------
-r5532 | vlefevre | 2008-08-16 00:48:58 +0000 (Sat, 16 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: added tests -> assertion failed in pow.c line 603.
-------------------------------------------------------------------------
-r5531 | vlefevre | 2008-08-15 23:56:47 +0000 (Fri, 15 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: added test of mpfr_ui_div.
-------------------------------------------------------------------------
-r5530 | vlefevre | 2008-08-15 23:28:46 +0000 (Fri, 15 Aug 2008) | 1 line
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: improved comments.
-------------------------------------------------------------------------
-r5527 | vlefevre | 2008-08-14 16:34:58 +0000 (Thu, 14 Aug 2008) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: additions related to MPFR caches.
- * Added Section "Memory Handling" mentioning caches.
- * Added call to mpfr_free_cache in the first example.
- * Updated description of function mpfr_free_cache.
-------------------------------------------------------------------------
-r5525 | vlefevre | 2008-08-14 10:17:24 +0000 (Thu, 14 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: improved an underflow test to trigger the bug fixed
-in r5453 on 32-bit machines too.
-------------------------------------------------------------------------
-r5524 | vlefevre | 2008-08-14 09:39:24 +0000 (Thu, 14 Aug 2008) | 1 line
-Changed paths:
- M /trunk/log.c
-
-log.c: fixed a log message.
-------------------------------------------------------------------------
-r5523 | vlefevre | 2008-08-14 09:38:04 +0000 (Thu, 14 Aug 2008) | 1 line
-Changed paths:
- M /trunk/exp_2.c
-
-exp_2.c: fixed other log messages.
-------------------------------------------------------------------------
-r5522 | vlefevre | 2008-08-14 09:20:14 +0000 (Thu, 14 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-exp_2.c: fixed a log message (the format didn't correspond to the types)
-and improved it.
-------------------------------------------------------------------------
-r5519 | vlefevre | 2008-08-12 22:27:44 +0000 (Tue, 12 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tdiv.c
-
-tests/tdiv.c: completed underflow test by testing negative results too.
-------------------------------------------------------------------------
-r5517 | vlefevre | 2008-08-12 22:03:37 +0000 (Tue, 12 Aug 2008) | 5 lines
-Changed paths:
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/mul_2si.c
- M /trunk/tests/tmul_2exp.c
-
-mul_2si.c, div_2si.c, div_2ui.c: fixed double-rounding problem in
-rounding to nearest when the rounded result in unbounded exponent
-range is 2^(emin - 2).
-tests/tmul_2exp.c: test x = 15/16 too. Now tmul_2exp no longer fails
-(with the correction in div.c from r5515).
-------------------------------------------------------------------------
-r5516 | vlefevre | 2008-08-12 21:56:55 +0000 (Tue, 12 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-tests/tdiv.c correction: the underflow bug was in case when the
-result had to be zero.
-------------------------------------------------------------------------
-r5515 | vlefevre | 2008-08-12 21:52:25 +0000 (Tue, 12 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-div.c: fixed underflow bug that occurs in rounding to nearest when
-the rounded result in unbounded exponent range is 2^(emin - 2) and
-inex > 0: one got a non-zero result instead of +/-0.
-------------------------------------------------------------------------
-r5514 | vlefevre | 2008-08-12 21:47:44 +0000 (Tue, 12 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-tests/tdiv.c: added a test that triggers a bug in mpfr_div in case of
-underflow in rounding to nearest when the result must be non-zero.
-------------------------------------------------------------------------
-r5513 | vlefevre | 2008-08-12 14:43:50 +0000 (Tue, 12 Aug 2008) | 1 line
-Changed paths:
- M /trunk/div.c
-
-div.c: added logging support.
-------------------------------------------------------------------------
-r5512 | vlefevre | 2008-08-12 13:54:40 +0000 (Tue, 12 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-tests/tmul_2exp.c: test mpfr_div_2ui too.
-------------------------------------------------------------------------
-r5511 | vlefevre | 2008-08-12 13:37:03 +0000 (Tue, 12 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-tests/tmul_2exp.c: test mpfr_div_2si too.
-------------------------------------------------------------------------
-r5510 | vlefevre | 2008-08-12 13:28:20 +0000 (Tue, 12 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-tests/tmul_2exp.c: updated underflow() test to trigger a double-rounding
-bug in case of underflow.
-------------------------------------------------------------------------
-r5509 | vlefevre | 2008-08-12 13:11:19 +0000 (Tue, 12 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: updated comment (the double-rounding bug triggered by
-underflow_up() is in mpfr_mul_2si).
-------------------------------------------------------------------------
-r5508 | vlefevre | 2008-08-12 13:02:08 +0000 (Tue, 12 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: updated underflow_up() test: added case exp(eps) ~= 1/2,
-which fails due to a double-rounding problem in rescaling the result.
-------------------------------------------------------------------------
-r5507 | vlefevre | 2008-08-12 12:08:10 +0000 (Tue, 12 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: improved comments in underflow_up().
-------------------------------------------------------------------------
-r5505 | vlefevre | 2008-08-11 08:09:14 +0000 (Mon, 11 Aug 2008) | 33 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/pow.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/tests/tpow_all.c
-
-Merged vlefevre branch:
- svn merge -c-5445 .
- svn merge -r5436:HEAD .../mpfr/branches/vlefevre
-* pow.c:
- - Moved the general case from mpfr_pow() to a new internal function
- mpfr_pow_general().
- - In this function (from old code), avoid unnecessary overflow test
- if the intermediate result is not an infinity (which was the case
- of underflow with non-zero result, thus not an overflow).
- - Fixed a double-rounding problem that occurred in this function in
- some underflow cases when rescaling the result.
- - Added log messages.
-* mpfr-impl.h: added mpfr_pow_general prototype.
-* pow_z.c:
- - The underflow case of mpfr_pow_pos_z() in rounding to nearest,
- which was incorrect, is now handled by calling mpfr_pow_general(),
- which can scale the result thus decide whether the rounded result
- should be 0 or nextabove(0). To avoid the exact cases of x^y with
- y integer (not supported by mpfr_pow_general()), rounding is done
- in precision 2 (this is also faster!).
- - Fixed underflow-related bug (case exact result = 2^(emin-2), in
- rounding to nearest).
- - Added log messages.
-* pow_ui.c:
- - Swapped parameters x and y for consistency (-> y = x^n).
- - Fixed the internal overflows and underflows (which could yield
- spurious overflows/underflows and incorrect results) by using
- mpfr_pow_z.
-* tests/tpow_all.c:
- - Test flags in test_others and cmpres; cmpres argument z1 can now
- be a null pointer (if unknown pure FP value, thus not tested).
- - Added a test of 2^(emin - i/4) with 0 <= i <= 12, that triggered
- the bugs mentioned above (and now fixed).
-------------------------------------------------------------------------
-r5503 | vlefevre | 2008-08-11 07:02:01 +0000 (Mon, 11 Aug 2008) | 1 line
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-tests/tmul_2exp.c: added underflow tests.
-------------------------------------------------------------------------
-r5502 | vlefevre | 2008-08-11 07:00:17 +0000 (Mon, 11 Aug 2008) | 1 line
-Changed paths:
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
-
-Added logging support to mpfr_{mul,div}_2{si,ui}.
-------------------------------------------------------------------------
-r5498 | vlefevre | 2008-08-08 14:29:03 +0000 (Fri, 08 Aug 2008) | 1 line
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: added a space for MPFR_LOG_MSG.
-------------------------------------------------------------------------
-r5496 | vlefevre | 2008-08-08 14:20:45 +0000 (Fri, 08 Aug 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: corrected MPFR_LOG_MSG example.
-------------------------------------------------------------------------
-r5494 | vlefevre | 2008-08-08 07:27:23 +0000 (Fri, 08 Aug 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: added a comment concerning ICC.
-------------------------------------------------------------------------
-r5493 | vlefevre | 2008-08-07 21:56:50 +0000 (Thu, 07 Aug 2008) | 1 line
-Changed paths:
- M /trunk/atan2.c
- M /trunk/get_d64.c
- M /trunk/li2.c
- M /trunk/set_d64.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/yn.c
-
-Final code clean-up based on icc warnings.
-------------------------------------------------------------------------
-r5492 | vlefevre | 2008-08-07 21:17:14 +0000 (Thu, 07 Aug 2008) | 7 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/clears.c
- M /trunk/cos.c
- M /trunk/fits_intmax.c
- M /trunk/fits_uintmax.c
- M /trunk/frac.c
- M /trunk/get_ld.c
- M /trunk/get_sj.c
- M /trunk/get_uj.c
- M /trunk/hypot.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/set_sj.c
- M /trunk/set_uj.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tset_sj.c
- M /trunk/volatile.c
-
-Further code clean-up (and consistency) based on icc warnings:
- * Removed useless code.
- * Avoid hiding variable declarations.
- * Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO.
- * In MPFR_RNDRAW_GEN macro definition, variables declared locally now
- start with an underscore to avoid possible conflits with parameters
- (and modified macro calls that use these variables).
-------------------------------------------------------------------------
-r5491 | vlefevre | 2008-08-07 17:13:16 +0000 (Thu, 07 Aug 2008) | 1 line
-Changed paths:
- M /trunk/round_prec.c
-
-round_prec.c: avoid hiding variable declaration (detected by icc).
-------------------------------------------------------------------------
-r5490 | vlefevre | 2008-08-07 16:30:13 +0000 (Thu, 07 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: fixed Ziv's iteration (code from r3305) by using MPFR_ZIV_NEXT
-(problem detected by icc, because variable "loop" was never used).
-------------------------------------------------------------------------
-r5489 | vlefevre | 2008-08-07 16:15:28 +0000 (Thu, 07 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-mul_ui.c: removed variable that was set but never used (detected by icc,
-but not by gcc, probably because of early optimization).
-------------------------------------------------------------------------
-r5488 | vlefevre | 2008-08-07 16:08:45 +0000 (Thu, 07 Aug 2008) | 4 lines
-Changed paths:
- M /trunk/inp_str.c
-
-inp_str.c: fixed possible implementation-defined behavior (a value
-from the unsigned char range -- from getc -- was stored in a char,
-and if the char type is signed and the value cannot be represented
-in a char, this is implementation-defined).
-------------------------------------------------------------------------
-r5487 | vlefevre | 2008-08-07 15:36:59 +0000 (Thu, 07 Aug 2008) | 1 line
-Changed paths:
- M /trunk/get_str.c
-
-get_str.c: avoid hiding variable declaration (detected by icc).
-------------------------------------------------------------------------
-r5486 | vlefevre | 2008-08-07 14:44:18 +0000 (Thu, 07 Aug 2008) | 1 line
-Changed paths:
- M /trunk/div.c
-
-div.c: avoid hiding variable declaration (detected by icc).
-------------------------------------------------------------------------
-r5485 | vlefevre | 2008-08-07 14:33:44 +0000 (Thu, 07 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-mpfr.h, mpfr-impl.h: avoid warnings with icc (at least icc 10.1).
-README.dev: added a paragraph on the test of "boolean" macros.
-------------------------------------------------------------------------
-r5483 | vlefevre | 2008-08-05 08:02:07 +0000 (Tue, 05 Aug 2008) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: dist-lzma needs automake 1.10.1.
-------------------------------------------------------------------------
-r5481 | vlefevre | 2008-08-04 08:39:47 +0000 (Mon, 04 Aug 2008) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: "make dist" generates lzma-compressed tarball too.
-------------------------------------------------------------------------
-r5480 | zimmerma | 2008-08-02 09:36:31 +0000 (Sat, 02 Aug 2008) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] fixed case where cancel is negative, added comments and improved
-code when initial n is known to be 0
-
-------------------------------------------------------------------------
-r5479 | vlefevre | 2008-08-01 21:18:06 +0000 (Fri, 01 Aug 2008) | 1 line
-Changed paths:
- M /trunk/exp_2.c
-
-exp_2.c: MPFR_EXP -> MPFR_GET_EXP.
-------------------------------------------------------------------------
-r5478 | zimmerma | 2008-08-01 16:45:45 +0000 (Fri, 01 Aug 2008) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-[exp_2.c] fixed bug20080731
-
-------------------------------------------------------------------------
-r5477 | vlefevre | 2008-07-31 16:30:31 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk
-
-Added algorithms.out to svn:ignore property.
-------------------------------------------------------------------------
-r5476 | vlefevre | 2008-07-31 16:27:42 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: added testcase for new bug found in mpfr_exp_2.
-------------------------------------------------------------------------
-r5475 | vlefevre | 2008-07-31 16:02:54 +0000 (Thu, 31 Jul 2008) | 3 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/exp_2.c
-
-exp.c, exp_2.c: fixed the overflow/underflow detection. The underflow_up
-test in texp.c still fails for mpfr_exp_2 only, but this seems to be due
-to a bug in this function (incorrect error bound?).
-------------------------------------------------------------------------
-r5474 | vlefevre | 2008-07-31 15:03:49 +0000 (Thu, 31 Jul 2008) | 3 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: added underflow tests to underflow_up; currently fail due
-to incorrect underflow detection in mpfr_exp (and if this detection is
-disabled, mpfr_exp_3 behaves correctly, but not mpfr_exp_2).
-------------------------------------------------------------------------
-r5473 | thevenyp | 2008-07-31 14:08:09 +0000 (Thu, 31 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-Fix typos, improve wording.
-
-------------------------------------------------------------------------
-r5472 | vlefevre | 2008-07-31 13:01:16 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk/exp_2.c
-
-Added logging support to mpfr_exp_2 (exp_2.c).
-------------------------------------------------------------------------
-r5471 | vlefevre | 2008-07-31 11:36:01 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: updated comment concerning the bug fixed in r5469.
-------------------------------------------------------------------------
-r5470 | vlefevre | 2008-07-31 10:24:28 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk/exp.c
-
-exp.c: updated comment about the exp3.c routine.
-------------------------------------------------------------------------
-r5469 | vlefevre | 2008-07-31 10:22:48 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk/exp3.c
-
-exp3.c: fixed internal underflow.
-------------------------------------------------------------------------
-r5468 | vlefevre | 2008-07-31 09:59:53 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk/fma.c
- M /trunk/fms.c
-
-fma.c, fms.c: added a comment about apparently incorrect scaling.
-------------------------------------------------------------------------
-r5466 | vlefevre | 2008-07-31 09:46:43 +0000 (Thu, 31 Jul 2008) | 1 line
-Changed paths:
- M /trunk/sqr.c
- M /trunk/sqrt.c
-
-Added logging support to mpfr_sqr and mpfr_sqrt.
-------------------------------------------------------------------------
-r5465 | thevenyp | 2008-07-31 08:31:11 +0000 (Thu, 31 Jul 2008) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/hypot.c
-
-hypot.c: Fix comment.
-BUGS: Add known bug for mpfr_hypot.
-
-------------------------------------------------------------------------
-r5464 | thevenyp | 2008-07-30 15:13:42 +0000 (Wed, 30 Jul 2008) | 5 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/hypot.c
- M /trunk/tests/thypot.c
-
-algorithms.tex: Prove the correctness of the algorithm used for mpfr_hypot
-when the difference of inputs' exponents is less then exp_max - 2.
-hypot.c: Change algorithm according to its description in algorithms.tex
-tests/thypot.c: Fix tests (some were present but didn't trigger any error).
-
-------------------------------------------------------------------------
-r5463 | vlefevre | 2008-07-30 14:01:45 +0000 (Wed, 30 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: completed a comment.
-------------------------------------------------------------------------
-r5462 | vlefevre | 2008-07-30 11:26:52 +0000 (Wed, 30 Jul 2008) | 6 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: updated underflow_up test of log(2^(emin - 1)) + eps:
- * In the old test (- log(2) < eps < 0 in GMP_RNDN), do not test
- the flags, as this may be incorrect on some platforms (though
- unlikely). Better tests will be provided later.
- * Added test for case eps > 0, which triggers a bug in mpfr_exp_3
- (underflow flag sometimes set while it shouldn't be set).
-------------------------------------------------------------------------
-r5461 | vlefevre | 2008-07-30 08:33:51 +0000 (Wed, 30 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-exp.c: completed a comment, describing how rigorous underflow/overflow
-detection can be done.
-------------------------------------------------------------------------
-r5460 | vlefevre | 2008-07-30 08:18:01 +0000 (Wed, 30 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-exp.c: removed an incorrect comment (corresponds to exp_2.c and already
-in exp_2.c).
-------------------------------------------------------------------------
-r5459 | vlefevre | 2008-07-29 14:34:10 +0000 (Tue, 29 Jul 2008) | 1 line
-Changed paths:
- M /trunk/exp.c
-
-exp.c: underflow/overflow detection is still a bit incorrect.
-------------------------------------------------------------------------
-r5458 | vlefevre | 2008-07-29 14:17:18 +0000 (Tue, 29 Jul 2008) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO: added "test underflow/overflow detection...".
-------------------------------------------------------------------------
-r5457 | vlefevre | 2008-07-29 14:13:11 +0000 (Tue, 29 Jul 2008) | 1 line
-Changed paths:
- M /trunk/exp.c
-
-exp.c: fixed underflow/overflow detection.
-------------------------------------------------------------------------
-r5456 | vlefevre | 2008-07-29 13:24:19 +0000 (Tue, 29 Jul 2008) | 1 line
-Changed paths:
- M /trunk/exp_2.c
-
-exp_2.c: GNU style.
-------------------------------------------------------------------------
-r5455 | vlefevre | 2008-07-29 12:23:04 +0000 (Tue, 29 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: make sure that mpfr_get_exp_t and mpfr_set_exp_t are
-correctly defined.
-------------------------------------------------------------------------
-r5454 | vlefevre | 2008-07-26 10:46:26 +0000 (Sat, 26 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: updated comment of underflow_up.
-------------------------------------------------------------------------
-r5453 | vlefevre | 2008-07-26 10:44:22 +0000 (Sat, 26 Jul 2008) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
-
-exp_2.c: solved the assertion failure by detecting a zero due to a
-cancellation and increasing the precision via Ziv's loop in such a
-case.
-------------------------------------------------------------------------
-r5452 | vlefevre | 2008-07-26 10:29:57 +0000 (Sat, 26 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-exp_2.c: added another assertion, that is checked independently of
-the value of MPFR_EXP_2_THRESHOLD (better for debugging).
-------------------------------------------------------------------------
-r5451 | vlefevre | 2008-07-26 10:21:09 +0000 (Sat, 26 Jul 2008) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
-
-exp_2.c: added an assertion (more explicit than a similar assertion
-that would fail later) in mpfr_exp2_aux, caught by the underflow_up
-test in texp.c for prec = 16 on a 64-bit Linux machine.
-------------------------------------------------------------------------
-r5450 | vlefevre | 2008-07-25 21:02:13 +0000 (Fri, 25 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-tests/texp.c: added a test that shows incorrect underflow detection
-in mpfr_exp, with possible assertion failure.
-------------------------------------------------------------------------
-r5445 | vlefevre | 2008-07-25 11:52:07 +0000 (Fri, 25 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: added test of mpfr_exp2 and mpfr_exp10.
-------------------------------------------------------------------------
-r5443 | vlefevre | 2008-07-25 10:31:19 +0000 (Fri, 25 Jul 2008) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO: update.
-------------------------------------------------------------------------
-r5442 | vlefevre | 2008-07-25 10:28:41 +0000 (Fri, 25 Jul 2008) | 1 line
-Changed paths:
- M /trunk/TODO
-
-TODO: added "option to use a 32-bit exponent type on LP64 machines".
-------------------------------------------------------------------------
-r5441 | vlefevre | 2008-07-23 13:52:09 +0000 (Wed, 23 Jul 2008) | 1 line
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: updated AC_PREREQ line due to the use of AC_PROG_SED.
-------------------------------------------------------------------------
-r5440 | zimmerma | 2008-07-23 13:29:50 +0000 (Wed, 23 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-added reminder
-
-------------------------------------------------------------------------
-r5439 | zimmerma | 2008-07-23 13:26:26 +0000 (Wed, 23 Jul 2008) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-patch from Patrick to get __GMP_CC and __GMP_CFLAGS from gmp.h
-(future undocumented feature for GMP 4.2.3) -> we need to check
-those are the names chosen by GMP 4.2.3 when it will be out
-
-------------------------------------------------------------------------
-r5434 | vlefevre | 2008-07-21 23:03:36 +0000 (Mon, 21 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-pow.c: fixed incorrect rounding in the general case when the result
-is negative and rnd = GMP_RNDD or GMP_RNDU (bug20080721 in tpow.c).
-------------------------------------------------------------------------
-r5433 | vlefevre | 2008-07-21 22:44:32 +0000 (Mon, 21 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: completed test bug20080721.
-------------------------------------------------------------------------
-r5432 | vlefevre | 2008-07-21 22:01:11 +0000 (Mon, 21 Jul 2008) | 1 line
-Changed paths:
- M /trunk/pow.c
-
-pow.c: fixed the non-trivial cases with large integer y.
-------------------------------------------------------------------------
-r5431 | vlefevre | 2008-07-21 17:17:51 +0000 (Mon, 21 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: added comment for bug20080721.
-------------------------------------------------------------------------
-r5430 | vlefevre | 2008-07-21 16:54:18 +0000 (Mon, 21 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: found another bug in mpfr_pow with large integers.
-------------------------------------------------------------------------
-r5429 | vlefevre | 2008-07-21 13:06:51 +0000 (Mon, 21 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: added a test that detects a bug in an underflow case.
-------------------------------------------------------------------------
-r5428 | vlefevre | 2008-07-21 09:48:22 +0000 (Mon, 21 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_all.c
-
-tests/tpow_all.c: made the comparisons between the power functions
-generic to be able to add other tests.
-------------------------------------------------------------------------
-r5427 | vlefevre | 2008-07-20 23:34:50 +0000 (Sun, 20 Jul 2008) | 1 line
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: use MPFR_IS_POS(x) instead of MPFR_SIGN(x) > 0.
-------------------------------------------------------------------------
-r5425 | vlefevre | 2008-07-20 00:36:23 +0000 (Sun, 20 Jul 2008) | 1 line
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: corrected a comment.
-------------------------------------------------------------------------
-r5424 | vlefevre | 2008-07-20 00:22:50 +0000 (Sun, 20 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-tests/tpow_z.c: fixed NaN^0 test.
-------------------------------------------------------------------------
-r5423 | vlefevre | 2008-07-20 00:17:02 +0000 (Sun, 20 Jul 2008) | 4 lines
-Changed paths:
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/tests
- M /trunk/tests/Makefile.am
- A /trunk/tests/tpow_all.c
-
-Fixed a bug in pow_ui.c and pow_z.c: NaN^0 returned NaN instead of 1
-(see documentation). Affected functions: mpfr_pow_ui, mpfr_pow_si and
-mpfr_pow_z (but not mpfr_pow). Added new test file tests/tpow_all.c
-to test all the MPFR power functions on simple and special values.
-------------------------------------------------------------------------
-r5418 | vlefevre | 2008-07-19 16:09:13 +0000 (Sat, 19 Jul 2008) | 1 line
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: forgot the case x^(±0).
-------------------------------------------------------------------------
-r5417 | vlefevre | 2008-07-19 15:36:57 +0000 (Sat, 19 Jul 2008) | 1 line
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: updated comments.
-------------------------------------------------------------------------
-r5416 | vlefevre | 2008-07-19 15:21:30 +0000 (Sat, 19 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-tests/tpow_z.c: test bug20080223() didn't check that the result wasn't
-a NaN. Fixed.
-------------------------------------------------------------------------
-r5413 | vlefevre | 2008-07-19 13:52:27 +0000 (Sat, 19 Jul 2008) | 1 line
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tests/tsprintf.c: removed trailing whitespace.
-------------------------------------------------------------------------
-r5412 | vlefevre | 2008-07-11 01:52:47 +0000 (Fri, 11 Jul 2008) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: potential problem with integer division and pre-C99 compilers,
-noted by Philippe.
-------------------------------------------------------------------------
-r5411 | thevenyp | 2008-07-08 12:44:59 +0000 (Tue, 08 Jul 2008) | 1 line
-Changed paths:
- M /trunk/generic.c
- M /trunk/vasprintf.c
-
-Fix typos
-------------------------------------------------------------------------
-r5410 | thevenyp | 2008-06-30 12:31:54 +0000 (Mon, 30 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-Fix typo (gmp macro TMP_ALLOC instead of MPFR_TMP_ALLOC).
-
-------------------------------------------------------------------------
-r5409 | vlefevre | 2008-06-27 09:26:43 +0000 (Fri, 27 Jun 2008) | 1 line
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: fixed comment from r5408.
-------------------------------------------------------------------------
-r5408 | thevenyp | 2008-06-27 08:36:34 +0000 (Fri, 27 Jun 2008) | 6 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-acinclude.m4: add a check defining va_copy macro when needed.
-vasprintf.c: use TMP_ALLOC instead of variable-length array (C99).
-tests/tfprintf.c tests/tsprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99).
-tests/tprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99).
- remove use of function dup (dependency with <unistd.h>).
-
-------------------------------------------------------------------------
-r5407 | vlefevre | 2008-06-25 09:08:26 +0000 (Wed, 25 Jun 2008) | 1 line
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release" (mention various compilers).
-------------------------------------------------------------------------
-r5406 | vlefevre | 2008-06-23 02:27:02 +0000 (Mon, 23 Jun 2008) | 1 line
-Changed paths:
- M /trunk/configure.in
-
-configure.in: added comments about icc.
-------------------------------------------------------------------------
-r5405 | vlefevre | 2008-06-22 12:16:43 +0000 (Sun, 22 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: added "replace the *_THRESHOLD macros by global (TLS) variables
-that can be changed at run time [...]".
-------------------------------------------------------------------------
-r5400 | vlefevre | 2008-06-16 22:06:11 +0000 (Mon, 16 Jun 2008) | 4 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: updated GMP's URL (the old one no longer worked), using
-http://www.gnu.org/software/gmp/ as suggested by Karl Berry (see
-GNU policies).
-
-------------------------------------------------------------------------
-r5398 | vlefevre | 2008-06-13 13:54:37 +0000 (Fri, 13 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: changed the license for the inclusion of the manual in Debian
-(see <http://www.debian.org/vote/2006/vote_001>).
-
-------------------------------------------------------------------------
-r5396 | vlefevre | 2008-06-11 13:09:33 +0000 (Wed, 11 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/AUTHORS
-
-AUTHORS: converted from ISO-8859-1 to UTF-8 (this is the standard
-nowadays and this is the encoding declared on InriaGforge).
-
-------------------------------------------------------------------------
-r5395 | thevenyp | 2008-06-11 10:06:56 +0000 (Wed, 11 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix typo in mpfr_printf documentation.
-
-------------------------------------------------------------------------
-r5394 | vlefevre | 2008-06-11 09:25:01 +0000 (Wed, 11 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: removed a misleading and now useless comment.
-
-------------------------------------------------------------------------
-r5393 | vlefevre | 2008-06-11 09:21:26 +0000 (Wed, 11 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: improved a comment.
-
-------------------------------------------------------------------------
-r5392 | vlefevre | 2008-06-11 09:20:53 +0000 (Wed, 11 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-tsprintf.c: typo in a comment.
-
-------------------------------------------------------------------------
-r5391 | thevenyp | 2008-06-11 08:57:47 +0000 (Wed, 11 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-Fix comparison between mpfr string and libc string.
-
-------------------------------------------------------------------------
-r5390 | zimmerma | 2008-06-10 21:12:32 +0000 (Tue, 10 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-added test for bug(?) found by Vincent with icc
-
-------------------------------------------------------------------------
-r5389 | thevenyp | 2008-06-10 14:18:37 +0000 (Tue, 10 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-Change #include <stdio.h> to #include <cstdio> when compiled with a C++ compiler.
-Assume that mpfr_rnd_t and wchar_t arguments in a variadic functions are converted to 'int' by C++ compilers.
-
-------------------------------------------------------------------------
-r5387 | vlefevre | 2008-06-10 14:13:59 +0000 (Tue, 10 Jun 2008) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: generate an error (with a clear error message) with g++ and
---enable-logging since compilation fails (--enable-logging is mainly for
-testing and is already incompatible with threading support anyway).
-
-------------------------------------------------------------------------
-r5386 | zimmerma | 2008-06-10 08:47:11 +0000 (Tue, 10 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
- M /trunk/exp_2.c
-
-the O(l^{1/2}) method to evaluate power series is due to
-Paterson and Stockmeyer and not Brent/Kung
-
-------------------------------------------------------------------------
-r5385 | vlefevre | 2008-06-09 16:21:34 +0000 (Mon, 09 Jun 2008) | 9 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/acinclude.m4
- M /trunk/get_str.c
- M /trunk/mpfr-gmp.c
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/vasprintf.c
-
-Clean-up and various changes to be able to build MPFR with g++.
-But the following 3 tests currently fail with g++ 4.3.1:
- FAIL: tprintf
- FAIL: tsprintf
- FAIL: tfprintf
-This is an "Illegal instruction" error, so probably a bug in g++.
-[Edit: acinclude.m4 now uses gl_SIZE_MAX, typically from size_max.m4,
-but which is not installed on all machines; this will be added to the
-MPFR repository in changesets 5680 and 5683.]
-------------------------------------------------------------------------
-r5384 | vlefevre | 2008-06-09 14:09:34 +0000 (Mon, 09 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: do not use pointer arithmetic on void *.
-
-------------------------------------------------------------------------
-r5383 | vlefevre | 2008-06-09 13:55:05 +0000 (Mon, 09 Jun 2008) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: added -Wpointer-arith to gcc options (this warning
-is useful as pointer arithmetic on void * is a gcc extension and
-doesn't work with g++).
-
-------------------------------------------------------------------------
-r5382 | vlefevre | 2008-06-09 12:26:26 +0000 (Mon, 09 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: mentioned a libtool bug with recent versions of icc.
-
-------------------------------------------------------------------------
-r5381 | vlefevre | 2008-06-09 08:47:58 +0000 (Mon, 09 Jun 2008) | 4 lines
-Changed paths:
- M /trunk/sum.c
-
-sum.c:
- * Completed a comment about T ** and const T ** mismatch.
- * Removed a useless and misleading const that makes icc complain.
-
-------------------------------------------------------------------------
-r5380 | zimmerma | 2008-06-08 12:14:11 +0000 (Sun, 08 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/log.c
-
-fixed typos
-
-------------------------------------------------------------------------
-r5379 | zimmerma | 2008-06-07 21:45:24 +0000 (Sat, 07 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-use DeclareMathOperator for erf and erfc
-
-------------------------------------------------------------------------
-r5378 | zimmerma | 2008-06-07 11:34:59 +0000 (Sat, 07 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/atan.c
-
-fixed typo, added argument reduction for atan (we should try it since I believe
-atan is slow wrt exp, log, sin, cos for large precisions)
-
-------------------------------------------------------------------------
-r5377 | zimmerma | 2008-06-07 11:21:14 +0000 (Sat, 07 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/log1p.c
-
-simplified error analysis of log1p (did not match the code), and improved the
-code (in particular when 1+x is exact, directly call mpfr_log and avoid Ziv).
-
-------------------------------------------------------------------------
-r5376 | vlefevre | 2008-06-06 12:01:17 +0000 (Fri, 06 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/rec_sqrt.c
-
-rec_sqrt.c: removed execution bit.
-
-------------------------------------------------------------------------
-r5375 | vlefevre | 2008-06-06 11:47:19 +0000 (Fri, 06 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: update about build problems and the FAQ.
-
-------------------------------------------------------------------------
-r5374 | vlefevre | 2008-06-06 02:10:19 +0000 (Fri, 06 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added a comment about why the cross reference to GNU Libtool
-doesn't work from MPFR's directory.
-
-------------------------------------------------------------------------
-r5373 | vlefevre | 2008-06-06 01:33:49 +0000 (Fri, 06 Jun 2008) | 5 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added Section 4.1 "Headers and Libraries" partly based on
-GMP's. Note: in the generated mpfr.info file, the cross reference to
-libtool does not work (though GMP's info manual has exactly the same
-one and it works there). I couldn't figure out why.
-
-------------------------------------------------------------------------
-r5372 | vlefevre | 2008-06-06 01:17:08 +0000 (Fri, 06 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: make cross reference in HTML similar to texinfo's default one
-in PDF.
-
-------------------------------------------------------------------------
-r5371 | vlefevre | 2008-06-04 11:57:28 +0000 (Wed, 04 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the month.
-
-------------------------------------------------------------------------
-r5370 | vlefevre | 2008-06-04 11:51:25 +0000 (Wed, 04 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: check the LGPL license version.
-
-------------------------------------------------------------------------
-r5369 | vlefevre | 2008-06-04 11:34:10 +0000 (Wed, 04 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated paragraph on the license in "Introduction to MPFR".
-
-------------------------------------------------------------------------
-r5368 | vlefevre | 2008-06-04 11:25:59 +0000 (Wed, 04 Jun 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated GFDL version from 1.1 to 1.2 to match fdl.texi
-(this should have been done in r4059).
-
-------------------------------------------------------------------------
-r5367 | vlefevre | 2008-06-04 11:24:37 +0000 (Wed, 04 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: check GFDL versions.
-
-------------------------------------------------------------------------
-r5366 | vlefevre | 2008-06-04 11:13:23 +0000 (Wed, 04 Jun 2008) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/update-version
-
-mpfr.texi, update-version: in the MPFR manual, replaced two
-http://www.mpfr.org/ by the URL corresponding to the version,
-which can be updated by update-version.
-
-------------------------------------------------------------------------
-r5365 | vlefevre | 2008-06-04 10:30:48 +0000 (Wed, 04 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: completed paragraph on MPFR vs double-precision numbers.
-
-------------------------------------------------------------------------
-r5364 | vlefevre | 2008-06-04 10:22:02 +0000 (Wed, 04 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: replaced each @code{mpfr} by MPFR (for consistency).
-
-------------------------------------------------------------------------
-r5362 | vlefevre | 2008-06-03 09:06:48 +0000 (Tue, 03 Jun 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: fixed a comment.
-
-------------------------------------------------------------------------
-r5361 | vlefevre | 2008-05-23 13:44:59 +0000 (Fri, 23 May 2008) | 2 lines
-Changed paths:
- M /trunk/tests
-
-tests: added tprintf to svn:ignore property.
-
-------------------------------------------------------------------------
-r5360 | vlefevre | 2008-05-23 11:00:28 +0000 (Fri, 23 May 2008) | 3 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/lngamma.c
- M /trunk/sub1sp.c
-
-Added documentation about "'var' may be used uninitialized in this
-function" warnings.
-
-------------------------------------------------------------------------
-r5359 | zimmerma | 2008-05-22 11:05:19 +0000 (Thu, 22 May 2008) | 3 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/sub1sp.c
-
-Added comments about int i = i trick to avoid warning about uninitialized
-variables. This has the advantage to generate no code, but works for gcc only.
-
-------------------------------------------------------------------------
-r5358 | zimmerma | 2008-05-21 08:23:21 +0000 (Wed, 21 May 2008) | 4 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-initialize bbcp and bbcp1 to -1 (should be invalid)
-added MPFR_ASSERTN to check they are not -1 before reads
-simplified a test: (rnd == RNDN) || (rnd != RNDZ) ==> rnd != RNDZ
-
-------------------------------------------------------------------------
-r5357 | zimmerma | 2008-05-21 07:01:17 +0000 (Wed, 21 May 2008) | 4 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/sub1sp.c
-
-got rid of false (?) compiler warnings for uninitialized values
--> we might want to revert this change if we find a better solution and/or
- if the problem is fixed in gcc
-
-------------------------------------------------------------------------
-r5356 | vlefevre | 2008-05-20 09:38:38 +0000 (Tue, 20 May 2008) | 4 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/hypot.c
- M /trunk/mpfr-impl.h
- M /trunk/round_near_x.c
-
-Reverted changeset r5355. Better patch to avoid the warnings
-"warning: label 'addoneulp_doit' defined but not used" in
-MPFR_RNDRAW_GEN by adding the dummy code in the macro itself.
-
-------------------------------------------------------------------------
-r5355 | vlefevre | 2008-05-20 09:31:17 +0000 (Tue, 20 May 2008) | 4 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/hypot.c
- M /trunk/mpfr-impl.h
- M /trunk/round_near_x.c
-
-Avoid warnings "warning: label 'addoneulp_doit' defined but not used"
-due to the use of MPFR_RNDRAW_GEN. Dummy source code is inserted, but
-this is safe, clean (optimized away) and IMHO not too obtrusive.
-
-------------------------------------------------------------------------
-r5353 | vlefevre | 2008-05-08 01:12:42 +0000 (Thu, 08 May 2008) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: locally add -I$srcdir to CPPFLAGS for the thread-safe test
-(fixes bug #5556).
-
-------------------------------------------------------------------------
-r5351 | vlefevre | 2008-04-10 08:13:11 +0000 (Thu, 10 Apr 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: added a paragraph about -ffast-math / -fast compiler options.
-
-------------------------------------------------------------------------
-r5350 | vlefevre | 2008-04-07 09:13:52 +0000 (Mon, 07 Apr 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-tcmp.c: fixed some tests (if mpfr_cmp2 returns an incorrect result,
-the bug may be some non-reproducible behavior, so don't compute it
-a second time to say what the value was!) and clean-up.
-
-------------------------------------------------------------------------
-r5349 | zimmerma | 2008-04-07 08:54:32 +0000 (Mon, 07 Apr 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-fixed compiler warning
-
-------------------------------------------------------------------------
-r5348 | zimmerma | 2008-04-06 21:14:07 +0000 (Sun, 06 Apr 2008) | 2 lines
-Changed paths:
- M /trunk/tests/memory.c
- M /trunk/tests/tcmp2.c
-
-some other changes suggested by Patrick Pelissier for 16-bit portability
-
-------------------------------------------------------------------------
-r5347 | zimmerma | 2008-04-06 20:03:47 +0000 (Sun, 06 Apr 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tcmp.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tui_sub.c
-
-a few patches suggested by Patrick Pelissier to ease porting to 16-bit
-architectures: removed useless #include <time.h>, changed 1024 to 1024L,
-int i to lng i
-
-------------------------------------------------------------------------
-r5346 | zimmerma | 2008-03-17 12:14:38 +0000 (Mon, 17 Mar 2008) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item about frac_* functions
-
-------------------------------------------------------------------------
-r5345 | zimmerma | 2008-03-16 12:45:07 +0000 (Sun, 16 Mar 2008) | 2 lines
-Changed paths:
- M /trunk/modf.c
-
-fixed typo
-
-------------------------------------------------------------------------
-r5344 | thevenyp | 2008-03-11 12:35:57 +0000 (Tue, 11 Mar 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tprintf.c
-
-tests/tfprintf.c: set output to stdout when invocked with one command-line
- parameter.
-tests/tprintf.c: add IO errors processing.
-
-------------------------------------------------------------------------
-r5343 | thevenyp | 2008-03-10 16:33:41 +0000 (Mon, 10 Mar 2008) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tprintf.c
-
-tests/tprintf.c: add tests for mpfr_printf and mpfr_vprintf.
-Makefile.am: add tprintf.c to check_PROGRAMS.
-
-------------------------------------------------------------------------
-r5342 | thevenyp | 2008-03-10 16:18:45 +0000 (Mon, 10 Mar 2008) | 6 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/tests/tfprintf.c
- M /trunk/vasprintf.c
-
-TODO: remove newly added functions
-vasprintf.c: change type of some variables taking care of signed/unsigned
- comparisons, improve conditional tests, improve buffer
- allocation, improve comments.
-tests/tfprintf.c: remove silly code.
-
-------------------------------------------------------------------------
-r5341 | thevenyp | 2008-03-10 15:41:09 +0000 (Mon, 10 Mar 2008) | 5 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tfprintf.c
- M /trunk/vasprintf.c
-
-acinclude.m4: add check for long long compiler support, define HAVE_LONG_LONG.
-vasprintf.c: raise an error when it encounter an unsupported format in format
- string.
-tests/tfprintf.c: HAVE_SDTINT_H -> _MPFR_H_HAVE_INTMAX_T
-
-------------------------------------------------------------------------
-r5340 | thevenyp | 2008-03-10 14:14:12 +0000 (Mon, 10 Mar 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix rounding bit bug with %RNa.
-tests/tsprintf.c: add tests for %RNa (rounding bit bug, tie case, trailing
-zeros in fractional part.
-
-------------------------------------------------------------------------
-r5339 | thevenyp | 2008-03-10 13:56:46 +0000 (Mon, 10 Mar 2008) | 5 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix bug in macro CONSUME_VA_ARG with a mp_limb_t or mp_limb_t array argument
-vasprintf.c: clean code storing the number of character in a pointer and fix bug with a mp_limb_t or mp_limb_t array argument
-tests/tfprintf.c: add tests for %n with all kinds of type, get rid of machine dependent limits of type (use +1/-1 instead)
-
-
-------------------------------------------------------------------------
-r5338 | thevenyp | 2008-03-10 10:56:03 +0000 (Mon, 10 Mar 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix bug of forgotten decimal point with %#.0Rf
-tests/tsprintf.c: add test with %#Rf and an integer mpfr_t
-
-------------------------------------------------------------------------
-r5337 | thevenyp | 2008-03-10 10:06:48 +0000 (Mon, 10 Mar 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/li2.c
-
-li2.c: improve error estimation in Ziv loop.
-algorithm.tex:improve proof of mpfr_li2 algorithm.
-
-------------------------------------------------------------------------
-r5336 | thevenyp | 2008-03-10 09:53:18 +0000 (Mon, 10 Mar 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/hypot.c
-
-hypot.c: change shift amount for exponents so as to avoid overflow in Ziv loop.
-algorithm.tex: improve proof for mpfr_hypot algorithm (unfinished).
-
-------------------------------------------------------------------------
-r5335 | vlefevre | 2008-03-07 15:08:07 +0000 (Fri, 07 Mar 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: avoid a warning with gcc 4.2+ about a test that is always
-true (the style of the code is now a bit better too).
-
-------------------------------------------------------------------------
-r5334 | thevenyp | 2008-02-29 14:29:15 +0000 (Fri, 29 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-add mpfr_hypot
-
-------------------------------------------------------------------------
-r5333 | thevenyp | 2008-02-29 12:30:07 +0000 (Fri, 29 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-fix wrong arguments (set in r5332)
-
-------------------------------------------------------------------------
-r5332 | thevenyp | 2008-02-29 12:16:26 +0000 (Fri, 29 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-add missing functions
-
-------------------------------------------------------------------------
-r5331 | thevenyp | 2008-02-29 10:23:46 +0000 (Fri, 29 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r5330 | thevenyp | 2008-02-28 16:11:33 +0000 (Thu, 28 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
-
-add mixed format tests (with different types and different sizes)
-
-------------------------------------------------------------------------
-r5329 | thevenyp | 2008-02-28 16:05:50 +0000 (Thu, 28 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix "%%" bug
-tests/tsprintf.c: add a test setting "%%" bug off
-
-------------------------------------------------------------------------
-r5328 | thevenyp | 2008-02-28 15:17:52 +0000 (Thu, 28 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r5327 | thevenyp | 2008-02-28 15:16:09 +0000 (Thu, 28 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-use system number of bits in the significant of a double (instead of 53)
-
-------------------------------------------------------------------------
-r5326 | thevenyp | 2008-02-27 15:19:55 +0000 (Wed, 27 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/cosh.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
-
-add handle for the case exp(x) overflows but sinh(x) is representable
-
-------------------------------------------------------------------------
-r5325 | thevenyp | 2008-02-27 13:42:35 +0000 (Wed, 27 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/add_d.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/div_d.c
- M /trunk/mul_d.c
- M /trunk/sub_d.c
-
-further code simplification
-
-------------------------------------------------------------------------
-r5324 | thevenyp | 2008-02-27 12:57:24 +0000 (Wed, 27 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mul_d.c
-
-code simplification (same as in r5323)
-
-------------------------------------------------------------------------
-r5323 | thevenyp | 2008-02-27 12:55:12 +0000 (Wed, 27 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/add_d.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/div_d.c
- M /trunk/sub_d.c
-
-code simplification.
-
-------------------------------------------------------------------------
-r5322 | thevenyp | 2008-02-27 11:13:18 +0000 (Wed, 27 Feb 2008) | 4 lines
-Changed paths:
- M /trunk/add_d.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/div_d.c
- M /trunk/sub_d.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tsub_d.c
-
-add_d.c, div_d.c, sub_d.c, d_div.c, d_sub.c: restore flags in case of exception. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW
-tests/tadd_d.c, tests/tsub_d.c, tests/tdiv_d.c, tests/tmul_d.c, tests/td_sub.c, tests/td_div.c, test/tmul_d.c: add checks for exception flags and ternary value
-
-
-------------------------------------------------------------------------
-r5321 | thevenyp | 2008-02-27 10:00:11 +0000 (Wed, 27 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/mul_d.c
- M /trunk/tests/tmul_d.c
-
-mul_d.c: restore flags set by mpfr_mul. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW
-test/tmul_d.c: add checks for exception flags
-
-------------------------------------------------------------------------
-r5320 | vlefevre | 2008-02-27 09:43:38 +0000 (Wed, 27 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated the section about new functions (added a paragraph
-on exception handling).
-
-------------------------------------------------------------------------
-r5319 | thevenyp | 2008-02-26 17:45:53 +0000 (Tue, 26 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-improve proof for euclidean distance algorithm (unfinished)
-
-------------------------------------------------------------------------
-r5318 | vlefevre | 2008-02-26 16:20:04 +0000 (Tue, 26 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: rewrote an ambiguous comment.
-
-------------------------------------------------------------------------
-r5317 | vlefevre | 2008-02-26 16:10:28 +0000 (Tue, 26 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: removed obsolete comments and updated a comment.
-
-------------------------------------------------------------------------
-r5316 | vlefevre | 2008-02-26 15:57:53 +0000 (Tue, 26 Feb 2008) | 4 lines
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: the same variable was used with two different meanings.
-Changed the type and the name of the one inside the Ziv loop
-(unsigned is theoretically more correct due to the bitwise OR).
-
-------------------------------------------------------------------------
-r5315 | zimmerma | 2008-02-24 18:17:18 +0000 (Sun, 24 Feb 2008) | 8 lines
-Changed paths:
- M /trunk/pow_z.c
- M /trunk/tests/tpow_z.c
-
-fixed bug reported by Carl Witty (on 32-bit computers):
-sage: RR(1.99999999)^RR(-(2^30))
-5.11264311088393e-323228495
-sage: RR(1.999999999)^RR(-(2^30))
-0.000000000000000
-sage: RR(2.0)^RR(-(2^30))
-2.38256490488795e-323228497
-
-------------------------------------------------------------------------
-r5314 | zimmerma | 2008-02-23 22:52:30 +0000 (Sat, 23 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-added bug reported by Carl Witty
-
-------------------------------------------------------------------------
-r5313 | thevenyp | 2008-02-22 16:04:09 +0000 (Fri, 22 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tli2.c
-
-remove commented code
-
-------------------------------------------------------------------------
-r5312 | thevenyp | 2008-02-22 15:59:35 +0000 (Fri, 22 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tli2.c
-
-add worst cases for RNDZ and RNDU with inexact flag checking
-
-------------------------------------------------------------------------
-r5311 | vlefevre | 2008-02-22 15:49:36 +0000 (Fri, 22 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-hypot.c: added a FIXME comment.
-
-------------------------------------------------------------------------
-r5310 | vlefevre | 2008-02-22 15:45:27 +0000 (Fri, 22 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: one can have a better upper bound on \sqrt{x^2+y^2}-|x|
-(added as a comment in case this can be useful).
-
-------------------------------------------------------------------------
-r5309 | vlefevre | 2008-02-22 15:17:19 +0000 (Fri, 22 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: use hyperref.
-
-------------------------------------------------------------------------
-r5308 | thevenyp | 2008-02-21 16:42:13 +0000 (Thu, 21 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-add more details in mpfr_hypot description
-
-------------------------------------------------------------------------
-r5307 | thevenyp | 2008-02-21 16:40:40 +0000 (Thu, 21 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-cosmetic change: display "EXP" in small capitals
-no more use of {\rm \EXP}, use macro \Exp everywhere
-
-------------------------------------------------------------------------
-r5306 | thevenyp | 2008-02-20 14:04:46 +0000 (Wed, 20 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tli2.c
-
-add worst case test
-
-------------------------------------------------------------------------
-r5305 | thevenyp | 2008-02-20 11:54:26 +0000 (Wed, 20 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-add test with locale da_DK
-
-------------------------------------------------------------------------
-r5304 | thevenyp | 2008-02-20 10:33:33 +0000 (Wed, 20 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
- M /trunk/tests/tfms.c
-
-actually trigger overflow on all architectures
-
-------------------------------------------------------------------------
-r5303 | zimmerma | 2008-02-20 08:36:44 +0000 (Wed, 20 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-added MPFR_SUSPICIOUS_OVERFLOW in nightly tests
-
-------------------------------------------------------------------------
-r5302 | vlefevre | 2008-02-20 03:08:46 +0000 (Wed, 20 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/hypot.c
-
-hypot.c: fixed overflow flag problem in RNDD/RNDZ modes (testcase was
-added in r5301, and another check in r5300).
-
-------------------------------------------------------------------------
-r5301 | vlefevre | 2008-02-20 02:51:30 +0000 (Wed, 20 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-tests/thypot.c: added check_overflow test (currently fails in 32 bits).
-
-------------------------------------------------------------------------
-r5300 | vlefevre | 2008-02-20 02:38:05 +0000 (Wed, 20 Feb 2008) | 7 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tests/tgeneric.c: added a test that detects suspicious overflows and
-fails when the overflow flag is not set. This test is enabled only if
-the MPFR_SUSPICIOUS_OVERFLOW environment variable is set, and shows a
-bug in mpfr_hypot on 32-bit machines (i.e. when the current exponent
-range is the maximum exponent range, so that mpfr_check_range() has
-no effect).
-
-------------------------------------------------------------------------
-r5299 | thevenyp | 2008-02-19 15:54:49 +0000 (Tue, 19 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-restore flag overflow dropped by MPFR_SAVE_EXPO
-
-------------------------------------------------------------------------
-r5298 | thevenyp | 2008-02-18 17:30:02 +0000 (Mon, 18 Feb 2008) | 5 lines
-Changed paths:
- M /trunk/tests/tests.c
- M /trunk/tests/tsum.c
-
-use of (*__gmp_allocate_func)/(*__gmp_free_func) instead of
-mpfr_allocate_func/mpfr_free_func;
-the modification in r5281 doesn't work when mpfr is compiled with --gmp_build
-option.
-
-------------------------------------------------------------------------
-r5297 | vlefevre | 2008-02-18 16:37:03 +0000 (Mon, 18 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-hypot.c: it's better to scale by (Ex + Ey) / 2.
-
-------------------------------------------------------------------------
-r5296 | vlefevre | 2008-02-18 16:06:20 +0000 (Mon, 18 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: now, the ChangeLog file should be in UTF-8, like in other
-software (not much difference in practice).
-
-------------------------------------------------------------------------
-r5295 | thevenyp | 2008-02-18 15:58:36 +0000 (Mon, 18 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-improve code coverage
-
-------------------------------------------------------------------------
-r5294 | thevenyp | 2008-02-18 15:39:45 +0000 (Mon, 18 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/tests/tsprintf.c
-
-code simplification
-
-------------------------------------------------------------------------
-r5293 | thevenyp | 2008-02-18 13:48:11 +0000 (Mon, 18 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-take trailing zeros into account when separating thousands
-
-------------------------------------------------------------------------
-r5292 | zimmerma | 2008-02-18 13:24:47 +0000 (Mon, 18 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-fixed problem when x and y are very small
-
-------------------------------------------------------------------------
-r5291 | thevenyp | 2008-02-18 12:37:31 +0000 (Mon, 18 Feb 2008) | 4 lines
-Changed paths:
- M /trunk/hypot.c
- M /trunk/tests/thypot.c
-
-hypot.c: set flags when returning
-tests/thypot.c: change custom random tests to tgeneric ones
-
-
-------------------------------------------------------------------------
-r5290 | vlefevre | 2008-02-15 17:38:31 +0000 (Fri, 15 Feb 2008) | 12 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/li2.c
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/pow.c
- M /trunk/sub1sp.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcot.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsprintf.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsum.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-For the terminating null pointer of the functions mpfr_inits,
-mpfr_inits2, mpfr_clears, always use the type mpfr_ptr (no longer
-void *). Updated the description of these functions in the manual
-(mpfr.texi). The reason is that the C standard does not guarantee
-that (void *) 0 has the same representation as a null pointer to
-a structure (and even the same size). In most C implementations,
-the representations are the same, but one never knows (dynamical
-checking is also always possible)...
-The change has been done with: perl -pi -e \
- 's/(mpfr_(clear|init)s.*)\(void *\*\) *0\)/$1(mpfr_ptr) 0)/' **/*.c
-under zsh.
-
-------------------------------------------------------------------------
-r5289 | thevenyp | 2008-02-15 15:58:21 +0000 (Fri, 15 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix typo
-
-------------------------------------------------------------------------
-r5288 | thevenyp | 2008-02-15 15:30:06 +0000 (Fri, 15 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix buffer_sandwich (use for thousands separator)
-tests/tsprintf.c: add tests with "da_DK" locale
-
-------------------------------------------------------------------------
-r5287 | thevenyp | 2008-02-15 14:04:11 +0000 (Fri, 15 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tset.c
-
-add generic tests
-
-------------------------------------------------------------------------
-r5286 | thevenyp | 2008-02-15 12:49:53 +0000 (Fri, 15 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r5285 | thevenyp | 2008-02-15 09:10:03 +0000 (Fri, 15 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-fix incorrect function call
-
-------------------------------------------------------------------------
-r5284 | thevenyp | 2008-02-14 17:09:35 +0000 (Thu, 14 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/tests/tsprintf.c
- M /trunk/vasprintf.c
-
-fix "%P" case, add test for it.
-
-------------------------------------------------------------------------
-r5283 | thevenyp | 2008-02-13 17:21:27 +0000 (Wed, 13 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
-
-avoid style 'f' with large numbers
-
-------------------------------------------------------------------------
-r5282 | vlefevre | 2008-02-13 13:43:01 +0000 (Wed, 13 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-
-------------------------------------------------------------------------
-r5281 | thevenyp | 2008-02-12 15:32:22 +0000 (Tue, 12 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
- M /trunk/tests/tsum.c
-
-use of mpfr_allocate_func/mpfr_free_func instead of malloc/free
-
-------------------------------------------------------------------------
-r5280 | thevenyp | 2008-02-12 14:46:22 +0000 (Tue, 12 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-remove unneeded free and mpfr_clear
-
-------------------------------------------------------------------------
-r5279 | thevenyp | 2008-02-12 14:40:34 +0000 (Tue, 12 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-add tests for mpfr_snprintf and mpfr_vsnprintf
-
-------------------------------------------------------------------------
-r5278 | vlefevre | 2008-02-12 14:21:21 +0000 (Tue, 12 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a note about freeing the memory in the tests.
-
-------------------------------------------------------------------------
-r5277 | thevenyp | 2008-02-12 13:50:14 +0000 (Tue, 12 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
- M /trunk/tests/tout_str.c
-
-move tests of mpfr_get_str function from tout_str.c to tget_str.c
-
-------------------------------------------------------------------------
-r5276 | thevenyp | 2008-02-12 13:46:16 +0000 (Tue, 12 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tsprintf.c
-
-initialize fmt[] size
-
-------------------------------------------------------------------------
-r5275 | thevenyp | 2008-02-12 13:30:39 +0000 (Tue, 12 Feb 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tfprintf.c
- M /trunk/tests/tsprintf.c
-
-tfprintf.c: fix comment.
-tsprintf.c: fix comment and get rid of libc rand().
-
-
-------------------------------------------------------------------------
-r5274 | thevenyp | 2008-02-12 12:52:35 +0000 (Tue, 12 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tfprintf.c
- D /trunk/tests/tprintf.c
- A /trunk/tests/tsprintf.c (from /trunk/tests/tprintf.c:5272)
-
-rename tprintf.c as tsprintf.c, because it does not deal with mpfr_printf.
-add tests for mpfr_fprintf functions
-
-------------------------------------------------------------------------
-r5273 | thevenyp | 2008-02-12 08:43:02 +0000 (Tue, 12 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/printf.c
-
-remove errno setting in snprintf, it is already done in vasprintf
-correct grammatical faults in comment
-
-------------------------------------------------------------------------
-r5272 | vlefevre | 2008-02-08 16:25:37 +0000 (Fri, 08 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: undo r5270.
-
-------------------------------------------------------------------------
-r5271 | vlefevre | 2008-02-08 16:23:31 +0000 (Fri, 08 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: fixed assertion failure introduced in r5265.
-
-------------------------------------------------------------------------
-r5270 | thevenyp | 2008-02-08 16:19:41 +0000 (Fri, 08 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-remove exponent checking
-
-------------------------------------------------------------------------
-r5269 | thevenyp | 2008-02-08 13:53:09 +0000 (Fri, 08 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
- M /trunk/set_uj.c
-
-mpfr-gmp.h: Cancel r5261 changes removing the overload due to added test.
-set_uj.c: Don't call memset when len is zero.
-
-------------------------------------------------------------------------
-r5268 | thevenyp | 2008-02-08 13:20:24 +0000 (Fri, 08 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-improve assertion.
-
-------------------------------------------------------------------------
-r5267 | thevenyp | 2008-02-08 09:59:57 +0000 (Fri, 08 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-add support of thousands separator option (' flag, defined in Single UNIX Specification v2)
-
-------------------------------------------------------------------------
-r5266 | thevenyp | 2008-02-08 09:41:25 +0000 (Fri, 08 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-better string buffer management
-
-------------------------------------------------------------------------
-r5265 | vlefevre | 2008-02-07 14:40:53 +0000 (Thu, 07 Feb 2008) | 9 lines
-Changed paths:
- M /trunk/tests/tacosh.c
- M /trunk/tests/tests.c
- M /trunk/tests/tgeneric.c
-
-In tests_default_random, allow emin and emax to be outside of the
-current exponent range, so that underflow/overflow checks can be
-done on 64-bit machines. If the resulting random number is outside
-of the current range, the exponent range is extended, and restored
-by the caller once the test has been done.
-In tests/tacosh.c, changed TEST_RANDOM_EMIN and TEST_RANDOM_EMAX
-to MPFR_EMAX_MAX for test_generic_huge, so that the intermediate
-overflow case in mpfr_acosh is tested on 64-bit machines.
-
-------------------------------------------------------------------------
-r5264 | thevenyp | 2008-02-07 14:17:36 +0000 (Thu, 07 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-fix comment.
-In fact, GNU libc4 accept '%F', libc5, glibc 2.0, and glibc 2.1 don't, and glibc 2.2 accept it with C99 semantics.
-
-------------------------------------------------------------------------
-r5263 | vlefevre | 2008-02-06 14:17:26 +0000 (Wed, 06 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: added a comment about the mpfr_rnd_t enum.
-
-------------------------------------------------------------------------
-r5262 | vlefevre | 2008-02-06 13:48:33 +0000 (Wed, 06 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: removed MPFR_CHECK* macros as they are not used.
-
-------------------------------------------------------------------------
-r5261 | thevenyp | 2008-02-05 17:08:25 +0000 (Tue, 05 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-MPN_ZERO (dst, n) doesn't call memset when n==0, it prevents warning when compiled with gcc -D_FORTIFY_SOURCE
-
-------------------------------------------------------------------------
-r5260 | zimmerma | 2008-02-04 16:39:56 +0000 (Mon, 04 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added suggestion from Keith Briggs
-
-------------------------------------------------------------------------
-r5259 | thevenyp | 2008-02-04 16:15:06 +0000 (Mon, 04 Feb 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: add code for %n specifier with any type
-tests/tprintf.c: add test for %n specifier
-
-------------------------------------------------------------------------
-r5258 | thevenyp | 2008-02-04 16:10:17 +0000 (Mon, 04 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-improve mention on format string restriction
-
-------------------------------------------------------------------------
-r5257 | thevenyp | 2008-02-04 15:28:16 +0000 (Mon, 04 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mention restriction on type field in the format string.
-
-------------------------------------------------------------------------
-r5256 | thevenyp | 2008-02-04 14:28:14 +0000 (Mon, 04 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-check possible overflows in exponent part, improve comments.
-
-------------------------------------------------------------------------
-r5255 | thevenyp | 2008-02-04 13:46:52 +0000 (Mon, 04 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/printf.c
-
-ensure null-terminated string for (v)snprintf.
-
-------------------------------------------------------------------------
-r5254 | thevenyp | 2008-02-01 16:07:40 +0000 (Fri, 01 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-improve mpfr_printf documentation
-
-------------------------------------------------------------------------
-r5253 | vlefevre | 2008-02-01 14:08:37 +0000 (Fri, 01 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: fixed perror argument in data_check.
-
-------------------------------------------------------------------------
-r5252 | thevenyp | 2008-02-01 14:02:52 +0000 (Fri, 01 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-improve error handling
-
-------------------------------------------------------------------------
-r5251 | thevenyp | 2008-02-01 12:05:07 +0000 (Fri, 01 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-check fscanf return value, manage error case
-
-------------------------------------------------------------------------
-r5249 | zimmerma | 2008-02-01 11:02:22 +0000 (Fri, 01 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added parentheses to avoid ambiguity (suggested by Keith Briggs)
-
-------------------------------------------------------------------------
-r5248 | thevenyp | 2008-02-01 09:48:38 +0000 (Fri, 01 Feb 2008) | 2 lines
-Changed paths:
- M /trunk/printf.c
-
-add some "%s" format string to prevent format string attack
-
-------------------------------------------------------------------------
-r5247 | thevenyp | 2008-01-31 08:41:14 +0000 (Thu, 31 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix typo
-
-------------------------------------------------------------------------
-r5246 | thevenyp | 2008-01-30 13:19:36 +0000 (Wed, 30 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-homogeneous use of logical variable
-
-------------------------------------------------------------------------
-r5245 | vlefevre | 2008-01-30 12:48:51 +0000 (Wed, 30 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/rec_sqrt.c
-
-rec_sqrt.c: use MPFR_GET_EXP instead of MPFR_EXP, and avoid the
-bitwise AND on a signed integer.
-
-------------------------------------------------------------------------
-r5244 | vlefevre | 2008-01-30 12:39:02 +0000 (Wed, 30 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/rec_sqrt.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trec_sqrt.c
-
-Reformat.
-
-------------------------------------------------------------------------
-r5242 | vlefevre | 2008-01-30 12:29:13 +0000 (Wed, 30 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/mpfr.texi
-
-Document how to produce PDF and HTML versions of the manual.
-
-------------------------------------------------------------------------
-r5241 | thevenyp | 2008-01-30 10:06:38 +0000 (Wed, 30 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-change to values acceptable by 32-bits machines
-
-------------------------------------------------------------------------
-r5240 | thevenyp | 2008-01-30 09:34:21 +0000 (Wed, 30 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix wrong statement in MPFR_ASSERTD
-
-------------------------------------------------------------------------
-r5239 | zimmerma | 2008-01-30 08:19:41 +0000 (Wed, 30 Jan 2008) | 5 lines
-Changed paths:
- M /trunk/nightly-test
-
-added compilation options suggested by Debian:
-http://alioth.debian.org/projects/hardening/
-http://lists.debian.org/debian-devel/2007/12/msg00090.html
-(except -Wl,zrelro which does not seem to work)
-
-------------------------------------------------------------------------
-r5238 | thevenyp | 2008-01-29 17:59:18 +0000 (Tue, 29 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-So as to avoid conversion error, get rid of mpfr_set_d/mpf_set_d except in random_double().
-Skip conversion error in random_double().
-
-------------------------------------------------------------------------
-r5237 | thevenyp | 2008-01-29 17:01:24 +0000 (Tue, 29 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix typo in comment
-
-------------------------------------------------------------------------
-r5236 | thevenyp | 2008-01-29 17:00:31 +0000 (Tue, 29 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-get rid of limitation on number of character by specifier
-
-------------------------------------------------------------------------
-r5235 | thevenyp | 2008-01-29 15:42:47 +0000 (Tue, 29 Jan 2008) | 4 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix %Rg case
-tests/tprintf.c: add %Re, %Rf, and %Rg tests
-tests/tprintf.c: add random checking against libc
-
-------------------------------------------------------------------------
-r5231 | thevenyp | 2008-01-28 10:46:20 +0000 (Mon, 28 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-remove (undocumented) integer conversion support for mpfr_t
-
-------------------------------------------------------------------------
-r5230 | thevenyp | 2008-01-28 10:34:46 +0000 (Mon, 28 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-set errno to EOVERFLOW when printf-like functions should return value exceeding INT_MAX
-
-------------------------------------------------------------------------
-r5229 | thevenyp | 2008-01-28 10:19:09 +0000 (Mon, 28 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-change internal name of printf-like functions under preprocessor conditionals, add explanation in comment.
-
-------------------------------------------------------------------------
-r5228 | vlefevre | 2008-01-25 15:09:21 +0000 (Fri, 25 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: added a possible class of tests.
-
-------------------------------------------------------------------------
-r5225 | vlefevre | 2008-01-23 17:01:24 +0000 (Wed, 23 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: remove a blank line in an error message.
-
-------------------------------------------------------------------------
-r5224 | vlefevre | 2008-01-23 16:51:02 +0000 (Wed, 23 Jan 2008) | 4 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tests.c
- M /trunk/tests/tversion.c
-
-Test that the MPFR library version matches the mpfr.h version in any
-test file (this should avoid some bug reports that don't mention the
-real problem).
-
-------------------------------------------------------------------------
-r5222 | vlefevre | 2008-01-23 16:24:59 +0000 (Wed, 23 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-tversion.c: improved an error message.
-
-------------------------------------------------------------------------
-r5219 | vlefevre | 2008-01-23 13:36:21 +0000 (Wed, 23 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: fixed configure test for TLS support.
-
-------------------------------------------------------------------------
-r5217 | vlefevre | 2008-01-23 12:29:30 +0000 (Wed, 23 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS file update (configure test for TLS support).
-
-------------------------------------------------------------------------
-r5213 | vlefevre | 2008-01-23 12:17:51 +0000 (Wed, 23 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/add_d.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/div_d.c
- M /trunk/li2.c
- M /trunk/mbench/generate.c
- M /trunk/mbench/mpfr-gfx.c
- M /trunk/mbench/mpfr-v4.c
- M /trunk/mbench/mpfr-v6.c
- M /trunk/modf.c
- M /trunk/mul_d.c
- M /trunk/printf.c
- M /trunk/rec_sqrt.c
- M /trunk/rem1.c
- M /trunk/sinh_cosh.c
- M /trunk/sub_d.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trec_sqrt.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsub_d.c
- M /trunk/vasprintf.c
-
-Added svn:keywords and svn:eol-style properties on new .c files.
-
-------------------------------------------------------------------------
-r5212 | vlefevre | 2008-01-23 11:46:10 +0000 (Wed, 23 Jan 2008) | 9 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/acinclude.m4
- M /trunk/mpfr-impl.h
- A /trunk/mpfr-thread.h
-
-Changes related to thread-local variables / TLS support.
- * Moved the MPFR_THREAD_ATTR definition from mpfr-impl.h into a new
- header file mpfr-thread.h, and updated Makefile.am accordingly.
- * Removed the compiler check __MPFR_GNUC(3,3) || __MPFR_ICC(8,1,0)
- as this test leaded to both false positives and false negatives
- concerning TLS support. Assume that __thread should be used for
- thread-local variables (except for the MS compiler).
- * Added a configure test to acinclude.m4 (in MPFR_CONFIGS).
-
-------------------------------------------------------------------------
-r5211 | zimmerma | 2008-01-22 12:13:08 +0000 (Tue, 22 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-added item about timings for a new release
-
-------------------------------------------------------------------------
-r5210 | zimmerma | 2008-01-22 12:09:19 +0000 (Tue, 22 Jan 2008) | 3 lines
-Changed paths:
- A /trunk/mbench
- A /trunk/mbench/Makefile
- A /trunk/mbench/README
- A /trunk/mbench/generate.c
- A /trunk/mbench/mfv5-arprec.cc
- A /trunk/mbench/mfv5-cln.cc
- A /trunk/mbench/mfv5-crlibm.cc
- A /trunk/mbench/mfv5-libc.cc
- A /trunk/mbench/mfv5-lidia.cc
- A /trunk/mbench/mfv5-mpf.cc
- A /trunk/mbench/mfv5-mpfr.cc
- A /trunk/mbench/mfv5-ntl.cc
- A /trunk/mbench/mfv5-pari.cc
- A /trunk/mbench/mfv5-void.cc
- A /trunk/mbench/mfv5.cc
- A /trunk/mbench/mfv5.h
- A /trunk/mbench/mpfr-gfx.c
- A /trunk/mbench/mpfr-v4.c
- A /trunk/mbench/mpfr-v6.c
- A /trunk/mbench/timp.h
-
-mbench program written by Patrick Pelissier to measure clock cycles of MPFR
-(and other libraries) for small precision
-
-------------------------------------------------------------------------
-r5207 | vlefevre | 2008-01-22 09:51:00 +0000 (Tue, 22 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS: noted the changes concerning mpfr_strtofr (changesets 5146, 5147,
-5148, 5149, 5167, 5172, 5173).
-
-------------------------------------------------------------------------
-r5205 | vlefevre | 2008-01-22 09:21:37 +0000 (Tue, 22 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-mpfr-gmp.h: small fix of a macro.
-
-------------------------------------------------------------------------
-r5204 | vlefevre | 2008-01-21 12:42:57 +0000 (Mon, 21 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-mpfr-gmp.h: for temporary allocations, use alloca() if size < 16384.
-
-------------------------------------------------------------------------
-r5203 | vlefevre | 2008-01-19 10:43:38 +0000 (Sat, 19 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: inverse square root -> reciprocal square root.
-
-------------------------------------------------------------------------
-r5202 | zimmerma | 2008-01-18 16:20:48 +0000 (Fri, 18 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mpfr_rec_sqrt in mpfr.texi (forgot in last commit)
-
-------------------------------------------------------------------------
-r5201 | vlefevre | 2008-01-18 15:47:39 +0000 (Fri, 18 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS: added mpfr_rec_sqrt for MPFR 2.4.*.
-
-------------------------------------------------------------------------
-r5200 | zimmerma | 2008-01-18 14:03:27 +0000 (Fri, 18 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed rec_sqrt (done)
-
-------------------------------------------------------------------------
-r5199 | thevenyp | 2008-01-17 17:46:53 +0000 (Thu, 17 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: merge code for "%Ra" and "%Rb"
-
-------------------------------------------------------------------------
-r5198 | thevenyp | 2008-01-16 12:54:47 +0000 (Wed, 16 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-cosmetic change: replace "enum _arg_type" by "enum arg_t"
-
-------------------------------------------------------------------------
-r5197 | thevenyp | 2008-01-16 10:58:11 +0000 (Wed, 16 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix %g case; merge %e, %f, %g code
-tests/tprintf.c: add tests for %Rg
-
-------------------------------------------------------------------------
-r5196 | thevenyp | 2008-01-16 10:50:42 +0000 (Wed, 16 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-add MPFR_SAVE_EXPO macros
-
-------------------------------------------------------------------------
-r5195 | thevenyp | 2008-01-16 10:44:18 +0000 (Wed, 16 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-cosmetic changes: only one leading underscore for an identifier with file scope
-
-------------------------------------------------------------------------
-r5194 | thevenyp | 2008-01-16 10:29:58 +0000 (Wed, 16 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-add needed va_list argument in READ_INT macro
-
-------------------------------------------------------------------------
-r5193 | vlefevre | 2008-01-16 09:30:15 +0000 (Wed, 16 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/tests
-
-tests: added trec_sqrt to svn:ignore property.
-
-------------------------------------------------------------------------
-r5191 | vlefevre | 2008-01-16 09:05:22 +0000 (Wed, 16 Jan 2008) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: when building MPFR with the GMP build directory,
-use TMP_ALLOC(s) instead of TMP_SALLOC(s), as we don't know
-whether allocations are small or big (see gmp-impl.h).
-
-------------------------------------------------------------------------
-r5190 | zimmerma | 2008-01-16 07:57:24 +0000 (Wed, 16 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/rec_sqrt.c
-
-moved from ASSERTD to ASSERTN an assertion which does not depend on MPFR
-
-------------------------------------------------------------------------
-r5189 | zimmerma | 2008-01-15 17:16:35 +0000 (Tue, 15 Jan 2008) | 2 lines
-Changed paths:
- A /trunk/tests/trec_sqrt.c
-
-this file might be useful to test mpfr_rec_sqrt...
-
-------------------------------------------------------------------------
-r5188 | zimmerma | 2008-01-15 17:10:17 +0000 (Tue, 15 Jan 2008) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/algorithms.tex
- M /trunk/mpfr.h
- M /trunk/rec_sqrt.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tests.c
-
-rec_sqrt.c: complete rewrite, to allow to use directly the MPFR internal
- representation as input (without shift), and to allow different
- input and output precisions, without loss of efficiency
-other files: added new function mpfr_rec_sqrt
-
-------------------------------------------------------------------------
-r5187 | vlefevre | 2008-01-14 17:23:44 +0000 (Mon, 14 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/rec_sqrt.c
-
-rec_sqrt.c: deleted trailing whitespace.
-
-------------------------------------------------------------------------
-r5186 | vlefevre | 2008-01-14 17:22:35 +0000 (Mon, 14 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
-
-mpfr-gmp.{c,h}: no longer use alloca() for the temporary allocations as
-this can make MPFR crash in some high precisions, due to limited stack.
-
-------------------------------------------------------------------------
-r5185 | thevenyp | 2008-01-14 10:41:19 +0000 (Mon, 14 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-add bug found by Paul Zimmermann
-
-------------------------------------------------------------------------
-r5184 | thevenyp | 2008-01-14 10:33:01 +0000 (Mon, 14 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: fix wrong computation of digit number with %Rf when 0 < op < 1
-tests/tprintf.c: simpler 10^-n case
-
-------------------------------------------------------------------------
-r5182 | vlefevre | 2008-01-14 08:34:00 +0000 (Mon, 14 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: typo.
-
-------------------------------------------------------------------------
-r5181 | vlefevre | 2008-01-11 21:54:06 +0000 (Fri, 11 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated month.
-
-------------------------------------------------------------------------
-r5180 | vlefevre | 2008-01-11 21:45:08 +0000 (Fri, 11 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added a warning concerning huge precisions.
-
-------------------------------------------------------------------------
-r5179 | thevenyp | 2008-01-10 17:18:23 +0000 (Thu, 10 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-fix %f case
-
-------------------------------------------------------------------------
-r5178 | thevenyp | 2008-01-10 17:06:11 +0000 (Thu, 10 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r5177 | zimmerma | 2008-01-08 07:36:23 +0000 (Tue, 08 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-small changes for acos/asin/atan/atan2 rounded outside their output range
-
-------------------------------------------------------------------------
-r5176 | zimmerma | 2008-01-07 21:11:03 +0000 (Mon, 07 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added note about output of acos/asin/atan/atan2 which might be outside the
-function domain
-
-------------------------------------------------------------------------
-r5175 | zimmerma | 2008-01-05 09:20:12 +0000 (Sat, 05 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/rec_sqrt.c
-
-new version with improved tables, use macros from mpfr-impl.h, removed tabs
-
-------------------------------------------------------------------------
-r5173 | vlefevre | 2008-01-04 21:57:08 +0000 (Fri, 04 Jan 2008) | 4 lines
-Changed paths:
- M /trunk/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-Fixed return value of mpfr_strtofr in case of invalid data (it was -1,
-but it should be 0 since it is a ternary value and the result is 0,
-which is exact). Added test of the ternary value in this case.
-
-------------------------------------------------------------------------
-r5172 | vlefevre | 2008-01-04 21:33:19 +0000 (Fri, 04 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: better description of mpfr_strtofr.
-
-------------------------------------------------------------------------
-r5171 | vlefevre | 2008-01-04 13:11:46 +0000 (Fri, 04 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS update (new functions in the trunk).
-
-------------------------------------------------------------------------
-r5167 | vlefevre | 2008-01-04 12:07:14 +0000 (Fri, 04 Jan 2008) | 15 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-Changes related to mpfr_strtofr.
- * strtofr.c: for mpfr_strtofr, data corresponding to NaN can now have
- an optional sign (since the documentation said that parsing followed
- the standard C strtod function and this change makes invalid data
- now valid, so that there should be no compatibility problems).
- * tests/tstrtofr.c: changed the test for -42P17 in base 16 (this was
- eventually regarded as a documentation bug); added tests.
- * mpfr.texi: almost completely rewrote the specification of the
- mpfr_strtofr function. Changes:
- - the binary exponent is now accepted even without the 0b or 0x
- prefix;
- - data corresponding to NaN can now have an optional sign (this was
- a bit ambiguous);
- - many other ambiguities avoided.
-
-------------------------------------------------------------------------
-r5166 | zimmerma | 2008-01-04 10:35:04 +0000 (Fri, 04 Jan 2008) | 5 lines
-Changed paths:
- A /trunk/rec_sqrt.c
-
-the function mpfr_mpn_rec_sqrt() provides a faithful approximation of the
-inverse square root. Some improvements can still be made, but the interface
-should not change, thus we can start writing the mpfr_rec_sqrt function that
-calls it.
-
-------------------------------------------------------------------------
-r5164 | vlefevre | 2008-01-02 17:19:42 +0000 (Wed, 02 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update.
-
-------------------------------------------------------------------------
-r5161 | vlefevre | 2008-01-01 12:31:06 +0000 (Tue, 01 Jan 2008) | 3 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-tgamma.c: completed test in r5159 with another one that was failing
-in the default exponent range.
-
-------------------------------------------------------------------------
-r5160 | vlefevre | 2008-01-01 12:07:21 +0000 (Tue, 01 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-delete trailing spaces.
-
-------------------------------------------------------------------------
-r5159 | zimmerma | 2008-01-01 09:44:28 +0000 (Tue, 01 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed bug in case of underflow (wrong sign)
-
-------------------------------------------------------------------------
-r5157 | vlefevre | 2008-01-01 03:57:20 +0000 (Tue, 01 Jan 2008) | 4 lines
-Changed paths:
- M /trunk/gen_inverse.h
-
-gen_inverse.h: fixed the bug reported by Kevin Rauch a few hours ago
-(and that was detected by the generic tests and by mpfrlint after the
-latest changes).
-
-------------------------------------------------------------------------
-r5154 | vlefevre | 2008-01-01 03:47:50 +0000 (Tue, 01 Jan 2008) | 2 lines
-Changed paths:
- M /trunk/mpfrlint
-
-mpfrlint: incorrect use of mpfr_<flag>_p is also checked in .h files.
-
-------------------------------------------------------------------------
-r5151 | vlefevre | 2008-01-01 03:26:37 +0000 (Tue, 01 Jan 2008) | 4 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_d.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/d_div.c
- M /trunk/d_sub.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_d.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_patches.sh
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/modf.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_d.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/printf.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rem1.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/setsign.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/signbit.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_d.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/data/li2
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tfms.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tisqrt.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/tl2b.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/vasprintf.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/yn.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Copyright notice update: added 2008 with
- perl -pi -e 's/2007 Free Software/2007, 2008 Free Software/' **/*(^/)
-under zsh.
-
-------------------------------------------------------------------------
-r5150 | vlefevre | 2008-01-01 03:17:56 +0000 (Tue, 01 Jan 2008) | 5 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: in the bug detection with flags set before the function
-call, the erange flag was set, so that no checks were performed on
-the return value. Fixed that by not setting the erange flag.
--> Now, 7 tests fail!
-
-------------------------------------------------------------------------
-r5149 | vlefevre | 2007-12-31 02:32:11 +0000 (Mon, 31 Dec 2007) | 5 lines
-Changed paths:
- M /trunk/tests/tstrtofr.c
-
-tstrtofr.c: added test of -42P17 with base = 0 and 16. This currently
-fails with base = 16 (-42P17 is parsed as -0x42P17 instead of -42 with
-the remaining characters "P17"), but we could alternatively regard the
-mpfr_strtofr specification (in mpfr.texi) as incorrect.
-
-------------------------------------------------------------------------
-r5148 | vlefevre | 2007-12-30 18:20:34 +0000 (Sun, 30 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: corrections in the specification of mpfr_strtofr (see FIXME).
-
-------------------------------------------------------------------------
-r5147 | vlefevre | 2007-12-30 17:48:06 +0000 (Sun, 30 Dec 2007) | 5 lines
-Changed paths:
- M /trunk/strtofr.c
- M /trunk/tests/tset_str.c
-
-strtofr.c: base arguments different from 0 and 2..36 have never been
-accepted. So, instead of returning the confusing -1 (it's a ternary
-value), let's add an assert for the moment. An alternative solution
-is to return 0 and set the erange flag.
-
-------------------------------------------------------------------------
-r5146 | vlefevre | 2007-12-30 17:17:36 +0000 (Sun, 30 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: minor change (in the style); a comment was ambiguous.
-
-------------------------------------------------------------------------
-r5145 | vlefevre | 2007-12-29 22:02:14 +0000 (Sat, 29 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO update (tests: generic bad cases).
-
-------------------------------------------------------------------------
-r5144 | vlefevre | 2007-12-29 21:46:50 +0000 (Sat, 29 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsub_d.c
-
-Added #if MPFR_VERSION >= MPFR_VERSION_NUM(2,4,0) conditionals to be
-able to test MPFR 2.3.* with the (more complete) tests from the trunk.
-
-------------------------------------------------------------------------
-r5143 | vlefevre | 2007-12-29 17:07:10 +0000 (Sat, 29 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated item 6 of "To make a release".
-
-------------------------------------------------------------------------
-r5138 | vlefevre | 2007-12-28 02:37:11 +0000 (Fri, 28 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated month.
-
-------------------------------------------------------------------------
-r5136 | vlefevre | 2007-12-27 16:12:57 +0000 (Thu, 27 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tests.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tsubnormal.c
-
-tests: check the exponent range, in particular at the end of each test.
-
-------------------------------------------------------------------------
-r5135 | vlefevre | 2007-12-27 16:00:56 +0000 (Thu, 27 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/texceptions.c
-
-texceptions.c: GNU coding style.
-
-------------------------------------------------------------------------
-r5134 | vlefevre | 2007-12-27 15:59:46 +0000 (Thu, 27 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/texceptions.c
-
-texceptions.c: restore the exponent range.
-
-------------------------------------------------------------------------
-r5132 | vlefevre | 2007-12-27 03:10:01 +0000 (Thu, 27 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/exp2.c
-
-exp2.c: removed incorrect comment (the overflow test was OK due to the
-mpfr_clear_flags above, but the new test is slightly better anyway).
-
-------------------------------------------------------------------------
-r5127 | zimmerma | 2007-12-21 15:31:55 +0000 (Fri, 21 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-added tuning parameters for 32-bit Core 2
-(thanks to Patrick Pelissier and Emmanuel Thome)
-
-------------------------------------------------------------------------
-r5124 | vlefevre | 2007-12-20 08:53:50 +0000 (Thu, 20 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: enable testcase bug20071218.
-
-------------------------------------------------------------------------
-r5123 | vlefevre | 2007-12-19 18:15:03 +0000 (Wed, 19 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: possible incorrect results due to internal underflow.
-
-------------------------------------------------------------------------
-r5122 | vlefevre | 2007-12-19 18:00:59 +0000 (Wed, 19 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-pow.c: detect all underflow cases (some of them were leading to
-an infinite loop, see bug20071218 in tpow.c).
-
-------------------------------------------------------------------------
-r5121 | vlefevre | 2007-12-19 15:04:43 +0000 (Wed, 19 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: updated description of MPFR_CAN_ROUND.
-
-------------------------------------------------------------------------
-r5120 | vlefevre | 2007-12-19 14:49:34 +0000 (Wed, 19 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/round_p.c
-
-round_p.c: in comment, "round to zero" -> "round toward zero".
-
-------------------------------------------------------------------------
-r5119 | vlefevre | 2007-12-19 14:27:30 +0000 (Wed, 19 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: formatting.
-
-------------------------------------------------------------------------
-r5118 | vlefevre | 2007-12-19 14:25:10 +0000 (Wed, 19 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: added testcase for another bug found by Kevin P. Rauch.
-Execute tpow with an argument to enable it.
-
-------------------------------------------------------------------------
-r5117 | thevenyp | 2007-12-19 10:32:52 +0000 (Wed, 19 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: add sprnt_fp_e for "%e" processing
-tests/tprintf.c: change tests for decimal output (but need further tests)
-
-------------------------------------------------------------------------
-r5116 | thevenyp | 2007-12-19 09:26:37 +0000 (Wed, 19 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-add checks for zero
-
-------------------------------------------------------------------------
-r5115 | vlefevre | 2007-12-18 15:51:00 +0000 (Tue, 18 Dec 2007) | 11 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/atan2.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/gamma.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfrlint
- M /trunk/pow.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/rint.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/tests/tgeneric.c
- M /trunk/yn.c
-
-Merged the feature-block branch to the trunk:
-* New MPFR_BLOCK* macros (see mpfr-impl.h) and mpfrlint check to test
- exception flags in a more reliable way and detect possible problems
- with mpfrlint.
-* Improved the generic tests (tests/tgeneric.c): for the second
- function call, sometimes set all the flags since risk of failures
- are known when some flags are already set.
-* Modified code to use these new MPFR_BLOCK* macros. This fixed bugs
- related to exceptions (where flags are set before the call); in
- particular, tcot and ty1 failed with the improved generic tests.
-
-------------------------------------------------------------------------
-r5113 | thevenyp | 2007-12-18 15:09:30 +0000 (Tue, 18 Dec 2007) | 4 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-printf.c: each mpfr_printf-like function return -1 and set erange flag in error case
-vasprintf.c: change types in struct char_fp
-vasprintf.c: add many size checking
-
-------------------------------------------------------------------------
-r5112 | thevenyp | 2007-12-18 13:48:07 +0000 (Tue, 18 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-simplify code, improve comments
-
-------------------------------------------------------------------------
-r5110 | vlefevre | 2007-12-18 12:54:25 +0000 (Tue, 18 Dec 2007) | 6 lines
-Changed paths:
- M /trunk/pow_z.c
- M /trunk/tests/tpow_z.c
-
-Fixed bug in mpfr_pow_z: if x = y (same mpfr_t argument), the input
-argument is negative and not a power of two, z is positive and odd,
-an overflow or underflow occurs, and the temporary result res is
-positive, then the result gets a wrong sign (positive instead of
-negative). Testcase.
-
-------------------------------------------------------------------------
-r5108 | vlefevre | 2007-12-18 12:08:42 +0000 (Tue, 18 Dec 2007) | 5 lines
-Changed paths:
- M /trunk/pow_ui.c
- M /trunk/tests/tpow.c
-
-Fixed bug in mpfr_pow_ui (introduced in r3214): if x = y (same mpfr_t
-argument), the input argument is negative, n is odd, an overflow or
-underflow occurs, and the temporary result res is positive, then the
-result gets a wrong sign (positive instead of negative). Testcase.
-
-------------------------------------------------------------------------
-r5107 | vlefevre | 2007-12-18 11:24:53 +0000 (Tue, 18 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/pow_ui.c
-
-pow_ui.c: fixed an assertion.
-
-------------------------------------------------------------------------
-r5106 | vlefevre | 2007-12-18 10:27:28 +0000 (Tue, 18 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: update concerning overflow/underflow exceptions.
-
-------------------------------------------------------------------------
-r5105 | thevenyp | 2007-12-18 10:08:21 +0000 (Tue, 18 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-exponent continuity with one hexadecimal digit output
-
-------------------------------------------------------------------------
-r5104 | thevenyp | 2007-12-17 14:41:58 +0000 (Mon, 17 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-#define CASE_INT_MAX_ARG to nil when HAVE_STDINT_H is not defined
-
-------------------------------------------------------------------------
-r5103 | thevenyp | 2007-12-17 13:52:26 +0000 (Mon, 17 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: add sprnt_fp_b for "%b" processing
-tests/tprintf.c: add tests for binary output
-
-------------------------------------------------------------------------
-r5102 | thevenyp | 2007-12-17 13:49:11 +0000 (Mon, 17 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix count of characters in exponent part
-
-------------------------------------------------------------------------
-r5101 | thevenyp | 2007-12-17 13:46:24 +0000 (Mon, 17 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-simplify code, remove trailing spaces and improve comment
-
-------------------------------------------------------------------------
-r5100 | vlefevre | 2007-12-17 12:04:53 +0000 (Mon, 17 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: added note about the successive calls to strcat in vasprintf.c.
-
-------------------------------------------------------------------------
-r5099 | thevenyp | 2007-12-17 10:16:34 +0000 (Mon, 17 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-add tests for 1 hexa digit output
-
-------------------------------------------------------------------------
-r5093 | vlefevre | 2007-12-16 00:15:25 +0000 (Sun, 16 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: fixed indentation.
-
-------------------------------------------------------------------------
-r5092 | zimmerma | 2007-12-15 14:29:06 +0000 (Sat, 15 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/reldiff.c
-
-fixed typo
-
-------------------------------------------------------------------------
-r5091 | zimmerma | 2007-12-15 09:42:13 +0000 (Sat, 15 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/asin.c
- M /trunk/tests/tasin.c
-
-fixed bug reported by Kevin Rauch
-
-------------------------------------------------------------------------
-r5090 | thevenyp | 2007-12-14 17:12:05 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-change display with just one hexadecimal digit
-
-------------------------------------------------------------------------
-r5089 | zimmerma | 2007-12-14 14:26:21 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-simplified MPFR_FAST_COMPUTE_IF_SMALL_INPUT part (in case of overlap)
-
-------------------------------------------------------------------------
-r5088 | thevenyp | 2007-12-14 14:08:28 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-fix wrong call
-
-------------------------------------------------------------------------
-r5087 | zimmerma | 2007-12-14 13:24:44 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/round_near_x.c
-
-added comments, got rid of compiler warnings
-
-------------------------------------------------------------------------
-r5086 | zimmerma | 2007-12-14 13:10:41 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/sinh_cosh.c
-
-added warning
-
-------------------------------------------------------------------------
-r5085 | vlefevre | 2007-12-14 12:36:25 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-sin_cos.c: improved changeset 5084; in particular, added a missing cast.
-
-------------------------------------------------------------------------
-r5084 | zimmerma | 2007-12-14 09:24:11 +0000 (Fri, 14 Dec 2007) | 4 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tsin_cos.c
-
-sin_cos.c, tsin_cos.c: fixed bug occurring when arguments overlap and
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT fails
-reuse.c: improved output in case of error
-
-------------------------------------------------------------------------
-r5083 | thevenyp | 2007-12-14 09:20:36 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-improve one digit case, add comment
-
-------------------------------------------------------------------------
-r5082 | vlefevre | 2007-12-14 09:06:26 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: added a FIXME comment. Bug?
-
-------------------------------------------------------------------------
-r5081 | vlefevre | 2007-12-14 09:05:30 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/vasprintf.c
-
-Minor changes concerning num_to_text. The ending \0 isn't needed.
-
-------------------------------------------------------------------------
-r5080 | thevenyp | 2007-12-14 08:56:31 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfmod.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsinh_cosh.c
-
-simplify error output code
-
-------------------------------------------------------------------------
-r5079 | thevenyp | 2007-12-14 08:45:48 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-add num_to_text array for hexadecimal digits
-
-------------------------------------------------------------------------
-r5078 | thevenyp | 2007-12-14 08:17:43 +0000 (Fri, 14 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfmod.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tsinh_cosh.c
-
-output errors to stdout
-
-------------------------------------------------------------------------
-r5077 | thevenyp | 2007-12-13 17:20:42 +0000 (Thu, 13 Dec 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tprintf.c
- M /trunk/vasprintf.c
-
-vasprintf.c: group hexadecimal output processing in a new sprnt_fp_a function.
-tests/tprintf.c: add tests for %a case
-tests/tprintf.c: factorize error message output
-
-------------------------------------------------------------------------
-r5076 | vlefevre | 2007-12-13 17:08:44 +0000 (Thu, 13 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
-
-get_d64.c: fixed comment.
-
-------------------------------------------------------------------------
-r5075 | vlefevre | 2007-12-13 17:03:19 +0000 (Thu, 13 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: added missing #include <string.h> (useful if MPFR is built
-with the GMP build directory, as mpfr-gmp.h isn't used in this case).
-
-------------------------------------------------------------------------
-r5074 | thevenyp | 2007-12-13 16:59:31 +0000 (Thu, 13 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix typos.
-
-------------------------------------------------------------------------
-r5073 | thevenyp | 2007-12-13 16:58:01 +0000 (Thu, 13 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/printf.c
-
-Add handle for null size case in mpfr_snprintf
-
-------------------------------------------------------------------------
-r5072 | thevenyp | 2007-12-13 16:53:24 +0000 (Thu, 13 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-Add some comments and assertions.
-
-------------------------------------------------------------------------
-r5071 | thevenyp | 2007-12-13 16:42:19 +0000 (Thu, 13 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-#define's for nan and inf strings
-
-------------------------------------------------------------------------
-r5070 | thevenyp | 2007-12-13 16:20:30 +0000 (Thu, 13 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-short documentation of printf-like functions.
-
-------------------------------------------------------------------------
-r5069 | vlefevre | 2007-12-12 23:02:12 +0000 (Wed, 12 Dec 2007) | 3 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added information about my tool "eet" to be able to see the
-warnings more easily.
-
-------------------------------------------------------------------------
-r5068 | vlefevre | 2007-12-12 14:46:26 +0000 (Wed, 12 Dec 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: updated comment concerning the case nbchar > INT_MAX.
-
-------------------------------------------------------------------------
-r5067 | zimmerma | 2007-11-30 17:26:38 +0000 (Fri, 30 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/jn.c
-
-changed default return value in mpfr_jn_k0
-
-------------------------------------------------------------------------
-r5066 | zimmerma | 2007-11-30 17:09:03 +0000 (Fri, 30 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/exp3.c
- M /trunk/tests/texp.c
-
-fixed underflow problem in mpfr_exp_3
-
-------------------------------------------------------------------------
-r5065 | zimmerma | 2007-11-30 15:03:56 +0000 (Fri, 30 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/jn.c
- M /trunk/tests/tset_str.c
-
-tests/tset_str.c: added command-line argument for output base
-jn.c: replaced double-precision LOG2 constant by binary string (more portable)
-
-------------------------------------------------------------------------
-r5064 | zimmerma | 2007-11-30 13:50:23 +0000 (Fri, 30 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-fixed underflow problem
-
-------------------------------------------------------------------------
-r5063 | zimmerma | 2007-11-30 12:05:02 +0000 (Fri, 30 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mparam_h.in
-
-experimental code to distinguish Core2 from AMD64
-
-------------------------------------------------------------------------
-r5062 | zimmerma | 2007-11-30 10:43:43 +0000 (Fri, 30 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/pow_ui.c
-
-removed manual change to __gmpfr_emin outside the allowed range
-
-------------------------------------------------------------------------
-r5061 | zimmerma | 2007-11-30 10:02:38 +0000 (Fri, 30 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-added suggestion from Patrick Pelissier
-
-------------------------------------------------------------------------
-r5059 | zimmerma | 2007-11-29 21:34:15 +0000 (Thu, 29 Nov 2007) | 5 lines
-Changed paths:
- M /trunk/pow_z.c
- M /trunk/tests/tpow.c
-
-Fixed another bug reported by Kevin Rauch (__gmpfr_emin was set smaller
-than the minimum allowed value, which produced an exponent wrap-around
-and a wrong result in mpfr_mul). Not sure if all problems are solved,
-nevertheless __gmpfr_emin is now in the allowed range.
-
-------------------------------------------------------------------------
-r5058 | vlefevre | 2007-11-29 18:03:50 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Fixed indentation.
-
-------------------------------------------------------------------------
-r5057 | vlefevre | 2007-11-29 17:55:42 +0000 (Thu, 29 Nov 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: in test4rm, initialize rndnext with an invalid value (meaning
-that rndnext will really be initialized later), and added an assert to
-check that this value isn't propagated to rnd.
-
-------------------------------------------------------------------------
-r5056 | vlefevre | 2007-11-29 17:45:03 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: added a comment about rndnext in test4rm.
-
-------------------------------------------------------------------------
-r5055 | vlefevre | 2007-11-29 17:28:34 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: added an assertion.
-
-------------------------------------------------------------------------
-r5054 | zimmerma | 2007-11-29 17:00:34 +0000 (Thu, 29 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-fixed bug reported by Kevin Rauch (wrong sign in case of underflow for
-large negative x and large odd negative y)
-
-------------------------------------------------------------------------
-r5053 | thevenyp | 2007-11-29 14:02:23 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-untabify and remove trailing spaces
-
-------------------------------------------------------------------------
-r5052 | thevenyp | 2007-11-29 12:54:29 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix padding error in sprnt_inf
-
-------------------------------------------------------------------------
-r5051 | thevenyp | 2007-11-29 12:50:50 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-factorization of special numbers output in sprnt_nan and sprnt_inf functions
-
-------------------------------------------------------------------------
-r5050 | thevenyp | 2007-11-29 12:43:47 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix comment about the size of format string buffer
-
-------------------------------------------------------------------------
-r5049 | thevenyp | 2007-11-29 12:32:02 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-replace memory management functions mpfr_default_* by __gmp_*_func
-
-------------------------------------------------------------------------
-r5048 | zimmerma | 2007-11-29 10:16:37 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-updated Core 2 thresholds (obtained with gmp-4.2.2 and Gaudry's patch)
-
-------------------------------------------------------------------------
-r5047 | vlefevre | 2007-11-29 09:21:01 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-Typo in comment.
-
-------------------------------------------------------------------------
-r5046 | thevenyp | 2007-11-29 08:36:49 +0000 (Thu, 29 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/printf.c
-
-fix typo pointed out in revision 5044
-
-------------------------------------------------------------------------
-r5045 | vlefevre | 2007-11-28 14:36:21 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/printf.c
-
-printf.c: more comments about snprintf.
-
-------------------------------------------------------------------------
-r5044 | vlefevre | 2007-11-28 14:00:33 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/printf.c
-
-printf.c: added a comment concerning a warning (a bug, IMHO).
-
-------------------------------------------------------------------------
-r5043 | vlefevre | 2007-11-28 13:35:22 +0000 (Wed, 28 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: added FIXME comment concerning the case nbchar > INT_MAX,
-with a reference to POSIX.
-
-------------------------------------------------------------------------
-r5042 | thevenyp | 2007-11-28 13:32:24 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-add explanations about buffer size
-
-------------------------------------------------------------------------
-r5041 | thevenyp | 2007-11-28 12:53:15 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-change __gmp_const into const
-
-------------------------------------------------------------------------
-r5040 | vlefevre | 2007-11-28 10:29:33 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: added an assert.
-
-------------------------------------------------------------------------
-r5039 | thevenyp | 2007-11-28 10:13:55 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-fix output with space flag
-
-------------------------------------------------------------------------
-r5038 | thevenyp | 2007-11-28 10:09:19 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-add MPFR_ASSERTD to prevent buffer overflow
-
-------------------------------------------------------------------------
-r5037 | thevenyp | 2007-11-28 10:00:42 +0000 (Wed, 28 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-replace use of ptrdiff_t by size_t where possible
-
-------------------------------------------------------------------------
-r5032 | thevenyp | 2007-11-27 15:13:44 +0000 (Tue, 27 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-factorisation of temp string alloc in buffer_pad function
-
-------------------------------------------------------------------------
-r5031 | thevenyp | 2007-11-27 14:47:30 +0000 (Tue, 27 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r5030 | thevenyp | 2007-11-27 14:05:29 +0000 (Tue, 27 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-compatibility of types between nbc fields and mp_exp_t
-fix wrong size of buffer string exp_fmt
-
-------------------------------------------------------------------------
-r5026 | vlefevre | 2007-11-27 12:55:31 +0000 (Tue, 27 Nov 2007) | 3 lines
-Changed paths:
- A /trunk/mpfrlint
-
-Added initial mpfrlint sh script to check possible problems in
-the MPFR source.
-
-------------------------------------------------------------------------
-r5025 | thevenyp | 2007-11-27 09:53:31 +0000 (Tue, 27 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-change 'g'/'G' to 'e'/'E' or 'f'/'F' according to C99 rules
-
-------------------------------------------------------------------------
-r5024 | thevenyp | 2007-11-26 17:44:10 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-replace mpfr_default_(re)allocate by __gmp_(re)allocate for the returned string (freed by mpfr_free_str)
-
-------------------------------------------------------------------------
-r5023 | thevenyp | 2007-11-26 17:38:17 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tprintf.c: replace __gmp_const by const
-
-------------------------------------------------------------------------
-r5022 | vlefevre | 2007-11-26 15:27:56 +0000 (Mon, 26 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/printf.c
-
-printf.c: added FIXME comment: snprintf is new in C99. It must be
-checked with a configure test.
-
-------------------------------------------------------------------------
-r5021 | vlefevre | 2007-11-26 15:19:46 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-
-------------------------------------------------------------------------
-r5020 | vlefevre | 2007-11-26 15:16:09 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: reformat.
-
-------------------------------------------------------------------------
-r5019 | vlefevre | 2007-11-26 15:14:23 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/out_str.c
- M /trunk/strtofr.c
-
-MPFR_DECIMAL_POINT now needs to have type char (because of vasprintf.c).
-
-------------------------------------------------------------------------
-r5018 | vlefevre | 2007-11-26 15:11:53 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: changeset 4996 was incorrect. Fixed.
-
-------------------------------------------------------------------------
-r5017 | vlefevre | 2007-11-26 14:42:46 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: Avoid variable names "l", "I" and "O".
-
-------------------------------------------------------------------------
-r5016 | vlefevre | 2007-11-26 14:09:52 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a note about the locales.
-
-------------------------------------------------------------------------
-r5015 | thevenyp | 2007-11-26 13:55:28 +0000 (Mon, 26 Nov 2007) | 6 lines
-Changed paths:
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-printf.c: fix use of pointer of string
-vasprintf.c: add conditional compilation directives for wchar and wint_t
-vasprintf.c: add padding for special values
-vasprintf.c: fix output for value 1.0 and format "%Rf"
-vasprintf.c: replace __gmp_const by const
-
-------------------------------------------------------------------------
-r5014 | vlefevre | 2007-11-26 09:57:47 +0000 (Mon, 26 Nov 2007) | 9 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/vasprintf.c
-
-acinclude.m4: check wchar.h header (see below).
-vasprintf.c:
- * No longer depend on toupper (which returns locale-dependent results)
- to generate 'A'..'F' (see C standard).
- * Removed #include <ctype.h> which was hiding a bug (see below).
- * Added missing #include <wchar.h> if HAVE_WCHAR_H is defined. But
- the compilation fails if <wchar.h> doesn't exist due to the use of
- wchar_t and wint_t.
-
-------------------------------------------------------------------------
-r5013 | vlefevre | 2007-11-26 09:44:24 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: updated comments.
-
-------------------------------------------------------------------------
-r5012 | vlefevre | 2007-11-26 09:37:47 +0000 (Mon, 26 Nov 2007) | 5 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c:
- * Removed #include <stdlib.h> now useless.
- * Added FIXME comment.
- * Replaced _MP_EXP_FORMAT_SPEC (reserved) by MPFR_EXP_FORMAT_SPEC.
-
-------------------------------------------------------------------------
-r5011 | vlefevre | 2007-11-26 09:32:20 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: added FIXME comments.
-
-------------------------------------------------------------------------
-r5010 | vlefevre | 2007-11-26 09:18:06 +0000 (Mon, 26 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: fixed a typo in a comment and improved another comment.
-
-------------------------------------------------------------------------
-r5009 | vlefevre | 2007-11-24 01:46:30 +0000 (Sat, 24 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: moved function declarations out of "#ifdef _MPFR_H_HAVE_VA_LIST"
-and/or "#ifdef _MPFR_H_HAVE_FILE" when this makes sense.
-
-------------------------------------------------------------------------
-r5008 | vlefevre | 2007-11-24 01:41:33 +0000 (Sat, 24 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: added missing "void" in function declarations.
-
-------------------------------------------------------------------------
-r5007 | vlefevre | 2007-11-24 01:36:47 +0000 (Sat, 24 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tprintf.c
- M /trunk/tests/tset_f.c
- M /trunk/vasprintf.c
-
-Untabified and removed trailing spaces.
-
-------------------------------------------------------------------------
-r5006 | vlefevre | 2007-11-24 01:33:00 +0000 (Sat, 24 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/mpfr.texi
-
-mpfr.texi: corrections (English usage and texinfo). Added corresponding
-notes at the end of the README.dev file.
-
-------------------------------------------------------------------------
-r5005 | vlefevre | 2007-11-24 01:24:05 +0000 (Sat, 24 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: s/rounding to the nearest mode/rounding to nearest mode/
-
-------------------------------------------------------------------------
-r5004 | vlefevre | 2007-11-24 01:22:31 +0000 (Sat, 24 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi consistency changes: "towards" -> "toward" (because this
-is what the IEEE-754 standard uses, and we have mpfr_nexttoward).
-
-------------------------------------------------------------------------
-r5003 | vlefevre | 2007-11-24 01:17:08 +0000 (Sat, 24 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: English typography corrections (no space before ":").
-
-------------------------------------------------------------------------
-r5002 | vlefevre | 2007-11-24 01:15:22 +0000 (Sat, 24 Nov 2007) | 4 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: the use of the abs function was incorrect as its argument
-has type int, which may be smaller than an mp_exp_t. Fixed that and
-replaced uceil_log10 by uceil_log10_exp_p2.
-
-------------------------------------------------------------------------
-r5001 | vlefevre | 2007-11-24 00:55:50 +0000 (Sat, 24 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-vasprintf.c: fixed uceil_log10 for x close to ULONG_MAX.
-
-------------------------------------------------------------------------
-r5000 | zimmerma | 2007-11-23 20:22:10 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/vasprintf.c
-
-got rid of math.h
-
-------------------------------------------------------------------------
-r4999 | vlefevre | 2007-11-23 19:20:38 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: include <stdarg.h>.
-
-------------------------------------------------------------------------
-r4998 | vlefevre | 2007-11-23 19:19:04 +0000 (Fri, 23 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/printf.c
- M /trunk/vasprintf.c
-
-stdarg-related corrections, as HAVE_STDARG is not standard thus must not
-be tested in mpfr.h!
-
-------------------------------------------------------------------------
-r4997 | vlefevre | 2007-11-23 19:07:54 +0000 (Fri, 23 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c: enable the tests only if HAVE_STDARG is defined,
-i.e. if the printf-like functions are defined.
-
-------------------------------------------------------------------------
-r4996 | vlefevre | 2007-11-23 19:02:46 +0000 (Fri, 23 Nov 2007) | 7 lines
-Changed paths:
- M /trunk/tests/tprintf.c
-
-tests/tprintf.c:
- * Non-standard headers should be included after the standard headers
- (when possible).
- * The setlocale function is used only if <locale.h> has been included.
- * Use tests_start_mpfr / tests_end_mpfr; this shows a bug:
- tests_free(): attempt to free bad pointer 0x1801200
-
-------------------------------------------------------------------------
-r4995 | vlefevre | 2007-11-23 18:54:37 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: setlocale is used only if <locale.h> has been included.
-
-------------------------------------------------------------------------
-r4994 | vlefevre | 2007-11-23 18:48:52 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-out_str.c: remove other occurrence of <locale.h>.
-
-------------------------------------------------------------------------
-r4993 | thevenyp | 2007-11-23 17:35:46 +0000 (Fri, 23 Nov 2007) | 12 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/acinclude.m4
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/printf.c
- M /trunk/strtofr.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tests.c
- A /trunk/tests/tprintf.c
- A /trunk/vasprintf.c
-
-Makefile.am: add mpfr_printf-like functions
-mpfr.h: add mpfr_printf-like functions
-printf.c: printf, sprintf, snprintf, asprintf and 'v' variants
-vasprintf.c: vasprintf functions used by its likes
-mpfr.texi: add description for printf family functions
-tests/Makefile.am: add test for printf
-tests/tprintf.c: tests for printf-like functions
-acinclude.m4: define HAVE_LOCALE_H
-mpfr-impl.h: define MPFR_DECIMAL_POINT even if no locale.h
-strtofr.c: remove locale.h inclusion (done by mpfr-impl.h )
-tests/tests.c: use HAVE_LOCALE_H
-
-------------------------------------------------------------------------
-r4991 | vlefevre | 2007-11-23 16:55:03 +0000 (Fri, 23 Nov 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tisqrt.c
-
-tests/tisqrt.c: test the 32-bit __gmpfr_cuberoot bound cases (9 per
-value) exhaustively (running tisqrt is still immediate on a recent
-machine).
-
-------------------------------------------------------------------------
-r4990 | vlefevre | 2007-11-23 16:49:45 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tisqrt.c
-
-tests/tisqrt.c: test the 32-bit __gmpfr_isqrt bound cases exhaustively.
-
-------------------------------------------------------------------------
-r4989 | vlefevre | 2007-11-23 15:10:56 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: test the availability of <string.h>.
-
-------------------------------------------------------------------------
-r4988 | vlefevre | 2007-11-23 14:30:36 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: test the availability of <locale.h>.
-
-------------------------------------------------------------------------
-r4987 | vlefevre | 2007-11-23 14:26:39 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: updated comment concerning the checked functions.
-
-------------------------------------------------------------------------
-r4986 | vlefevre | 2007-11-23 14:24:50 +0000 (Fri, 23 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: added memmove to the checked functions (though this test
-is currently useless, except for the corresponding information).
-
-------------------------------------------------------------------------
-r4985 | vlefevre | 2007-11-23 14:19:40 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-acinclude.m4: updated a comment concerning the function checking.
-
-------------------------------------------------------------------------
-r4984 | vlefevre | 2007-11-23 13:46:04 +0000 (Fri, 23 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/gmp_op.c
-
-gmp_op.c: removed old "#include <stddef.h>" line (seems to be useless
-now, and note that <stdio.h> is included by default in mpfr-impl.h).
-
-------------------------------------------------------------------------
-r4982 | vlefevre | 2007-11-23 13:09:39 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tj0.c
-
-tests/tj0.c: fixed test.
-
-------------------------------------------------------------------------
-r4980 | vlefevre | 2007-11-23 12:58:53 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/jn.c
-
-jn.c: added integer overflow checking.
-
-------------------------------------------------------------------------
-r4978 | vlefevre | 2007-11-23 10:06:07 +0000 (Fri, 23 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-tests/memory.c: fixed copyright notice.
-
-------------------------------------------------------------------------
-r4969 | vlefevre | 2007-11-21 14:50:18 +0000 (Wed, 21 Nov 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-tests/tzeta.c: completed test of mpfr_zeta bug fixed in r4920 (the value
-of zeta(large negative) was also wrong in GMP_RNDU: -Inf instead of the
-largest negative MPFR number).
-
-------------------------------------------------------------------------
-r4957 | zimmerma | 2007-11-20 14:43:14 +0000 (Tue, 20 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tinp_str.c
-
-reverted back to rev. 4951 (otherwise we would have to free memory for all
-exit calls)
-
-------------------------------------------------------------------------
-r4956 | thevenyp | 2007-11-20 11:21:10 +0000 (Tue, 20 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_f.c
-
-use of RANDS instead of __gmp_rands
-tset_f.c add checking with random values
-
-------------------------------------------------------------------------
-r4955 | thevenyp | 2007-11-19 11:07:49 +0000 (Mon, 19 Nov 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tests.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_f.c
-
-tli2.c: fix wrong assertion in copyright motice
-test.c: fixed seed for reproducible errors
-trandom.c tpow_z.c tset_f.c: integration with GMP_CHECK_RANDOMIZE process
-
-------------------------------------------------------------------------
-r4954 | zimmerma | 2007-11-17 12:15:53 +0000 (Sat, 17 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tasin.c
-
-added missing call to tests_end_mpfr
-
-------------------------------------------------------------------------
-r4953 | zimmerma | 2007-11-17 09:59:19 +0000 (Sat, 17 Nov 2007) | 5 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tli2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/troot.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/tsub_ui.c
-
-got rid of mpfr_init_gmp_rand/MPFR_TEST_USE_RANDS and not-reentrant gmp
-random functions (mpn_random*, mpz_random*, mpf_random*). Now all tests use
-either RANDS (which is cleared by tests_rand_end called by tests_end_mpfr),
-or the gmp_randstate_t mechanism.
-
-------------------------------------------------------------------------
-r4952 | zimmerma | 2007-11-16 17:09:12 +0000 (Fri, 16 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tinp_str.c
-
-added missing mpfr_clear and tests_end_mpfr (thanks Michael Abshoff)
-
-------------------------------------------------------------------------
-r4951 | zimmerma | 2007-11-16 14:28:29 +0000 (Fri, 16 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-fixed problem reported by valgrind (thanks to Michael Abshoff)
-
-------------------------------------------------------------------------
-r4950 | zimmerma | 2007-11-06 22:07:31 +0000 (Tue, 06 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
- M /trunk/tests/tdiv_ui.c
-
-fixed bug in div_ui for x=0 and u<>0 (sign of result was not set)
-
-------------------------------------------------------------------------
-r4949 | thevenyp | 2007-11-06 10:53:43 +0000 (Tue, 06 Nov 2007) | 4 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-algorithms.tex: fix bibtex references for dilogarithm function
-algorithms.bib: add references for dilogarithm function
-
-
-------------------------------------------------------------------------
-r4948 | vlefevre | 2007-11-05 11:18:46 +0000 (Mon, 05 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: removed trailing spaces.
-
-------------------------------------------------------------------------
-r4947 | zimmerma | 2007-11-05 10:53:21 +0000 (Mon, 05 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/pow.c
-
-added new macro MPFR_ALIAS
-
-------------------------------------------------------------------------
-r4946 | zimmerma | 2007-11-04 11:10:23 +0000 (Sun, 04 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/expm1.c
-
-removed unused label
-
-------------------------------------------------------------------------
-r4945 | vlefevre | 2007-11-04 00:46:45 +0000 (Sun, 04 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/pow_z.c
-
-pow_z.c: fixed bug that occurs when x is a power of 2 and the result
-overflows (wrong sign); this bug has always been present (from r3215).
-
-------------------------------------------------------------------------
-r4944 | vlefevre | 2007-11-04 00:44:04 +0000 (Sun, 04 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow_z.c
-
-tpow.c, tpow_z.c: removed a printf that was left by mistake.
-
-------------------------------------------------------------------------
-r4943 | vlefevre | 2007-11-04 00:36:23 +0000 (Sun, 04 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-tpow_z.c: added testcase for the latest mpfr_pow bug (rev 4942),
-which is in fact a bug in mpfr_pow_z.
-
-------------------------------------------------------------------------
-r4942 | vlefevre | 2007-11-04 00:28:20 +0000 (Sun, 04 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: added testcase for new bug found by Kevin P. Rauch; removed a
-mpfr_dump that was left by mistake.
-
-------------------------------------------------------------------------
-r4941 | vlefevre | 2007-11-03 09:28:23 +0000 (Sat, 03 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-pow.c: removed FIXME comment.
-
-------------------------------------------------------------------------
-r4940 | zimmerma | 2007-11-03 08:45:17 +0000 (Sat, 03 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-fixed case x < 0, y large integer
-
-------------------------------------------------------------------------
-r4939 | vlefevre | 2007-11-03 02:05:04 +0000 (Sat, 03 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-pow.c: added FIXME comment.
-
-------------------------------------------------------------------------
-r4938 | vlefevre | 2007-11-03 01:59:23 +0000 (Sat, 03 Nov 2007) | 5 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: added testcase for new bug found by Kevin P. Rauch. The problem
-occurs on x^y with x negative and y an integer whose exponent is > 256
-(so that mpfr_pow_z isn't used, and the generic code is used instead and
-fails because x is negative).
-
-------------------------------------------------------------------------
-r4937 | vlefevre | 2007-11-02 15:02:50 +0000 (Fri, 02 Nov 2007) | 2 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-Fixed several bugs in mpfr_pow (from rev 3592 and 4932); added testcase.
-
-------------------------------------------------------------------------
-r4936 | vlefevre | 2007-11-02 14:29:21 +0000 (Fri, 02 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: added an overflow test in reduced exponent range
-(-> assertion failure in the current pow.c code).
-
-------------------------------------------------------------------------
-r4935 | vlefevre | 2007-11-02 13:02:45 +0000 (Fri, 02 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: added a comment concerning __gmpfr_one, __gmpfr_two and
-__gmpfr_four.
-
-------------------------------------------------------------------------
-r4934 | vlefevre | 2007-11-02 12:54:14 +0000 (Fri, 02 Nov 2007) | 3 lines
-Changed paths:
- M /trunk/cmp_abs.c
-
-Bug fix: in cmp_abs.c, changed MPFR_GET_EXP into MPFR_EXP to allow
-exponents outside the current exponent range (needed for mpfr_pow).
-
-------------------------------------------------------------------------
-r4933 | vlefevre | 2007-10-31 15:46:57 +0000 (Wed, 31 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/erfc.c
- M /trunk/li2.c
- M /trunk/lngamma.c
- M /trunk/mpfr.texi
- M /trunk/pow.c
- M /trunk/rem1.c
- M /trunk/tests/tfmod.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tzeta.c
-
-Untabified and removed trailing spaces.
-
-------------------------------------------------------------------------
-r4932 | zimmerma | 2007-10-30 16:29:46 +0000 (Tue, 30 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-pow.c, tpow.c: fixed bugs reported by Kevin Rauch
-mpfr-impl.h: fixed typo
-
-------------------------------------------------------------------------
-r4931 | zimmerma | 2007-10-30 14:35:24 +0000 (Tue, 30 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r4930 | zimmerma | 2007-10-30 14:00:30 +0000 (Tue, 30 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added missing \Li2
-
-------------------------------------------------------------------------
-r4929 | zimmerma | 2007-10-28 15:18:03 +0000 (Sun, 28 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/li2.c
- M /trunk/tests/data/li2
- M /trunk/tests/tli2.c
-
-added more test cases for mpfr_li2
-improved MPFR_FAST_COMPUTE_IF_SMALL_INPUT case for x > 0
-
-------------------------------------------------------------------------
-r4928 | zimmerma | 2007-10-28 13:16:02 +0000 (Sun, 28 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/tlgamma.c
-
-fixed bug mentioned by Kevin Rauch: mpfr_lgamma was hanging for tiny input
-(had to implement a complete loop in that case)
-
-------------------------------------------------------------------------
-r4927 | zimmerma | 2007-10-28 12:29:01 +0000 (Sun, 28 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/jn.c
- M /trunk/jyn_asympt.c
- M /trunk/tests/tj0.c
-
-fixed bug reported by Kevin Rauch: wrong sign for jn(n even, large negative x)
-
-------------------------------------------------------------------------
-r4926 | zimmerma | 2007-10-28 12:18:04 +0000 (Sun, 28 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/TODO
-
-removed item on mpfr_sinh_cosh (done)
-added more info on item on efficiency of mpfr_sin
-
-------------------------------------------------------------------------
-r4925 | zimmerma | 2007-10-28 11:53:51 +0000 (Sun, 28 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added comment about function/macro in custom interface
-
-------------------------------------------------------------------------
-r4924 | zimmerma | 2007-10-28 11:11:13 +0000 (Sun, 28 Oct 2007) | 4 lines
-Changed paths:
- M /trunk/jn.c
- M /trunk/tests/tjn.c
-
-jn.c: improved choice of initial precision in Taylor series (takes into
- account cancellation)
-tests/tjn.c: now "tjn p n z" evaluates j(n,z) to precision p
-
-------------------------------------------------------------------------
-r4923 | vlefevre | 2007-10-27 12:59:35 +0000 (Sat, 27 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/factorial.c
-
-factorial.c: added FIXME comment.
-
-------------------------------------------------------------------------
-r4922 | vlefevre | 2007-10-27 12:23:43 +0000 (Sat, 27 Oct 2007) | 4 lines
-Changed paths:
- M /trunk/gamma.c
-
-gamma.c: attempt to fix wrong fix in 4918 (the maximum exponent can
-be > 2^30 on 64-bit machines). There may still be problems in huge
-precisions.
-
-------------------------------------------------------------------------
-r4921 | zimmerma | 2007-10-27 11:17:24 +0000 (Sat, 27 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added note about efficiency of special functions
-corrected typo
-
-------------------------------------------------------------------------
-r4920 | zimmerma | 2007-10-27 11:07:33 +0000 (Sat, 27 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-fixed bug in zeta(large negative) reported by Kevin Rauch [wrong inexact flag]
-
-------------------------------------------------------------------------
-r4919 | zimmerma | 2007-10-27 08:15:57 +0000 (Sat, 27 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/erfc.c
- M /trunk/tests/terf.c
-
-fixed inefficiency reported by Kevin Rauch when x large negative (erfc -> 2)
-
-------------------------------------------------------------------------
-r4918 | zimmerma | 2007-10-26 19:12:24 +0000 (Fri, 26 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed another bug found by Kevin Rauch: gamma(huge integer) failed on 64-bit
-
-------------------------------------------------------------------------
-r4917 | zimmerma | 2007-10-26 18:34:54 +0000 (Fri, 26 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/tlgamma.c
-
-fixed bug found by Kevin Rauch (emin/emax not restored for x=1,2)
-
-------------------------------------------------------------------------
-r4916 | zimmerma | 2007-10-26 18:05:43 +0000 (Fri, 26 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tli2.c
-
-added test for reference values
-
-------------------------------------------------------------------------
-r4915 | zimmerma | 2007-10-26 18:05:12 +0000 (Fri, 26 Oct 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/li2
-
-reference values for li2
-
-------------------------------------------------------------------------
-r4914 | thevenyp | 2007-10-26 17:32:19 +0000 (Fri, 26 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/li2.c
-
-algorithms.tex: description of dilogarithm algorithm
-li2.c: conformity with description in algorithm.tex
-
-------------------------------------------------------------------------
-r4913 | vlefevre | 2007-10-23 10:16:22 +0000 (Tue, 23 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: small change in the description of mpfr_subnormalize.
-
-------------------------------------------------------------------------
-r4912 | zimmerma | 2007-10-23 09:02:35 +0000 (Tue, 23 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added more details in the description of subnormalize
-
-------------------------------------------------------------------------
-r4908 | vlefevre | 2007-10-23 02:43:39 +0000 (Tue, 23 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/subnormal.c
-
-subnormal.c: fixed the bugs when old_inex is INT_MIN or INT_MAX.
-
-------------------------------------------------------------------------
-r4907 | vlefevre | 2007-10-23 02:35:00 +0000 (Tue, 23 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tsubnormal.c
-
-tsubnormal.c: added some tests showing bugs when old_inex is INT_MIN
-or INT_MAX.
-
-------------------------------------------------------------------------
-r4906 | vlefevre | 2007-10-23 02:31:48 +0000 (Tue, 23 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/subnormal.c
-
-subnormal.c: corrected comment.
-
-------------------------------------------------------------------------
-r4905 | vlefevre | 2007-10-23 01:52:28 +0000 (Tue, 23 Oct 2007) | 8 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/subnormal.c
-
-Changeset r4904 introduced an assertion failure, but the assertion
-emax - emin >= PREC(x) wasn't necessary: the value of emax doesn't
-matter, except when the exponent is increased due to the rounding.
-So, we just document that if the result cannot be represented in the
-current exponent range, the behavior is undefined (updated mpfr.texi
-accordingly). Removed the assertion from subnormal.c and added a new
-one to have an abort if such an undefined behavior occurs.
-
-------------------------------------------------------------------------
-r4904 | zimmerma | 2007-10-22 18:38:49 +0000 (Mon, 22 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/subnormal.c
- M /trunk/tests/tsubnormal.c
-
-fixed 2 bugs reported by Kevin Rauch
-
-------------------------------------------------------------------------
-r4903 | vlefevre | 2007-10-22 16:41:45 +0000 (Mon, 22 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/subnormal.c
-
-subnormal.c: replaced incorrect comment.
-
-------------------------------------------------------------------------
-r4902 | vlefevre | 2007-10-22 15:22:24 +0000 (Mon, 22 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-
-------------------------------------------------------------------------
-r4901 | zimmerma | 2007-10-22 08:55:51 +0000 (Mon, 22 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
-
-added new references
-
-------------------------------------------------------------------------
-r4899 | zimmerma | 2007-10-20 09:18:37 +0000 (Sat, 20 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/li2.c
-
-added asymptotic expansions
-
-------------------------------------------------------------------------
-r4898 | thevenyp | 2007-10-19 16:08:27 +0000 (Fri, 19 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/li2.c
- M /trunk/tests/tli2.c
-
-li2.c: add Ziv's loop in li2_series
-tli2.c: add a function for fixed value checking
-
-------------------------------------------------------------------------
-r4897 | thevenyp | 2007-10-17 16:10:03 +0000 (Wed, 17 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/li2.c
- M /trunk/tests/tli2.c
-
-li2.c: fix a typo and fix use of taylor series
-tests/tli2.c: use default random function
-
-------------------------------------------------------------------------
-r4896 | thevenyp | 2007-10-16 17:02:02 +0000 (Tue, 16 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/li2.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- M /trunk/tests/reuse.c
- A /trunk/tests/tli2.c
-
-add dilogarithm function
-
-------------------------------------------------------------------------
-r4895 | zimmerma | 2007-10-15 14:11:22 +0000 (Mon, 15 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item in Efficiency section
-
-------------------------------------------------------------------------
-r4894 | zimmerma | 2007-10-15 13:14:30 +0000 (Mon, 15 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/TODO
-
-added table of contents
-removed last section (mpf/mpfr integration)
-
-------------------------------------------------------------------------
-r4893 | vlefevre | 2007-10-15 01:58:45 +0000 (Mon, 15 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/algorithms.tex
-
-Fixed acosh(x) with x slightly larger than 1, using sqrt(2(x-1)) and
-a complete error analysis.
-
-------------------------------------------------------------------------
-r4892 | vlefevre | 2007-10-15 00:46:10 +0000 (Mon, 15 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tacosh.c
-
-tests/tacosh.c: added another test with x a bit larger than 1 and
-prec(y) << prec(x).
-
-------------------------------------------------------------------------
-r4891 | vlefevre | 2007-10-12 16:07:23 +0000 (Fri, 12 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-acosh.c: added a comment about the fix I did in r4814.
-
-------------------------------------------------------------------------
-r4890 | zimmerma | 2007-10-09 20:22:47 +0000 (Tue, 09 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added extra reference for slowness of mpfr_root
-
-------------------------------------------------------------------------
-r4888 | vlefevre | 2007-10-09 11:48:52 +0000 (Tue, 09 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update (added Question 8).
-
-------------------------------------------------------------------------
-r4887 | vlefevre | 2007-10-09 11:03:16 +0000 (Tue, 09 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: another small change in Contributors section.
-
-------------------------------------------------------------------------
-r4886 | vlefevre | 2007-10-09 10:35:28 +0000 (Tue, 09 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: small change in Contributors section.
-
-------------------------------------------------------------------------
-r4885 | vlefevre | 2007-10-09 09:59:18 +0000 (Tue, 09 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: mention Fiable and AOC actions in the Contributors section.
-
-------------------------------------------------------------------------
-r4884 | zimmerma | 2007-10-09 07:50:42 +0000 (Tue, 09 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added reference to ACM TOMS paper
-updated other references, and Contributors section
-
-------------------------------------------------------------------------
-r4883 | zimmerma | 2007-10-09 06:11:31 +0000 (Tue, 09 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed typo in sectioning
-
-------------------------------------------------------------------------
-r4882 | zimmerma | 2007-10-08 17:16:51 +0000 (Mon, 08 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-removed mpfr_get_d1 from documented functions
-removed old commented functions
-
-------------------------------------------------------------------------
-r4881 | zimmerma | 2007-10-08 14:48:38 +0000 (Mon, 08 Oct 2007) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-renamed "Rounding Mode Related Functions" to "Rounding Related Functions"
-put mpfr_can_round in "Rounding Related Functions" (now exported)
-exchanged order of sections "Miscellaneous Functions" and "Rounding Related Functions"
-
-------------------------------------------------------------------------
-r4880 | zimmerma | 2007-10-08 11:04:34 +0000 (Mon, 08 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added hint for mpfr_can_round to get ternary value
-
-------------------------------------------------------------------------
-r4879 | zimmerma | 2007-10-08 10:09:56 +0000 (Mon, 08 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-changed mpfr_can_round() call into MPFR_CAN_ROUND() call
-
-------------------------------------------------------------------------
-r4878 | vlefevre | 2007-10-05 12:18:17 +0000 (Fri, 05 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/update-version
-
-Updated update-version to make patches easier to produce.
-
-------------------------------------------------------------------------
-r4876 | vlefevre | 2007-10-04 01:57:35 +0000 (Thu, 04 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/atan2.c
- M /trunk/tests/tatan.c
-
-Fixed a bug (found by Robert Bajema) in mpfr_atan2, which can occur if
-the underflow flag is set before the call and x > 0; added testcase.
-
-------------------------------------------------------------------------
-r4875 | vlefevre | 2007-10-03 15:13:06 +0000 (Wed, 03 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: improved mpfr_set_exp description too.
-
-------------------------------------------------------------------------
-r4874 | vlefevre | 2007-10-03 15:09:49 +0000 (Wed, 03 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: improved mpfr_get_exp documentation.
-
-------------------------------------------------------------------------
-r4873 | vlefevre | 2007-10-03 15:05:31 +0000 (Wed, 03 Oct 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: mantissa -> significand (to use the terminology from IEEE 754
-and ISO C99).
-
-------------------------------------------------------------------------
-r4872 | vlefevre | 2007-10-03 14:36:38 +0000 (Wed, 03 Oct 2007) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: better error message if libgmp is not found.
-
-------------------------------------------------------------------------
-r4871 | thevenyp | 2007-10-02 16:08:02 +0000 (Tue, 02 Oct 2007) | 1 line
-Changed paths:
- M /trunk/algorithms.tex
-
-fix some typos
-------------------------------------------------------------------------
-r4870 | zimmerma | 2007-09-28 16:14:03 +0000 (Fri, 28 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added references
-
-------------------------------------------------------------------------
-r4869 | thevenyp | 2007-09-28 12:08:56 +0000 (Fri, 28 Sep 2007) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- D /trunk/fmod.c
- M /trunk/mpfr.texi
- A /trunk/rem1.c
- D /trunk/remquo.c
- M /trunk/tests/tfmod.c
-
-merge fmod, remaider and remquo into a single file rem1.c.
-merge code into a single internal function mpfr_rem1.
-fix false statement in mpfr.texi: rop and op1 have the same sign for mpfr_fmod
-but not for mpfr_remainder and mpfr_remquo.
-
-------------------------------------------------------------------------
-r4868 | vlefevre | 2007-09-26 16:20:35 +0000 (Wed, 26 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfmod.c
-
-tests/tfmod.c: added static.
-
-------------------------------------------------------------------------
-r4867 | thevenyp | 2007-09-26 11:30:29 +0000 (Wed, 26 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/fmod.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- M /trunk/tests/reuse.c
- A /trunk/tests/tfmod.c
-
-new fmod function
-
-------------------------------------------------------------------------
-r4866 | vlefevre | 2007-09-22 00:17:11 +0000 (Sat, 22 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-
-------------------------------------------------------------------------
-r4865 | vlefevre | 2007-09-22 00:15:49 +0000 (Sat, 22 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/add_d.c
- M /trunk/modf.c
- M /trunk/mpfr.texi
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sinh_cosh.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tadd_d.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tmodf.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tsinh_cosh.c
- M /trunk/tests/tsub_d.c
- M /trunk/tests/ttrunc.c
-
-GNU coding style, reformatting, exit (-1) -> exit (1).
-
-------------------------------------------------------------------------
-r4864 | thevenyp | 2007-09-21 08:29:01 +0000 (Fri, 21 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/sinh_cosh.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/reuse.c
- A /trunk/tests/tsinh_cosh.c
-
-new mpfr_sinh_cosh function
-
-------------------------------------------------------------------------
-r4863 | vlefevre | 2007-09-19 02:24:31 +0000 (Wed, 19 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: removed __gmpfr_isqrt bug.
-
-------------------------------------------------------------------------
-r4862 | vlefevre | 2007-09-19 02:12:09 +0000 (Wed, 19 Sep 2007) | 3 lines
-Changed paths:
- M /trunk/isqrt.c
- M /trunk/tests/tisqrt.c
-
-isqrt.c: quick fix of __gmpfr_cuberoot (a full proof is needed).
-tests/tisqrt.c: added much more tests for __gmpfr_cuberoot.
-
-------------------------------------------------------------------------
-r4861 | vlefevre | 2007-09-19 01:46:58 +0000 (Wed, 19 Sep 2007) | 7 lines
-Changed paths:
- M /trunk/tests/tisqrt.c
-
-tisqrt.c: improved tests. When doing
- touch tests.c tisqrt.c
- make tisqrt CFLAGS="-g -O2 -ffloat-store -DMPFR_FPU_PREC=_FPU_SINGLE"
- ./tisqrt
-with gcc 4.2.1 on a Linux/x86 machine, on gets:
- Error in __gmpfr_cuberoot (4251527999): got 1620 instead of 1619
-
-------------------------------------------------------------------------
-r4860 | vlefevre | 2007-09-19 01:12:33 +0000 (Wed, 19 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tisqrt.c
-
-tisqrt.c: added __gmpfr_cuberoot() tests.
-
-------------------------------------------------------------------------
-r4859 | vlefevre | 2007-09-19 01:03:11 +0000 (Wed, 19 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/isqrt.c
-
-isqrt.c: corrected the explanation.
-
-------------------------------------------------------------------------
-r4858 | vlefevre | 2007-09-19 00:57:46 +0000 (Wed, 19 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/isqrt.c
-
-isqrt.c: fixed __gmpfr_isqrt.
-
-------------------------------------------------------------------------
-r4857 | vlefevre | 2007-09-18 14:54:59 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests
-
-tests: updated svn:ignore property.
-
-------------------------------------------------------------------------
-r4856 | vlefevre | 2007-09-18 14:52:23 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tisqrt.c
-
-tests: added tisqrt.c (test file for __gmpfr_isqrt internal function).
-
-------------------------------------------------------------------------
-r4855 | vlefevre | 2007-09-18 14:37:59 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: added __gmpfr_isqrt bug.
-
-------------------------------------------------------------------------
-r4854 | vlefevre | 2007-09-18 14:26:48 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/isqrt.c
-
-isqrt.c: fixed a cast and added a FIXME comment.
-
-------------------------------------------------------------------------
-r4853 | vlefevre | 2007-09-18 14:16:46 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/isqrt.c
-
-isqrt.c: GNU coding style.
-
-------------------------------------------------------------------------
-r4852 | vlefevre | 2007-09-18 12:21:14 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-sin.c: extend the exponent range.
-
-------------------------------------------------------------------------
-r4851 | vlefevre | 2007-09-18 12:14:15 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/sqr.c
-
-sqr.c: set the global inexact flag.
-
-------------------------------------------------------------------------
-r4850 | vlefevre | 2007-09-18 12:09:13 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-sqrt.c: avoid the exponent range extension.
-
-------------------------------------------------------------------------
-r4849 | vlefevre | 2007-09-18 12:02:07 +0000 (Tue, 18 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tsqr.c
-
-tsqr.c: added generic tests (shows that the inexact flag isn't set).
-
-------------------------------------------------------------------------
-r4848 | vlefevre | 2007-09-18 11:55:32 +0000 (Tue, 18 Sep 2007) | 3 lines
-Changed paths:
- M /trunk/sqrt.c
-
-sqrt.c: extend exponent range (this also fixes the fact that the global
-inexact flag wasn't set).
-
-------------------------------------------------------------------------
-r4847 | vlefevre | 2007-09-18 11:51:23 +0000 (Tue, 18 Sep 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-tsqrt.c: added generic tests (shows that the inexact flag isn't set,
-which is a bug reported by Guillaume Revy).
-
-------------------------------------------------------------------------
-r4846 | thevenyp | 2007-09-17 11:05:18 +0000 (Mon, 17 Sep 2007) | 1 line
-Changed paths:
- M /trunk/modf.c
- M /trunk/tests/tmodf.c
-
-modf.c: take care of user exponent range (possible underflow/overflow)
-------------------------------------------------------------------------
-r4845 | vlefevre | 2007-09-16 09:44:33 +0000 (Sun, 16 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tsin_cos.c: fixed the tiny() test.
-
-------------------------------------------------------------------------
-r4844 | vlefevre | 2007-09-16 09:43:04 +0000 (Sun, 16 Sep 2007) | 4 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-sin_cos.c: fixed the overflow and cancellation problems by using
-MPFR_FAST_COMPUTE_IF_SMALL_INPUT from the mpfr_sin and mpfr_cos
-functions (I'll fix the test later).
-
-------------------------------------------------------------------------
-r4843 | vlefevre | 2007-09-16 09:09:39 +0000 (Sun, 16 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-tsin_cos.c: added test on tiny values.
-
-------------------------------------------------------------------------
-r4842 | zimmerma | 2007-09-16 08:28:27 +0000 (Sun, 16 Sep 2007) | 4 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-Put back previous patch, now avoids overflow, and added more explanations.
-This is still not a definitive solution, but more efficient than 2.3.0
-in the case x is small.
-
-------------------------------------------------------------------------
-r4841 | vlefevre | 2007-09-15 08:30:36 +0000 (Sat, 15 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-Efficiency regression wasn't fixed correctly -> commented out the code.
-
-------------------------------------------------------------------------
-r4840 | zimmerma | 2007-09-15 08:15:15 +0000 (Sat, 15 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-fixed efficiency regression pointed out by Andreas Enge
-
-------------------------------------------------------------------------
-r4839 | zimmerma | 2007-09-13 19:08:25 +0000 (Thu, 13 Sep 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/sin_cos.c
- M /trunk/tests/reuse.c
-
-fixed bug in mpfr_sin_cos found by Philippe: z (to save the cosine) was not
-allowed to be identical to the input x
-
-------------------------------------------------------------------------
-r4838 | thevenyp | 2007-09-13 16:48:49 +0000 (Thu, 13 Sep 2007) | 1 line
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- A /trunk/modf.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/sin_cos.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/reuse.c
- A /trunk/tests/tmodf.c
-
-new function mpfr_modf and add restrictions on mpfr_sin_cos' variables
-------------------------------------------------------------------------
-r4837 | thevenyp | 2007-09-11 13:01:54 +0000 (Tue, 11 Sep 2007) | 1 line
-Changed paths:
- M /trunk/tests/tadd_d.c
- M /trunk/tests/td_div.c
- M /trunk/tests/td_sub.c
- M /trunk/tests/tdiv_d.c
- M /trunk/tests/tmul_d.c
- M /trunk/tests/tsub_d.c
-
-add some simple test cases in tadd_d.c and friends
-------------------------------------------------------------------------
-r4836 | vlefevre | 2007-09-10 07:55:58 +0000 (Mon, 10 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/prepare
-
-prepare: output a message saying that this script is obsolete.
-
-------------------------------------------------------------------------
-r4835 | zimmerma | 2007-09-09 19:08:17 +0000 (Sun, 09 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added restrictions to mpfr_add_d and friends
-
-------------------------------------------------------------------------
-r4834 | zimmerma | 2007-09-08 06:41:22 +0000 (Sat, 08 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed functions mpfr_add_d ... which are done
-
-------------------------------------------------------------------------
-r4833 | zimmerma | 2007-09-07 15:35:49 +0000 (Fri, 07 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-added Philippe Theveny
-
-------------------------------------------------------------------------
-r4832 | thevenyp | 2007-09-07 14:47:34 +0000 (Fri, 07 Sep 2007) | 1 line
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/add_d.c
- A /trunk/d_div.c
- A /trunk/d_sub.c
- A /trunk/div_d.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/mul_d.c
- A /trunk/sub_d.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tadd_d.c
- A /trunk/tests/td_div.c
- A /trunk/tests/td_sub.c
- A /trunk/tests/tdiv_d.c
- M /trunk/tests/tgeneric.c
- A /trunk/tests/tmul_d.c
- A /trunk/tests/tsub_d.c
-
-new arithmetic functions with a double argument
-------------------------------------------------------------------------
-r4831 | vlefevre | 2007-09-07 13:04:09 +0000 (Fri, 07 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
-
-tacosh.c: added generic tests for the overflow case.
-
-------------------------------------------------------------------------
-r4830 | vlefevre | 2007-09-07 13:03:32 +0000 (Fri, 07 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-acosh.c: reduce the precision for ln(2); smaller error bound.
-
-------------------------------------------------------------------------
-r4829 | vlefevre | 2007-09-07 13:02:13 +0000 (Fri, 07 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: undefine some macros at the end.
-
-------------------------------------------------------------------------
-r4828 | vlefevre | 2007-09-07 12:30:36 +0000 (Fri, 07 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-acosh.c: fixed overflow bug.
-
-------------------------------------------------------------------------
-r4827 | vlefevre | 2007-09-07 11:54:53 +0000 (Fri, 07 Sep 2007) | 3 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/tests/tacosh.c
-
-acosh.c: mentioned bug due to overflow in mpfr_mul.
-tests/tacosh.c: added corresponding testcase (for 32-bit machines).
-
-------------------------------------------------------------------------
-r4826 | vlefevre | 2007-09-07 11:26:30 +0000 (Fri, 07 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
-
-tacosh.c: use tests_default_random().
-
-------------------------------------------------------------------------
-r4825 | vlefevre | 2007-09-07 11:25:42 +0000 (Fri, 07 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: improved tests_default_random().
-
-------------------------------------------------------------------------
-r4823 | vlefevre | 2007-09-02 23:17:48 +0000 (Sun, 02 Sep 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: fixed get_patches rule.
-
-------------------------------------------------------------------------
-r4821 | vlefevre | 2007-09-02 22:29:28 +0000 (Sun, 02 Sep 2007) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: cd $(srcdir) before executing get_patches.sh (thanks to
-Daniel Jacobowitz for noticing this); for more information, see the
-note just before the get_patches.c rule.
-
-------------------------------------------------------------------------
-r4819 | vlefevre | 2007-08-31 17:09:15 +0000 (Fri, 31 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-acosh.c: added MPFR_UNLIKELY.
-
-------------------------------------------------------------------------
-r4817 | vlefevre | 2007-08-31 15:50:48 +0000 (Fri, 31 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
-
-Added generic bad case tests.
-
-------------------------------------------------------------------------
-r4816 | vlefevre | 2007-08-31 15:34:23 +0000 (Fri, 31 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: deleted trailing spaces.
-
-------------------------------------------------------------------------
-r4815 | vlefevre | 2007-08-31 15:33:34 +0000 (Fri, 31 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: correction in section on mpfr_asinh: acosh -> asinh.
-
-------------------------------------------------------------------------
-r4814 | vlefevre | 2007-08-31 15:31:37 +0000 (Fri, 31 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/algorithms.tex
- M /trunk/tests/tacosh.c
-
-Fixed bug in mpfr_acosh for arguments slightly larger than 1;
-updated algorithms.tex; fixed testcase.
-
-------------------------------------------------------------------------
-r4813 | vlefevre | 2007-08-31 13:06:59 +0000 (Fri, 31 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
-
-tacosh.c: added testcase for bug in mpfr_acosh (assertion failure).
-
-------------------------------------------------------------------------
-r4812 | vlefevre | 2007-08-31 12:02:37 +0000 (Fri, 31 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tasin.c
-
-tasin.c: increased the number of generic tests.
-
-------------------------------------------------------------------------
-r4811 | vlefevre | 2007-08-31 11:33:53 +0000 (Fri, 31 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tasin.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tdim.c
- M /trunk/tests/teint.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp10.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tzeta.c
-
-Improved generic tests by limiting the exponent range of the random
-numbers for some functions.
-
-------------------------------------------------------------------------
-r4810 | vlefevre | 2007-08-30 15:09:11 +0000 (Thu, 30 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
- M /trunk/tests/tagm.c
- M /trunk/tests/tests.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tpow.c
-
-Generic tests: adjust the proportion of negative numbers returned
-by the random function in order to get fewer NaN cases.
-
-------------------------------------------------------------------------
-r4809 | vlefevre | 2007-08-30 14:26:54 +0000 (Thu, 30 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: output a warning when too few normal cases are tested
-(so that the random function can be improved...).
-
-------------------------------------------------------------------------
-r4808 | vlefevre | 2007-08-30 13:50:59 +0000 (Thu, 30 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: function split (for future addition).
-
-------------------------------------------------------------------------
-r4806 | vlefevre | 2007-08-30 10:37:17 +0000 (Thu, 30 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: updated copyright notice (for consistency).
-
-------------------------------------------------------------------------
-r4803 | vlefevre | 2007-08-30 10:29:54 +0000 (Thu, 30 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/mpfr-test.h
-
-Bug fix: added missing _MPFR_PROTO in mpfr-test.h.
-
-------------------------------------------------------------------------
-r4802 | vlefevre | 2007-08-30 10:12:22 +0000 (Thu, 30 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: updated description line.
-
-------------------------------------------------------------------------
-r4800 | vlefevre | 2007-08-29 19:59:07 +0000 (Wed, 29 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/comparisons.c
- M /trunk/exp.c
- M /trunk/faq.xsl
- M /trunk/neg.c
-
-Updated copyright notice (for an unknown reason, some files were missing
-from the change done in r4350).
-
-------------------------------------------------------------------------
-r4795 | vlefevre | 2007-08-28 15:37:59 +0000 (Tue, 28 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/atan2.c
-
-atan2.c: as we supposed some property, let's add an assertion (which
-can be evaluated at compile time).
-
-------------------------------------------------------------------------
-r4794 | vlefevre | 2007-08-28 15:27:17 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/atan2.c
-
-atan2.c: improved comment.
-
-------------------------------------------------------------------------
-r4793 | vlefevre | 2007-08-28 15:24:27 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/atan2.c
-
-atan2.c: completed the underflow case.
-
-------------------------------------------------------------------------
-r4792 | vlefevre | 2007-08-28 14:19:37 +0000 (Tue, 28 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/atan2.c
-
-atan2.c: fixed the underflow case except in GMP_RNDN with
-2^(-emin-2) < |y/x| < 2^(-emin-1).
-
-------------------------------------------------------------------------
-r4791 | vlefevre | 2007-08-28 14:18:35 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tatan.c: added small-value tests in the other rounding modes.
-
-------------------------------------------------------------------------
-r4790 | vlefevre | 2007-08-28 13:51:04 +0000 (Tue, 28 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/atan2.c
-
-atan2.c: implemented the special case where x is positive and y/x is
-computed exactly (solving the underflow problems in this case).
-
-------------------------------------------------------------------------
-r4789 | vlefevre | 2007-08-28 13:49:02 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tatan.c: added a similar test, but with an exact division result.
-
-------------------------------------------------------------------------
-r4788 | vlefevre | 2007-08-28 13:35:40 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tatan.c: fixed test.
-
-------------------------------------------------------------------------
-r4786 | vlefevre | 2007-08-28 13:16:16 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a paragraph concerning Ziv loops.
-
-------------------------------------------------------------------------
-r4785 | vlefevre | 2007-08-28 09:34:36 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tatan.c: updated comment.
-
-------------------------------------------------------------------------
-r4784 | vlefevre | 2007-08-28 08:59:09 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tatan.c: extended the latest testcase to any platform (e.g. 64 bits).
-
-------------------------------------------------------------------------
-r4783 | vlefevre | 2007-08-28 08:49:00 +0000 (Tue, 28 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-tatan.c: added testcase from a bug reported by Christopher Creutzig.
-
-------------------------------------------------------------------------
-r4781 | vlefevre | 2007-08-27 14:27:34 +0000 (Mon, 27 Aug 2007) | 2 lines
-Changed paths:
- M /trunk
- M /trunk/tests
-
-Updated svn:ignore properties.
-
-------------------------------------------------------------------------
-r4779 | vlefevre | 2007-08-27 11:55:00 +0000 (Mon, 27 Aug 2007) | 7 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update:
- * The question numbers are now hardcoded instead of being generated
- with CSS rules.
- * Added the list of questions at the top.
- * CSS styles: a grey bar is displayed on the left of the target answer
- (if the browser supports the ":target" pseudo-class from CSS3).
-
-------------------------------------------------------------------------
-r4778 | vlefevre | 2007-08-27 10:56:11 +0000 (Mon, 27 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/faq.xsl
-
-faq.xsl: added a comment.
-
-------------------------------------------------------------------------
-r4776 | vlefevre | 2007-08-27 10:44:17 +0000 (Mon, 27 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update.
-
-------------------------------------------------------------------------
-r4774 | vlefevre | 2007-08-22 15:51:41 +0000 (Wed, 22 Aug 2007) | 6 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: added another warning concerning the --with-gmp options.
-For instance, under Linux, "cpp -I/usr/include -v < /dev/null" says:
- ignoring duplicate directory "/usr/include"
- as it is a non-system directory that duplicates a system directory
-and does not modify the include search path as wanted.
-
-------------------------------------------------------------------------
-r4772 | vlefevre | 2007-08-15 17:29:44 +0000 (Wed, 15 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: improved description of mpfr_setsign.
-
-------------------------------------------------------------------------
-r4770 | vlefevre | 2007-08-14 11:41:37 +0000 (Tue, 14 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Added to NEWS: Thread-safe support with Microsoft Visual compiler.
-
-------------------------------------------------------------------------
-r4768 | vlefevre | 2007-08-14 11:34:22 +0000 (Tue, 14 Aug 2007) | 5 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: if MPFR_USE_THREAD_SAFE is defined (--enable-thread-safe):
- * Added support for MSC (thanks to Brian Gladman).
- * Define MPFR_THREAD_ATTR even after #error to make the error more
- visible (see comment in the source).
-
-------------------------------------------------------------------------
-r4765 | vlefevre | 2007-08-13 10:41:51 +0000 (Mon, 13 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-tstckintc.c: fixed bus error on Solaris (the address of Buffer was not
-a multiple of 4).
-
-------------------------------------------------------------------------
-r4761 | vlefevre | 2007-08-13 05:05:39 +0000 (Mon, 13 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS: new functions mpfr_signbit, mpfr_setsign, mpfr_copysign.
-
-------------------------------------------------------------------------
-r4759 | vlefevre | 2007-08-13 04:53:32 +0000 (Mon, 13 Aug 2007) | 8 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- M /trunk/copysign.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/setsign.c
- A /trunk/signbit.c
- M /trunk/tests/tcopysign.c
-
-Implemented changes suggested in
-<https://sympa.inria.fr/sympa/arc/mpfr/2007-07/msg00123.html>.
-* Made mpfr_copysign() like the corresponding function in IEEE 754
- (was an internal function until now).
-* Added mpfr_signbit() and mpfr_setsign().
-* Documented these three functions.
-* Updated TODO.
-
-------------------------------------------------------------------------
-r4757 | vlefevre | 2007-08-13 04:34:33 +0000 (Mon, 13 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/jyn_asympt.c
- M /trunk/remquo.c
- M /trunk/tests/texp10.c
- M /trunk/tests/tl2b.c
-
-Make svn properties consistent.
-
-------------------------------------------------------------------------
-r4752 | vlefevre | 2007-08-11 22:41:05 +0000 (Sat, 11 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-Fixed mpfr_inits and mpfr_clears calls in tests/tatan.c.
-
-------------------------------------------------------------------------
-r4751 | vlefevre | 2007-08-11 22:38:54 +0000 (Sat, 11 Aug 2007) | 3 lines
-Changed paths:
- A /trunk/check_inits_clears
-
-Added check_inits_clears Perl script to check that a cast is performed
-for the last argument of mpfr_inits, mpfr_inits2 and mpfr_clears.
-
-------------------------------------------------------------------------
-r4747 | vlefevre | 2007-08-10 02:19:57 +0000 (Fri, 10 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated version to 2.4.0-dev.
-
-------------------------------------------------------------------------
-r4744 | vlefevre | 2007-08-10 02:11:05 +0000 (Fri, 10 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS update.
-
-------------------------------------------------------------------------
-r4743 | vlefevre | 2007-08-10 02:06:56 +0000 (Fri, 10 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update with "TZ=UTC svn log -v".
-
-------------------------------------------------------------------------
-r4742 | vlefevre | 2007-08-10 01:41:01 +0000 (Fri, 10 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/asinh.c
-
-asinh.c: fixed assertion failure (see test 4 in tasinh.c, added
-in r4740), that was due to an exception.
-
-------------------------------------------------------------------------
-r4741 | vlefevre | 2007-08-10 01:38:25 +0000 (Fri, 10 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tasinh.c
-
-tasinh.c: fixed test.
-
-------------------------------------------------------------------------
-r4740 | vlefevre | 2007-08-10 01:18:46 +0000 (Fri, 10 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tasinh.c
-
-tasinh.c: added worst case that yields an assertion failure.
-
-------------------------------------------------------------------------
-r4739 | vlefevre | 2007-08-09 17:21:32 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/cbrt
- M /trunk/tests/tcbrt.c
-
-Added data_check support to cbrt.
-
-------------------------------------------------------------------------
-r4738 | vlefevre | 2007-08-09 15:45:47 +0000 (Thu, 09 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/log.c
-
-log.c: fixed assertion failure (see test x_near_one in tlog.c, added
-in r4736), that was due to an exception.
-
-------------------------------------------------------------------------
-r4737 | vlefevre | 2007-08-09 12:12:56 +0000 (Thu, 09 Aug 2007) | 6 lines
-Changed paths:
- M /trunk/pow.c
-
-pow.c: added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO for the case where
-|y * log(x)| is very small (I can't really test because this code
-currently fails due to a bug in mpfr_log: see test x_near_one
-added to tlog.c as changeset 4736; this bug is also present in
-the 2.2 branch).
-
-------------------------------------------------------------------------
-r4736 | vlefevre | 2007-08-09 11:58:59 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-tlog.c: added a test leading to an assertion failure in mpfr_log.
-
-------------------------------------------------------------------------
-r4735 | vlefevre | 2007-08-09 11:45:19 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: added a test where x is close to 1.
-
-------------------------------------------------------------------------
-r4734 | vlefevre | 2007-08-09 11:02:28 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/exp10
-
-Added empty file tests/data/exp10 to avoid an error with -dev versions.
-
-------------------------------------------------------------------------
-r4733 | vlefevre | 2007-08-09 10:18:50 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/round_near_x.c
-
-Added a TODO concerning the description of mpfr_round_near_x.
-
-------------------------------------------------------------------------
-r4732 | vlefevre | 2007-08-09 09:48:59 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/expm1
- A /trunk/tests/data/log1p
- A /trunk/tests/data/log2
-
-Added empty files in tests/data to avoid errors with -dev versions.
-
-------------------------------------------------------------------------
-r4731 | vlefevre | 2007-08-09 09:39:43 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/ui_pow.c
-
-mpfr_ui_pow fix: added a MPFR_SAVE_EXPO_UPDATE_FLAGS.
-
-------------------------------------------------------------------------
-r4730 | vlefevre | 2007-08-09 02:52:27 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests
- M /trunk/tests/Makefile.am
- A /trunk/tests/texp10.c
-
-Added texp10.c (texp10 currently fails).
-
-------------------------------------------------------------------------
-r4729 | vlefevre | 2007-08-09 02:26:33 +0000 (Thu, 09 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/texp2.c
-
-texp2.c: reformat and added some tests which were missing.
-
-------------------------------------------------------------------------
-r4728 | vlefevre | 2007-08-08 15:12:56 +0000 (Wed, 08 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tl2b.c
- M /trunk/tests/tremquo.c
-
-Updated svn:keywords and svn:eol-style properties in tests.
-
-------------------------------------------------------------------------
-r4727 | vlefevre | 2007-08-08 15:11:15 +0000 (Wed, 08 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/texpm1.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
-
-Added data_check calls to texpm1, tlog1p and tlog2.
-
-------------------------------------------------------------------------
-r4726 | vlefevre | 2007-08-08 14:37:28 +0000 (Wed, 08 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: in data_check(), mode 'Z', do not test GMP_RNDN if
-the precision for the directed rounding modes is MPFR_PREC_MIN.
-
-------------------------------------------------------------------------
-r4725 | vlefevre | 2007-08-04 23:13:52 +0000 (Sat, 04 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: more on mpfr_sin (and mpfr_cos).
-
-------------------------------------------------------------------------
-r4724 | vlefevre | 2007-08-04 22:58:01 +0000 (Sat, 04 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: update concerning sin/cos/tan.
-
-------------------------------------------------------------------------
-r4723 | vlefevre | 2007-08-03 02:45:32 +0000 (Fri, 03 Aug 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: in data_check(), check the 4 rounding modes if rnd is 'Z'
-(in order to test the worst cases).
-
-------------------------------------------------------------------------
-r4722 | vlefevre | 2007-08-03 01:30:20 +0000 (Fri, 03 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Fixed coding style (for ansi2knr in particular).
-
-------------------------------------------------------------------------
-r4721 | vlefevre | 2007-08-02 10:19:44 +0000 (Thu, 02 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: added a comment about "get_patches.c".
-
-------------------------------------------------------------------------
-r4720 | vlefevre | 2007-08-02 10:07:48 +0000 (Thu, 02 Aug 2007) | 8 lines
-Changed paths:
- M /trunk/Makefile.am
-
-No longer set "CLEANFILES = get_patches.c" in Makefile.am so that a
-"make clean" doesn't remove the get_patches.c file, as rebuilding it
-needs a Unix shell (and some standard utilities). Anyway the update
-of this file should be regarded as part of the patch process, then
-this file is just like any other .c files. Note: "make dist" includes
-this file in the archives, so that concerning the build, everything
-is like before as long as no patches are applied.
-
-------------------------------------------------------------------------
-r4719 | zimmerma | 2007-08-01 18:07:32 +0000 (Wed, 01 Aug 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item about sNaN/qNaN
-
-------------------------------------------------------------------------
-r4718 | vlefevre | 2007-07-31 14:28:20 +0000 (Tue, 31 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/copysign.c
-
-copysign.c: reformat, updated comment (but this function is still not
-documented in mpfr.texi).
-
-------------------------------------------------------------------------
-r4717 | vlefevre | 2007-07-31 14:12:15 +0000 (Tue, 31 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated version back to 2.3.0-dev since the 2.3 branch will be recreated
-from the trunk (too many changes!).
-
-------------------------------------------------------------------------
-r4716 | vlefevre | 2007-07-31 13:34:37 +0000 (Tue, 31 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tl2b.c
-
-tl2b.c: enable output even when the constants are correct.
-
-------------------------------------------------------------------------
-r4715 | vlefevre | 2007-07-31 13:25:24 +0000 (Tue, 31 Jul 2007) | 3 lines
-Changed paths:
- M /trunk
-
-Added get_patches.c to the svn:ignore property, as this file is
-generated.
-
-------------------------------------------------------------------------
-r4714 | vlefevre | 2007-07-31 13:23:37 +0000 (Tue, 31 Jul 2007) | 13 lines
-Changed paths:
- M /trunk/free_cache.c
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/tests
- M /trunk/tests/Makefile.am
- A /trunk/tests/tl2b.c
-
-Replaced l2b cache by constants, as suggested by Patrick Pelissier,
-to avoid efficiency problems with the stack interface and heavily
-threaded applications.
- * Added tests/tl2b.c to generate / check the constants.
- * tests/Makefile.am: added tl2b to check_PROGRAMS.
- * tests directory: added tl2b to the svn:ignore property.
- * mpfr-impl.h: updated the __gmpfr_l2b declaration.
- * free_cache.c: disabled free_l2b (since there's no longer a cache).
- * get_str.c: added the code generated by tl2b; for the bootstrap, one
- can just write:
- const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = { { { 0 } } };
- Removed the code (in ceil_mul) that computed these constants.
-
-------------------------------------------------------------------------
-r4713 | vlefevre | 2007-07-30 22:37:30 +0000 (Mon, 30 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the documentation of the mpfr_get_d function family.
-
-------------------------------------------------------------------------
-r4712 | vlefevre | 2007-07-30 11:12:45 +0000 (Mon, 30 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/TODO
-
-Patch tracking: updated README.dev and TODO files.
-
-------------------------------------------------------------------------
-r4711 | vlefevre | 2007-07-30 10:45:01 +0000 (Mon, 30 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- A /trunk/PATCHES
- A /trunk/get_patches.sh
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Added support for tracking applied patches with new function
-mpfr_get_patches().
-
-------------------------------------------------------------------------
-r4710 | vlefevre | 2007-07-30 09:41:55 +0000 (Mon, 30 Jul 2007) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the example concerning mpfr_get_version() vs
-MPFR_VERSION_STRING ("Warning" instead of "Error", make sure that
-the example fits on 80 columns in the info file).
-
-------------------------------------------------------------------------
-r4709 | vlefevre | 2007-07-30 09:37:06 +0000 (Mon, 30 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated description of mpfr_get_version().
-
-------------------------------------------------------------------------
-r4708 | vlefevre | 2007-07-30 09:31:58 +0000 (Mon, 30 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated description of mpfr_get_version().
-
-------------------------------------------------------------------------
-r4707 | zimmerma | 2007-07-28 15:03:05 +0000 (Sat, 28 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added files that are not 100% covered by tests
-
-------------------------------------------------------------------------
-r4706 | vlefevre | 2007-07-27 22:04:24 +0000 (Fri, 27 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/coverage
-
-coverage: added --disable-shared --enable-static to configure.
-
-------------------------------------------------------------------------
-r4705 | vlefevre | 2007-07-27 21:59:04 +0000 (Fri, 27 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: added more casts for g++.
-
-------------------------------------------------------------------------
-r4704 | vlefevre | 2007-07-27 21:54:22 +0000 (Fri, 27 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Reformat.
-
-------------------------------------------------------------------------
-r4703 | vlefevre | 2007-07-27 21:48:03 +0000 (Fri, 27 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/const_log2.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
-
-Applied patch from Patrick to be able to build MPFR with g++.
-
-------------------------------------------------------------------------
-r4702 | zimmerma | 2007-07-26 12:02:24 +0000 (Thu, 26 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-added default thresholds for Core 2
-
-------------------------------------------------------------------------
-r4701 | vlefevre | 2007-07-25 15:34:52 +0000 (Wed, 25 Jul 2007) | 5 lines
-Changed paths:
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
-
-No longer use MPFR_CHECK_ALL in tests. In '-dev' versions, assume
-that the data files exist and return an error whenever a file cannot
-be opened. In the other versions, return silently if the file cannot
-be opened.
-
-------------------------------------------------------------------------
-r4700 | vlefevre | 2007-07-25 15:18:45 +0000 (Wed, 25 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- D /trunk/mpfr-test.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/mpfr-test.h (from /trunk/mpfr-test.h:4698)
-
-Moved mpfr-test.h into the tests directory.
-
-------------------------------------------------------------------------
-r4699 | zimmerma | 2007-07-25 15:15:55 +0000 (Wed, 25 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-fixed "efficiency bug" (argument reduction was broken)
-
-------------------------------------------------------------------------
-r4698 | vlefevre | 2007-07-25 14:45:13 +0000 (Wed, 25 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: in data_check(), made whitespace skipping consistent and
-check that the result value is immediately followed by a \n.
-
-------------------------------------------------------------------------
-r4697 | vlefevre | 2007-07-25 14:02:23 +0000 (Wed, 25 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-[tests.c] Fixed some types (the result of getc() is not necessarily
-representable in a char).
-
-------------------------------------------------------------------------
-r4696 | vlefevre | 2007-07-25 13:45:10 +0000 (Wed, 25 Jul 2007) | 5 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests.c: changes in the error messages (BTW, we decided to output
-everything to stdout for consistency, even though messages for
-assertion failure are written to stderr) and replaced an abort ()
-by an exit (1).
-
-------------------------------------------------------------------------
-r4695 | vlefevre | 2007-07-25 10:58:54 +0000 (Wed, 25 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/jyn_asympt.c
- M /trunk/tests/tests.c
-
-Delete trailing spaces.
-
-------------------------------------------------------------------------
-r4694 | zimmerma | 2007-07-25 10:01:45 +0000 (Wed, 25 Jul 2007) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/jn.c
- A /trunk/jyn_asympt.c
- M /trunk/tests/tests.c
- M /trunk/yn.c
-
-jyn_asympt.c: new common file for asymptotic expansion in jn/yn
-tests/tests.c: print precisions in case of failure
-jn.c: now use jyn_asympt.c
-yn.c: now implement asymptotic expansion (jyn_asympt.c)
-
-------------------------------------------------------------------------
-r4693 | zimmerma | 2007-07-25 09:58:31 +0000 (Wed, 25 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/data/y0
- M /trunk/tests/data/y1
-
-fixed more wrong entries in Gonnet's test suite
-
-------------------------------------------------------------------------
-r4692 | zimmerma | 2007-07-24 15:12:39 +0000 (Tue, 24 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/jn.c
-
-contribution of first neglected term to error was wrong
-
-------------------------------------------------------------------------
-r4691 | zimmerma | 2007-07-24 15:08:51 +0000 (Tue, 24 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/data/y0
-
-fixed wrong entry (not enough precision was used in Maple)
-
-------------------------------------------------------------------------
-r4690 | zimmerma | 2007-07-24 13:42:35 +0000 (Tue, 24 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/jn.c
- M /trunk/tests/data/j0
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
-
-implemented asymptotic expansion for large argument in j0/j1/jn
-
-------------------------------------------------------------------------
-r4689 | zimmerma | 2007-07-20 16:12:03 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-define MPFR_CHECK_ALL for nightly tests
-
-------------------------------------------------------------------------
-r4688 | zimmerma | 2007-07-20 16:11:15 +0000 (Fri, 20 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/terf.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tlgamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
-
-Added code to check mpfr against Gonnet's tables when the environment variable
-MPFR_CHECK_ALL is defined (some table entries were checked by MuPAD)
-
-------------------------------------------------------------------------
-r4687 | zimmerma | 2007-07-20 16:04:38 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/data/gonnet.mpl
-
-added comment
-
-------------------------------------------------------------------------
-r4686 | zimmerma | 2007-07-20 15:58:20 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/y0
- A /trunk/tests/data/y1
-
-test data files mpfr mpfr_y0 and mpfr_y1, ***not*** checked with MuPAD
-
-------------------------------------------------------------------------
-r4685 | zimmerma | 2007-07-20 15:55:03 +0000 (Fri, 20 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/tests/data/CheckData.mu
-
-added auxiliary MuPAD functions
-improved Ziv's strategy: add half of DIGITS each time
-
-------------------------------------------------------------------------
-r4684 | zimmerma | 2007-07-20 15:52:52 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/tanh
-
-test data file for mpfr_tanh, checked by MuPAD
-
-------------------------------------------------------------------------
-r4683 | zimmerma | 2007-07-20 15:51:28 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/tan
-
-test data file for mpfr_tan, checked with MuPAD (except 3 indicated entries)
-
-------------------------------------------------------------------------
-r4682 | zimmerma | 2007-07-20 15:39:23 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/sqrt
-
-test data file for mpfr_sqrt, checked with MuPAD
-
-------------------------------------------------------------------------
-r4681 | zimmerma | 2007-07-20 15:28:32 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/sinh
-
-test data file for mpfr_sinh, checked by MuPAD (except indicated lines)
-
-------------------------------------------------------------------------
-r4680 | zimmerma | 2007-07-20 15:17:58 +0000 (Fri, 20 Jul 2007) | 3 lines
-Changed paths:
- A /trunk/tests/data/sin
-
-test data file for mpfr_sin, checked by MuPAD (except tiny inputs indicated
-in file)
-
-------------------------------------------------------------------------
-r4679 | zimmerma | 2007-07-20 13:45:40 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/pow275
-
-test data file for x^(11/4), checked with MuPAD
-
-------------------------------------------------------------------------
-r4678 | zimmerma | 2007-07-20 13:41:01 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/data/log10
-
-finally, I was able to check it with MuPAD
-
-------------------------------------------------------------------------
-r4677 | zimmerma | 2007-07-20 13:36:16 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/exp2
-
-test data file for 2^x, checked with MuPAD
-
-------------------------------------------------------------------------
-r4676 | zimmerma | 2007-07-20 13:28:30 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/mulpi
-
-test data file for Pi*x, checked with MuPAD
-
-------------------------------------------------------------------------
-r4675 | zimmerma | 2007-07-20 12:56:27 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/log
-
-test data file for mpfr_log, checked with MuPAD
-
-------------------------------------------------------------------------
-r4674 | zimmerma | 2007-07-20 12:54:43 +0000 (Fri, 20 Jul 2007) | 3 lines
-Changed paths:
- A /trunk/tests/data/j0
- A /trunk/tests/data/j1
- A /trunk/tests/data/lgamma
- A /trunk/tests/data/log10
-
-test data files for mpfr_j0, mpfr_j1, mpfr_lgamma, mpfr_log10,
-***not*** tested with MuPAD (not Dom::Interval interface)
-
-------------------------------------------------------------------------
-r4673 | zimmerma | 2007-07-20 12:52:25 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/inv
-
-test data file for 1/x, i.e., mpfr_ui_div(1,x), checked with MuPAD
-
-------------------------------------------------------------------------
-r4672 | zimmerma | 2007-07-20 12:45:10 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/gamma
-
-test data file for mpfr_gamma, ***not*** checked by MuPAD
-
-------------------------------------------------------------------------
-r4671 | zimmerma | 2007-07-20 12:44:09 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/exp
-
-test data file for mpfr_exp, checked with MuPAD
-
-------------------------------------------------------------------------
-r4670 | zimmerma | 2007-07-20 12:43:34 +0000 (Fri, 20 Jul 2007) | 3 lines
-Changed paths:
- A /trunk/tests/data/erf
- A /trunk/tests/data/erfc
-
-test data files for erf and erfc (not checked by MuPAD, since Dom::Interval
-does not have an interface for those functions in MuPAD 3.2.0)
-
-------------------------------------------------------------------------
-r4669 | zimmerma | 2007-07-20 12:35:54 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/cosh
-
-test data file for mpfr_cosh, checked with MuPAD
-
-------------------------------------------------------------------------
-r4668 | zimmerma | 2007-07-20 12:33:31 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/cos
-
-test data file for mpfr_cos, checked by MuPAD
-
-------------------------------------------------------------------------
-r4667 | zimmerma | 2007-07-20 12:02:36 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/atanh
-
-test data file for mpfr_atanh, checked with MuPAD
-
-------------------------------------------------------------------------
-r4666 | zimmerma | 2007-07-20 11:42:54 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/atan
-
-test data file for atan, checked with MuPAD
-
-------------------------------------------------------------------------
-r4665 | zimmerma | 2007-07-20 11:06:48 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/asinh
-
-test file for mpfr_asinh, checked with MuPAD
-
-------------------------------------------------------------------------
-r4664 | zimmerma | 2007-07-20 11:04:14 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/asin
-
-data file for mpfr_asin, checked with MuPAD using CheckData.mu
-
-------------------------------------------------------------------------
-r4663 | zimmerma | 2007-07-20 10:13:10 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/acosh
-
-data file for mpfr_acosh, checked with MuPAD using CheckData.mu
-
-------------------------------------------------------------------------
-r4662 | zimmerma | 2007-07-20 10:12:37 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/data/CheckData.mu
-
-improved output
-
-------------------------------------------------------------------------
-r4661 | zimmerma | 2007-07-20 10:05:11 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data/CheckData.mu
-
-MuPAD file to check a data file
-
-------------------------------------------------------------------------
-r4658 | vlefevre | 2007-07-20 00:18:14 +0000 (Fri, 20 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/free_cache.c
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
-
-Renamed mpfr_l2b as __gmpfr_l2b for consistency.
-
-------------------------------------------------------------------------
-r4657 | zimmerma | 2007-07-19 19:49:15 +0000 (Thu, 19 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-longlong.h
-
-patch from Brian Gladman to build mpfr.dll
-
-------------------------------------------------------------------------
-r4656 | zimmerma | 2007-07-19 16:07:58 +0000 (Thu, 19 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/data/acos
- M /trunk/tests/data/gonnet.mpl
-
-added copyright information about Gonnet's package
-
-------------------------------------------------------------------------
-r4655 | zimmerma | 2007-07-19 16:03:38 +0000 (Thu, 19 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-modified data_check() to allow comment lines starting with #
-
-------------------------------------------------------------------------
-r4654 | zimmerma | 2007-07-19 14:55:47 +0000 (Thu, 19 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/tacos.c
- M /trunk/tests/tests.c
-
-new (experimental) mechanism to check data files (see example in tacos.c)
-
-------------------------------------------------------------------------
-r4653 | zimmerma | 2007-07-19 14:54:49 +0000 (Thu, 19 Jul 2007) | 2 lines
-Changed paths:
- A /trunk/tests/data
- A /trunk/tests/data/acos
- A /trunk/tests/data/gonnet.mpl
-
-new directory for test data
-
-------------------------------------------------------------------------
-r4652 | zimmerma | 2007-07-19 10:52:00 +0000 (Thu, 19 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-added test for inexact flag (bug fixed in r4630)
-
-------------------------------------------------------------------------
-r4651 | vlefevre | 2007-07-18 23:09:35 +0000 (Wed, 18 Jul 2007) | 4 lines
-Changed paths:
- M /trunk/atan2.c
- M /trunk/erfc.c
-
-erfc.c, atan2.c: added missing "MPFR_SAVE_EXPO_FREE (expo);" before
- "return mpfr_underflow (...);".
-erfc.c: replaced a goto by an else.
-
-------------------------------------------------------------------------
-r4650 | zimmerma | 2007-07-18 16:24:08 +0000 (Wed, 18 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/atan2.c
-
-now deal with underflow in y/x (remains to deal with overflow)
-
-------------------------------------------------------------------------
-r4649 | zimmerma | 2007-07-18 16:19:31 +0000 (Wed, 18 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-now can specify output base when argc > 1
-
-------------------------------------------------------------------------
-r4648 | zimmerma | 2007-07-18 16:18:14 +0000 (Wed, 18 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-MPFR_EQUAL -> mpfr_equal_p
-
-------------------------------------------------------------------------
-r4647 | zimmerma | 2007-07-18 15:48:57 +0000 (Wed, 18 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/erfc.c
- M /trunk/tests/terf.c
-
-fixed problem with erfc() near underflow region
-
-------------------------------------------------------------------------
-r4646 | zimmerma | 2007-07-18 13:51:07 +0000 (Wed, 18 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/atan2.c
- M /trunk/tests/tatan.c
-
-atan2.c: quick-and-dirty fix for atan2(y,1)
-tests/tatan.c: fix tests from Christopher [x and y were interchanged]
-
-------------------------------------------------------------------------
-r4645 | zimmerma | 2007-07-18 12:19:22 +0000 (Wed, 18 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-added test from Ch. Creutzig
-
-------------------------------------------------------------------------
-r4644 | zimmerma | 2007-07-18 08:23:30 +0000 (Wed, 18 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-apply patch suggested in bug #3604
-
-------------------------------------------------------------------------
-r4643 | zimmerma | 2007-07-17 14:30:00 +0000 (Tue, 17 Jul 2007) | 4 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/tlgamma.c
-
-previous bug fix for tiny negative inputs in mpfr_lgamma was incorrect:
-result was NaN, but this was not detected by the tests since mpfr_cmp (y, NaN)
-is always true!
-
-------------------------------------------------------------------------
-r4642 | vlefevre | 2007-07-17 13:14:21 +0000 (Tue, 17 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/strtofr.c
-
-Added comments and fixed an indentation bug.
-
-------------------------------------------------------------------------
-r4641 | zimmerma | 2007-07-17 06:26:24 +0000 (Tue, 17 Jul 2007) | 4 lines
-Changed paths:
- M /trunk/cos.c
-
-in reconstruction after computation of cos(x/2^k) for reduced argument,
-it may be that cos(x) is zero to the working precision. Then restart Ziv's
-algorithm with a larger precision.
-
-------------------------------------------------------------------------
-r4640 | zimmerma | 2007-07-16 12:51:17 +0000 (Mon, 16 Jul 2007) | 4 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/tlgamma.c
-
-lngamma.c: fix for small inputs
-tlgamma.c: added more tests from Kaveh Ghazi
-
-
-------------------------------------------------------------------------
-r4639 | zimmerma | 2007-07-16 11:22:13 +0000 (Mon, 16 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tests/ttan.c
-
-sin_cos.c: 2nd arg of 1st mpfr_can_round call was wrong
-ttan.c: fixed wrong reference value
-
-------------------------------------------------------------------------
-r4638 | zimmerma | 2007-07-16 06:58:08 +0000 (Mon, 16 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added comment about sinpi, etc.
-
-------------------------------------------------------------------------
-r4637 | zimmerma | 2007-07-15 09:09:10 +0000 (Sun, 15 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/ttan.c
-
-added new test, and re-enabled test that was too slow
-
-------------------------------------------------------------------------
-r4636 | zimmerma | 2007-07-14 07:30:37 +0000 (Sat, 14 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-removed MPFR_CHECK_TINY, added MPFR_CHECK_MAX
-
-------------------------------------------------------------------------
-r4635 | vlefevre | 2007-07-10 08:52:50 +0000 (Tue, 10 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-terf.c: added testcase for bug reported by Christopher Creutzig.
-
-------------------------------------------------------------------------
-r4633 | vlefevre | 2007-07-09 11:41:04 +0000 (Mon, 09 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/init2.c
-
-Removed a #include that was probably added by mistake in r2590.
-
-------------------------------------------------------------------------
-r4632 | vlefevre | 2007-07-09 11:39:29 +0000 (Mon, 09 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/abort_prec_max.c
- M /trunk/cos.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/fma.c
- M /trunk/fms.c
- M /trunk/free_cache.c
- M /trunk/get_d64.c
- M /trunk/get_si.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/init2.c
- M /trunk/inp_str.c
- M /trunk/logging.c
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-impl.h
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/remquo.c
- M /trunk/set_d64.c
- M /trunk/set_uj.c
- M /trunk/strtofr.c
- M /trunk/tuneup.c
- M /trunk/ui_pow.c
- M /trunk/zeta.c
-
-<stdio.h> and <limits.h> are now included unconditionally in mpfr-impl.h
-(removed their inclusion from the C files for consistency).
-
-------------------------------------------------------------------------
-r4630 | zimmerma | 2007-07-04 10:07:31 +0000 (Wed, 04 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-ternary flag was wrong in case s=1 or -1 and rounding up/nearest
-
-------------------------------------------------------------------------
-r4629 | zimmerma | 2007-07-04 09:32:23 +0000 (Wed, 04 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/tan.c
-
-updated algorithms.tex with new additive argument reduction for sin/cos/tan
-
-------------------------------------------------------------------------
-r4628 | vlefevre | 2007-07-03 23:35:05 +0000 (Tue, 03 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-lngamma.c: reformat and replaced mpfr_cmp(...) == 0 by mpfr_equal_p.
-
-------------------------------------------------------------------------
-r4626 | zimmerma | 2007-07-03 19:12:40 +0000 (Tue, 03 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/free_cache.c
-
-changed stdlib to stdio for NULL (see README.dev)
-
-------------------------------------------------------------------------
-r4625 | zimmerma | 2007-07-03 19:10:33 +0000 (Tue, 03 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/tlgamma.c
-
-fixed bug in tlgamma and added test (need to implement Ziv's strategy in
-tiny case)
-
-------------------------------------------------------------------------
-r4624 | zimmerma | 2007-07-03 18:45:28 +0000 (Tue, 03 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/free_cache.c
-
-added missing include
-
-------------------------------------------------------------------------
-r4622 | vlefevre | 2007-07-03 16:11:39 +0000 (Tue, 03 Jul 2007) | 7 lines
-Changed paths:
- M /trunk/free_cache.c
- M /trunk/mpfr.texi
- M /trunk/tests/tests.c
-
-Fixed the bug reported by David Billinghurst to the MPFR mailing-list
-on 2007-07-03 (memory leaks under some conditions):
- * moved the free_l2b() function from tests/tests.c to free_cache.c;
- * mpfr_free_cache() (from free_cache.c) now calls free_l2b();
- * as a consequence, no longer call free_l2b() in tests_end_mpfr();
- * documented the behavior in mpfr.texi (under mpfr_free_cache).
-
-------------------------------------------------------------------------
-r4620 | vlefevre | 2007-07-03 15:05:01 +0000 (Tue, 03 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tj0.c
-
-tj0.c: added testcase from Sisyphus (assertion failed).
-
-------------------------------------------------------------------------
-r4618 | vlefevre | 2007-07-03 13:03:22 +0000 (Tue, 03 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: explain how to test the library interface compatibility.
-
-------------------------------------------------------------------------
-r4616 | vlefevre | 2007-07-02 23:30:52 +0000 (Mon, 02 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: mentions patch-libtool and how to apply it.
-
-------------------------------------------------------------------------
-r4615 | vlefevre | 2007-07-02 23:26:01 +0000 (Mon, 02 Jul 2007) | 3 lines
-Changed paths:
- A /trunk/patch-libtool
-
-Added patch-libtool (patch for aclocal.m4 and configure that comes from
-<https://lists.gnu.org/archive/html/bug-libtool/2007-07/msg00007.html>
-or gmane.comp.gnu.libtool.bugs:5776).
-------------------------------------------------------------------------
-r4614 | vlefevre | 2007-07-02 12:17:08 +0000 (Mon, 02 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS: mention that the shared library is now enabled by default on 2.3.
-
-------------------------------------------------------------------------
-r4610 | vlefevre | 2007-07-02 10:44:17 +0000 (Mon, 02 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated item 2 of "To make a release".
-
-------------------------------------------------------------------------
-r4608 | vlefevre | 2007-07-02 10:39:46 +0000 (Mon, 02 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.texi
-
-Reformat.
-
-------------------------------------------------------------------------
-r4607 | vlefevre | 2007-07-02 00:41:32 +0000 (Mon, 02 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated version to 2.4.0-dev.
-
-------------------------------------------------------------------------
-r4605 | vlefevre | 2007-07-02 00:32:27 +0000 (Mon, 02 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-ChangeLog update.
-
-------------------------------------------------------------------------
-r4604 | vlefevre | 2007-07-02 00:31:13 +0000 (Mon, 02 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS: update.
-
-------------------------------------------------------------------------
-r4603 | vlefevre | 2007-07-01 23:17:57 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: updated comment concerning -version-info.
-
-------------------------------------------------------------------------
-r4602 | vlefevre | 2007-07-01 23:01:10 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/TODO
- A /trunk/fms.c (from /trunk/fma.c:4598)
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests
- M /trunk/tests/Makefile.am
- A /trunk/tests/tfms.c (from /trunk/tests/tfma.c:4601)
-
-Added mpfr_fms based on mpfr_fma.
-
-------------------------------------------------------------------------
-r4601 | vlefevre | 2007-07-01 22:45:08 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: added a space.
-
-------------------------------------------------------------------------
-r4600 | vlefevre | 2007-07-01 22:38:39 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: typo.
-
-------------------------------------------------------------------------
-r4599 | vlefevre | 2007-07-01 22:20:09 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-Reformat.
-
-------------------------------------------------------------------------
-r4598 | vlefevre | 2007-07-01 22:14:15 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-fma.c: minor changes for consistency with the future fms.
-
-------------------------------------------------------------------------
-r4597 | vlefevre | 2007-07-01 21:52:21 +0000 (Sun, 01 Jul 2007) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/fma.c
- M /trunk/tests/tfma.c
-
-Completed the implementation of mpfr_fma (except in some corner cases
-where overflows/underflows and huge precisions are involved at the
-same time). Added underflow tests. Removed item from the BUGS file
-(the remaining problems more or less correspond to the first item).
-
-------------------------------------------------------------------------
-r4596 | vlefevre | 2007-07-01 03:10:06 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
-
-Untabified.
-
-------------------------------------------------------------------------
-r4595 | vlefevre | 2007-07-01 01:58:17 +0000 (Sun, 01 Jul 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: added overflow test to test_underflow.
-
-------------------------------------------------------------------------
-r4594 | vlefevre | 2007-07-01 01:36:04 +0000 (Sun, 01 Jul 2007) | 3 lines
-Changed paths:
- M /trunk/fma.c
- M /trunk/tests/tfma.c
-
-fma.c: implemented the main cases where x * y underflows.
-tests/tfma.c: fixed overflow tests and added underflow tests.
-
-------------------------------------------------------------------------
-r4593 | vlefevre | 2007-06-30 02:11:43 +0000 (Sat, 30 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-NEWS: update.
-
-------------------------------------------------------------------------
-r4592 | vlefevre | 2007-06-29 23:36:34 +0000 (Fri, 29 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: updated item on mpfr_fma.
-
-------------------------------------------------------------------------
-r4591 | vlefevre | 2007-06-29 23:32:29 +0000 (Fri, 29 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/fma.c
-
-fma.c: completed the cases where x*y/4 needs to be used, except the very
-particular cases where an underflow occurs, that remain to be done.
-
-------------------------------------------------------------------------
-r4590 | vlefevre | 2007-06-29 13:35:03 +0000 (Fri, 29 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: fixed a printf.
-
-------------------------------------------------------------------------
-r4589 | vlefevre | 2007-06-29 13:32:20 +0000 (Fri, 29 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-fma.c: added an assertion.
-
-------------------------------------------------------------------------
-r4588 | vlefevre | 2007-06-29 13:30:30 +0000 (Fri, 29 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: fixed overflow tests.
-
-------------------------------------------------------------------------
-r4587 | vlefevre | 2007-06-29 12:24:40 +0000 (Fri, 29 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: check NaN in test_overflow2.
-
-------------------------------------------------------------------------
-r4586 | vlefevre | 2007-06-29 12:19:09 +0000 (Fri, 29 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-fma.c: updated a comment.
-
-------------------------------------------------------------------------
-r4585 | vlefevre | 2007-06-29 12:14:55 +0000 (Fri, 29 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: added more overflow tests (needed to distinguish the cases
-where z/4 underflows or not -- see fma.c).
-
-------------------------------------------------------------------------
-r4584 | vlefevre | 2007-06-29 12:06:13 +0000 (Fri, 29 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: added tests (-> assertion failed because mpfr_fma implementation
-isn't complete).
-
-------------------------------------------------------------------------
-r4583 | vlefevre | 2007-06-28 23:01:22 +0000 (Thu, 28 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/acos.c
-
-acos.c: disabled change from r3145 ("Optimize mpfr_acos by choosing
-a better initial precision.") that was buggy.
-BUGS: removed mpfr_acos bug.
-
-------------------------------------------------------------------------
-r4582 | vlefevre | 2007-06-28 22:40:59 +0000 (Thu, 28 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: updated item on the mpfr_acos bug.
-
-------------------------------------------------------------------------
-r4581 | vlefevre | 2007-06-28 22:38:10 +0000 (Thu, 28 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: updated item on the mpfr_acos test (the bug wasn't visible on
-32-bit machines due to an integer overflow, but the result should
-have been correct anyway).
-
-------------------------------------------------------------------------
-r4580 | vlefevre | 2007-06-28 22:27:09 +0000 (Thu, 28 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/acos.c
-
-acos.c: fixed integer overflows; to avoid undefined behavior, I had
-to add an assertion that is not always satisfied (the code needs to
-be rewritten to take tiny arguments into account).
-
-------------------------------------------------------------------------
-r4579 | vlefevre | 2007-06-28 17:30:39 +0000 (Thu, 28 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: update (mpfr_cot has just been fixed).
-
-------------------------------------------------------------------------
-r4578 | vlefevre | 2007-06-28 17:29:27 +0000 (Thu, 28 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/cot.c
- M /trunk/tests/tcot.c
-
-cot.c: implemented the case |x| = 2^emin.
-tests/tcot.c: added tests for this case, in 3 exponent ranges
-(as this is an overflow limit).
-
-------------------------------------------------------------------------
-r4577 | vlefevre | 2007-06-28 17:00:15 +0000 (Thu, 28 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-Fixed bug in div.c: rnd_mode could be modified (MPFR_INVERT_RND), but
-the original value was assumed in case of underflow or overflow.
-
-------------------------------------------------------------------------
-r4576 | vlefevre | 2007-06-28 16:40:26 +0000 (Thu, 28 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-tdiv.c: added a test showing another bug in mpfr_div.
-
-------------------------------------------------------------------------
-r4575 | vlefevre | 2007-06-28 11:54:41 +0000 (Thu, 28 Jun 2007) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/cot.c
-
-cot.c: use MPFR_SAVE_EXPO_UPDATE_FLAGS, but the case +/- 2^emin could
-still be buggy with the current code; added a MPFR_ASSERTN (0) until
-it is implemented.
-BUGS: updated item on mpfr_cot.
-
-------------------------------------------------------------------------
-r4574 | zimmerma | 2007-06-28 07:59:28 +0000 (Thu, 28 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/tan.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsin.c
- M /trunk/tests/ttan.c
-
-fixed several problems with huge arguments in periodic functions
-mpfr_sin: complete rewrite, using mpfr_remainder for argument reduction
-mpfr_sin_cos: ditto
-
-------------------------------------------------------------------------
-r4573 | zimmerma | 2007-06-25 13:29:38 +0000 (Mon, 25 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/tests/tcos.c
-
-fixed stupid bug (subtraction of unsigned longs)
-
-------------------------------------------------------------------------
-r4572 | zimmerma | 2007-06-25 09:48:43 +0000 (Mon, 25 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tgeneric.c
-
-cos.c: implemented argument reduction by 2Pi
-tcos.c/tgeneric.c: reduce large exponent used when MPFR_CHECK_MAX is defined
-
-------------------------------------------------------------------------
-r4571 | vlefevre | 2007-06-22 14:45:28 +0000 (Fri, 22 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: added bugs.
-
-------------------------------------------------------------------------
-r4570 | vlefevre | 2007-06-22 12:15:03 +0000 (Fri, 22 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/coth.c
- M /trunk/sech.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tsech.c
-
-coth.c, sech.c: a rounding mode was incorrect.
-tests/tcoth.c: added underflowed_cothinf test.
-tests/tsech.c: added overflowed_sech0 test.
-
-------------------------------------------------------------------------
-r4569 | vlefevre | 2007-06-22 00:12:18 +0000 (Fri, 22 Jun 2007) | 8 lines
-Changed paths:
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/gen_inverse.h
- M /trunk/sec.c
- M /trunk/tests/tsec.c
-
-* gen_inverse.h: ACTION_TINY must be called after MPFR_SAVE_EXPO_MARK
- (this is necessary for some functions). Moved MPFR_SAVE_EXPO_FREE
- after the "end:" label.
-* coth.c, csc.c, csch.c: as a consequence, MPFR_SAVE_EXPO_UPDATE_FLAGS
- had to be added before "goto end;".
-* sec.c: a rounding mode was incorrect.
-* tests/tsec.c: added overflowed_sec0 test.
-
-------------------------------------------------------------------------
-r4568 | vlefevre | 2007-06-21 23:36:19 +0000 (Thu, 21 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tests/tsin_cos.c
-
-sin_cos.c: fixed a bug for x = 0 in reduced exponent range.
-tests/tsin_cos.c: added overflowed_sin_cos0 test.
-
-------------------------------------------------------------------------
-r4567 | vlefevre | 2007-06-21 14:32:14 +0000 (Thu, 21 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not
-behave correctly in a reduced exponent range.
-
-------------------------------------------------------------------------
-r4566 | vlefevre | 2007-06-21 14:28:13 +0000 (Thu, 21 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/factorial.c
- M /trunk/tests/tfactorial.c
-
-factorial.c: a rounding mode was incorrect.
-tests/tfactorial.c: added overflowed_fac0 test.
-
-------------------------------------------------------------------------
-r4565 | vlefevre | 2007-06-21 14:16:17 +0000 (Thu, 21 Jun 2007) | 5 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-exp2.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of
-MPFR_FAST_COMPUTE_IF_SMALL_INPUT since 1 (__gmpfr_one) isn't
-necessarily representable.
-tests/texp2.c: added overflowed_exp2_0 test.
-
-------------------------------------------------------------------------
-r4564 | vlefevre | 2007-06-21 13:59:38 +0000 (Thu, 21 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/tests/texp.c
-
-exp.c: fixed problems in reduced exponent range.
-tests/texp.c: added overflowed_exp0 test.
-
-------------------------------------------------------------------------
-r4563 | vlefevre | 2007-06-21 13:43:03 +0000 (Thu, 21 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-exp.c bug fix: a rounding mode was incorrect.
-
-------------------------------------------------------------------------
-r4562 | vlefevre | 2007-06-21 13:40:55 +0000 (Thu, 21 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-tcos.c: fixed error message in overflowed_cos0 test.
-
-------------------------------------------------------------------------
-r4561 | vlefevre | 2007-06-21 13:38:44 +0000 (Thu, 21 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-tcos.c: removed an obsolete comment from the overflowed_cos0 test.
-
-------------------------------------------------------------------------
-r4560 | vlefevre | 2007-06-21 13:35:45 +0000 (Thu, 21 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-tcos.c: improved overflowed_cos0 test.
-
-------------------------------------------------------------------------
-r4559 | vlefevre | 2007-06-21 12:49:03 +0000 (Thu, 21 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/tests/tget_str.c
-
-get_str.c: use MPFR_SAVE_EXPO.
-tests/tget_str.c: enabled the test with a reduced exponent range.
-
-------------------------------------------------------------------------
-r4558 | vlefevre | 2007-06-21 12:13:06 +0000 (Thu, 21 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-tget_str.c: added a test (disabled by default) with emax = 0.
-
-------------------------------------------------------------------------
-r4557 | vlefevre | 2007-06-21 11:53:16 +0000 (Thu, 21 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/mul.c
- M /trunk/sub1sp.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/terf.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsum.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-Corrected mpfr_inits, mpfr_inits2 and mpfr_clears calls with NULL
-argument (-> (void *) 0).
-
-------------------------------------------------------------------------
-r4556 | vlefevre | 2007-06-21 11:38:33 +0000 (Thu, 21 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-tget_str.c: reformatted/corrected a function.
-
-------------------------------------------------------------------------
-r4555 | vlefevre | 2007-06-21 11:30:38 +0000 (Thu, 21 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tacos.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tlog.c
- M /trunk/tests/ttanh.c
-
-Tests: when restoring the exponent range, save emin/emax first instead
-of using MPFR_EMIN_MIN/MPFR_EMAX_MAX (which have no longer corresponded
-to the default exponent range since quite a long time).
-
-------------------------------------------------------------------------
-r4554 | vlefevre | 2007-06-21 11:01:46 +0000 (Thu, 21 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: update.
-
-------------------------------------------------------------------------
-r4553 | vlefevre | 2007-06-20 13:22:49 +0000 (Wed, 20 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/atan.c
- M /trunk/exp3.c
- M /trunk/gen_inverse.h
- M /trunk/jn.c
- M /trunk/lngamma.c
- M /trunk/mpfr.h
- M /trunk/remquo.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sqr.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tremquo.c
- M /trunk/tests/tyn.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/zeta_ui.c
-
-Untabified and removed trailing spaces.
-
-------------------------------------------------------------------------
-r4552 | vlefevre | 2007-06-20 13:12:41 +0000 (Wed, 20 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/generic.c
- M /trunk/mpfr-gmp.h
-
-Bug fix: preprocessor # must be in the first column.
-
-------------------------------------------------------------------------
-r4551 | vlefevre | 2007-06-20 12:29:26 +0000 (Wed, 20 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/remquo.c
-
-remquo.c bug fix: preprocessor # must be in the first column.
-
-------------------------------------------------------------------------
-r4550 | vlefevre | 2007-06-20 11:58:25 +0000 (Wed, 20 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-tcos.c: fixed and improved the overflowed_cos0 test.
-
-------------------------------------------------------------------------
-r4549 | vlefevre | 2007-06-20 11:38:47 +0000 (Wed, 20 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-cos.c bug fix: a rounding mode was incorrect.
-
-------------------------------------------------------------------------
-r4548 | vlefevre | 2007-06-20 11:32:56 +0000 (Wed, 20 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/cos.c
-
-cos.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of
-MPFR_FAST_COMPUTE_IF_SMALL_INPUT.
-
-------------------------------------------------------------------------
-r4547 | vlefevre | 2007-06-20 11:27:41 +0000 (Wed, 20 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-cos.c: untabified.
-
-------------------------------------------------------------------------
-r4546 | vlefevre | 2007-06-20 10:55:52 +0000 (Wed, 20 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-tcos.c: added tests for x very small and emax = 0 (some of them
-currently fail).
-
-------------------------------------------------------------------------
-r4545 | vlefevre | 2007-06-20 10:06:56 +0000 (Wed, 20 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Added a comment concerning the MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro.
-
-------------------------------------------------------------------------
-r4544 | vlefevre | 2007-06-20 10:03:03 +0000 (Wed, 20 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/expm1.c
- M /trunk/mpfr-impl.h
-
-Added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro; updated expm1.c to use
-this variant (and moved MPFR_SAVE_EXPO_MARK after the test ex < 0).
-
-------------------------------------------------------------------------
-r4543 | vlefevre | 2007-06-19 15:17:21 +0000 (Tue, 19 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Documented log(-0).
-
-------------------------------------------------------------------------
-r4542 | vlefevre | 2007-06-19 15:11:21 +0000 (Tue, 19 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
-
-Added a few tests of log functions.
-
-------------------------------------------------------------------------
-r4541 | vlefevre | 2007-06-18 13:01:03 +0000 (Mon, 18 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
-
-------------------------------------------------------------------------
-r4540 | vlefevre | 2007-06-12 10:54:06 +0000 (Tue, 12 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: allow generic tests to run with a restricted exponent range.
-
-------------------------------------------------------------------------
-r4539 | vlefevre | 2007-06-12 10:51:17 +0000 (Tue, 12 Jun 2007) | 4 lines
-Changed paths:
- M /trunk/expm1.c
-
-expm1.c: fixed bug for x = -max_value due to an intermediate overflow
-(flags were incorrect); at the same time, potential problems due to a
-restricted exponent range are also fixed.
-
-------------------------------------------------------------------------
-r4538 | vlefevre | 2007-06-12 09:17:33 +0000 (Tue, 12 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: check the function on large arguments (±maximum_value)
-when the MPFR_CHECK_MAX environment variable is defined.
-
-------------------------------------------------------------------------
-r4537 | vlefevre | 2007-06-11 13:40:14 +0000 (Mon, 11 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-tests/tlgamma.c: re-enabled sign checking.
-
-------------------------------------------------------------------------
-r4536 | zimmerma | 2007-06-11 09:30:08 +0000 (Mon, 11 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/tlgamma.c
-
-fixed problem with mpfr_lgamma for tiny negative input (and fixed use of
-generic test)
-
-------------------------------------------------------------------------
-r4535 | vlefevre | 2007-06-05 20:50:07 +0000 (Tue, 05 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-[mpfr.texi] Small change in new Section "Floating-Point Values on
-Special Numbers" (suggested by Paul).
-
-------------------------------------------------------------------------
-r4534 | zimmerma | 2007-06-05 19:41:43 +0000 (Tue, 05 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-fixed bug for tiny negative input (and added corresponding test)
-
-------------------------------------------------------------------------
-r4533 | vlefevre | 2007-06-05 11:06:57 +0000 (Tue, 05 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: Mulder -> Mulders.
-
-------------------------------------------------------------------------
-r4532 | zimmerma | 2007-06-04 11:26:10 +0000 (Mon, 04 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added test for "Witty's bug" on 64-bit machines
-
-------------------------------------------------------------------------
-r4531 | vlefevre | 2007-06-04 11:19:33 +0000 (Mon, 04 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-div.c: GNU coding style.
-
-------------------------------------------------------------------------
-r4530 | zimmerma | 2007-06-04 11:04:30 +0000 (Mon, 04 Jun 2007) | 3 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/tests/tdiv.c
-
-tdiv.c: added missing mpfr_clear's, and spaces before function calls
-div.c: fixed bug found by Carl Witty, and added more comments
-
-------------------------------------------------------------------------
-r4529 | vlefevre | 2007-06-04 10:55:47 +0000 (Mon, 04 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-tdiv.c: oops... the result should be 1.
-
-------------------------------------------------------------------------
-r4528 | vlefevre | 2007-06-04 10:50:42 +0000 (Mon, 04 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-tdiv.c: added test from Carl Witty's bug report on 2007-06-03.
-
-------------------------------------------------------------------------
-r4527 | vlefevre | 2007-06-01 13:48:35 +0000 (Fri, 01 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
-
-------------------------------------------------------------------------
-r4526 | vlefevre | 2007-06-01 13:31:14 +0000 (Fri, 01 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
-
-------------------------------------------------------------------------
-r4525 | vlefevre | 2007-06-01 13:29:33 +0000 (Fri, 01 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated month.
-
-------------------------------------------------------------------------
-r4524 | vlefevre | 2007-06-01 13:01:20 +0000 (Fri, 01 Jun 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added @: after "resp." (when it was missing).
-
-------------------------------------------------------------------------
-r4523 | vlefevre | 2007-05-31 15:51:37 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Started a new section "Floating-Point Values on Special Numbers".
-
-------------------------------------------------------------------------
-r4522 | vlefevre | 2007-05-31 15:47:00 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: inf -> Inf for consistency.
-
-------------------------------------------------------------------------
-r4521 | vlefevre | 2007-05-31 15:05:19 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi @deftypefun correction: void * -> {void *} (for the PDF).
-
-------------------------------------------------------------------------
-r4520 | vlefevre | 2007-05-31 15:02:11 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: consistency changes in section titles; made titles unique.
-
-------------------------------------------------------------------------
-r4519 | vlefevre | 2007-05-31 12:16:06 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/set_d64.c
-
-set_d64.c: replaced an "if" by a "#if" to avoid a gcc warning.
-
-------------------------------------------------------------------------
-r4518 | vlefevre | 2007-05-31 12:11:03 +0000 (Thu, 31 May 2007) | 4 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/set_d64.c
-
-get_d64.c: use BITS_PER_MP_LIMB instead of GMP_BITS_PER_LIMB (which
-does not seem to exist).
-set_d64.c: use BITS_PER_MP_LIMB instead of mp_bits_per_limb.
-
-------------------------------------------------------------------------
-r4517 | vlefevre | 2007-05-31 11:50:08 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/set_d64.c
-
-get_d64.c, set_d64.c: improved code to avoid some warnings.
-
-------------------------------------------------------------------------
-r4516 | vlefevre | 2007-05-31 11:39:23 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/set_d64.c
-
-Untabified get_d64.c and set_d64.c.
-
-------------------------------------------------------------------------
-r4515 | vlefevre | 2007-05-31 11:33:55 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
-
-get_d64.c: added missing #include.
-
-------------------------------------------------------------------------
-r4514 | vlefevre | 2007-05-31 09:20:43 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: update.
-
-------------------------------------------------------------------------
-r4513 | vlefevre | 2007-05-31 09:16:38 +0000 (Thu, 31 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: improved error message when thread safe is not supported.
-
-------------------------------------------------------------------------
-r4512 | vlefevre | 2007-05-30 15:27:10 +0000 (Wed, 30 May 2007) | 3 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: say that relative paths in configure options are not supported
-(autoconf doesn't seem to have support for them).
-
-------------------------------------------------------------------------
-r4511 | vlefevre | 2007-05-30 12:04:22 +0000 (Wed, 30 May 2007) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.texi
- M /trunk/tests/tsgn.c
-
-Documented the new behavior of mpfr_sgn (in fact, it was already partly
-required by the tsgn.c tests!) and added new mpfr_sgn tests.
-
-------------------------------------------------------------------------
-r4510 | vlefevre | 2007-05-30 11:21:32 +0000 (Wed, 30 May 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: added an item about the behavior of mpfr_sgn on NaN.
-
-------------------------------------------------------------------------
-r4509 | vlefevre | 2007-05-30 11:13:23 +0000 (Wed, 30 May 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: no longer check the MPFR_CHECK_TINY environment variable
-as all the bugs related to tiny arguments have been fixed.
-
-------------------------------------------------------------------------
-r4508 | vlefevre | 2007-05-30 10:17:09 +0000 (Wed, 30 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: corrections following the remarks by Nathalie Revol.
-
-------------------------------------------------------------------------
-r4507 | vlefevre | 2007-05-29 23:11:06 +0000 (Tue, 29 May 2007) | 2 lines
-Changed paths:
- M /trunk/yn.c
-
-yn.c: untabify.
-
-------------------------------------------------------------------------
-r4506 | zimmerma | 2007-05-29 22:02:35 +0000 (Tue, 29 May 2007) | 2 lines
-Changed paths:
- M /trunk/yn.c
-
-fix for small inputs in y1
-
-------------------------------------------------------------------------
-r4505 | vlefevre | 2007-05-29 21:31:22 +0000 (Tue, 29 May 2007) | 4 lines
-Changed paths:
- M /trunk/erf.c
- M /trunk/lngamma.c
- M /trunk/mpfr-impl.h
-
-Defined new macros SIGN and SAME_SIGN in mpfr-impl.h to canonicalize
-the ternary value and to compare such values. Use SAME_SIGN in erf.c
-and lngamma.c.
-
-------------------------------------------------------------------------
-r4504 | zimmerma | 2007-05-29 21:04:57 +0000 (Tue, 29 May 2007) | 2 lines
-Changed paths:
- M /trunk/yn.c
-
-fixed problem of tiny arguments for y0
-
-------------------------------------------------------------------------
-r4503 | zimmerma | 2007-05-29 16:44:02 +0000 (Tue, 29 May 2007) | 4 lines
-Changed paths:
- M /trunk/erf.c
- M /trunk/lngamma.c
-
-lngamma.c: fixed problem of tiny inputs in lngamma (still remains lgamma
- to deal with)
-erf.c: small correction (inexact flags might have been inexact :-)
-
-------------------------------------------------------------------------
-r4502 | zimmerma | 2007-05-29 12:24:20 +0000 (Tue, 29 May 2007) | 2 lines
-Changed paths:
- M /trunk/csch.c
- M /trunk/jn.c
-
-fixed tiny input problem with csch, j0, j1
-
-------------------------------------------------------------------------
-r4501 | zimmerma | 2007-05-29 10:09:00 +0000 (Tue, 29 May 2007) | 2 lines
-Changed paths:
- M /trunk/cot.c
-
-added special code for tiny inputs
-
-------------------------------------------------------------------------
-r4500 | vlefevre | 2007-05-29 09:52:12 +0000 (Tue, 29 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric_ui.c
-
-tgeneric_ui.c: no longer check the MPFR_CHECK_TINY environment variable.
-
-------------------------------------------------------------------------
-r4499 | vlefevre | 2007-05-29 09:33:56 +0000 (Tue, 29 May 2007) | 2 lines
-Changed paths:
- M /trunk/erf.c
-
-erf.c: removed workaround to mpfr_div_ui bug, as the bug is now fixed.
-
-------------------------------------------------------------------------
-r4498 | vlefevre | 2007-05-29 09:29:02 +0000 (Tue, 29 May 2007) | 5 lines
-Changed paths:
- M /trunk/div_ui.c
-
-div_ui.c:
- * Cleaned up the use of the sh variable (there was a useless sh = 0,
- so I'm not sure that there isn't a bug...).
- * Added underflow check.
-
-------------------------------------------------------------------------
-r4497 | vlefevre | 2007-05-29 08:48:49 +0000 (Tue, 29 May 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tgeneric_ui.c
-
-Added check of tiny arguments to tgeneric_ui.c (if MPFR_CHECK_TINY is
-defined, like in tgeneric.c); mpfr_div_ui currently fails due to the
-lack of underflow checking.
-
-------------------------------------------------------------------------
-r4496 | zimmerma | 2007-05-29 08:12:30 +0000 (Tue, 29 May 2007) | 5 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/erf.c
-
-README.dev: fixed typo
-erf.c: implemented special case for tiny x, and partially get rid of double
- usage
-implemented
-
-------------------------------------------------------------------------
-r4495 | vlefevre | 2007-05-28 23:11:56 +0000 (Mon, 28 May 2007) | 4 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/cos.c
- M /trunk/exp2.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/sinh.c
-
-MPFR_RET (mpfr_check_range (...)) -> return mpfr_check_range (...)
-as mpfr_check_range already handles the inexact flag.
-Reformatting (removed trailing spaces, untabified).
-
-------------------------------------------------------------------------
-r4494 | zimmerma | 2007-05-28 21:51:11 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/sech.c
-
-fixed problem of tiny input
-
-------------------------------------------------------------------------
-r4493 | zimmerma | 2007-05-28 21:44:37 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/coth.c
- M /trunk/csc.c
-
-fixed problem of tiny input for coth (and new fix again for csc, which
-takes into account the sign of the input)
-
-------------------------------------------------------------------------
-r4492 | zimmerma | 2007-05-28 21:23:23 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/csc.c
- M /trunk/gen_inverse.h
- M /trunk/sec.c
-
-fixed problem of tiny inputs in mpfr_sec and mpfr_csc,
-by adding a SPECIAL_TINY macro in gen_inverse.h
-
-------------------------------------------------------------------------
-r4491 | zimmerma | 2007-05-28 20:56:41 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-the test for the tiny input case was too optimistic: fixed and added test.
-
-------------------------------------------------------------------------
-r4490 | zimmerma | 2007-05-28 20:24:23 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-fixed case of tiny input
-
-------------------------------------------------------------------------
-r4489 | zimmerma | 2007-05-28 19:54:27 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-fixed problem for tiny arguments
-
-------------------------------------------------------------------------
-r4488 | zimmerma | 2007-05-28 18:33:26 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/cosh.c
-
-added MPFR_FAST_COMPUTE_IF_SMALL_INPUT call
-
-------------------------------------------------------------------------
-r4487 | zimmerma | 2007-05-28 18:19:08 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/round_near_x.c
-
-changed 1st-order Taylor term from x to v to avoid confusion with the
-argument x of the function f(x), and fixed some typos
-
-------------------------------------------------------------------------
-r4486 | zimmerma | 2007-05-28 17:15:11 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/exp2.c
-
-fixed direction of rounding for MPFR_FAST_COMPUTE_IF_SMALL_INPUT
-(was wrong for x < 0)
-
-------------------------------------------------------------------------
-r4485 | zimmerma | 2007-05-28 17:02:57 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-fixed typo
-
-------------------------------------------------------------------------
-r4484 | zimmerma | 2007-05-28 16:19:06 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-added call to MPFR_FAST_COMPUTE_IF_SMALL_INPUT in exp2
-
-------------------------------------------------------------------------
-r4483 | zimmerma | 2007-05-28 15:51:00 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-re-enabled MPFR_CHECK_TINY
-
-------------------------------------------------------------------------
-r4482 | zimmerma | 2007-05-28 15:34:10 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mpfr.texi
-
-improved documentation of mpfr_set/get_decimal64 functions
-fixed problem in configure.in (_Decimal64 was tested too early)
-
-------------------------------------------------------------------------
-r4481 | vlefevre | 2007-05-28 15:17:44 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: fixed two bugs concerning the timeout (including an
-old one: we need to call getrlimit to initialize rlim_max).
-
-------------------------------------------------------------------------
-r4480 | zimmerma | 2007-05-28 15:07:05 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-new syntax for timeouts
-
-------------------------------------------------------------------------
-r4479 | zimmerma | 2007-05-28 15:06:30 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-fixed typo
-
-------------------------------------------------------------------------
-r4478 | vlefevre | 2007-05-28 13:57:32 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk
-
-Added mkinstalldirs to svn:ignore property.
-
-------------------------------------------------------------------------
-r4477 | vlefevre | 2007-05-28 13:56:33 +0000 (Mon, 28 May 2007) | 5 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/tests/tests.c
-
-Changed --with-tests-timeout into --enable-tests-timeout as documented
-in the autoconf manual (--with-* are for external packages only). When
-this is enabled, environment variable MPFR_TESTS_TIMEOUT allows to
-override the default timeout (use the value 0 to disable timeouts).
-
-------------------------------------------------------------------------
-r4476 | vlefevre | 2007-05-28 11:29:45 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Updated NEWS file.
-
-------------------------------------------------------------------------
-r4475 | vlefevre | 2007-05-28 11:04:00 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: small improvement.
-
-------------------------------------------------------------------------
-r4474 | vlefevre | 2007-05-28 10:37:07 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/sgn.c
- M /trunk/tests/tcmp_ui.c
-
-Fixed a bug in the mpfr_cmp_ui macro occurring on NaN and the constant 0
-by specifying the behavior of mpfr_sgn on NaN.
-
-------------------------------------------------------------------------
-r4473 | vlefevre | 2007-05-28 09:26:07 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: typography corrections concerning "i.e.".
-
-------------------------------------------------------------------------
-r4472 | vlefevre | 2007-05-28 09:17:37 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: consistency changes.
-
-------------------------------------------------------------------------
-r4471 | vlefevre | 2007-05-28 09:11:39 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: more details in Section "Exceptions".
-
-------------------------------------------------------------------------
-r4470 | vlefevre | 2007-05-28 02:12:05 +0000 (Mon, 28 May 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-tgeneric.c: check the function on tiny arguments (±2^(emin-1)) when
-the MPFR_CHECK_TINY environment variable is defined.
-
-------------------------------------------------------------------------
-r4469 | vlefevre | 2007-05-28 00:54:09 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Typo.
-
-------------------------------------------------------------------------
-r4468 | vlefevre | 2007-05-28 00:27:16 +0000 (Mon, 28 May 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cos.c
- M /trunk/erfc.c
- M /trunk/expm1.c
- M /trunk/log1p.c
- M /trunk/mpfr-impl.h
- M /trunk/round_near_x.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/zeta.c
-
-Avoid integer overflow in MPFR_FAST_COMPUTE_IF_SMALL_INPUT.
-
-------------------------------------------------------------------------
-r4467 | zimmerma | 2007-05-25 21:03:43 +0000 (Fri, 25 May 2007) | 3 lines
-Changed paths:
- M /trunk/remquo.c
- M /trunk/tests/tremquo.c
-
-completed implementation of Vincent's algorithm for mpfr_remquo
-all tests now pass again
-
-------------------------------------------------------------------------
-r4466 | zimmerma | 2007-05-24 21:45:25 +0000 (Thu, 24 May 2007) | 3 lines
-Changed paths:
- M /trunk/remquo.c
-
-new version of mpfr_remainder, using Vincent's algorithm
-(still remains to deal with special arguments, and make mpfr_remquo call it)
-
-------------------------------------------------------------------------
-r4465 | zimmerma | 2007-05-23 22:09:57 +0000 (Wed, 23 May 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added note about fms
-
-------------------------------------------------------------------------
-r4464 | zimmerma | 2007-05-23 21:55:55 +0000 (Wed, 23 May 2007) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-fixed typo
-
-------------------------------------------------------------------------
-r4463 | zimmerma | 2007-05-23 21:26:14 +0000 (Wed, 23 May 2007) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed problem for x integer and rounding to nearest
-
-------------------------------------------------------------------------
-r4462 | zimmerma | 2007-05-23 18:33:35 +0000 (Wed, 23 May 2007) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-workaround for bug when x is very small (check_tiny in tsin)
-
-------------------------------------------------------------------------
-r4461 | vlefevre | 2007-05-22 12:06:00 +0000 (Tue, 22 May 2007) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Updated BUGS (again).
-
-------------------------------------------------------------------------
-r4460 | vlefevre | 2007-05-22 11:50:06 +0000 (Tue, 22 May 2007) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/TODO
-
-Updated BUGS and TODO (mpfr_lgamma has been implemented, but see BUGS,
-and gamma(-integer) with integer >= 1 is defined as NaN).
-
-------------------------------------------------------------------------
-r4459 | vlefevre | 2007-05-22 08:41:00 +0000 (Tue, 22 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-tsin.c: check sin on +/- 2^(emin-1) (test by Christopher Creutzig).
-
-------------------------------------------------------------------------
-r4458 | vlefevre | 2007-05-22 08:25:20 +0000 (Tue, 22 May 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-tgamma.c: added test of gamma on some integral values (from Christopher
-Creutzig); this test is enabled only when an argument is provided.
-
-------------------------------------------------------------------------
-r4457 | vlefevre | 2007-05-22 00:29:16 +0000 (Tue, 22 May 2007) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-fma.c: improved comments and simplified the code.
-
-------------------------------------------------------------------------
-r4456 | vlefevre | 2007-05-22 00:11:18 +0000 (Tue, 22 May 2007) | 5 lines
-Changed paths:
- M /trunk/fma.c
-
-fma.c: implemented exponent range expansion and the main part when the
-multiplication overflows. The following remains to do:
- * when the multiplication overflows: some corner cases;
- * when the multiplication underflows: everything.
-
-------------------------------------------------------------------------
-r4455 | vlefevre | 2007-05-21 11:52:33 +0000 (Mon, 21 May 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tlgamma.c
-
-tlgamma.c: I re-enable the generic tests of mpfr_lgamma now, to make
-sure that it is fixed before the 2.3.0 release candidate.
-
-------------------------------------------------------------------------
-r4454 | vlefevre | 2007-05-21 11:49:41 +0000 (Mon, 21 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: added an overflow test (currently fails).
-
-------------------------------------------------------------------------
-r4453 | vlefevre | 2007-05-21 08:44:22 +0000 (Mon, 21 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: whitespace change.
-
-------------------------------------------------------------------------
-r4452 | vlefevre | 2007-05-21 08:43:41 +0000 (Mon, 21 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-tfma.c: added tests on special and exact values.
-
-------------------------------------------------------------------------
-r4451 | zimmerma | 2007-05-17 22:05:42 +0000 (Thu, 17 May 2007) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/lngamma.c
-
-fixed error analysis in mpfr_lngamma
-added mpfr_inp_raw/mpfr_out_raw in TODO
-
-------------------------------------------------------------------------
-r4450 | vlefevre | 2007-05-16 14:52:57 +0000 (Wed, 16 May 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: fixed mpfr_fms formula to match the one on Itanium and PowerPC.
-
-------------------------------------------------------------------------
-r4449 | vlefevre | 2007-05-07 09:01:39 +0000 (Mon, 07 May 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: improved the description of mpfr_remquo.
-
-------------------------------------------------------------------------
-r4448 | zimmerma | 2007-05-06 13:25:55 +0000 (Sun, 06 May 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-improved description of remainder and remquo
-
-------------------------------------------------------------------------
-r4447 | vlefevre | 2007-05-06 11:16:12 +0000 (Sun, 06 May 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-My latest change was not completely correct...
-
-------------------------------------------------------------------------
-r4446 | vlefevre | 2007-05-06 11:13:41 +0000 (Sun, 06 May 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-Updated description of algorithm for mpfr_remainder.
-
-------------------------------------------------------------------------
-r4445 | zimmerma | 2007-05-06 08:18:50 +0000 (Sun, 06 May 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added description of algorithm for mpfr_remainder
-
-------------------------------------------------------------------------
-r4444 | vlefevre | 2007-05-04 14:25:31 +0000 (Fri, 04 May 2007) | 2 lines
-Changed paths:
- M /trunk/remquo.c
-
-remquo.c: suggest to use mpz_powm.
-
-------------------------------------------------------------------------
-r4443 | vlefevre | 2007-05-04 13:19:27 +0000 (Fri, 04 May 2007) | 3 lines
-Changed paths:
- M /trunk/remquo.c
-
-remquo.c: added a comment (idea to compute the remainder much more
-efficiently in the case x much larger than y).
-
-------------------------------------------------------------------------
-r4442 | zimmerma | 2007-05-04 12:45:36 +0000 (Fri, 04 May 2007) | 2 lines
-Changed paths:
- M /trunk/remquo.c
-
-added assert and ideas for native implementation
-
-------------------------------------------------------------------------
-r4441 | zimmerma | 2007-05-04 06:27:38 +0000 (Fri, 04 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tremquo.c
-
-put back test (disabled for test)
-
-------------------------------------------------------------------------
-r4440 | zimmerma | 2007-05-04 06:26:56 +0000 (Fri, 04 May 2007) | 2 lines
-Changed paths:
- M /trunk/remquo.c
- M /trunk/tests/tremquo.c
-
-fixed problem when rem and x are the same variable
-
-------------------------------------------------------------------------
-r4439 | vlefevre | 2007-05-04 00:36:01 +0000 (Fri, 04 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tremquo.c
-
-tremquo.c: added a test that leads to a segmentation fault.
-
-------------------------------------------------------------------------
-r4438 | vlefevre | 2007-05-04 00:29:47 +0000 (Fri, 04 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tremquo.c
-
-tremquo.c: fixed tests (= -> ==).
-
-------------------------------------------------------------------------
-r4437 | zimmerma | 2007-05-03 20:07:20 +0000 (Thu, 03 May 2007) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/remquo.c
- M /trunk/tests/tremquo.c
-
-fixed two issues found by Kaveh Ghazi:
-* remainder was wrong for |x/y| < 1
-* remainder had wrong sign when zero
-
-------------------------------------------------------------------------
-r4436 | zimmerma | 2007-05-03 15:56:03 +0000 (Thu, 03 May 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-more details of error analysis
-
-------------------------------------------------------------------------
-r4435 | vlefevre | 2007-05-03 13:30:34 +0000 (Thu, 03 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests
-
-Updated svn:ignore property.
-
-------------------------------------------------------------------------
-r4434 | vlefevre | 2007-05-03 13:28:31 +0000 (Thu, 03 May 2007) | 2 lines
-Changed paths:
- M /trunk
-
-Updated svn:ignore property.
-
-------------------------------------------------------------------------
-r4433 | zimmerma | 2007-05-03 13:16:34 +0000 (Thu, 03 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tremquo.c
-
-fixed precision for command-line usage
-
-------------------------------------------------------------------------
-r4432 | vlefevre | 2007-05-03 13:15:49 +0000 (Thu, 03 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added mpfr_lgamma.
-
-------------------------------------------------------------------------
-r4431 | zimmerma | 2007-05-03 13:10:31 +0000 (Thu, 03 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tremquo.c
-
-added code to use tremquo with command-line arguments (tremquo x y)
-
-------------------------------------------------------------------------
-r4430 | vlefevre | 2007-05-02 16:03:52 +0000 (Wed, 02 May 2007) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: improved comment.
-
-------------------------------------------------------------------------
-r4429 | vlefevre | 2007-05-02 15:52:51 +0000 (Wed, 02 May 2007) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: added a comment on the AC_ARG_ENABLE(decimal-float...)
-part. The addition of this code was the cause of the test_CFLAGS problem
-(see r4425 log), but this code is still wrong.
-
-------------------------------------------------------------------------
-r4428 | zimmerma | 2007-05-02 15:41:18 +0000 (Wed, 02 May 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tremquo.c
-
-modified test (2147483648 is not representable as 32-bit long in C90)
-
-------------------------------------------------------------------------
-r4427 | vlefevre | 2007-05-02 15:20:50 +0000 (Wed, 02 May 2007) | 2 lines
-Changed paths:
- M /trunk/remquo.c
- M /trunk/yn.c
-
-Removed unused variables.
-
-------------------------------------------------------------------------
-r4426 | vlefevre | 2007-05-02 15:18:18 +0000 (Wed, 02 May 2007) | 4 lines
-Changed paths:
- M /trunk/get_str.c
-
-get_str.c:
- * Removed useless prototype declaration (function no longer defined).
- * Fixed initializer.
-
-------------------------------------------------------------------------
-r4425 | vlefevre | 2007-05-02 15:14:44 +0000 (Wed, 02 May 2007) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: moved the definition of test_CFLAGS upward (it was
-always set to "set", either because of things added to configure.in
-or because of new autoconf).
-
-------------------------------------------------------------------------
-r4424 | vlefevre | 2007-05-02 14:54:47 +0000 (Wed, 02 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr.h: added mpfr_lgamma prototype.
-
-------------------------------------------------------------------------
-r4423 | zimmerma | 2007-05-02 14:23:11 +0000 (Wed, 02 May 2007) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/remquo.c
- M /trunk/tests/tremquo.c
-
-argument quo of remquo is now a pointer to long instead of int
-added new functions in NEWS
-
-------------------------------------------------------------------------
-r4422 | zimmerma | 2007-05-02 12:21:24 +0000 (Wed, 02 May 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/remquo.c
- M /trunk/tests/tremquo.c
-
-changed order of arguments: now mpfr_remquo (r, q, x, y, rnd).
-
-------------------------------------------------------------------------
-r4421 | vlefevre | 2007-05-02 11:53:58 +0000 (Wed, 02 May 2007) | 2 lines
-Changed paths:
- M /trunk/remquo.c
-
-remquo.c: fixed variable name for MPFR_LOG_FUNC.
-
-------------------------------------------------------------------------
-r4420 | zimmerma | 2007-05-02 10:12:11 +0000 (Wed, 02 May 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/remquo.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tremquo.c
-
-added mpfr_remquo and mpfr_remainder
-
-------------------------------------------------------------------------
-r4419 | zimmerma | 2007-04-27 12:48:01 +0000 (Fri, 27 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-fixed error analysis (error was over-estimated)
-
-------------------------------------------------------------------------
-r4418 | vlefevre | 2007-04-26 10:12:51 +0000 (Thu, 26 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-lngamma.c: a bit more details in the error analysis for z0 < 1.
-
-------------------------------------------------------------------------
-r4417 | vlefevre | 2007-04-26 09:20:37 +0000 (Thu, 26 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-lngamma.c: a bit more details in the error analysis for z0 < 1.
-
-------------------------------------------------------------------------
-r4416 | zimmerma | 2007-04-26 08:26:39 +0000 (Thu, 26 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-u was used for two different meanings in the error analysis for z0 < 1
-
-------------------------------------------------------------------------
-r4415 | vlefevre | 2007-04-25 12:52:09 +0000 (Wed, 25 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/jn.c
- M /trunk/set_d64.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
- M /trunk/tests/tjn.c
- M /trunk/tests/ty0.c
- M /trunk/tests/ty1.c
- M /trunk/tests/tyn.c
- M /trunk/yn.c
-
-Updated Subversion properties on .c files (now consistent).
-
-------------------------------------------------------------------------
-r4414 | vlefevre | 2007-04-25 12:49:47 +0000 (Wed, 25 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/tests
-
-Updated svn:ignore property.
-
-------------------------------------------------------------------------
-r4413 | vlefevre | 2007-04-25 12:48:05 +0000 (Wed, 25 Apr 2007) | 4 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tlgamma.c
- M /trunk/tests/tlngamma.c
-
-Added preliminary support for mpfr_lngamma and tests.
-TODO: add support for negative numbers with small exponent.
-Re-enable the generic tests when this is done.
-
-------------------------------------------------------------------------
-r4412 | vlefevre | 2007-04-25 10:58:14 +0000 (Wed, 25 Apr 2007) | 3 lines
-Changed paths:
- M /trunk/lngamma.c
-
-lngamma.c: There was an assertion failed, probably because the error
-was too large; fixed that by restarting with a larger precision.
-
-------------------------------------------------------------------------
-r4411 | vlefevre | 2007-04-25 10:51:03 +0000 (Wed, 25 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-lngamma.c: fixed -2k-1 <= x <= -2k test.
-
-------------------------------------------------------------------------
-r4410 | vlefevre | 2007-04-25 09:07:03 +0000 (Wed, 25 Apr 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tlngamma.c
-
-tests/tlngamma.c: added a test showing a bug in lngamma (due to the
-use of mpfr_get_si even when the number doesn't fit in a long).
-
-------------------------------------------------------------------------
-r4409 | zimmerma | 2007-04-22 08:58:35 +0000 (Sun, 22 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/jn.c
- M /trunk/tests/tjn.c
-
-fixed bug for negative even index in mpfr_jn (wrong sign)
-
-------------------------------------------------------------------------
-r4408 | zimmerma | 2007-04-12 12:16:04 +0000 (Thu, 12 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-added warning
-
-------------------------------------------------------------------------
-r4407 | zimmerma | 2007-04-12 08:24:19 +0000 (Thu, 12 Apr 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-added Bit Twiddling Hacks
-
-------------------------------------------------------------------------
-r4406 | vlefevre | 2007-04-05 12:01:07 +0000 (Thu, 05 Apr 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-MPFR manual: added a brief description of mpfr_t (this may be needed
-to write correct code) and mpfr_ptr (used by mpfr_sum).
-
-------------------------------------------------------------------------
-r4405 | vlefevre | 2007-04-02 15:32:00 +0000 (Mon, 02 Apr 2007) | 4 lines
-Changed paths:
- M /trunk/jn.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tjn.c
- M /trunk/tests/tyn.c
- M /trunk/yn.c
-
-Changed mpfr_{jn,yn}_si (mpfr_t res, mpfr_t x, long n, ...) into
-mpfr_{jn,yn} (mpfr_t res, long n, mpfr_t x, ...), as discussed by
-mail; fixed a typo in mpfr.texi in mpfr_{y0,y1,yn} description.
-
-------------------------------------------------------------------------
-r4404 | zimmerma | 2007-03-31 21:23:00 +0000 (Sat, 31 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added url of GSL manual
-
-------------------------------------------------------------------------
-r4403 | zimmerma | 2007-03-31 21:15:26 +0000 (Sat, 31 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-fixed misunderstanding about definition of Bessel functions
-
-------------------------------------------------------------------------
-r4402 | zimmerma | 2007-03-31 17:59:23 +0000 (Sat, 31 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed Bessel functions J_n and Y_n
-
-------------------------------------------------------------------------
-r4401 | zimmerma | 2007-03-31 14:01:00 +0000 (Sat, 31 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
- M /trunk/jn.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/ty0.c
- A /trunk/tests/ty1.c
- A /trunk/tests/tyn.c
- A /trunk/yn.c
-
-added Bessel functions of second kind (y0, y1, yn_si)
-
-------------------------------------------------------------------------
-r4400 | zimmerma | 2007-03-31 13:55:06 +0000 (Sat, 31 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tj0.c
- M /trunk/tests/tj1.c
-
-now test_generic calls respectively j0 and j1, not zeta!
-
-------------------------------------------------------------------------
-r4399 | vlefevre | 2007-03-30 14:35:56 +0000 (Fri, 30 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: INF -> Inf for consistency.
-
-------------------------------------------------------------------------
-r4398 | vlefevre | 2007-03-30 14:34:00 +0000 (Fri, 30 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: PI -> Pi for consistency.
-
-------------------------------------------------------------------------
-r4397 | vlefevre | 2007-03-29 02:33:02 +0000 (Thu, 29 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: -0 -> @minus{}0.
-
-------------------------------------------------------------------------
-r4396 | vlefevre | 2007-03-29 02:28:46 +0000 (Thu, 29 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: fixed bug introduced in rev 4377, which made TeX fail.
-
-------------------------------------------------------------------------
-r4395 | vlefevre | 2007-03-29 02:00:04 +0000 (Thu, 29 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/tests
-
-Added tj0, tj1 and tjn to svn:ignore property of "tests" directory.
-
-------------------------------------------------------------------------
-r4393 | zimmerma | 2007-03-26 09:29:40 +0000 (Mon, 26 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/jn.c
-
-mpfr_jn -> mpfr_jn_si
-
-------------------------------------------------------------------------
-r4392 | zimmerma | 2007-03-23 20:30:20 +0000 (Fri, 23 Mar 2007) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/jn.c
- M /trunk/tests/tjn.c
-
-now check underflow for large n in mpfr_jn_si
-added more tests
-
-------------------------------------------------------------------------
-r4391 | zimmerma | 2007-03-23 16:37:16 +0000 (Fri, 23 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tjn.c
-
-added more tests (large values of n)
-
-------------------------------------------------------------------------
-r4390 | zimmerma | 2007-03-23 16:22:01 +0000 (Fri, 23 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/jn.c
-
-fixed another stupid bug
-
-------------------------------------------------------------------------
-r4389 | zimmerma | 2007-03-23 15:49:35 +0000 (Fri, 23 Mar 2007) | 3 lines
-Changed paths:
- M /trunk/jn.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tjn.c
-
-mpfr_jn -> mpfr_jn_si, with 'int' argument changed to 'long'
-fixed bug in mpfr_jn_si (forgot to increase working precision)
-
-------------------------------------------------------------------------
-r4388 | vlefevre | 2007-03-23 15:47:17 +0000 (Fri, 23 Mar 2007) | 3 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a warning about the meaning of the output "inexact"
-value in the function logging code.
-
-------------------------------------------------------------------------
-r4387 | vlefevre | 2007-03-23 15:38:20 +0000 (Fri, 23 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/sub.c
-
-Added log support for mpfr_add and mpfr_sub.
-
-------------------------------------------------------------------------
-r4386 | lfousse | 2007-03-23 13:43:18 +0000 (Fri, 23 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-Correction: added missing $b_n$.
-
-------------------------------------------------------------------------
-r4385 | zimmerma | 2007-03-22 17:12:00 +0000 (Thu, 22 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/algorithms.tex
- A /trunk/jn.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- M /trunk/tests/reuse.c
- A /trunk/tests/tj0.c
- A /trunk/tests/tj1.c
- A /trunk/tests/tjn.c
-
-added Bessel functions of first kind: j0, j1, jn
-
-------------------------------------------------------------------------
-r4384 | vlefevre | 2007-03-19 09:11:17 +0000 (Mon, 19 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-MPFR manual: improved description of mpfr_get_str.
-
-------------------------------------------------------------------------
-r4383 | zimmerma | 2007-03-19 07:43:16 +0000 (Mon, 19 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed typos in comments
-
-------------------------------------------------------------------------
-r4382 | zimmerma | 2007-03-18 20:16:15 +0000 (Sun, 18 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-documented restriction to n in mpfr_get_str
-
-------------------------------------------------------------------------
-r4380 | vlefevre | 2007-03-13 15:46:08 +0000 (Tue, 13 Mar 2007) | 3 lines
-Changed paths:
- M /trunk/INSTALL
-
-Updated INSTALL based on AIX/PowerPC tests and results from Julie Kurpa
-and information on <http://www.ess.uci.edu/esmf/FAQ.html#gcc-errors>.
-
-------------------------------------------------------------------------
-r4379 | vlefevre | 2007-03-03 01:55:32 +0000 (Sat, 03 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release" section.
-
-------------------------------------------------------------------------
-r4378 | vlefevre | 2007-03-02 11:16:59 +0000 (Fri, 02 Mar 2007) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Made modified paragraph on mpfr_get_str more correct from a logical
-point of view.
-
-------------------------------------------------------------------------
-r4377 | zimmerma | 2007-03-02 09:15:04 +0000 (Fri, 02 Mar 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-modified paragraph on mpfr_get_str (size of allocated string)
-
-------------------------------------------------------------------------
-r4376 | zimmerma | 2007-02-25 13:04:13 +0000 (Sun, 25 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added tentative implementation of fmod
-
-------------------------------------------------------------------------
-r4375 | zimmerma | 2007-02-20 02:58:16 +0000 (Tue, 20 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added suggestion about remquo
-
-------------------------------------------------------------------------
-r4374 | zimmerma | 2007-02-19 21:50:26 +0000 (Mon, 19 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added comment
-
-------------------------------------------------------------------------
-r4373 | zimmerma | 2007-02-19 21:43:23 +0000 (Mon, 19 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added C99 rationale for remquo
-
-------------------------------------------------------------------------
-r4372 | zimmerma | 2007-02-19 03:52:30 +0000 (Mon, 19 Feb 2007) | 3 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/algorithms.tex
- M /trunk/asinh.c
- M /trunk/atanh.c
- M /trunk/const_catalan.c
- M /trunk/log1p.c
-
-fixed error in generic error for the logarithm, and propagated new bound
-in algorithms.tex and source files
-
-------------------------------------------------------------------------
-r4371 | zimmerma | 2007-02-18 20:10:20 +0000 (Sun, 18 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new item
-
-------------------------------------------------------------------------
-r4370 | vlefevre | 2007-02-15 23:35:25 +0000 (Thu, 15 Feb 2007) | 3 lines
-Changed paths:
- A /trunk/update-patchv (from /branches/2.2/update-patchv:4367)
-
-Added update-patchv script to update some files before a patch is built
-(script from 2.2 branch).
-
-------------------------------------------------------------------------
-r4365 | vlefevre | 2007-02-14 09:31:19 +0000 (Wed, 14 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated paragraph on the underflow before/after rounding.
-
-------------------------------------------------------------------------
-r4364 | zimmerma | 2007-02-14 03:34:21 +0000 (Wed, 14 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added reference
-
-------------------------------------------------------------------------
-r4363 | vlefevre | 2007-02-12 16:34:21 +0000 (Mon, 12 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: added Exceptions section.
-
-------------------------------------------------------------------------
-r4361 | vlefevre | 2007-02-12 12:18:19 +0000 (Mon, 12 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated month.
-
-------------------------------------------------------------------------
-r4359 | vlefevre | 2007-02-12 12:04:14 +0000 (Mon, 12 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-Note that the mpfr.info file is now installed in the share subdirectory.
-
-------------------------------------------------------------------------
-r4358 | vlefevre | 2007-02-10 11:30:18 +0000 (Sat, 10 Feb 2007) | 4 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: removed comment since there are other <limits.h> macros
-in the file (and this is an old bug: the first one was introduced in
-rev 2783).
-
-------------------------------------------------------------------------
-r4357 | zimmerma | 2007-02-10 08:05:30 +0000 (Sat, 10 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added missing include
-
-------------------------------------------------------------------------
-r4356 | vlefevre | 2007-02-09 14:17:32 +0000 (Fri, 09 Feb 2007) | 3 lines
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/tests/tpow.c
-
-Fixed an integer overflow in pow_si.c (detected with -ftrapv) and
-added a corresponding testcase in tests/tpow.c.
-
-------------------------------------------------------------------------
-r4355 | vlefevre | 2007-02-09 13:30:57 +0000 (Fri, 09 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: another comment about the overflow detection.
-
-------------------------------------------------------------------------
-r4354 | vlefevre | 2007-02-09 13:14:07 +0000 (Fri, 09 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: added the proof of overflow checking.
-
-------------------------------------------------------------------------
-r4353 | vlefevre | 2007-02-09 11:55:51 +0000 (Fri, 09 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: added a comment about the exponent limits for MPFR numbers.
-
-------------------------------------------------------------------------
-r4352 | vlefevre | 2007-02-08 15:47:13 +0000 (Thu, 08 Feb 2007) | 7 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/tests/tset_si.c
-
-Reimplemented mpfr_set_si_2exp and mpfr_set_ui_2exp, and mpfr_set_si
-and mpfr_set_ui using the 2exp versions with e = 0. This fixes a bug
-in corner cases (emin >= 4 and some other constraints) in mpfr_set_si
-and mpfr_set_ui that incorrectly lead to an underflow flag set, and
-fixes mpfr_set_si_2exp and mpfr_set_ui_2exp in case of overflow or
-underflow (replacing the r4346 fix). Added corresponding testcases.
-
-------------------------------------------------------------------------
-r4350 | vlefevre | 2007-02-07 01:48:01 +0000 (Wed, 07 Feb 2007) | 3 lines
-Changed paths:
- M /trunk/abort_prec_max.c
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/zeta_ui.c
-
-Added "Contributed by the Arenaire and Cacao projects, INRIA." to the
-copyright notices and removed a few old things.
-
-------------------------------------------------------------------------
-r4347 | zimmerma | 2007-02-01 13:15:34 +0000 (Thu, 01 Feb 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added missing macro (thanks to Izhar Wallach <izharw@keddem.com>)
-
-------------------------------------------------------------------------
-r4346 | vlefevre | 2007-01-20 13:45:20 +0000 (Sat, 20 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/set_si_2exp.c
-
-Fixed mpfr_set_si_2exp in case of overflow or underflow.
-
-------------------------------------------------------------------------
-r4345 | vlefevre | 2007-01-19 08:31:32 +0000 (Fri, 19 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: fixed the overflow detection for x power of 2 and n negative.
-
-------------------------------------------------------------------------
-r4344 | vlefevre | 2007-01-19 07:24:26 +0000 (Fri, 19 Jan 2007) | 3 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-tests/tget_f.c: fixed a test that had an integer overflow (detected
-with -ftrapv).
-
-------------------------------------------------------------------------
-r4343 | vlefevre | 2007-01-19 07:07:10 +0000 (Fri, 19 Jan 2007) | 6 lines
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: Before fixing the bug corresponding to the testcase added in
-rev 4342, let's fix another one that can be detected with -ftrapv when
-n = LONG_MIN (since -n is not representable in this case).
-With wrapping, we always got the correct result because mp_exp_t is
-currently at most a long *and* because of side effects!
-
-------------------------------------------------------------------------
-r4342 | vlefevre | 2007-01-19 06:51:13 +0000 (Fri, 19 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: added a test which fails (undetected integer overflow).
-
-------------------------------------------------------------------------
-r4341 | vlefevre | 2007-01-19 06:44:09 +0000 (Fri, 19 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: new test was wrong; fixed.
-
-------------------------------------------------------------------------
-r4340 | vlefevre | 2007-01-19 06:39:23 +0000 (Fri, 19 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: corrected tests and added another test.
-
-------------------------------------------------------------------------
-r4339 | vlefevre | 2007-01-19 05:10:16 +0000 (Fri, 19 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: added tests.
-
-------------------------------------------------------------------------
-r4338 | vlefevre | 2007-01-19 04:23:17 +0000 (Fri, 19 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-pow_si.c: added an assertion.
-
-------------------------------------------------------------------------
-r4337 | vlefevre | 2007-01-18 01:28:02 +0000 (Thu, 18 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: merged both requests for mpfr_sinh_cosh.
-
-------------------------------------------------------------------------
-r4335 | zimmerma | 2007-01-17 19:38:49 +0000 (Wed, 17 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/dim.c
- M /trunk/mpfr.texi
-
-added documentation for mpfr_dim (was missing)
-
-------------------------------------------------------------------------
-r4334 | zimmerma | 2007-01-17 19:26:47 +0000 (Wed, 17 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item
-
-------------------------------------------------------------------------
-r4333 | vlefevre | 2007-01-17 17:34:09 +0000 (Wed, 17 Jan 2007) | 4 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/tests/tests.c
-
-Replaced some computations using the type double by computations using
-MPFR, for mpfr_get_str, allowing it to work with an x86 processor set
-up in single-precision mode.
-
-------------------------------------------------------------------------
-r4332 | vlefevre | 2007-01-16 23:15:29 +0000 (Tue, 16 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-Updated comment concerning LONG_MIN / 1.
-
-------------------------------------------------------------------------
-r4331 | vlefevre | 2007-01-15 00:40:17 +0000 (Mon, 15 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated "To make a release" section.
-
-------------------------------------------------------------------------
-r4329 | vlefevre | 2007-01-10 16:35:27 +0000 (Wed, 10 Jan 2007) | 2 lines
-Changed paths:
- D /trunk/mpzroot.c
- D /trunk/rootrem.c
-
-Removed mpzroot.c and rootrem.c from the repository.
-
-------------------------------------------------------------------------
-r4328 | vlefevre | 2007-01-10 16:32:46 +0000 (Wed, 10 Jan 2007) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- D /trunk/log_b2.h
-
-Removed log_b2.h (has never been used) from the repository and from
-libmpfr_la_SOURCES in Makefile.am.
-
-------------------------------------------------------------------------
-r4327 | vlefevre | 2007-01-10 15:40:05 +0000 (Wed, 10 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ.html: Added details to MPF-related Q&A's.
-
-------------------------------------------------------------------------
-r4326 | vlefevre | 2007-01-10 12:51:56 +0000 (Wed, 10 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_d64.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mpzroot.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/rootrem.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_d64.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_set_d64.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Copyright notice update: added 2007.
-
-------------------------------------------------------------------------
-r4325 | vlefevre | 2007-01-10 12:37:05 +0000 (Wed, 10 Jan 2007) | 6 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/README.dev
- M /trunk/tests/tests.c
-
-* tests/tests.c: under Linux/x86, the FPU precision can be set before
-doing the tests (see MPFR_FPU_PREC), so that MPFR can be tested under
-various FP environments (2 tests currently fail with _FPU_SINGLE).
-* README.dev: updated "To make a release" section.
-* BUGS: mentioned the above bug.
-
-------------------------------------------------------------------------
-r4323 | vlefevre | 2007-01-08 16:36:00 +0000 (Mon, 08 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi -> January 2007.
-
-------------------------------------------------------------------------
-r4321 | zimmerma | 2007-01-08 16:03:52 +0000 (Mon, 08 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added support from LIP, and different INRIA project-teams
-
-------------------------------------------------------------------------
-r4320 | vlefevre | 2007-01-03 16:19:45 +0000 (Wed, 03 Jan 2007) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-Minor change.
-
-------------------------------------------------------------------------
-r4319 | vlefevre | 2006-12-29 03:42:39 +0000 (Fri, 29 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: macros/functions to get/set the sign of a MPFR number.
-
-------------------------------------------------------------------------
-r4318 | zimmerma | 2006-12-21 14:10:51 +0000 (Thu, 21 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/root.c
-
-remove new rootrem implementation (unclear copyright status)
-
-------------------------------------------------------------------------
-r4317 | vlefevre | 2006-12-19 22:32:09 +0000 (Tue, 19 Dec 2006) | 3 lines
-Changed paths:
- M /trunk/const_catalan.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/eint.c
- M /trunk/erfc.c
- M /trunk/gamma.c
- M /trunk/lngamma.c
- M /trunk/zeta.c
-
-Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and
-mpfr_div_2ui respectively (when this makes sense, of course).
-
-------------------------------------------------------------------------
-r4316 | zimmerma | 2006-12-19 13:59:59 +0000 (Tue, 19 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/zeta_ui.c
-
-mpfr_div_2exp -> mpfr_div_2ui
-
-------------------------------------------------------------------------
-r4315 | zimmerma | 2006-12-19 07:08:13 +0000 (Tue, 19 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/algorithms.tex
- M /trunk/zeta_ui.c
-
-improved efficiency of zeta_ui(s) for 3^(-s) < 1/2*ulp(1)
-
-------------------------------------------------------------------------
-r4314 | vlefevre | 2006-12-18 17:09:43 +0000 (Mon, 18 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: update concerning MPFR_USE_EXTENSION.
-
-------------------------------------------------------------------------
-r4313 | zimmerma | 2006-12-18 16:03:26 +0000 (Mon, 18 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/rootrem.c
-
-added copyright header
-
-------------------------------------------------------------------------
-r4312 | zimmerma | 2006-12-18 12:04:19 +0000 (Mon, 18 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item
-
-------------------------------------------------------------------------
-r4311 | vlefevre | 2006-12-15 14:28:53 +0000 (Fri, 15 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Implemented MPFR_USE_EXTENSION support.
-
-------------------------------------------------------------------------
-r4310 | zimmerma | 2006-12-15 08:42:21 +0000 (Fri, 15 Dec 2006) | 4 lines
-Changed paths:
- M /trunk/zeta_ui.c
-
-improved efficiency for zeta(m) in precision p when m is large
-but still smaller than p, for example m=1024 and p=2048 gives a
-speedup of about 23 (thanks to Jim White for reporting the problem)
-
-------------------------------------------------------------------------
-r4309 | zimmerma | 2006-12-14 15:19:17 +0000 (Thu, 14 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/zeta_ui.c
-
-added MPFR_ZIV_INIT stuff
-
-------------------------------------------------------------------------
-r4308 | zimmerma | 2006-12-07 07:17:58 +0000 (Thu, 07 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-fixed typo
-
-------------------------------------------------------------------------
-r4307 | vlefevre | 2006-12-05 09:42:22 +0000 (Tue, 05 Dec 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: to be added: MPFR_USE_EXTENSION macro.
-
-------------------------------------------------------------------------
-r4306 | vlefevre | 2006-11-29 09:50:57 +0000 (Wed, 29 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: update.
-
-------------------------------------------------------------------------
-r4300 | vlefevre | 2006-11-29 08:54:24 +0000 (Wed, 29 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: update of the "Notes on Windows 32" section.
-
-------------------------------------------------------------------------
-r4299 | zimmerma | 2006-11-27 08:56:12 +0000 (Mon, 27 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/set_uj.c
-
-added comment about last change
-
-------------------------------------------------------------------------
-r4298 | zimmerma | 2006-11-27 08:26:02 +0000 (Mon, 27 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/set_uj.c
-
-fixed warning on 64-bit machines
-
-------------------------------------------------------------------------
-r4297 | vlefevre | 2006-11-26 18:58:05 +0000 (Sun, 26 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tests/tpow.c: added worst cases.
-
-------------------------------------------------------------------------
-r4296 | vlefevre | 2006-11-26 18:52:26 +0000 (Sun, 26 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-tests/troot.c: two more worst cases.
-
-------------------------------------------------------------------------
-r4295 | vlefevre | 2006-11-25 20:05:15 +0000 (Sat, 25 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/troot.c
-
-tests/troot.c: added a worst case.
-
-------------------------------------------------------------------------
-r4293 | vlefevre | 2006-11-25 19:46:42 +0000 (Sat, 25 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: removed obsolete "compiler bugs" section.
-
-------------------------------------------------------------------------
-r4292 | zimmerma | 2006-11-25 09:51:07 +0000 (Sat, 25 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added worst case
-
-------------------------------------------------------------------------
-r4286 | vlefevre | 2006-11-25 00:15:30 +0000 (Sat, 25 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Partially rewrote the INSTALL file.
-
-------------------------------------------------------------------------
-r4284 | vlefevre | 2006-11-24 14:46:41 +0000 (Fri, 24 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Makefile.am: fixed libtool's -version-info flag (and comment).
-
-------------------------------------------------------------------------
-r4279 | vlefevre | 2006-11-24 00:44:20 +0000 (Fri, 24 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: check for gmp.h a bit earlier.
-
-------------------------------------------------------------------------
-r4278 | zimmerma | 2006-11-23 14:10:10 +0000 (Thu, 23 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-added --with-tests-timeout=60 for nightly tests
-
-------------------------------------------------------------------------
-r4277 | zimmerma | 2006-11-23 14:08:47 +0000 (Thu, 23 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/tests/tests.c
-
-test timeout is now a configure option (e.g. --with-tests-timeout=60)
-
-------------------------------------------------------------------------
-r4276 | zimmerma | 2006-11-23 13:25:35 +0000 (Thu, 23 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-replaced set_d by set_str_binary (more portable)
-
-------------------------------------------------------------------------
-r4274 | vlefevre | 2006-11-23 00:34:58 +0000 (Thu, 23 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: several additions.
-
-------------------------------------------------------------------------
-r4272 | vlefevre | 2006-11-22 17:25:20 +0000 (Wed, 22 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: small update.
-
-------------------------------------------------------------------------
-r4270 | vlefevre | 2006-11-22 15:25:22 +0000 (Wed, 22 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update (added a CSS counter).
-
-------------------------------------------------------------------------
-r4268 | vlefevre | 2006-11-22 15:23:30 +0000 (Wed, 22 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/update-faq
-
-update-faq: added a workaround for the libxslt bug 377440.
-
-------------------------------------------------------------------------
-r4267 | vlefevre | 2006-11-22 11:48:44 +0000 (Wed, 22 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: update concerning the patches information.
-
-------------------------------------------------------------------------
-r4266 | zimmerma | 2006-11-22 08:03:59 +0000 (Wed, 22 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-set GMP_CHECK_RANDOMIZE to get random tests
-
-------------------------------------------------------------------------
-r4263 | vlefevre | 2006-11-21 18:01:15 +0000 (Tue, 21 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/README
-
-Updated README file.
-
-------------------------------------------------------------------------
-r4259 | vlefevre | 2006-11-20 16:32:36 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: mention the version suffix.
-
-------------------------------------------------------------------------
-r4258 | vlefevre | 2006-11-20 16:25:47 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated version to 2.3.0-dev.
-
-------------------------------------------------------------------------
-r4257 | vlefevre | 2006-11-20 16:24:20 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
- M /trunk/update-version
-
-Added version suffix support (useful for dev and rc versions).
-
-------------------------------------------------------------------------
-r4256 | vlefevre | 2006-11-20 14:45:50 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-Rewrote nightly-test in sh and fixed a security hole.
-
-------------------------------------------------------------------------
-r4255 | zimmerma | 2006-11-20 14:08:00 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-added cpu time limit of 60 seconds in tests
-
-------------------------------------------------------------------------
-r4254 | vlefevre | 2006-11-20 13:44:04 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: update.
-
-------------------------------------------------------------------------
-r4252 | zimmerma | 2006-11-20 12:59:26 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-added an argument to give the branch (use trunk or branches/2.2 for example)
-
-------------------------------------------------------------------------
-r4250 | vlefevre | 2006-11-20 11:36:25 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-tests/tgamma.c: restore emin and emax to their default values.
-
-------------------------------------------------------------------------
-r4249 | zimmerma | 2006-11-20 11:00:45 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed bug in overflow test
-
-------------------------------------------------------------------------
-r4248 | zimmerma | 2006-11-20 09:52:45 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed bug in mpfr_gamma for exact result
-
-------------------------------------------------------------------------
-r4246 | zimmerma | 2006-11-20 07:39:36 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/nightly-test
-
-added two configure options
-
-------------------------------------------------------------------------
-r4245 | zimmerma | 2006-11-20 07:32:36 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/erfc.c
-
-simplified test :-)
-
-------------------------------------------------------------------------
-r4244 | vlefevre | 2006-11-20 05:40:58 +0000 (Mon, 20 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: unset GMP_CFLAGS and GMP_CC in case the user has set such
-environment variables for another use.
-
-------------------------------------------------------------------------
-r4243 | vlefevre | 2006-11-20 04:45:11 +0000 (Mon, 20 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/tests/texp2.c
-
-tests/texp2.c: fixed a problem with a value that is not necessarily
-representable (on platforms without long long).
-
-------------------------------------------------------------------------
-r4242 | vlefevre | 2006-11-20 00:27:53 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: removed item on mpfr_eint (now fixed).
-
-------------------------------------------------------------------------
-r4241 | vlefevre | 2006-11-20 00:25:10 +0000 (Mon, 20 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/erfc.c
-
-Untabify.
-
-------------------------------------------------------------------------
-r4240 | zimmerma | 2006-11-19 21:27:33 +0000 (Sun, 19 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-replaced double by mpfr_t (problem on 64-bit machines)
-
-------------------------------------------------------------------------
-r4239 | zimmerma | 2006-11-19 18:22:51 +0000 (Sun, 19 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-added more tests
-
-------------------------------------------------------------------------
-r4238 | zimmerma | 2006-11-19 18:08:38 +0000 (Sun, 19 Nov 2006) | 2 lines
-Changed paths:
- A /trunk/nightly-test
-
-script for nightly tests
-
-------------------------------------------------------------------------
-r4237 | zimmerma | 2006-11-19 14:35:02 +0000 (Sun, 19 Nov 2006) | 4 lines
-Changed paths:
- M /trunk/erfc.c
- M /trunk/pow.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/terf.c
- M /trunk/tests/texp.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsum.c
- M /trunk/tests/ttan.c
-
-fixed bug in pow (isodd -> assertion failed)
-fixed problem in erfc for large input
-reduced tests that took too much time
-
-------------------------------------------------------------------------
-r4236 | vlefevre | 2006-11-19 11:34:06 +0000 (Sun, 19 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated description of mpfr_eint, as the whole input domain
-is now supported.
-
-------------------------------------------------------------------------
-r4235 | vlefevre | 2006-11-19 11:17:03 +0000 (Sun, 19 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/eint.c
- M /trunk/erfc.c
-
-Untabify.
-
-------------------------------------------------------------------------
-r4234 | vlefevre | 2006-11-19 11:01:25 +0000 (Sun, 19 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: added a comment about MPFR_WARNING.
-
-------------------------------------------------------------------------
-r4233 | zimmerma | 2006-11-19 09:28:35 +0000 (Sun, 19 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/eint.c
- M /trunk/erfc.c
-
-fixed bug in erfc (forgot to compare result of cmp_si)
-fixed infinite loop in eint (test for use of asympt was not tight enough)
-
-------------------------------------------------------------------------
-r4232 | zimmerma | 2006-11-19 08:48:17 +0000 (Sun, 19 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/eint.c
- M /trunk/tests/teint.c
-
-added asymptotic expansion for mpfr_eint (don't need MPFR_WARNING any more)
-
-------------------------------------------------------------------------
-r4231 | vlefevre | 2006-11-18 20:55:17 +0000 (Sat, 18 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/tests/terf.c
-
-Added a mpfr_erfc test that shows a bug and updated BUGS file.
-
-------------------------------------------------------------------------
-r4229 | vlefevre | 2006-11-17 09:07:23 +0000 (Fri, 17 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: Added a comment concerning GMP version checking.
-
-------------------------------------------------------------------------
-r4228 | vlefevre | 2006-11-17 08:58:29 +0000 (Fri, 17 Nov 2006) | 5 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: Before testing GMP header and library versions, set
-LD_RUN_PATH locally if a --with-gmp* option is used, so that the
-right version of the GMP library is used. There is no need to do
-something similar for "make check" as libtool does the job.
-
-------------------------------------------------------------------------
-r4227 | vlefevre | 2006-11-17 08:15:24 +0000 (Fri, 17 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Updated mpfr_erfc documentation (now supported in whole domain).
-
-------------------------------------------------------------------------
-r4226 | vlefevre | 2006-11-17 03:16:16 +0000 (Fri, 17 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: removed mpfr_pow_z bug.
-
-------------------------------------------------------------------------
-r4225 | vlefevre | 2006-11-17 03:13:24 +0000 (Fri, 17 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/Makefile.am
- M /trunk/tests/tests.c
- M /trunk/tests/tgeneric.c
-
-Merged the new generic tests.
-
-------------------------------------------------------------------------
-r4224 | vlefevre | 2006-11-17 02:55:09 +0000 (Fri, 17 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/pow_si.c
-
-Partially fixed a bug in mpfr_pow_si (overflow/underflow detection for
-n < 0).
-
-------------------------------------------------------------------------
-r4223 | vlefevre | 2006-11-17 02:46:56 +0000 (Fri, 17 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-tests/tpow_z.c: various corrections.
-
-------------------------------------------------------------------------
-r4222 | vlefevre | 2006-11-17 02:27:06 +0000 (Fri, 17 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/pow_z.c
- M /trunk/tests/tpow.c
-
-Partially fixed another bug in mpfr_pow_z (overflow/underflow detection
-for z < 0) and added corresponding testcases.
-
-------------------------------------------------------------------------
-r4221 | vlefevre | 2006-11-17 01:56:31 +0000 (Fri, 17 Nov 2006) | 4 lines
-Changed paths:
- M /trunk/pow_z.c
- M /trunk/tests/tpow.c
-
-Fixed a bug in mpfr_pow_z concerning the underflow flag and added the
-corresponding testcase (but the case z < 0 is still buggy concerning
-the flags).
-
-------------------------------------------------------------------------
-r4219 | zimmerma | 2006-11-16 15:02:08 +0000 (Thu, 16 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/algorithms.tex
- M /trunk/erfc.c
- M /trunk/tests/terf.c
-
-implemented asymptotic formula for erfc (fixed both slowness for large
-arguments, and call to MPFR_WARNING with return value NaN for huge arguments)
-
-------------------------------------------------------------------------
-r4218 | zimmerma | 2006-11-16 10:19:19 +0000 (Thu, 16 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-added new test
-
-------------------------------------------------------------------------
-r4216 | zimmerma | 2006-11-14 16:42:46 +0000 (Tue, 14 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/erfc.c
- M /trunk/tests/terf.c
-
-fixed problem for large negative input
-
-------------------------------------------------------------------------
-r4215 | vlefevre | 2006-11-14 14:26:02 +0000 (Tue, 14 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: slight change in the proposed mpfr_lgamma prototype (arg order).
-
-------------------------------------------------------------------------
-r4214 | vlefevre | 2006-11-13 09:07:20 +0000 (Mon, 13 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.texi
-
-About mpfr_lngamma/mpfr_lgamma: added mpfr_lgamma to TODO and updated
-mpfr_lngamma description in mpfr.texi.
-
-------------------------------------------------------------------------
-r4213 | vlefevre | 2006-11-13 08:39:16 +0000 (Mon, 13 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: update.
-
-------------------------------------------------------------------------
-r4212 | vlefevre | 2006-11-13 07:26:31 +0000 (Mon, 13 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-tests/terf.c: added a test that yields a segfault (execute "terf 1").
-
-------------------------------------------------------------------------
-r4211 | zimmerma | 2006-11-10 16:05:07 +0000 (Fri, 10 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-moved the [gs]et_decimal64 functions after the [gs]et_ld functions
-
-------------------------------------------------------------------------
-r4210 | vlefevre | 2006-11-10 15:14:58 +0000 (Fri, 10 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: changed @code{--enable-decimal-float} into @samp{...}
-for consistency with the other configure options.
-
-------------------------------------------------------------------------
-r4209 | vlefevre | 2006-11-10 15:13:30 +0000 (Fri, 10 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: updated the note concerning mpfr_eint and mpfr_erfc.
-
-------------------------------------------------------------------------
-r4208 | vlefevre | 2006-11-10 14:54:19 +0000 (Fri, 10 Nov 2006) | 9 lines
-Changed paths:
- M /branches/new-generic-tests/tests/Makefile.am
- M /trunk/configure.in
- M /trunk/eint.c
- M /trunk/erfc.c
- M /trunk/mpfr-impl.h
-
-Added warnings support.
- * configure.in: added --enable-warnings configure option.
- * mpfr-impl.h: defined MPFR_WARNING(W) macro.
- * eint.c, erfc.c: use MPFR_WARNING instead of fprintf.
- * tests/Makefile.am (new-generic-tests branch): run the tests with
- MPFR_QUIET=1 to avoid output of useless warnings, as some tests
- (with large arguments) can generate such warnings, which are all
- expected.
-
-------------------------------------------------------------------------
-r4206 | vlefevre | 2006-11-10 13:28:54 +0000 (Fri, 10 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests
-
-Added tget_set_d64 to svn:ignore property of "tests" directory.
-
-------------------------------------------------------------------------
-r4205 | vlefevre | 2006-11-10 09:05:56 +0000 (Fri, 10 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: "add a configure test for --enable-logging..."
-
-------------------------------------------------------------------------
-r4204 | vlefevre | 2006-11-10 01:30:10 +0000 (Fri, 10 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-More information for --enable-logging configure option.
-
-------------------------------------------------------------------------
-r4203 | vlefevre | 2006-11-10 01:24:33 +0000 (Fri, 10 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/logging.c
- M /trunk/mpfr-impl.h
-
-Fixed test of logging support.
-
-------------------------------------------------------------------------
-r4202 | vlefevre | 2006-11-10 01:01:24 +0000 (Fri, 10 Nov 2006) | 5 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/configure.in
-
-Removed --with-irix64 configure option and "case $OS_TYPE" code from
-configure.in; see
- http://sympa.loria.fr/wwsympa/arc/mpfr/2006-11/msg00009.html
-for the reasons.
-
-------------------------------------------------------------------------
-r4201 | zimmerma | 2006-11-09 14:25:48 +0000 (Thu, 09 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tget_set_d64.c
-
-added more checks with native format
-
-------------------------------------------------------------------------
-r4200 | zimmerma | 2006-11-09 13:37:33 +0000 (Thu, 09 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/tests/tget_set_d64.c
-
-added detection of decimal format in configure (DPD or BID)
-
-------------------------------------------------------------------------
-r4199 | vlefevre | 2006-11-09 11:39:34 +0000 (Thu, 09 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: removed a useless cast (ISO C99 standard 6.2.5#3) and updated
-a comment as isdigit is no longer used.
-
-------------------------------------------------------------------------
-r4198 | vlefevre | 2006-11-09 11:13:48 +0000 (Thu, 09 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c fix: no longer use isdigit, as MPFR requires non-localized
-digits.
-
-------------------------------------------------------------------------
-r4197 | zimmerma | 2006-11-09 11:05:05 +0000 (Thu, 09 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/set_d64.c
- M /trunk/tests/tget_set_d64.c
-
-modified to work on 64-bit machines too
-
-------------------------------------------------------------------------
-r4196 | vlefevre | 2006-11-09 09:31:09 +0000 (Thu, 09 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/get_d64.c
-
-get_d64.c: fixed problems related to signed/unsigned values.
-
-------------------------------------------------------------------------
-r4195 | vlefevre | 2006-11-09 09:03:17 +0000 (Thu, 09 Nov 2006) | 4 lines
-Changed paths:
- M /trunk/strtofr.c
-
-strtofr.c: fixed a bug that could occur on platforms with signed chars,
-when the user provides a string with negative characters (e.g. accented
-characters, in practice).
-
-------------------------------------------------------------------------
-r4194 | zimmerma | 2006-11-09 07:29:15 +0000 (Thu, 09 Nov 2006) | 4 lines
-Changed paths:
- M /trunk/get_d64.c
- M /trunk/set_d64.c
- M /trunk/tests/tget_set_d64.c
-
-complete rewrite of mpfr_set_decimal64 and mpfr_get_decimal64: now use
-internal string <-> _Decimal64 conversion functions, which perform native
-conversion from/to BID or DPD
-
-------------------------------------------------------------------------
-r4193 | zimmerma | 2006-11-08 09:32:52 +0000 (Wed, 08 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mpfr_set_decimal64 and mpfr_get_decimal64
-
-------------------------------------------------------------------------
-r4192 | vlefevre | 2006-11-08 08:55:33 +0000 (Wed, 08 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-mpfr-impl.h: fixed a compile error if _Decimal64 is unknown.
-
-------------------------------------------------------------------------
-r4191 | zimmerma | 2006-11-08 07:47:07 +0000 (Wed, 08 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/get_d64.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/set_d64.c
- M /trunk/tests/tget_set_d64.c
-
-added new configure option --enable-decimal-float to build mpfr_set_decimal64
-and mpfr_get_decimal64 (checks _Decimal64, and _GMP_IEEE_FLOATS is defined)
-
-------------------------------------------------------------------------
-r4190 | zimmerma | 2006-11-07 16:47:45 +0000 (Tue, 07 Nov 2006) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/get_d64.c
- M /trunk/mpfr.h
- M /trunk/set_d64.c
- M /trunk/tests/tget_set_d64.c
-
-added --enable-decimal-float in configure, and corresponding macro
-WANT_DECIMAL_FLOATS
-
-------------------------------------------------------------------------
-r4189 | vlefevre | 2006-11-07 15:09:16 +0000 (Tue, 07 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-tests/tversion.c: improved error message and added gmp.h/libgmp test.
-
-------------------------------------------------------------------------
-r4188 | vlefevre | 2006-11-07 14:38:42 +0000 (Tue, 07 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-Fixed a small bug in tests/tversion.c (should never occur anyway).
-
-------------------------------------------------------------------------
-r4187 | vlefevre | 2006-11-06 01:23:37 +0000 (Mon, 06 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/logging.c
-
-logging.c: clean-up.
-
-------------------------------------------------------------------------
-r4186 | vlefevre | 2006-11-05 16:12:16 +0000 (Sun, 05 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: updated things to do before a release.
-
-------------------------------------------------------------------------
-r4185 | zimmerma | 2006-11-05 15:41:27 +0000 (Sun, 05 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_d64.c
- M /trunk/get_str.c
- M /trunk/mpfr.h
- A /trunk/set_d64.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_set_d64.c
-
-added new (preliminary) conversions functions to/from decimal64
-
-------------------------------------------------------------------------
-r4184 | zimmerma | 2006-11-05 15:17:30 +0000 (Sun, 05 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/erfc.c
-
-changed header file: stdlib.h -> stdio.h
-
-------------------------------------------------------------------------
-r4183 | vlefevre | 2006-11-03 18:38:05 +0000 (Fri, 03 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Fixed a bug related to signed/unsigned types.
-
-------------------------------------------------------------------------
-r4182 | vlefevre | 2006-11-03 10:05:51 +0000 (Fri, 03 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-tgamma.c: avoid useless mpfr_get_d.
-
-------------------------------------------------------------------------
-r4181 | vlefevre | 2006-11-03 09:54:24 +0000 (Fri, 03 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-tpow.c: replaced a mpfr_cmp_d by a mpfr_cmp_str1.
-
-------------------------------------------------------------------------
-r4180 | vlefevre | 2006-11-03 09:50:45 +0000 (Fri, 03 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-lngamma.c: added a comment.
-
-------------------------------------------------------------------------
-r4179 | vlefevre | 2006-11-03 09:42:31 +0000 (Fri, 03 Nov 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tlngamma.c
-
-tlngamma.c: avoid useless mpfr_get_d.
-
-------------------------------------------------------------------------
-r4178 | vlefevre | 2006-10-27 21:21:56 +0000 (Fri, 27 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/eint.c
-
-eint.c: better overflow checking; fix: all allocated memory now freed.
-
-------------------------------------------------------------------------
-r4177 | vlefevre | 2006-10-27 17:03:32 +0000 (Fri, 27 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/eint.c
-
-eint.c: forgot 2 mpfr_clear's.
-
-------------------------------------------------------------------------
-r4174 | vlefevre | 2006-10-27 16:12:34 +0000 (Fri, 27 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/eint.c
-
-eint.c fix: and changed the #if into if.
-
-------------------------------------------------------------------------
-r4173 | vlefevre | 2006-10-27 16:10:22 +0000 (Fri, 27 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/eint.c
-
-eint.c fix: replaced BITS_PER_MP_LIMB by sizeof(mp_exp_t) * CHAR_BIT.
-
-------------------------------------------------------------------------
-r4172 | vlefevre | 2006-10-27 12:39:20 +0000 (Fri, 27 Oct 2006) | 4 lines
-Changed paths:
- M /trunk/erfc.c
- M /trunk/mpfr.texi
-
-The current implementation of mpfr_erfc cannot compute the result for
-large inputs. Return NaN with the erange flag set instead of aborting.
-Documented this behavior in mpfr.texi.
-
-------------------------------------------------------------------------
-r4171 | zimmerma | 2006-10-27 11:56:14 +0000 (Fri, 27 Oct 2006) | 3 lines
-Changed paths:
- M /trunk/eint.c
-
-improved bound for x with BITS_PER_MP_LIMB=32
- added bound for BITS_PER_MP_LIMB=64
-
-------------------------------------------------------------------------
-r4169 | vlefevre | 2006-10-27 01:30:32 +0000 (Fri, 27 Oct 2006) | 4 lines
-Changed paths:
- M /trunk/eint.c
- M /trunk/mpfr.texi
-
-The current implementation of mpfr_eint cannot compute the result for
-large inputs. Return NaN with the erange flag set instead of aborting.
-Documented this behavior in mpfr.texi.
-
-------------------------------------------------------------------------
-r4168 | vlefevre | 2006-10-27 00:59:33 +0000 (Fri, 27 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-tzeta.c patch 4166 should have been committed to the trunk. Fixing...
-
-------------------------------------------------------------------------
-r4167 | zimmerma | 2006-10-26 17:17:01 +0000 (Thu, 26 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/eint.c
- M /trunk/erf.c
- M /trunk/erfc.c
-
-added tests for overflows or underflows
-
-------------------------------------------------------------------------
-r4166 | zimmerma | 2006-10-26 15:19:43 +0000 (Thu, 26 Oct 2006) | 2 lines
-Changed paths:
- M /branches/new-generic-tests/tests/tzeta.c
- M /trunk/zeta.c
-
-fixed problem for large negative s (return +Inf or -Inf)
-
-------------------------------------------------------------------------
-r4165 | zimmerma | 2006-10-26 13:55:26 +0000 (Thu, 26 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/coth.c
-
-fixed dummy error in last commit
-
-------------------------------------------------------------------------
-r4164 | vlefevre | 2006-10-26 08:52:01 +0000 (Thu, 26 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/eint.c
-
-In latest change, replaced exit(1) by abort().
-
-------------------------------------------------------------------------
-r4163 | zimmerma | 2006-10-26 08:18:23 +0000 (Thu, 26 Oct 2006) | 4 lines
-Changed paths:
- M /trunk/eint.c
- M /trunk/tests/teint.c
-
-added test for eint()
-added error message when input is too large in eint(), waiting for asymptotic
- expansion
-
-------------------------------------------------------------------------
-r4162 | vlefevre | 2006-10-26 01:40:17 +0000 (Thu, 26 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/coth.c
- M /trunk/gen_inverse.h
-
-Untabified and added a FIXME.
-
-------------------------------------------------------------------------
-r4161 | zimmerma | 2006-10-25 17:49:57 +0000 (Wed, 25 Oct 2006) | 3 lines
-Changed paths:
- M /trunk/coth.c
- M /trunk/csch.c
- M /trunk/gen_inverse.h
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tsech.c
-
-fixed overflow/underflow problems in csch and sech
-fixed problem for huge argument in coth
-
-------------------------------------------------------------------------
-r4159 | vlefevre | 2006-10-25 17:01:07 +0000 (Wed, 25 Oct 2006) | 9 lines
-Changed paths:
- M /trunk/FAQ.html
- M /trunk/faq.xsl
- M /trunk/update-faq
-
-FAQ-related updates:
- * faq.xsl: Include styles from http://www.mpfr.org/styles/visual.css
- by using a system entity (but GNOME libxslt bug 345147 is still
- present in Debian, so don't use /*<![CDATA[*/ and /*]]>*/ yet).
- * update-faq: add /*<![CDATA[*/ and /*]]>*/ after calling xsltproc.
- * FAQ.html: update from the MPFR web site: various changes, including:
- + added id attributes on dt elements (FAQ items) to allow anchors;
- + updated FAQ for undefined references.
-
-------------------------------------------------------------------------
-r4157 | vlefevre | 2006-10-25 14:18:59 +0000 (Wed, 25 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: mention the MPFR FAQ.
-
-------------------------------------------------------------------------
-r4155 | vlefevre | 2006-10-23 02:10:13 +0000 (Mon, 23 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/set_uj.c
-
-Added a comment about a warning (this confused a user).
-
-------------------------------------------------------------------------
-r4153 | vlefevre | 2006-10-11 11:43:07 +0000 (Wed, 11 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: added an item about version information.
-
-------------------------------------------------------------------------
-r4152 | vlefevre | 2006-10-05 14:40:39 +0000 (Thu, 05 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: updated item.
-
-------------------------------------------------------------------------
-r4151 | zimmerma | 2006-10-05 10:52:30 +0000 (Thu, 05 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item
-
-------------------------------------------------------------------------
-r4149 | zimmerma | 2006-10-02 19:55:09 +0000 (Mon, 02 Oct 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed wrong emax in example for mpfr_subnormalize
-
-------------------------------------------------------------------------
-r4147 | vlefevre | 2006-09-07 09:27:11 +0000 (Thu, 07 Sep 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-MPFR manual: say that errno may be set to non-zero.
-
-------------------------------------------------------------------------
-r4145 | vlefevre | 2006-08-31 12:26:29 +0000 (Thu, 31 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-tests/tests.c: typo.
-
-------------------------------------------------------------------------
-r4143 | vlefevre | 2006-08-28 12:09:10 +0000 (Mon, 28 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/tests/texp2.c
-
-Fixed texp2 overflow tests on 64-bit machines.
-
-------------------------------------------------------------------------
-r4142 | vlefevre | 2006-08-28 11:58:54 +0000 (Mon, 28 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-tests/reuse.c: avoid a warning; code reformatted (GNU style).
-
-------------------------------------------------------------------------
-r4140 | vlefevre | 2006-08-23 14:08:12 +0000 (Wed, 23 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: minor update.
-
-------------------------------------------------------------------------
-r4138 | vlefevre | 2006-08-21 12:51:49 +0000 (Mon, 21 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: updated "known bugs" section.
-
-------------------------------------------------------------------------
-r4136 | vlefevre | 2006-08-21 12:40:20 +0000 (Mon, 21 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-Fixed an exponent/flags-related bug in lngamma.c.
-
-------------------------------------------------------------------------
-r4134 | vlefevre | 2006-08-21 11:12:25 +0000 (Mon, 21 Aug 2006) | 2 lines
-Changed paths:
- M /trunk
-
-Updated svn:ignore property.
-
-------------------------------------------------------------------------
-r4133 | vlefevre | 2006-08-20 08:34:40 +0000 (Sun, 20 Aug 2006) | 5 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-Fixed several problems in pow.c concerning underflows, overflows and
-flags (including the inexact flag, which could be incorrectly set in
-case of NaN), and added some testcases. Problems in pow_z.c have not
-been fixed yet.
-
-------------------------------------------------------------------------
-r4131 | vlefevre | 2006-08-20 00:44:26 +0000 (Sun, 20 Aug 2006) | 5 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
-
-Partial fix: The inexact flag was not always set in some functions.
-In particular, it is now set by mpfr_check_range (if t is not zero)
-since mpfr_check_range usually comes just after MPFR_SAVE_EXPO_FREE
-(which restores the previous flags).
-
-------------------------------------------------------------------------
-r4129 | vlefevre | 2006-08-19 14:33:23 +0000 (Sat, 19 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-Added an assertion for mpfr_exp2 and a test.
-
-------------------------------------------------------------------------
-r4127 | vlefevre | 2006-08-16 20:09:49 +0000 (Wed, 16 Aug 2006) | 5 lines
-Changed paths:
- M /trunk/expm1.c
-
-Optimized mpfr_expm1 for large (in absolute value) negative values in
-order to avoid the TMD (the result is very close to -1). Without this
-patch, mpfr_expm1 could take dozens of MBs and the new generic tests
-for texpm1 could take several hours instead of less than 1 second.
-
-------------------------------------------------------------------------
-r4125 | vlefevre | 2006-08-16 16:31:25 +0000 (Wed, 16 Aug 2006) | 7 lines
-Changed paths:
- M /trunk/expm1.c
-
-Fixed a bug in expm1 for very small negative arguments (and perhaps
-some very small positive arguments too); this bug is similar to the
-one in log1p that was recently found and fixed. It was detected by
-the new generic tests (not committed yet), therefore no testcases
-are provided. Note: the mpfr_expm1 function is still buggy (freezes
-on -0.10E18, prec 2 -> prec 13); this is a different bug.
-
-------------------------------------------------------------------------
-r4123 | vlefevre | 2006-08-16 09:20:00 +0000 (Wed, 16 Aug 2006) | 3 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-In mpfr_exp2, the overflow flag was not set if mpfr_exp2 overflowed
-with x < emax. Added testcase.
-
-------------------------------------------------------------------------
-r4121 | vlefevre | 2006-08-15 17:52:21 +0000 (Tue, 15 Aug 2006) | 4 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-The latest mpfr_exp2 fix contained a bug. Partially rewrote mpfr_exp2
-to fix this bug and another one (and added a corresponding testcase:
-exp2(10000000000.5), which was freezing).
-
-------------------------------------------------------------------------
-r4119 | vlefevre | 2006-08-15 11:37:20 +0000 (Tue, 15 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-Better fix for exp2 exponent range bug.
-
-------------------------------------------------------------------------
-r4117 | vlefevre | 2006-08-15 10:44:34 +0000 (Tue, 15 Aug 2006) | 3 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-Fixed bug in mpfr_exp2 when the argument is an integer and emin > 1.
-Added a testcase to texp2.
-
-------------------------------------------------------------------------
-r4116 | vlefevre | 2006-08-14 23:00:39 +0000 (Mon, 14 Aug 2006) | 3 lines
-Changed paths:
- M /trunk/tests
-
-Added tget_ld_2exp to svn:ignore property of "tests" directory
-(should have been done in rev 4028).
-
-------------------------------------------------------------------------
-r4114 | vlefevre | 2006-08-14 22:23:01 +0000 (Mon, 14 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/log1p.c
- M /trunk/tests/tlog1p.c
-
-Fixed bug in log1p for small negative values of x and added testcase.
-
-------------------------------------------------------------------------
-r4112 | vlefevre | 2006-08-14 17:39:01 +0000 (Mon, 14 Aug 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Code style correction for ansi2knr.
-
-------------------------------------------------------------------------
-r4110 | vlefevre | 2006-07-25 21:10:21 +0000 (Tue, 25 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: more information.
-
-------------------------------------------------------------------------
-r4108 | vlefevre | 2006-07-25 20:36:23 +0000 (Tue, 25 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: added a note about include/library paths.
-
-------------------------------------------------------------------------
-r4106 | vlefevre | 2006-07-21 08:22:40 +0000 (Fri, 21 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-INSTALL: added information about setup after the library installation.
-
-------------------------------------------------------------------------
-r4104 | vlefevre | 2006-07-20 07:23:06 +0000 (Thu, 20 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Improved linker flag settings on darwin.
-
-------------------------------------------------------------------------
-r4103 | vlefevre | 2006-07-18 07:51:58 +0000 (Tue, 18 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: fixed a linking problem on darwin.
-
-------------------------------------------------------------------------
-r4101 | vlefevre | 2006-07-16 02:52:18 +0000 (Sun, 16 Jul 2006) | 5 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/tests/Makefile.am
-
-One needs automake 1.6; autoreconf fails with automake 1.4. Adding
-the 1.6 automake option will make the error message less obfuscated,
-but unfortunately, one won't have the necessary automake version
-automatically called, even if it is installed.
-
-------------------------------------------------------------------------
-r4099 | zimmerma | 2006-07-05 14:35:36 +0000 (Wed, 05 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item
-
-------------------------------------------------------------------------
-r4098 | zimmerma | 2006-07-05 14:23:57 +0000 (Wed, 05 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/root.c
-
-fixed wrong comment (thanks Keith Briggs)
-
-------------------------------------------------------------------------
-r4097 | zimmerma | 2006-07-05 14:23:16 +0000 (Wed, 05 Jul 2006) | 2 lines
-Changed paths:
- M /trunk/root.c
-
-new mpn_rootrem is still not in gmp-4.2
-
-------------------------------------------------------------------------
-r4096 | zimmerma | 2006-06-20 12:55:55 +0000 (Tue, 20 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-replaced <= by =
-
-------------------------------------------------------------------------
-r4095 | zimmerma | 2006-06-19 13:57:32 +0000 (Mon, 19 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-changed <= into =
-
-------------------------------------------------------------------------
-r4094 | zimmerma | 2006-06-19 09:10:38 +0000 (Mon, 19 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-comments from Keith Briggs
-
-------------------------------------------------------------------------
-r4093 | vlefevre | 2006-06-09 13:36:30 +0000 (Fri, 09 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: corrected several English mistakes and typography.
-
-------------------------------------------------------------------------
-r4092 | zimmerma | 2006-06-09 12:41:47 +0000 (Fri, 09 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-fixed typo
-
-------------------------------------------------------------------------
-r4091 | zimmerma | 2006-06-09 09:51:59 +0000 (Fri, 09 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-replaced error() by \error()
-
-------------------------------------------------------------------------
-r4090 | vlefevre | 2006-06-09 08:17:58 +0000 (Fri, 09 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: another fixed notation for roundings.
-
-------------------------------------------------------------------------
-r4089 | zimmerma | 2006-06-09 08:07:29 +0000 (Fri, 09 Jun 2006) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added section on Notations
-fixed notations for roundings
-
-------------------------------------------------------------------------
-r4088 | vlefevre | 2006-06-09 07:49:43 +0000 (Fri, 09 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-algorithms.tex: changed the page style to plain (for page numbers).
-
-------------------------------------------------------------------------
-r4086 | vlefevre | 2006-06-07 23:48:43 +0000 (Wed, 07 Jun 2006) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update.
-
-------------------------------------------------------------------------
-r4083 | vlefevre | 2006-05-29 19:00:31 +0000 (Mon, 29 May 2006) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Define HAVE_ATTRIBUTE_MODE if supported; useful for s390, but incomplete
-and will fail on platforms with gcc and CHAR_BIT != 8.
-
-------------------------------------------------------------------------
-r4081 | vlefevre | 2006-05-19 16:43:35 +0000 (Fri, 19 May 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Add compiler flags (CPPFLAGS, LDFLAGS) in a consistent order.
-
-------------------------------------------------------------------------
-r4079 | vlefevre | 2006-05-18 00:10:06 +0000 (Thu, 18 May 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-MPFR manual consistency: Custom interface -> Custom Interface.
-
-------------------------------------------------------------------------
-r4075 | vlefevre | 2006-05-17 23:20:38 +0000 (Wed, 17 May 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: added a note about the change 4049 in div.c.
-
-------------------------------------------------------------------------
-r4072 | vlefevre | 2006-04-18 15:08:52 +0000 (Tue, 18 Apr 2006) | 3 lines
-Changed paths:
- M /trunk/mul.c
-
-Removed the #ifndef __hpux from mul.c (after a test on a HP-UX machine,
-I got no failures, even with the old mpfr-longlong.h).
-
-------------------------------------------------------------------------
-r4071 | vlefevre | 2006-04-18 14:38:10 +0000 (Tue, 18 Apr 2006) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added a point on mpfr-longlong.h in "To make a release".
-
-------------------------------------------------------------------------
-r4070 | vlefevre | 2006-04-18 14:37:19 +0000 (Tue, 18 Apr 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr-longlong.h
-
-Updated mpfr-longlong.h from the GMP 4.2 longlong.h file.
-
-------------------------------------------------------------------------
-r4068 | vlefevre | 2006-04-18 13:30:52 +0000 (Tue, 18 Apr 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr.texi: removed dot from a section title.
-
-------------------------------------------------------------------------
-r4066 | vlefevre | 2006-04-11 13:54:39 +0000 (Tue, 11 Apr 2006) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update.
-
-------------------------------------------------------------------------
-r4065 | vlefevre | 2006-04-06 13:58:46 +0000 (Thu, 06 Apr 2006) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-div.c: removed the bad use of MPFR_LIMB_ZERO.
-
-------------------------------------------------------------------------
-r4064 | vlefevre | 2006-04-06 12:52:24 +0000 (Thu, 06 Apr 2006) | 3 lines
-Changed paths:
- M /trunk/get_f.c
-
-In get_f.c, updated the case precy + sh > precx: this one was correct,
-but added a comment, assertions and simplified a MPN_ZERO.
-
-------------------------------------------------------------------------
-r4063 | vlefevre | 2006-04-05 16:32:23 +0000 (Wed, 05 Apr 2006) | 4 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-tget_f.c: test that there is no lost of accuracy when converting
-a mpfr_t number into a mpf_t number (test with various precisions
-and exponents).
-
-------------------------------------------------------------------------
-r4062 | vlefevre | 2006-04-05 15:52:26 +0000 (Wed, 05 Apr 2006) | 3 lines
-Changed paths:
- M /trunk/get_f.c
-
-The fix of get_f.c was wrong. This should be now OK for the case
-precy + sh <= precx.
-
-------------------------------------------------------------------------
-r4061 | vlefevre | 2006-04-05 09:31:34 +0000 (Wed, 05 Apr 2006) | 2 lines
-Changed paths:
- M /trunk/get_f.c
- M /trunk/tests/tget_f.c
-
-Fixed bug in mpfr_get_f (reported by Yury Lukach) and added test.
-
-------------------------------------------------------------------------
-r4059 | vlefevre | 2006-03-31 16:47:40 +0000 (Fri, 31 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/fdl.texi
-
-Updated FDL to version 1.2.
-
-------------------------------------------------------------------------
-r4057 | vlefevre | 2006-03-31 16:30:52 +0000 (Fri, 31 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
- M /trunk/lngamma.c
- M /trunk/mparam_h.in
- M /trunk/mpzroot.c
- M /trunk/tests/mpf_compat.h
-
-Updated FSF address.
-
-------------------------------------------------------------------------
-r4055 | vlefevre | 2006-03-31 14:19:52 +0000 (Fri, 31 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/mp_clz_tab.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-longlong.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_ld_2exp.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Fixed FSF address.
-
-------------------------------------------------------------------------
-r4053 | vlefevre | 2006-03-30 14:41:30 +0000 (Thu, 30 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-Another FAQ update (taking GMP 4.2 into account).
-
-------------------------------------------------------------------------
-r4051 | vlefevre | 2006-03-30 14:22:52 +0000 (Thu, 30 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-FAQ update.
-
-------------------------------------------------------------------------
-r4050 | vlefevre | 2006-03-24 14:46:54 +0000 (Fri, 24 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-impl.h
-
-Removed all code related to mpn_sub_nc (no longer used).
-
-------------------------------------------------------------------------
-r4049 | vlefevre | 2006-03-24 13:51:52 +0000 (Fri, 24 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-div.c: fixed a bug and no longer use mpn_sub_nc.
-
-------------------------------------------------------------------------
-r4048 | vlefevre | 2006-03-24 12:43:41 +0000 (Fri, 24 Mar 2006) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-Some clean-up in div.c; do not steal GMP's namespace (could lead to
-clashes if future GMP versions define the corresponding macros).
-
-------------------------------------------------------------------------
-r4047 | vlefevre | 2006-03-24 08:49:28 +0000 (Fri, 24 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/configure.in
-
-Build shared libraries by default.
-
-------------------------------------------------------------------------
-r4046 | vlefevre | 2006-03-23 10:57:46 +0000 (Thu, 23 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/random2.c
-
-random2.c: minor change suggested by Patrick.
-
-------------------------------------------------------------------------
-r4044 | vlefevre | 2006-03-23 09:18:54 +0000 (Thu, 23 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-configure.in: typography consistency.
-
-------------------------------------------------------------------------
-r4043 | vlefevre | 2006-03-23 09:16:34 +0000 (Thu, 23 Mar 2006) | 4 lines
-Changed paths:
- M /trunk/INSTALL
-
-Mention --enable-thread-safe and --enable-shared in the INSTALL file
-since users may need them and could be confused otherwise (just seen
-that). Untabified the file.
-
-------------------------------------------------------------------------
-r4041 | vlefevre | 2006-03-16 18:10:24 +0000 (Thu, 16 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-TODO: new exception "division by zero" / "pole".
-
-------------------------------------------------------------------------
-r4040 | vlefevre | 2006-03-16 18:04:36 +0000 (Thu, 16 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: added "Do not use C99-only features, such as...".
-
-------------------------------------------------------------------------
-r4038 | zimmerma | 2006-03-16 14:49:50 +0000 (Thu, 16 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/expm1.c
- M /trunk/log1p.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/zeta.c
-
-replaced 6th empty argument of MPFR_FAST_COMPUTE_IF_SMALL_INPUT by {}
-
-------------------------------------------------------------------------
-r4037 | vlefevre | 2006-03-14 16:07:28 +0000 (Tue, 14 Mar 2006) | 3 lines
-Changed paths:
- M /trunk/random2.c
-
-In random2.c, replaced NULL by 0 (more general) and removed the
-now unnecessary #include <stdio.h>.
-
-------------------------------------------------------------------------
-r4036 | zimmerma | 2006-03-14 15:33:31 +0000 (Tue, 14 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/random2.c
-
-added missing include file
-
-------------------------------------------------------------------------
-r4035 | vlefevre | 2006-03-14 14:59:00 +0000 (Tue, 14 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Tests: added new worst case for x^(3/2).
-
-------------------------------------------------------------------------
-r4034 | zimmerma | 2006-03-02 17:28:41 +0000 (Thu, 02 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-added reference to INRIA report for Zeta
-
-------------------------------------------------------------------------
-r4033 | zimmerma | 2006-03-02 11:05:35 +0000 (Thu, 02 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-added another reference
-
-------------------------------------------------------------------------
-r4032 | zimmerma | 2006-03-02 11:02:23 +0000 (Thu, 02 Mar 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-added reference
-
-------------------------------------------------------------------------
-r4031 | vlefevre | 2006-02-28 23:20:24 +0000 (Tue, 28 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-More details concerning mpfr_eq.
-
-------------------------------------------------------------------------
-r4030 | zimmerma | 2006-02-28 10:46:59 +0000 (Tue, 28 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-removed "but does not make much sense"
-
-------------------------------------------------------------------------
-r4029 | zimmerma | 2006-02-28 09:39:25 +0000 (Tue, 28 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added contribution from Damien
-
-------------------------------------------------------------------------
-r4028 | zimmerma | 2006-02-28 09:18:17 +0000 (Tue, 28 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_ld_2exp.c
-
-new test file for mpfr_get_ld_2exp
-
-------------------------------------------------------------------------
-r4027 | zimmerma | 2006-02-27 10:15:24 +0000 (Mon, 27 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/get_d.c
- M /trunk/get_ld.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-added mpfr_get_ld_2exp (contributed by Damien Stehle)
-
-------------------------------------------------------------------------
-r4026 | vlefevre | 2006-02-20 14:40:28 +0000 (Mon, 20 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Updated mpfr_random2 user documentation.
-
-------------------------------------------------------------------------
-r4024 | vlefevre | 2006-02-20 10:12:06 +0000 (Mon, 20 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/random2.c
- M /trunk/tests/trandom.c
-
-Fixed bug in mpfr_random2 when size == 0 and added testcase.
-
-------------------------------------------------------------------------
-r4023 | vlefevre | 2006-02-20 10:07:41 +0000 (Mon, 20 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-trandom.c: reformat.
-
-------------------------------------------------------------------------
-r4022 | vlefevre | 2006-02-20 10:06:47 +0000 (Mon, 20 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-trandom.c: use calloc instead of malloc and check return value.
-
-------------------------------------------------------------------------
-r4021 | vlefevre | 2006-02-20 09:42:13 +0000 (Mon, 20 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/random2.c
-
-mpfr_random2_raw -> static.
-
-------------------------------------------------------------------------
-r4019 | vlefevre | 2006-02-17 08:17:46 +0000 (Fri, 17 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Added mpfr_remainder to TODO.
-
-------------------------------------------------------------------------
-r4018 | zimmerma | 2006-02-15 14:40:35 +0000 (Wed, 15 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
-
-fixed wrong url
-
-------------------------------------------------------------------------
-r4017 | vlefevre | 2006-02-15 13:41:51 +0000 (Wed, 15 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-Fixed various spelling mistakes, typos... in algorithms.tex.
-
-------------------------------------------------------------------------
-r4016 | vlefevre | 2006-02-15 13:20:41 +0000 (Wed, 15 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-In algorithms.tex, \em -> \emph.
-
-------------------------------------------------------------------------
-r4015 | vlefevre | 2006-02-15 13:17:33 +0000 (Wed, 15 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-Typography corrections in algorithms.tex.
-
-------------------------------------------------------------------------
-r4014 | vlefevre | 2006-02-15 13:04:22 +0000 (Wed, 15 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-In algorithms.tex, added a missing blackslash.
-
-------------------------------------------------------------------------
-r4013 | vlefevre | 2006-02-15 13:02:07 +0000 (Wed, 15 Feb 2006) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-In algorithms.tex, removed \date (was incorrectly used) and added the
-web site as a footnote.
-
-------------------------------------------------------------------------
-r4012 | vlefevre | 2006-02-13 17:25:19 +0000 (Mon, 13 Feb 2006) | 2 lines
-Changed paths:
- M /trunk/random2.c
- M /trunk/tests/trandom.c
-
-Code reformatted. C99 comment replaced by traditional comment.
-
-------------------------------------------------------------------------
-r4011 | hanrot | 2006-02-13 15:03:43 +0000 (Mon, 13 Feb 2006) | 6 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/random2.c
- M /trunk/tests/trandom.c
-
-* Added comments on all random number generator functions ;
-* Inlined the mpn_random2 code in mpfr_random2, to avoid the use of the
-same internal randstate ; added a mpfr_random2_raw (not exported at the
-time) to allow specification of a randstate ;
-* Checked normalization of the result of random2 in trandom.c
-
-------------------------------------------------------------------------
-r4009 | vlefevre | 2006-01-31 09:53:51 +0000 (Tue, 31 Jan 2006) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Changed a part of the documentation of mpfr_get_d_2exp, introduced in
-rev 4008, to specify a behavior very similar to the ISO C standard.
-
-------------------------------------------------------------------------
-r4008 | zimmerma | 2006-01-31 07:28:05 +0000 (Tue, 31 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed documentation bug
-
-------------------------------------------------------------------------
-r4006 | vlefevre | 2006-01-19 15:00:18 +0000 (Thu, 19 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/set_d.c
- M /trunk/tests/tset_ld.c
-
-Reverted comments on <float.h> (that were added in r3976).
-
-------------------------------------------------------------------------
-r4005 | vlefevre | 2006-01-19 14:53:44 +0000 (Thu, 19 Jan 2006) | 6 lines
-Changed paths:
- M /trunk/get_d.c
- M /trunk/mpfr-impl.h
- M /trunk/set_d.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset_ld.c
-
-Replaced -0.0 by a new macro DBL_NEG_ZERO. With MSVC, the negative zero
-no longer depends on the non-standard _chgsign function, as
- static double double_zero = 0.0;
- # define DBL_NEG_ZERO (-double_zero)
-has been reported to work.
-
-------------------------------------------------------------------------
-r4004 | vlefevre | 2006-01-17 12:31:26 +0000 (Tue, 17 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Added comments.
-
-------------------------------------------------------------------------
-r4002 | vlefevre | 2006-01-13 14:37:25 +0000 (Fri, 13 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/get_f.c
-
-Type clean-up.
-
-------------------------------------------------------------------------
-r4001 | vlefevre | 2006-01-13 14:11:41 +0000 (Fri, 13 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-The problem with the conversion was not completely fixed... Now OK.
-
-------------------------------------------------------------------------
-r4000 | vlefevre | 2006-01-13 14:04:31 +0000 (Fri, 13 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-Fixed conversion with a non-representable value.
-
-------------------------------------------------------------------------
-r3999 | vlefevre | 2006-01-13 13:31:23 +0000 (Fri, 13 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-Untabify.
-
-------------------------------------------------------------------------
-r3997 | vlefevre | 2006-01-12 10:27:27 +0000 (Thu, 12 Jan 2006) | 3 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-More reliable tests for mpfr_set_f (x, y, GMP_RNDN) for
-y = 2^emax and y = 2^(emax-1).
-
-------------------------------------------------------------------------
-r3996 | vlefevre | 2006-01-12 10:15:33 +0000 (Thu, 12 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-Use mpfr_get_emax() instead of obsolete __mpfr_emax.
-
-------------------------------------------------------------------------
-r3995 | vlefevre | 2006-01-12 10:12:29 +0000 (Thu, 12 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-More reliable test for mpfr_set_f (x, y, GMP_RNDN) for y=2^ULONG_MAX.
-
-------------------------------------------------------------------------
-r3994 | vlefevre | 2006-01-12 10:00:45 +0000 (Thu, 12 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/set_f.c
-
-Untabified.
-
-------------------------------------------------------------------------
-r3993 | vlefevre | 2006-01-12 09:56:13 +0000 (Thu, 12 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/set_f.c
-
-Fixed a bug related to exponent range.
-
-------------------------------------------------------------------------
-r3992 | vlefevre | 2006-01-12 09:47:53 +0000 (Thu, 12 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/set_f.c
-
-Replaced obsolete __mpfr_emax by __gmpfr_emax.
-
-------------------------------------------------------------------------
-r3990 | vlefevre | 2006-01-11 16:50:15 +0000 (Wed, 11 Jan 2006) | 2 lines
-Changed paths:
- D /trunk/add_one_ulp.c
- D /trunk/sub_one_ulp.c
-
-Removed add_one_ulp.c and sub_one_ulp.c (no longer used).
-
-------------------------------------------------------------------------
-r3987 | vlefevre | 2006-01-10 13:49:26 +0000 (Tue, 10 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-MPFR manual: changes from Paul concerning the ulps.
-
-------------------------------------------------------------------------
-r3986 | vlefevre | 2006-01-10 09:32:17 +0000 (Tue, 10 Jan 2006) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-In the manual, replaced "exact rounding" by "correct rounding",
-and added a sentence on the consequence of correct rounding (as
-suggested by Paul).
-
-------------------------------------------------------------------------
-r3985 | vlefevre | 2006-01-05 02:20:28 +0000 (Thu, 05 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/gamma.c
- M /trunk/generic.c
- M /trunk/get_exp.c
- M /trunk/isinf.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/iszero.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/mp_clz_tab.c
- M /trunk/mpfr-gmp.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/powerof2.c
- M /trunk/print_rnd_mode.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/set.c
- M /trunk/set_exp.c
- M /trunk/set_inf.c
- M /trunk/set_nan.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/tanh.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsum.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Added ', Inc.' when missing after 'Free Software Foundation'.
-
-------------------------------------------------------------------------
-r3984 | vlefevre | 2006-01-05 02:14:39 +0000 (Thu, 05 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: Added a note about copyright notices.
-
-------------------------------------------------------------------------
-r3983 | vlefevre | 2006-01-05 02:02:47 +0000 (Thu, 05 Jan 2006) | 7 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/FAQ.html
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/abort_prec_max.c
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/faq.xsl
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/lngamma.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/mp_clz_tab.c
- M /trunk/mparam_h.in
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-longlong.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/mpzroot.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/rootrem.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/stack_interface.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_one_ulp.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tinternals.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlngamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstckintc.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsubnormal.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/tzeta.c
- M /trunk/tests/tzeta_ui.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/zeta.c
- M /trunk/zeta_ui.c
-
-Updated the copyright notices according to the new GNU rules on:
- https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
-i.e. added 2006 to every MPFR file.
-Note: the copyright notices (currently 336) should match the regexp
- Copyright.* 2006 Free Software
-so that it will be easier to update them for the next year...
-
-------------------------------------------------------------------------
-r3982 | zimmerma | 2006-01-03 11:49:03 +0000 (Tue, 03 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added suggestion from K. Briggs
-
-------------------------------------------------------------------------
-r3981 | vlefevre | 2006-01-01 22:22:53 +0000 (Sun, 01 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/set_f.c
-
-Updated copyright line (we are now in 2006!).
-
-------------------------------------------------------------------------
-r3980 | zimmerma | 2006-01-01 21:09:01 +0000 (Sun, 01 Jan 2006) | 2 lines
-Changed paths:
- M /trunk/set_f.c
-
-use mpfr_overflow
-
-------------------------------------------------------------------------
-r3979 | zimmerma | 2005-12-29 17:48:46 +0000 (Thu, 29 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/set_f.c
- M /trunk/tests/tset_f.c
-
-fixed bug in mpfr_set_f for huge argument
-
-------------------------------------------------------------------------
-r3978 | zimmerma | 2005-12-26 11:04:31 +0000 (Mon, 26 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/get_f.c
- M /trunk/tests/tget_f.c
-
-bug fix in mpfr_get_f
-
-------------------------------------------------------------------------
-r3976 | zimmerma | 2005-12-23 15:45:17 +0000 (Fri, 23 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/set_d.c
- M /trunk/tests/tset_ld.c
-
-updated comment for float.h (_chgsign)
-
-------------------------------------------------------------------------
-r3975 | zimmerma | 2005-12-23 15:33:43 +0000 (Fri, 23 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-fixed bug found by Vincent (worst-case)
-
-------------------------------------------------------------------------
-r3974 | zimmerma | 2005-12-23 12:28:00 +0000 (Fri, 23 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/set_d.c
- M /trunk/tests/tset_ld.c
-
-patch for Visual C (does not compile -0.0 properly)
-
-------------------------------------------------------------------------
-r3973 | zimmerma | 2005-12-23 12:17:45 +0000 (Fri, 23 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-patch for Visual C (-0.0)
-
-------------------------------------------------------------------------
-r3972 | zimmerma | 2005-12-20 21:09:41 +0000 (Tue, 20 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-fixed typo
-
-------------------------------------------------------------------------
-r3971 | vlefevre | 2005-12-16 16:58:24 +0000 (Fri, 16 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-Better definition for mpf_set_prec_raw (so that the value is kept).
-
-------------------------------------------------------------------------
-r3970 | vlefevre | 2005-12-08 11:56:03 +0000 (Thu, 08 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-Updated a comment.
-
-------------------------------------------------------------------------
-r3969 | vlefevre | 2005-12-08 11:51:41 +0000 (Thu, 08 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-Added test cases for a bug introduced on 2005-01-29 in sin.c rev 3248.
-
-------------------------------------------------------------------------
-r3968 | vlefevre | 2005-12-08 02:12:03 +0000 (Thu, 08 Dec 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-README.dev: remember to test MPFR on the worst cases.
-
-------------------------------------------------------------------------
-r3967 | zimmerma | 2005-11-29 20:56:16 +0000 (Tue, 29 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-added lemma + reference
-
-------------------------------------------------------------------------
-r3966 | vlefevre | 2005-11-25 01:36:29 +0000 (Fri, 25 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Removed mpfr_div bug from BUGS (as it has been fixed).
-
-------------------------------------------------------------------------
-r3964 | vlefevre | 2005-11-25 00:59:13 +0000 (Fri, 25 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-Added consistency tests for mpfr_div (e.g. to test small-size divisors).
-
-------------------------------------------------------------------------
-r3963 | zimmerma | 2005-11-24 20:39:23 +0000 (Thu, 24 Nov 2005) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-fixed efficiency bug for small divisor (division had same cost than for
-divisor of the same size than the result)
-
-------------------------------------------------------------------------
-r3960 | vlefevre | 2005-11-23 14:35:54 +0000 (Wed, 23 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
-
-Updated FAQ.
-
-------------------------------------------------------------------------
-r3959 | vlefevre | 2005-11-23 14:35:38 +0000 (Wed, 23 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/faq.xsl
-
-faq.xsl: add copyright information to the downloaded FAQ.
-
-------------------------------------------------------------------------
-r3957 | vlefevre | 2005-11-23 10:53:04 +0000 (Wed, 23 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/README.dev
- M /trunk/update-version
-
-Added information about the patches to the INSTALL file.
-
-------------------------------------------------------------------------
-r3956 | vlefevre | 2005-11-23 08:38:39 +0000 (Wed, 23 Nov 2005) | 3 lines
-Changed paths:
- M /trunk/BUGS
-
-BUGS: Noted the slow division when the precision of the divisor
-is small compared to the precision of the target.
-
-------------------------------------------------------------------------
-r3955 | vlefevre | 2005-11-21 20:31:47 +0000 (Mon, 21 Nov 2005) | 3 lines
-Changed paths:
- M /trunk/rootrem.c
-
-Fixed a bug preventing the compilation of MPFR with GMP 4.1.90
-(non-public development version) without the build directory.
-
-------------------------------------------------------------------------
-r3954 | vlefevre | 2005-11-21 14:43:49 +0000 (Mon, 21 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/rootrem.c
-
-Fixed memory leak in mpfr_mpn_rootrem().
-
-------------------------------------------------------------------------
-r3953 | vlefevre | 2005-11-09 16:34:09 +0000 (Wed, 09 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Added a note about running the trunk tests in a branch.
-
-------------------------------------------------------------------------
-r3952 | vlefevre | 2005-11-09 16:18:35 +0000 (Wed, 09 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tinternals.c
- M /trunk/tests/tzeta_ui.c
-
-Make trunk tests work with MPFR 2.2 (branch), by testing the version.
-
-------------------------------------------------------------------------
-r3951 | vlefevre | 2005-11-09 16:09:16 +0000 (Wed, 09 Nov 2005) | 2 lines
-Changed paths:
- D /trunk/tests/.cvsignore
-
-Removed .cvsignore file (useless after the switch to Subversion).
-
-------------------------------------------------------------------------
-r3948 | vlefevre | 2005-11-09 15:42:41 +0000 (Wed, 09 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/cache.c
-
-Added a MPFR_UNLIKELY.
-
-------------------------------------------------------------------------
-r3947 | vlefevre | 2005-11-09 14:41:46 +0000 (Wed, 09 Nov 2005) | 5 lines
-Changed paths:
- M /trunk/round_near_x.c
-
-In mpfr_round_near_x, use the new MPFR_RNDRAW_GEN with a correct middle
-handler instead of MPFR_RNDRAW_EVEN so that the correction of the wrong
-rounding is no longer necessary (BTW, the wrong rounding could have lead
-to problems in case of intermediate underflow/overflow -- not checked).
-
-------------------------------------------------------------------------
-r3946 | vlefevre | 2005-11-09 14:05:46 +0000 (Wed, 09 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tinternals.c
-
-mpfr_round_near_x test completed.
-
-------------------------------------------------------------------------
-r3945 | vlefevre | 2005-11-09 11:57:03 +0000 (Wed, 09 Nov 2005) | 9 lines
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-Added a test for mpfr_cbrt, from the following failure with MPFR 2.2
-and gcc 4.0.2 under Linux/m68k:
- Seed GMP_CHECK_RANDOMIZE=1131612275 (include this in bug reports)
- results differ for x=1.1000e-2 prec=5 rnd_mode=GMP_RNDN
- got 1.1000e-1
- expected 1.0111e-1
- approx 0.101110001001100E0
- FAIL: tcbrt
-
-------------------------------------------------------------------------
-r3943 | vlefevre | 2005-11-04 22:11:53 +0000 (Fri, 04 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Improved note r3493 concerning mpfr_set_d/ld.
-
-------------------------------------------------------------------------
-r3941 | vlefevre | 2005-11-04 14:26:49 +0000 (Fri, 04 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-More information in the "Reporting Bugs" section.
-
-------------------------------------------------------------------------
-r3940 | vlefevre | 2005-11-04 01:28:04 +0000 (Fri, 04 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Added a comment about the macros MPFR_RNDRAW* and the labels.
-
-------------------------------------------------------------------------
-r3939 | vlefevre | 2005-11-04 00:58:23 +0000 (Fri, 04 Nov 2005) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-Moved definitions of struct __gmpfr_cache_s and mpfr_cache_t, and
-declarations of mpfr_init_cache, mpfr_clear_cache and mpfr_cache
-from mpfr.h to mpfr-impl.h as they are internal (not documented).
-
-------------------------------------------------------------------------
-r3938 | vlefevre | 2005-11-03 16:39:31 +0000 (Thu, 03 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tinternals.c
-
-Eliminated the case inex == 0.
-
-------------------------------------------------------------------------
-r3937 | vlefevre | 2005-11-03 16:26:38 +0000 (Thu, 03 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tinternals.c
-
-Started to write code to test mpfr_round_near_x.
-
-------------------------------------------------------------------------
-r3936 | vlefevre | 2005-11-03 14:32:01 +0000 (Thu, 03 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/strtofr.c
-
-Typos & English usage.
-
-------------------------------------------------------------------------
-r3935 | vlefevre | 2005-11-03 14:27:26 +0000 (Thu, 03 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/round_near_x.c
-
-Fixed typos.
-
-------------------------------------------------------------------------
-r3934 | zimmerma | 2005-11-03 09:24:43 +0000 (Thu, 03 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-added hint on forbidden variable name
-
-------------------------------------------------------------------------
-r3932 | zimmerma | 2005-11-03 07:35:53 +0000 (Thu, 03 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-added "tune" item for new releases
-
-------------------------------------------------------------------------
-r3931 | zimmerma | 2005-11-03 07:24:38 +0000 (Thu, 03 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-done make tune for amd64 with gmp-4.1.4
-
-------------------------------------------------------------------------
-r3929 | vlefevre | 2005-11-02 17:22:13 +0000 (Wed, 02 Nov 2005) | 15 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/hypot.c
- M /trunk/mpfr-impl.h
- M /trunk/tests/thypot.c
-
-Merged the changes from branch vlefevre:
- * mpfr-impl.h: Added MPFR_RNDRAW_GEN based on MPFR_RNDRAW and
- MPFR_RNDRAW_EVEN codes, but taking an additional argument: a
- handler executed in rounding to nearest mode when the value
- is the middle of two consecutive numbers in dest precision.
- MPFR_RNDRAW and MPFR_RNDRAW_EVEN are now defined by a "call"
- to MPFR_RNDRAW_GEN.
- * cache.c: Clean-up and use MPFR_RNDRAW_GEN instead of
- MPFR_RNDRAW_EVEN to avoid an unnecessary correction in the
- halfway case.
- * hypot.c: Fixed mpfr_hypot when the rounding mode is to nearest,
- x is "much larger" than y, and x is the middle of two consecutive
- numbers in the target precision.
- * tests/thypot.c: Added the corresponding testcase.
-
-------------------------------------------------------------------------
-r3928 | vlefevre | 2005-11-02 17:09:25 +0000 (Wed, 02 Nov 2005) | 2 lines
-Changed paths:
- M /trunk
- M /trunk/tests
-
-Updated svn:ignore property.
-
-------------------------------------------------------------------------
-r3926 | zimmerma | 2005-11-02 16:12:59 +0000 (Wed, 02 Nov 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-fixed remaining problems
-
-------------------------------------------------------------------------
-r3924 | zimmerma | 2005-11-02 13:49:00 +0000 (Wed, 02 Nov 2005) | 3 lines
-Changed paths:
- M /trunk/atan.c
-
-declared variables as mp_prec_t instead of int
-use MPFR_MPZ_SIZEINBASE2 instead of mpz_sizeinbase
-
-------------------------------------------------------------------------
-r3919 | vlefevre | 2005-11-02 09:27:53 +0000 (Wed, 02 Nov 2005) | 5 lines
-Changed paths:
- M /trunk/constant.c
- M /trunk/mpfr-impl.h
-
-Reverted the latest change to constant.c: removed MPFR_THREAD_ATTR as
-these constants can be shared. Removed MPFR_THREAD_ATTR from mpfr-impl.h
-too (this should have been the right correction for rev 3838 concerning
-the type mismatch). Thanks to Patrick for noticing this.
-
-------------------------------------------------------------------------
-r3918 | vlefevre | 2005-10-31 21:27:08 +0000 (Mon, 31 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/int_ceil_log2.c
- M /trunk/mpfr-impl.h
-
-Added an MPFR_UNLIKELY (suggested by Patrick) and an MPFR_ASSERTN.
-
-------------------------------------------------------------------------
-r3917 | zimmerma | 2005-10-31 18:55:13 +0000 (Mon, 31 Oct 2005) | 3 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/exp3.c
-
-factored calls to gmp_alloc
-removed unused variables
-
-------------------------------------------------------------------------
-r3916 | zimmerma | 2005-10-31 14:49:45 +0000 (Mon, 31 Oct 2005) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/atan.c
- M /trunk/tanh.c
-
-improved atan (now can cut series before 2^m)
-revised error analysis and code of tanh
-
-------------------------------------------------------------------------
-r3915 | vlefevre | 2005-10-31 12:17:09 +0000 (Mon, 31 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/log10.c
-
-Reformat (GNU coding style).
-
-------------------------------------------------------------------------
-r3914 | vlefevre | 2005-10-31 12:08:13 +0000 (Mon, 31 Oct 2005) | 5 lines
-Changed paths:
- M /trunk/div_ui.c
- M /trunk/int_ceil_log2.c
- M /trunk/mpfr-impl.h
- M /trunk/mul_ui.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tinternals.c
-
-Fixed MPFR_INT_CEIL_LOG2 (in mpfr-impl.h) and __gmpfr_int_ceil_log2
-(in int_ceil_log2.c) when the argument is a power of 2, and added a
-test (new test file tests/tinternals.c). This made a bug appear in
-div_ui.c and mul_ui.c; fixed that too.
-
-------------------------------------------------------------------------
-r3913 | vlefevre | 2005-10-31 11:43:58 +0000 (Mon, 31 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-Added a test that fails after fixing MPFR_INT_CEIL_LOG2.
-
-------------------------------------------------------------------------
-r3912 | zimmerma | 2005-10-30 20:07:45 +0000 (Sun, 30 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/exp3.c
- M /trunk/tests/texp.c
-
-improved exp_3 (binary-splitting algorithm)
-
-------------------------------------------------------------------------
-r3911 | vlefevre | 2005-10-30 14:50:52 +0000 (Sun, 30 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Fixed padding-bit test.
-
-------------------------------------------------------------------------
-r3910 | vlefevre | 2005-10-30 13:20:46 +0000 (Sun, 30 Oct 2005) | 5 lines
-Changed paths:
- M /trunk/cos.c
-
-3 corrections in cos.c concerning maxi:
- * corrected a comment;
- * failed if sizeof(int) <= sizeof(long) / 2;
- * now take possible padding bits into account.
-
-------------------------------------------------------------------------
-r3909 | zimmerma | 2005-10-29 21:07:36 +0000 (Sat, 29 Oct 2005) | 4 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/exp3.c
- M /trunk/root.c
- M /trunk/rootrem.c
-
-patched root.c to use rootrem.c with gmp-4.1.90
-added comment in exp3.c
-added more initial guard bits in agm
-
-------------------------------------------------------------------------
-r3908 | zimmerma | 2005-10-29 13:14:20 +0000 (Sat, 29 Oct 2005) | 3 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/mpfr-impl.h
- M /trunk/mulders.c
- M /trunk/sqr.c
- M /trunk/tuneup.c
-
-now tune Mulders short square (not yet used)
-improved mpfr_cos
-
-------------------------------------------------------------------------
-r3907 | zimmerma | 2005-10-26 15:45:42 +0000 (Wed, 26 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/root.c
- M /trunk/rootrem.c
-
-updated code for gmp-dev
-
-------------------------------------------------------------------------
-r3906 | vlefevre | 2005-10-26 11:28:36 +0000 (Wed, 26 Oct 2005) | 2 lines
-Changed paths:
- D /trunk/.cvsignore
-
-Removed .cvsignore file (useless after the switch to Subversion).
-
-------------------------------------------------------------------------
-r3903 | vlefevre | 2005-10-25 01:33:31 +0000 (Tue, 25 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/update-version
-
-More portable update-version script (use perl instead of sed).
-
-------------------------------------------------------------------------
-r3889 | vlefevre | 2005-10-24 13:43:07 +0000 (Mon, 24 Oct 2005) | 4 lines
-Changed paths:
- M /trunk/README
- M /trunk/README.dev
- D /trunk/fixperm
-
-First revision after the switch to Subversion:
- * Removed fixperm as it is now useless.
- * Updated README and README.dev files.
-
-------------------------------------------------------------------------
-r3888 | vlefevre | 2005-10-24 11:29:40 +0000 (Mon, 24 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3887 | zimmerma | 2005-10-19 20:23:44 +0000 (Wed, 19 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/algorithms.tex
-
-documented algorithm used in mpfr_agm and fixed code accordingly
-
-------------------------------------------------------------------------
-r3886 | zimmerma | 2005-10-10 09:43:26 +0000 (Mon, 10 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added efficiency item
-
-------------------------------------------------------------------------
-r3885 | zimmerma | 2005-10-10 09:16:44 +0000 (Mon, 10 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/mpzroot.c
- M /trunk/root.c
- M /trunk/rootrem.c
-
-now mpzroot/rootrem compile without gmp internal headers
-
-------------------------------------------------------------------------
-r3884 | vlefevre | 2005-10-07 16:43:40 +0000 (Fri, 07 Oct 2005) | 3 lines
-Changed paths:
- M /trunk/root.c
-
-Disabled new rootrem/mpz_root as compilation fails (headers can't
-be found).
-
-------------------------------------------------------------------------
-r3883 | vlefevre | 2005-10-07 16:30:45 +0000 (Fri, 07 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Temporary optimization (patch from Patrick Pelissier).
-
-------------------------------------------------------------------------
-r3882 | vlefevre | 2005-10-06 10:03:56 +0000 (Thu, 06 Oct 2005) | 4 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-One of the tests was using the fabs function, but -lm isn't given when
-generating the executable, making the linking fail under HP-UX. Fixed
-by not using this fabs function.
-
-------------------------------------------------------------------------
-r3880 | zimmerma | 2005-10-05 21:57:48 +0000 (Wed, 05 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-small improvement in sign detection
-
-------------------------------------------------------------------------
-r3879 | zimmerma | 2005-10-05 20:36:56 +0000 (Wed, 05 Oct 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/mpzroot.c
- M /trunk/root.c
- A /trunk/rootrem.c
-
-improved mpfr_root, using the new mpn_rootrem code written with Torbjo"rn
-
-------------------------------------------------------------------------
-r3876 | vlefevre | 2005-09-29 09:52:33 +0000 (Thu, 29 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3875 | vlefevre | 2005-09-29 09:47:08 +0000 (Thu, 29 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/tests/tset_si.c
-
-Fixed bug in mpfr_set_ui macro when parameters are expressions
-with side effects.
-
-------------------------------------------------------------------------
-r3874 | zimmerma | 2005-09-29 06:40:15 +0000 (Thu, 29 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-fixed missing accent
-
-------------------------------------------------------------------------
-r3873 | vlefevre | 2005-09-28 15:30:17 +0000 (Wed, 28 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-Small optimization.
-
-------------------------------------------------------------------------
-r3872 | vlefevre | 2005-09-28 14:28:19 +0000 (Wed, 28 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tlngamma.c
-
-Test the sign of 0.
-
-------------------------------------------------------------------------
-r3871 | zimmerma | 2005-09-28 14:14:42 +0000 (Wed, 28 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
- M /trunk/tests/tlngamma.c
-
-fixed infinite loop for lngamma(2)
-
-------------------------------------------------------------------------
-r3870 | vlefevre | 2005-09-28 00:45:27 +0000 (Wed, 28 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Updated libmpfr_la_LDFLAGS (note: it shouldn't be incremented again
-before the 2.3.0 release).
-
-------------------------------------------------------------------------
-r3869 | zimmerma | 2005-09-26 16:28:47 +0000 (Mon, 26 Sep 2005) | 2 lines
-Changed paths:
- A /trunk/zeta_ui.c
-
-new function: Zeta with integer argument
-
-------------------------------------------------------------------------
-r3868 | zimmerma | 2005-09-23 21:35:03 +0000 (Fri, 23 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tzeta_ui.c
-
-new function mpfr_zeta_ui for integer argument
-
-------------------------------------------------------------------------
-r3867 | zimmerma | 2005-09-21 13:51:34 +0000 (Wed, 21 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added brief description of algorithm for mpfr_zeta
-
-------------------------------------------------------------------------
-r3863 | vlefevre | 2005-09-18 23:36:44 +0000 (Sun, 18 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Mentioned problems with the Tru64 make and other minor changes.
-
-------------------------------------------------------------------------
-r3861 | vlefevre | 2005-09-17 10:24:43 +0000 (Sat, 17 Sep 2005) | 5 lines
-Changed paths:
- M /trunk/configure.in
-
-Fixed the GMP linking test: replaced __gmp_version, which corresponds
-to a variable, by __gmpz_init (suggested by the GMP documentation),
-which corresponds to a function, as the auto tools assume the symbol
-corresponds to a function. It was failing with the AIX linker.
-
-------------------------------------------------------------------------
-r3857 | vlefevre | 2005-09-16 14:22:40 +0000 (Fri, 16 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/const_euler.c
-
-Untabify.
-
-------------------------------------------------------------------------
-r3856 | vlefevre | 2005-09-16 13:22:53 +0000 (Fri, 16 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3854 | vlefevre | 2005-09-16 10:58:41 +0000 (Fri, 16 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-Untabify.
-
-------------------------------------------------------------------------
-r3852 | zimmerma | 2005-09-16 09:41:47 +0000 (Fri, 16 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added missing documentation for mpfr_get_f and mpfr_pow_z
-
-------------------------------------------------------------------------
-r3851 | vlefevre | 2005-09-16 08:02:15 +0000 (Fri, 16 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fixed typos found by Tomonori Kouya.
-
-------------------------------------------------------------------------
-r3850 | zimmerma | 2005-09-16 07:38:22 +0000 (Fri, 16 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/coth.c
- M /trunk/tests/tcoth.c
-
-fixed stupid bug (coth was computing 1/tan instead of 1/tanh)
-
-------------------------------------------------------------------------
-r3849 | zimmerma | 2005-09-15 21:55:08 +0000 (Thu, 15 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/const_euler.c
-
-fixed overflow problem for large precision
-
-------------------------------------------------------------------------
-r3848 | zimmerma | 2005-09-15 21:11:25 +0000 (Thu, 15 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-added log(precz) in initial precision
-
-------------------------------------------------------------------------
-r3844 | zimmerma | 2005-09-13 12:57:38 +0000 (Tue, 13 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/tests/texp.c
-
-fixed bug in exp(-eps) for rounding toward zero (test was also wrong...)
-
-------------------------------------------------------------------------
-r3843 | vlefevre | 2005-09-13 02:05:56 +0000 (Tue, 13 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Updated "To make a release".
-
-------------------------------------------------------------------------
-r3839 | vlefevre | 2005-09-13 01:32:41 +0000 (Tue, 13 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Minor update.
-
-------------------------------------------------------------------------
-r3838 | vlefevre | 2005-09-13 01:28:09 +0000 (Tue, 13 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/constant.c
-
-Added missing MPFR_THREAD_ATTR.
-
-------------------------------------------------------------------------
-r3835 | vlefevre | 2005-09-11 22:50:06 +0000 (Sun, 11 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tuneup.c
-
-Avoid a conflict with GMP.
-
-------------------------------------------------------------------------
-r3834 | vlefevre | 2005-09-11 22:37:58 +0000 (Sun, 11 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/mparam_h.in
- M /trunk/mul.c
- M /trunk/tuneup.c
-
-Reverted to previous mparam_h.in and mul.c, and applied Patrick's
-patch instead.
-
-------------------------------------------------------------------------
-r3832 | vlefevre | 2005-09-11 22:15:29 +0000 (Sun, 11 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3830 | vlefevre | 2005-09-11 21:59:31 +0000 (Sun, 11 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-Added #include <string.h> for memmove (see ISO C99 standard).
-
-------------------------------------------------------------------------
-r3829 | vlefevre | 2005-09-11 21:56:32 +0000 (Sun, 11 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Minor change.
-
-------------------------------------------------------------------------
-r3828 | vlefevre | 2005-09-11 21:55:20 +0000 (Sun, 11 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-Fixed uninitialized variable (with gcc -std=c99).
-
-------------------------------------------------------------------------
-r3827 | vlefevre | 2005-09-11 21:43:14 +0000 (Sun, 11 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Fixed a #ifdef (when --enable-assert isn't used).
-
-------------------------------------------------------------------------
-r3824 | vlefevre | 2005-09-11 18:21:02 +0000 (Sun, 11 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3823 | vlefevre | 2005-09-11 17:56:43 +0000 (Sun, 11 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/int_ceil_log2.c
- M /trunk/mpfr-impl.h
-
-Changed the MPFR_ASSERTD into a MPFR_ASSERTN for MPFR_INT_CEIL_LOG2
-since the assertion cannot be guaranteed for every C implementation.
-
-------------------------------------------------------------------------
-r3822 | pelissip | 2005-09-10 15:20:48 +0000 (Sat, 10 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Fix spelling mistake.
-
-------------------------------------------------------------------------
-r3821 | pelissip | 2005-09-10 15:17:54 +0000 (Sat, 10 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add new note about MPFR_TMP_DECL
-
-------------------------------------------------------------------------
-r3819 | zimmerma | 2005-09-09 14:45:54 +0000 (Fri, 09 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-reduced default of MPFR_MUL_THRESHOLD by 1, since now MPFR_MUL_THRESHOLD+1
-is considered in mul.c
-
-------------------------------------------------------------------------
-r3818 | vlefevre | 2005-09-09 14:37:51 +0000 (Fri, 09 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-Fixed another LaTeX error.
-
-------------------------------------------------------------------------
-r3817 | vlefevre | 2005-09-09 14:26:08 +0000 (Fri, 09 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3816 | vlefevre | 2005-09-09 12:09:47 +0000 (Fri, 09 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Updated "To make a release".
-
-------------------------------------------------------------------------
-r3815 | vlefevre | 2005-09-09 10:21:11 +0000 (Fri, 09 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/lngamma.c
-
-Use (mpz_t *) 0 instead of NULL (this is not less clear and this
-works with the native SunOS 4 C compiler).
-
-------------------------------------------------------------------------
-r3814 | zimmerma | 2005-09-09 09:33:04 +0000 (Fri, 09 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-avoid . in mpf_set_str (locale-sensitive)
-
-------------------------------------------------------------------------
-r3813 | zimmerma | 2005-09-09 09:26:22 +0000 (Fri, 09 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/lngamma.c
- M /trunk/mpfr.texi
- M /trunk/tests/tgamma.c
- M /trunk/tests/tlngamma.c
-
-cleanup of gamma and lngamma
-
-------------------------------------------------------------------------
-r3812 | zimmerma | 2005-09-08 09:37:46 +0000 (Thu, 08 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
-
-MUL_THRESHOLD -> MUL_THRESHOLD+1 (to allow MUL_THRESHOLD=0, needed for
-tuneup.c)
-
-------------------------------------------------------------------------
-r3811 | zimmerma | 2005-09-08 09:21:02 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-fixed LaTeX error
-
-------------------------------------------------------------------------
-r3809 | vlefevre | 2005-09-08 09:12:20 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Fix.
-
-------------------------------------------------------------------------
-r3808 | vlefevre | 2005-09-08 09:08:46 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3804 | vlefevre | 2005-09-08 09:02:58 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
- A /trunk/fixperm
-
-Added fixperm script to fix the file permissions broken by CVS.
-
-------------------------------------------------------------------------
-r3803 | vlefevre | 2005-09-08 09:01:50 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Update.
-
-------------------------------------------------------------------------
-r3798 | zimmerma | 2005-09-08 06:48:10 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one item
-
-------------------------------------------------------------------------
-r3797 | vlefevre | 2005-09-08 06:45:52 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3795 | vlefevre | 2005-09-08 02:51:45 +0000 (Thu, 08 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-Fix: readded dependencies.
-
-------------------------------------------------------------------------
-r3793 | vlefevre | 2005-09-06 14:37:32 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tversion.c
-
-More detailed error message.
-
-------------------------------------------------------------------------
-r3791 | vlefevre | 2005-09-06 13:54:57 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-Change for ansi2knr.
-
-------------------------------------------------------------------------
-r3790 | vlefevre | 2005-09-06 13:42:02 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-Code clean-up (again).
-
-------------------------------------------------------------------------
-r3789 | vlefevre | 2005-09-06 13:31:12 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-Use GMP's allocate functions instead of C's. Code clean-up.
-
-------------------------------------------------------------------------
-r3788 | vlefevre | 2005-09-06 13:02:37 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/lngamma.c
-
-Reformat.
-
-------------------------------------------------------------------------
-r3787 | zimmerma | 2005-09-06 12:42:39 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-missing set_emin
-
-------------------------------------------------------------------------
-r3786 | zimmerma | 2005-09-06 12:25:03 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-added missing call to MPFR_TEST_USE_RANDS() [3 blocks non-freed]
-
-------------------------------------------------------------------------
-r3784 | vlefevre | 2005-09-06 12:00:54 +0000 (Tue, 06 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-Fixed a bug (detected after mpfr_set_str_binary has been fixed)
-in tests/tsub.c introduced in 1.6 (2001-10-19).
-
-------------------------------------------------------------------------
-r3783 | vlefevre | 2005-09-06 11:50:09 +0000 (Tue, 06 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-mpfr_set_str_binary was buggy and inefficient. Let's use mpfr_strtofr.
-
-------------------------------------------------------------------------
-r3781 | vlefevre | 2005-09-06 11:30:40 +0000 (Tue, 06 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Replaced unsigned long bit-fields (GCC extension) by insigned int
-bit-fields.
-
-------------------------------------------------------------------------
-r3779 | vlefevre | 2005-09-05 13:28:20 +0000 (Mon, 05 Sep 2005) | 4 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-MPN_COPY now calls memcpy only if dst != src (otherwise this is an
-undefined behavior), and if WANT_ASSERT is defined, it checks that
-there is no overlap.
-
-------------------------------------------------------------------------
-r3776 | vlefevre | 2005-09-02 14:08:09 +0000 (Fri, 02 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Avoid MIPSpro / IRIX64 (incorrect) optimizations for DOUBLE_ISNAN.
-
-------------------------------------------------------------------------
-r3775 | vlefevre | 2005-09-02 13:25:32 +0000 (Fri, 02 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-impl.h
-
-More portable DOUBLE_ISNAN (useful for MIPSpro under IRIX64).
-
-------------------------------------------------------------------------
-r3774 | zimmerma | 2005-09-02 12:55:37 +0000 (Fri, 02 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-improved trade-off between fac_ui and gamma when argument is integer
-
-------------------------------------------------------------------------
-r3773 | vlefevre | 2005-09-02 12:33:24 +0000 (Fri, 02 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Reformat.
-
-------------------------------------------------------------------------
-r3772 | zimmerma | 2005-09-02 09:52:07 +0000 (Fri, 02 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed remaining problem in gamma
-removed LogGamma from TODO
-
-------------------------------------------------------------------------
-r3771 | vlefevre | 2005-09-02 08:17:37 +0000 (Fri, 02 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/sub1sp.c
-
-Do not put expressions with side effects in MPFR_ASSERTN.
-
-------------------------------------------------------------------------
-r3770 | zimmerma | 2005-09-01 21:44:42 +0000 (Thu, 01 Sep 2005) | 3 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-now uses lngamma code for x < 1 too
-added new tests from Kenneth Wilder
-
-------------------------------------------------------------------------
-r3769 | zimmerma | 2005-09-01 11:54:57 +0000 (Thu, 01 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-added another test
-
-------------------------------------------------------------------------
-r3768 | zimmerma | 2005-09-01 08:59:19 +0000 (Thu, 01 Sep 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-removed useless prototype
-
-------------------------------------------------------------------------
-r3764 | vlefevre | 2005-08-31 23:57:06 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-Fixed memory leak (missing MPFR_TMP_FREE in a particular case).
-
-------------------------------------------------------------------------
-r3763 | vlefevre | 2005-08-31 23:52:53 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-Fixed the code formatting.
-
-------------------------------------------------------------------------
-r3762 | vlefevre | 2005-08-31 23:38:13 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Updated Point 6 of "To make a release".
-
-------------------------------------------------------------------------
-r3761 | vlefevre | 2005-08-31 23:27:29 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Fixed memory leak (missing MPFR_TMP_FREE in a particular case).
-
-------------------------------------------------------------------------
-r3759 | zimmerma | 2005-08-31 20:32:03 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added lngamma
-
-------------------------------------------------------------------------
-r3758 | zimmerma | 2005-08-31 20:29:36 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added new test (emax)
-
-------------------------------------------------------------------------
-r3757 | zimmerma | 2005-08-31 20:28:25 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-now random tests also use x >= 1
-
-------------------------------------------------------------------------
-r3756 | zimmerma | 2005-08-31 20:26:33 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-added SAVE_EXPO stuff
-
-------------------------------------------------------------------------
-r3754 | zimmerma | 2005-08-31 20:25:36 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- A /trunk/lngamma.c
- M /trunk/mpfr.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/tlngamma.c
-
-new function lngamma
-
-------------------------------------------------------------------------
-r3753 | zimmerma | 2005-08-31 20:24:16 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-now uses lngamma code for x > 1
-
-------------------------------------------------------------------------
-r3752 | zimmerma | 2005-08-31 20:23:06 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added lngamma
-
-------------------------------------------------------------------------
-r3750 | vlefevre | 2005-08-31 12:21:14 +0000 (Wed, 31 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/VERSION
- M /trunk/configure.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated version to 2.3.0.
-
-------------------------------------------------------------------------
-r3749 | vlefevre | 2005-08-31 12:18:31 +0000 (Wed, 31 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/configure.in
-
-Fix for the following problem: #error is not sufficient with cc
-on IRIX64, and autoconf 2.59 doesn't cope with that.
-
-------------------------------------------------------------------------
-r3745 | vlefevre | 2005-08-30 13:23:51 +0000 (Tue, 30 Aug 2005) | 2 lines
-Changed paths:
- M /trunk
- A /trunk/.cvsignore
- M /trunk/tests
- A /trunk/tests/.cvsignore
-
-Added .cvsignore files.
-
-------------------------------------------------------------------------
-r3744 | vlefevre | 2005-08-30 12:08:42 +0000 (Tue, 30 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Unobfuscated 2 assertions.
-
-------------------------------------------------------------------------
-r3743 | vlefevre | 2005-08-30 11:59:12 +0000 (Tue, 30 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Fixed indentation and some comments.
-
-------------------------------------------------------------------------
-r3742 | vlefevre | 2005-08-30 11:49:24 +0000 (Tue, 30 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Recommitted the patch (without discarding previous modifications).
-
-------------------------------------------------------------------------
-r3741 | vlefevre | 2005-08-30 11:46:58 +0000 (Tue, 30 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
-
-Reverted to the previous version, as the patch discarded previous
-modifications.
-
-------------------------------------------------------------------------
-r3740 | zimmerma | 2005-08-30 10:27:11 +0000 (Tue, 30 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-added two new tests
-
-------------------------------------------------------------------------
-r3739 | zimmerma | 2005-08-30 10:09:59 +0000 (Tue, 30 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
-
-patch from Patrick to solve efficiency problem when one operand is sparse
-(e.g. from ui_pow_ui)
-
-------------------------------------------------------------------------
-r3738 | zimmerma | 2005-08-29 14:07:51 +0000 (Mon, 29 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/gamma.c
- M /trunk/mpfr-impl.h
- M /trunk/pow.c
- M /trunk/tests/tgamma.c
-
-check for overflow/underflow in pow and gamma
-
-------------------------------------------------------------------------
-r3737 | vlefevre | 2005-08-24 15:37:36 +0000 (Wed, 24 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/print_raw.c
- M /trunk/sub1sp.c
-
-When WANT_ASSERT >= 2: the corresponding messages are now output
-to stderr instead of stdout.
-
-------------------------------------------------------------------------
-r3736 | vlefevre | 2005-08-24 14:23:41 +0000 (Wed, 24 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3735 | vlefevre | 2005-08-24 14:16:04 +0000 (Wed, 24 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/set_uj.c
-
-Improved C compliance when mp_limb_t and uintmax_t have the same size
-(concerning >> BITS_PER_MP_LIMB); some other small improvements.
-
-------------------------------------------------------------------------
-r3734 | vlefevre | 2005-08-24 13:27:12 +0000 (Wed, 24 Aug 2005) | 5 lines
-Changed paths:
- M /trunk/round_p.c
- M /trunk/tests/tcan_round.c
-
-No longer assume that a mp_limb_t fits in an unsigned long (this
-is not true under IRIX, where a mp_limb_t has 64 bits and a long
-has 32 bits by default). In round_p.c, error messages are output
-to stderr instead of stdout.
-
-------------------------------------------------------------------------
-r3733 | vlefevre | 2005-08-23 17:21:45 +0000 (Tue, 23 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3732 | vlefevre | 2005-08-23 15:57:21 +0000 (Tue, 23 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-This was wrong. Let's do it even more like the 2.1 branch.
-
-------------------------------------------------------------------------
-r3731 | vlefevre | 2005-08-23 15:41:39 +0000 (Tue, 23 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3730 | vlefevre | 2005-08-23 15:37:53 +0000 (Tue, 23 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/set_ld.c
-
-Patch 1.25 didn't work under OSF1 with cc. Let's do it like
-the 2.1 branch (it now does work under OSF1 with cc).
-
-------------------------------------------------------------------------
-r3729 | vlefevre | 2005-08-21 22:57:15 +0000 (Sun, 21 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.texi
- M /trunk/out_str.c
- M /trunk/strtofr.c
-
-Better locale support (for the decimal point in string conversions
-and input/output).
-
-------------------------------------------------------------------------
-r3728 | vlefevre | 2005-08-18 17:17:02 +0000 (Thu, 18 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3727 | vlefevre | 2005-08-18 17:08:30 +0000 (Thu, 18 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Misc changes (spelling, typography...).
-
-------------------------------------------------------------------------
-r3726 | vlefevre | 2005-08-18 17:03:17 +0000 (Thu, 18 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1sp.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/cmp2.c
- M /trunk/cmp_d.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/coth.c
- M /trunk/div-short.c
- M /trunk/div.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/fits_intmax.c
- M /trunk/fits_u.h
- M /trunk/fits_uintmax.c
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/gamma.c
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_str.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/gmp_op.c
- M /trunk/inp_str.c
- M /trunk/isinteger.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/log_b2.h
- M /trunk/minmax.c
- M /trunk/mp_clz_tab.c
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/out_str.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/print_raw.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/root.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_q.c
- M /trunk/set_si.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sqrt.c
- M /trunk/sub_one_ulp.c
- M /trunk/swap.c
- M /trunk/tanh.c
- M /trunk/tests/memory.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tzeta.c
- M /trunk/tuneup.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_pow_ui.c
- M /trunk/urandomb.c
-
-Removed trailing spaces (better for future patches, as such spaces
-are sometimes stripped).
-
-------------------------------------------------------------------------
-r3725 | vlefevre | 2005-08-18 16:35:19 +0000 (Thu, 18 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1sp.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div-short.c
- M /trunk/div.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/fits_intmax.c
- M /trunk/fma.c
- M /trunk/gamma.c
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_ld.c
- M /trunk/get_str.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/init2.c
- M /trunk/inp_str.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/print_raw.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_q.c
- M /trunk/set_str_raw.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/RRTest.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow_ui.c
- M /trunk/zeta.c
-
-Converted tabs to spaces with expand.
-
-------------------------------------------------------------------------
-r3724 | vlefevre | 2005-08-18 15:27:33 +0000 (Thu, 18 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/extract.c
- M /trunk/fits_u.h
- M /trunk/free_cache.c
- M /trunk/generic.c
- M /trunk/get_si.c
- M /trunk/init2.c
- M /trunk/mpfr-test.h
- M /trunk/next.c
- M /trunk/print_raw.c
- M /trunk/set_f.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdim.c
- M /trunk/tests/terf.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tversion.c
-
-Updated copyright line.
-
-------------------------------------------------------------------------
-r3723 | vlefevre | 2005-08-18 14:51:33 +0000 (Thu, 18 Aug 2005) | 4 lines
-Changed paths:
- M /trunk/set_ld.c
- M /trunk/tests/tset_ld.c
-
-Support C implementations giving an incorrect value for the precision
-of long double or where long doubles are implemented with FP expansions
-(like under Mac OS X), as in the 2.1 branch.
-
-------------------------------------------------------------------------
-r3722 | vlefevre | 2005-08-18 13:46:30 +0000 (Thu, 18 Aug 2005) | 5 lines
-Changed paths:
- M /trunk/get_ld.c
- M /trunk/mpfr-impl.h
-
-Updated mpfr_get_ld: removed useless and non-portable hacks, fixed
-bugs, and slightly changed the behavior for the x87 extended format
-(we shouldn't return long double's with more precision than really
-supported, e.g. on FreeBSD and NetBSD).
-
-------------------------------------------------------------------------
-r3721 | vlefevre | 2005-08-18 13:08:07 +0000 (Thu, 18 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/get_ld.c
-
-Added an assertion.
-
-------------------------------------------------------------------------
-r3720 | vlefevre | 2005-08-17 16:45:18 +0000 (Wed, 17 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-Reformatted (GNU style).
-
-------------------------------------------------------------------------
-r3719 | pelissip | 2005-08-17 16:26:10 +0000 (Wed, 17 Aug 2005) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-Improve the warning message by adding the lines:
-"we cannot run a program linked with GMP (if you cannot
-see the version numbers above)."
-
-------------------------------------------------------------------------
-r3718 | zimmerma | 2005-08-16 14:26:05 +0000 (Tue, 16 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added pointer for gamma
-
-------------------------------------------------------------------------
-r3717 | zimmerma | 2005-08-16 14:24:15 +0000 (Tue, 16 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-fixed comments (code did not change)
-
-------------------------------------------------------------------------
-r3716 | zimmerma | 2005-08-16 14:01:22 +0000 (Tue, 16 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
- M /trunk/gamma.c
-
-added formula for gamma function
-
-------------------------------------------------------------------------
-r3715 | zimmerma | 2005-08-16 13:20:14 +0000 (Tue, 16 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-fixed last test (expected result was wrong)
-
-------------------------------------------------------------------------
-r3714 | zimmerma | 2005-08-16 13:19:09 +0000 (Tue, 16 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-fixed bug for tiny input
-
-------------------------------------------------------------------------
-r3713 | zimmerma | 2005-08-16 09:36:05 +0000 (Tue, 16 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-added test case
-
-------------------------------------------------------------------------
-r3712 | pelissip | 2005-08-12 15:11:37 +0000 (Fri, 12 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Reintroduce the computing of the dependencies.
-
-------------------------------------------------------------------------
-r3711 | vlefevre | 2005-08-11 14:56:47 +0000 (Thu, 11 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/tests/tget_d.c
- M /trunk/tests/tset_d.c
-
-Added MPFR_DOUBLE_SPEC (not used yet, except for warning messages).
-
-------------------------------------------------------------------------
-r3710 | vlefevre | 2005-08-10 20:41:16 +0000 (Wed, 10 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Completed the documentation of mpfr_strtofr (concerning the exponent).
-
-------------------------------------------------------------------------
-r3709 | vlefevre | 2005-08-10 20:32:41 +0000 (Wed, 10 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Removed double spaces in mpfr_strtofr description (this matters
-for the info format).
-
-------------------------------------------------------------------------
-r3708 | vlefevre | 2005-08-10 01:02:57 +0000 (Wed, 10 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-Added a temporary test for non-IEEE-754 double's.
-
-------------------------------------------------------------------------
-r3707 | pelissip | 2005-08-09 08:17:14 +0000 (Tue, 09 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/tests/tstckintc.c
-
-Fix bug for pre-ansi compiler.
-
-------------------------------------------------------------------------
-r3706 | pelissip | 2005-08-09 08:16:46 +0000 (Tue, 09 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Remove redundant entries.
-
-------------------------------------------------------------------------
-r3705 | zimmerma | 2005-08-08 13:01:31 +0000 (Mon, 08 Aug 2005) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/TODO
- M /trunk/sin.c
- M /trunk/tests/tsin.c
-
-fixed bug in mpfr_sin (possible wrong inexact flag for rounding to nearest)
-added items in NEWS and TODO
-
-------------------------------------------------------------------------
-r3704 | pelissip | 2005-08-05 23:09:58 +0000 (Fri, 05 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update information
-
-------------------------------------------------------------------------
-r3703 | pelissip | 2005-08-05 23:08:29 +0000 (Fri, 05 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/stack_interface.c
- M /trunk/tests/tstckintc.c
-
-Rename mpfr_stack to mpfr_custom_
-
-------------------------------------------------------------------------
-r3695 | vlefevre | 2005-08-03 10:35:59 +0000 (Wed, 03 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/FAQ.html
- M /trunk/README
-
-Added/updated copyright information.
-
-------------------------------------------------------------------------
-r3694 | vlefevre | 2005-08-03 10:13:41 +0000 (Wed, 03 Aug 2005) | 2 lines
-Changed paths:
- M /branches/mpfr-2-1-branch/NEWS
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3693 | pelissip | 2005-08-02 08:28:22 +0000 (Tue, 02 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Remove "Stack Interface" from TODO.
-
-------------------------------------------------------------------------
-r3692 | pelissip | 2005-08-01 15:23:51 +0000 (Mon, 01 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/subnormal.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tsubnormal.c
-
-Add test file for mpfr_subnormalize
-
-------------------------------------------------------------------------
-r3691 | pelissip | 2005-08-01 15:23:07 +0000 (Mon, 01 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add documentation for MPFR stack interface
-
-------------------------------------------------------------------------
-r3690 | pelissip | 2005-08-01 14:04:35 +0000 (Mon, 01 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tstckintc.c
-
-Add a new test to avoid potential problems if mp_limb_t != long.
-
-------------------------------------------------------------------------
-r3689 | vlefevre | 2005-08-01 10:04:33 +0000 (Mon, 01 Aug 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3685 | pelissip | 2005-07-26 16:08:02 +0000 (Tue, 26 Jul 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/stack_interface.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tstckintc.c
-
-Add first version of MPFR stack interface.
-Need to check if everything is ok, specially the test.
-
-------------------------------------------------------------------------
-r3684 | pelissip | 2005-07-26 14:07:18 +0000 (Tue, 26 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Fix and clean up logging for GCC 4.0.x
-
-------------------------------------------------------------------------
-r3683 | pelissip | 2005-07-26 13:02:30 +0000 (Tue, 26 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Clean up code.
-
-------------------------------------------------------------------------
-r3682 | pelissip | 2005-07-26 12:26:08 +0000 (Tue, 26 Jul 2005) | 4 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/logging.c
- M /trunk/mpfr-impl.h
-
-Improve logging:
- + The file is not created if there is nothing to log.
- + Add new ENVIRONMENT variables: MPFR_LOG_ALL and MPFR_LOG_STAT.
-
-------------------------------------------------------------------------
-r3681 | pelissip | 2005-07-26 12:06:11 +0000 (Tue, 26 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Add experimental code (Disabled).
-
-------------------------------------------------------------------------
-r3680 | pelissip | 2005-07-26 12:05:45 +0000 (Tue, 26 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-Fix comment
-
-------------------------------------------------------------------------
-r3679 | pelissip | 2005-07-26 12:05:03 +0000 (Tue, 26 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-Add a new regression test (to fix).
-
-------------------------------------------------------------------------
-r3678 | pelissip | 2005-07-22 14:01:30 +0000 (Fri, 22 Jul 2005) | 4 lines
-Changed paths:
- M /trunk/erfc.c
-
-Fix bug for high values of input (assertion failed)
-because erf(x) ~ 1, so 1-erf(x) ~ 0, and we can't
-get the EXP of tmp.
-
-------------------------------------------------------------------------
-r3677 | pelissip | 2005-07-18 12:55:30 +0000 (Mon, 18 Jul 2005) | 3 lines
-Changed paths:
- M /trunk/update-version
-
-Fix bug (AC_INIT version wasn't updated).
-Display a note about libtool version before quitting.
-
-------------------------------------------------------------------------
-r3676 | pelissip | 2005-07-18 12:54:45 +0000 (Mon, 18 Jul 2005) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Clean up.
-Add comment.
-Add a new test: check if the charset has consecutive values.
-
-------------------------------------------------------------------------
-r3675 | vlefevre | 2005-07-12 21:27:55 +0000 (Tue, 12 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Updated documentation of mpfr_strtofr.
-
-------------------------------------------------------------------------
-r3674 | pelissip | 2005-07-12 09:48:36 +0000 (Tue, 12 Jul 2005) | 3 lines
-Changed paths:
- M /trunk/exp3.c
-
-Fix an overflow bug (use of int instead of unsigned long).
-Optimize code (5% faster).
-
-------------------------------------------------------------------------
-r3671 | vlefevre | 2005-07-11 16:13:27 +0000 (Mon, 11 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/acinclude.m4
- M /trunk/mpfr-impl.h
- D /trunk/strcasecmp.c
- D /trunk/strncasecmp.c
- M /trunk/strtofr.c
-
-Fixed locale bug. Function strncasecmp is no longer used.
-
-------------------------------------------------------------------------
-r3670 | vlefevre | 2005-07-09 17:52:53 +0000 (Sat, 09 Jul 2005) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/acinclude.m4
- M /trunk/tests/tests.c
-
-In the tests, set the locale to the current one. This allows to test
-MPFR under various locales, showing a bug in the parse_string function
-due to the use of the strncasecmp function ('i' and 'I' don't match
-with LC_ALL="tr_TR.ISO8859-9").
-
-------------------------------------------------------------------------
-r3669 | pelissip | 2005-07-07 07:38:02 +0000 (Thu, 07 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Improve displayed warning if GMP versions differ.
-
-------------------------------------------------------------------------
-r3668 | pelissip | 2005-07-06 08:45:47 +0000 (Wed, 06 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Add a solution for a problem.
-
-------------------------------------------------------------------------
-r3667 | vlefevre | 2005-07-05 13:47:37 +0000 (Tue, 05 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-Added in-place tests for atan(+/-0).
-
-------------------------------------------------------------------------
-r3665 | pelissip | 2005-07-05 08:04:21 +0000 (Tue, 05 Jul 2005) | 3 lines
-Changed paths:
- M /trunk/atan.c
-
-Fix bug of signed 0.
-Optimize code. (20% for 53 bits).
-
-------------------------------------------------------------------------
-r3664 | pelissip | 2005-07-05 08:03:38 +0000 (Tue, 05 Jul 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-Improve test for signed 0.
-
-------------------------------------------------------------------------
-r3663 | pelissip | 2005-06-28 16:46:42 +0000 (Tue, 28 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/atan.c
-
-Simplify a condition which was always true.
-(p is always negative).
-
-------------------------------------------------------------------------
-r3662 | pelissip | 2005-06-28 16:13:03 +0000 (Tue, 28 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Add assertion.
-
-------------------------------------------------------------------------
-r3661 | pelissip | 2005-06-28 16:09:00 +0000 (Tue, 28 Jun 2005) | 4 lines
-Changed paths:
- M /trunk/atan.c
-
-Simplify code for final step (when i== n0):
-since we do n0-i=0 steps, atan(Ak/2^k) ~= Ak/2^k.
-So we could speed up the final computation (9% faster).
-
-------------------------------------------------------------------------
-r3660 | pelissip | 2005-06-28 15:52:32 +0000 (Tue, 28 Jun 2005) | 4 lines
-Changed paths:
- M /trunk/atan.c
-
-Optimize: when computing arctan(p/2^r) simplify
-p/2^r if p is even.
-Clean up and remove tabi table. It was useless.
-
-------------------------------------------------------------------------
-r3659 | pelissip | 2005-06-22 08:58:50 +0000 (Wed, 22 Jun 2005) | 6 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Clean up configure and acinclude:
- + Remove useless test in MPFR_CONFIGS (Check for valid NAN).
- Its result is not use by MPFR.
- + Remove useless macros (AC_CHECK_OS, AC_CHECK_MACH and AC_MY_HEADERS).
- + Move detection of math/rint,round,floor,ceil to MPFR_CONFIGS.
-
-------------------------------------------------------------------------
-r3658 | vlefevre | 2005-06-20 09:30:34 +0000 (Mon, 20 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-GNU coding style.
-
-------------------------------------------------------------------------
-r3657 | zimmerma | 2005-06-16 13:48:23 +0000 (Thu, 16 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-improved m=0 case when b is a power of 2
-
-------------------------------------------------------------------------
-r3656 | pelissip | 2005-06-15 16:12:27 +0000 (Wed, 15 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/cos.c
-
-Replace mpfr_div_2ui call by SET_EXP/GET_EXP
-since it can't overflow.
-
-------------------------------------------------------------------------
-r3655 | pelissip | 2005-06-15 15:47:16 +0000 (Wed, 15 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Speed up a few (from 10822 to 10600).
-
-------------------------------------------------------------------------
-r3654 | pelissip | 2005-06-15 13:56:23 +0000 (Wed, 15 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update
-
-------------------------------------------------------------------------
-r3653 | pelissip | 2005-06-14 11:42:25 +0000 (Tue, 14 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/powerof2.c
-
-Replace check for a power of 2 for the high limb by a check
-for "high bit limb" for the high limb.
-
-------------------------------------------------------------------------
-r3652 | pelissip | 2005-06-14 11:30:10 +0000 (Tue, 14 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-Fix bug in mul_ui (always alloc buffer instead of trying to reuse it).
-
-------------------------------------------------------------------------
-r3651 | pelissip | 2005-06-14 11:27:56 +0000 (Tue, 14 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-Add new test (failed).
-
-------------------------------------------------------------------------
-r3650 | pelissip | 2005-06-14 11:17:55 +0000 (Tue, 14 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/div_ui.c
- M /trunk/mul_ui.c
-
-Add Fast case for u==1
-Add Fast case for u a power of 2 (Call mul/div_2si).
-
-------------------------------------------------------------------------
-r3649 | pelissip | 2005-06-14 09:04:44 +0000 (Tue, 14 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Fix bug (use of GCC specific attribute).
-
-------------------------------------------------------------------------
-r3648 | pelissip | 2005-06-13 12:19:30 +0000 (Mon, 13 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/root.c
- M /trunk/tests/troot.c
-
-Rechnage the meaning of root for k=0.
-
-------------------------------------------------------------------------
-r3647 | pelissip | 2005-06-13 12:03:30 +0000 (Mon, 13 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/root.c
- M /trunk/tests/troot.c
-
-Fix bug with x<0 and k even
-
-------------------------------------------------------------------------
-r3646 | pelissip | 2005-06-13 11:45:50 +0000 (Mon, 13 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/root.c
- M /trunk/tests/troot.c
-
-Add special case for k==0
-Add test for special case k==0
-
-------------------------------------------------------------------------
-r3645 | zimmerma | 2005-06-13 11:33:57 +0000 (Mon, 13 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
-
-added assertion
-
-------------------------------------------------------------------------
-r3644 | pelissip | 2005-06-13 11:23:37 +0000 (Mon, 13 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/cache.c
-
-Improve efficiency of initial call to mpfr_cache.
-
-------------------------------------------------------------------------
-r3643 | pelissip | 2005-06-13 08:51:44 +0000 (Mon, 13 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-Add new check (+INF -INF --> NAN).
-
-------------------------------------------------------------------------
-r3642 | pelissip | 2005-06-10 15:11:02 +0000 (Fri, 10 Jun 2005) | 6 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/sum.c
- M /trunk/tests/tsum.c
-
-Fix bug of NAN and INF.
-Fix bug in documentation (mpfr_sum wasn't exactly what is described).
-Improve test.
-Change internal names.
-Clean up.
-
-------------------------------------------------------------------------
-r3641 | pelissip | 2005-06-10 15:05:54 +0000 (Fri, 10 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/eint.c
-
-Fix bug: check if mpfr_log returns 0.
-
-------------------------------------------------------------------------
-r3640 | pelissip | 2005-06-08 12:35:31 +0000 (Wed, 08 Jun 2005) | 5 lines
-Changed paths:
- M /trunk/eint.c
-
-Replace MPFR_EXP to MPFR_GET_EXP
-Use GROUP function
-Use MPFR_MPZ_SIZEINBASE2
-Factorize the mpfr_mul_2exp chain.
-
-------------------------------------------------------------------------
-r3639 | pelissip | 2005-06-08 12:34:47 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-Replace int to mp_prec_t for precision...
-
-------------------------------------------------------------------------
-r3638 | pelissip | 2005-06-08 12:34:21 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/const_euler.c
- M /trunk/mulders.c
- M /trunk/zeta.c
-
-Fix warning due to comparison of unsigned and signed integers.
-
-------------------------------------------------------------------------
-r3637 | pelissip | 2005-06-08 11:45:06 +0000 (Wed, 08 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/extract.c
- M /trunk/strtofr.c
-
-Fix warnings due to comparison between signed and unsigned.
-Reinclude string.h for strtofr.
-
-------------------------------------------------------------------------
-r3635 | vlefevre | 2005-06-08 10:18:24 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/add1.c
-
-Fixed bug introduced with the new internal format on 2003-10-27.
-
-------------------------------------------------------------------------
-r3634 | vlefevre | 2005-06-08 10:02:28 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/add1.c
-
-Updated comments.
-
-------------------------------------------------------------------------
-r3633 | pelissip | 2005-06-08 10:00:21 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Fix introduced bug due to missing NULL.
-
-------------------------------------------------------------------------
-r3632 | pelissip | 2005-06-08 09:58:57 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/clear.c
-
-Fix introduced bug (NULL not defined).
-
-------------------------------------------------------------------------
-r3631 | pelissip | 2005-06-08 09:53:48 +0000 (Wed, 08 Jun 2005) | 4 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/atan.c
- M /trunk/clear.c
- M /trunk/div.c
- M /trunk/gamma.c
- M /trunk/get_f.c
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/round_p.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/strtofr.c
- M /trunk/sub1sp.c
- M /trunk/subnormal.c
- M /trunk/zeta.c
-
-Clean up use of stdio.h:
- it is now included by mpfr-impl iff DEBUG is defined or WANT_ASSERT is
-defined.
-
-------------------------------------------------------------------------
-r3630 | pelissip | 2005-06-08 09:53:05 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-Fix warnings.
-
-------------------------------------------------------------------------
-r3629 | pelissip | 2005-06-08 09:13:41 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-Clean up code.
-
-------------------------------------------------------------------------
-r3628 | pelissip | 2005-06-08 09:08:27 +0000 (Wed, 08 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/add1sp.c
-
-Improve checking if WANT_ASSERT >= 2
-
-------------------------------------------------------------------------
-r3627 | pelissip | 2005-06-07 16:06:38 +0000 (Tue, 07 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-Fix wrong assertion.
-
-------------------------------------------------------------------------
-r3626 | pelissip | 2005-06-07 16:03:24 +0000 (Tue, 07 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-Improve test by adding special cases.
-
-------------------------------------------------------------------------
-r3625 | pelissip | 2005-06-07 16:02:48 +0000 (Tue, 07 Jun 2005) | 5 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-MPFR_GET_EXP was wrongly defined and does nothing due to recursive
-macro (mpfr_get_exp is also defined to be a fast macro). Fix this
-by removing the macro call in MPFR_GET_EXP in case of ASSERT >= 1.
-2 tests failed now!
-
-------------------------------------------------------------------------
-r3624 | pelissip | 2005-06-07 15:42:17 +0000 (Tue, 07 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-Clean up and improve check.
-
-------------------------------------------------------------------------
-r3623 | pelissip | 2005-06-07 15:41:57 +0000 (Tue, 07 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-Handle case n==0 and n==1 as special cases.
-
-------------------------------------------------------------------------
-r3622 | pelissip | 2005-06-07 14:27:34 +0000 (Tue, 07 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/const_catalan.c
- M /trunk/tests/tconst_catalan.c
-
-Simplify test to use tgeneric.
-Add note about Worst Case of const_catalan up to 100,000,000
-
-------------------------------------------------------------------------
-r3621 | pelissip | 2005-06-07 14:26:45 +0000 (Tue, 07 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Use GROUP functions.
-
-------------------------------------------------------------------------
-r3620 | pelissip | 2005-06-07 09:52:04 +0000 (Tue, 07 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-Improve coverage.
-
-------------------------------------------------------------------------
-r3619 | pelissip | 2005-06-07 09:51:49 +0000 (Tue, 07 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Fix bug in MPFR_GROUP_REPREC_3.
-
-------------------------------------------------------------------------
-r3618 | pelissip | 2005-06-06 14:49:55 +0000 (Mon, 06 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
- M /trunk/tests/tui_pow.c
- M /trunk/ui_pow_ui.c
-
-Improve coverage
-
-------------------------------------------------------------------------
-r3617 | pelissip | 2005-06-06 14:13:47 +0000 (Mon, 06 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-Improve coverage test
-
-------------------------------------------------------------------------
-r3616 | pelissip | 2005-06-06 13:52:29 +0000 (Mon, 06 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/tests/tdiv.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tzeta.c
-
-Remove mpfr_sub_one_ulp from MPFR library.
-Keep the C file until we are sure it not needed anymore.
-
-------------------------------------------------------------------------
-r3615 | pelissip | 2005-06-06 13:42:40 +0000 (Mon, 06 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tnext.c
-
-Improve coverage.
-
-------------------------------------------------------------------------
-r3614 | pelissip | 2005-06-06 13:39:40 +0000 (Mon, 06 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/div_ui.c
- M /trunk/hypot.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tzeta.c
-
-Remove mpfr_add_one_ulp from MPFR library.
-The function is still in the CVS.
-
-------------------------------------------------------------------------
-r3613 | pelissip | 2005-06-06 12:06:15 +0000 (Mon, 06 Jun 2005) | 4 lines
-Changed paths:
- M /trunk/gamma.c
-
-Add experimental code (disabled).
-For 5000 bits, gamma(12.5) takes 4s instead of 18s.
-But it changes the error analysis...
-
-------------------------------------------------------------------------
-r3612 | pelissip | 2005-06-06 11:27:08 +0000 (Mon, 06 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-Reduce use of intermediary variables.
-
-------------------------------------------------------------------------
-r3611 | pelissip | 2005-06-06 09:42:16 +0000 (Mon, 06 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-Improve comment of previous change.
-
-------------------------------------------------------------------------
-r3610 | pelissip | 2005-06-06 09:30:13 +0000 (Mon, 06 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/zeta.c
-
-Use FastCompute if x is positive and big, ie it uses
-Zeta(x)=1+1/2^X+O(1/3^x)
-
-------------------------------------------------------------------------
-r3609 | pelissip | 2005-06-03 11:15:05 +0000 (Fri, 03 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/ui_pow_ui.c
-
-Add new and faster trivial case for y <= 1 and n <= 1
-
-------------------------------------------------------------------------
-r3608 | pelissip | 2005-06-02 16:20:05 +0000 (Thu, 02 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/COPYING
- M /trunk/COPYING.LIB
-
-Forget those two. Update from FSF site.
-
-------------------------------------------------------------------------
-r3607 | pelissip | 2005-06-02 16:16:17 +0000 (Thu, 02 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
-
-Finish updating files.
-
-------------------------------------------------------------------------
-r3606 | pelissip | 2005-06-02 16:12:06 +0000 (Thu, 02 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/abort_prec_max.c
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atan2.c
- M /trunk/atanh.c
- M /trunk/cache.c
- M /trunk/cbrt.c
- M /trunk/check.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_ld.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/const_catalan.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/constant.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/cot.c
- M /trunk/coth.c
- M /trunk/csc.c
- M /trunk/csch.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eint.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/erfc.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fits_intmax.c
- M /trunk/fits_s.h
- M /trunk/fits_sint.c
- M /trunk/fits_slong.c
- M /trunk/fits_sshort.c
- M /trunk/fits_u.h
- M /trunk/fits_uint.c
- M /trunk/fits_uintmax.c
- M /trunk/fits_ulong.c
- M /trunk/fits_ushort.c
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/free_cache.c
- M /trunk/gamma.c
- M /trunk/gen_inverse.h
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_exp.c
- M /trunk/get_f.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/get_z.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/int_ceil_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/isqrt.c
- M /trunk/iszero.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/logging.c
- M /trunk/minmax.c
- M /trunk/mp_clz_tab.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-longlong.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/mulders.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/powerof2.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/root.c
- M /trunk/round_near_x.c
- M /trunk/round_p.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/sec.c
- M /trunk/sech.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_ld.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_si_2exp.c
- M /trunk/set_sj.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_ui_2exp.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/si_op.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/strcasecmp.c
- M /trunk/strncasecmp.c
- M /trunk/strtofr.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_one_ulp.c
- M /trunk/sub_ui.c
- M /trunk/subnormal.c
- M /trunk/sum.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/cmp_str.c
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcopysign.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tcot.c
- M /trunk/tests/tcoth.c
- M /trunk/tests/tcsc.c
- M /trunk/tests/tcsch.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teint.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfits.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_f.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tminmax.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/troot.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tsec.c
- M /trunk/tests/tsech.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tstrtofr.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tversion.c
- M /trunk/tests/tzeta.c
- M /trunk/tuneup.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/version.c
- M /trunk/volatile.c
- M /trunk/zeta.c
-
-Change the address of the FSF.
-
-------------------------------------------------------------------------
-r3605 | pelissip | 2005-06-02 15:55:58 +0000 (Thu, 02 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/gamma.c
-
-Optimize it a few by avoiding calling fac_ui for each iteration
-of the main loop.
-
-------------------------------------------------------------------------
-r3604 | pelissip | 2005-06-02 15:16:19 +0000 (Thu, 02 Jun 2005) | 4 lines
-Changed paths:
- M /trunk/zeta.c
-
-Reduce # of vars inside the main loop.
-Use GROUP function.
-Improve overflow problems (Use of int instead of mp_prec_t).
-
-------------------------------------------------------------------------
-r3603 | pelissip | 2005-06-02 15:15:44 +0000 (Thu, 02 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/gamma.c
-
-Improve efficiency by removing 2 variables (Loop uses only 4 vars).
-Use GROUP.
-
-------------------------------------------------------------------------
-r3602 | pelissip | 2005-06-02 15:15:02 +0000 (Thu, 02 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/abort_prec_max.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
-
-Add support for MPFR_GROUP functions.
-
-------------------------------------------------------------------------
-r3601 | pelissip | 2005-06-02 15:14:15 +0000 (Thu, 02 Jun 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add attribute const and noreturn for function (via macros).
-Add new macros GROUP_INIT_6 and GROUP_REPREC_6 for zeta and gamma.
-
-------------------------------------------------------------------------
-r3600 | zimmerma | 2005-06-02 10:17:09 +0000 (Thu, 02 Jun 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added missing functions from gnumeric
-
-------------------------------------------------------------------------
-r3599 | pelissip | 2005-06-02 09:22:55 +0000 (Thu, 02 Jun 2005) | 5 lines
-Changed paths:
- M /trunk/TODO
-
-Update stack-interface.
-Remove round_near_x item.
-Add new functions to implement.
-Reformat file.
-
-------------------------------------------------------------------------
-r3598 | pelissip | 2005-06-02 07:40:56 +0000 (Thu, 02 Jun 2005) | 4 lines
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-Fix input precision of mp_prec_t.
-May be outside 'int' range. So it uses 'long' instead and
-a proper check.
-
-------------------------------------------------------------------------
-r3597 | vlefevre | 2005-05-25 14:32:37 +0000 (Wed, 25 May 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Added coding recommendations concerning C++ compilers.
-
-------------------------------------------------------------------------
-r3596 | pelissip | 2005-05-23 12:31:57 +0000 (Mon, 23 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Final version of MPFR_GROUP macros.
-
-------------------------------------------------------------------------
-r3595 | pelissip | 2005-05-23 12:31:43 +0000 (Mon, 23 May 2005) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3594 | pelissip | 2005-05-20 09:30:19 +0000 (Fri, 20 May 2005) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-Remove variable t which wasn't used!
-
-------------------------------------------------------------------------
-r3593 | pelissip | 2005-05-18 15:57:10 +0000 (Wed, 18 May 2005) | 6 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/agm.c
- M /trunk/cos.c
- M /trunk/div-short.c
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/exp_2.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/init2.c
- M /trunk/log.c
- M /trunk/mpfr-impl.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/round_prec.c
- M /trunk/set_f.c
- M /trunk/sqr.c
- M /trunk/sqrt.c
- M /trunk/strtofr.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sum.c
- M /trunk/tests/tsum.c
- M /trunk/tuneup.c
-
-Replace TMP_ALLOC by MPFR_TMP_ALLOC
-Replace TMP_DECL by MPFR_TMP_DECL
-Replace TMP_MARK by MPFR_TMP_MARK
-Replace TMP_FREE by MPFR_TMP_FREE
-Add support for GMP's TMP_SALLOC.
-
-------------------------------------------------------------------------
-r3592 | pelissip | 2005-05-18 13:17:40 +0000 (Wed, 18 May 2005) | 5 lines
-Changed paths:
- M /trunk/pow.c
-
-New way of handling exact value.
-Fix bug of wrong rounding and wrong ternary value if the power
-is exact, but at an upper precision than the working precision.
-Now it computes the power exactly if it detects it is exact.
-
-------------------------------------------------------------------------
-r3591 | pelissip | 2005-05-18 13:13:15 +0000 (Wed, 18 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Precise that 1 is not the only value.
-
-------------------------------------------------------------------------
-r3590 | vlefevre | 2005-05-18 13:03:10 +0000 (Wed, 18 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-an 1 -> a 1.
-
-------------------------------------------------------------------------
-r3589 | pelissip | 2005-05-18 09:42:00 +0000 (Wed, 18 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add a note about special case 1
-
-------------------------------------------------------------------------
-r3588 | pelissip | 2005-05-18 09:01:41 +0000 (Wed, 18 May 2005) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-Add assertions
-Remove useless function is_odd_even.
-
-------------------------------------------------------------------------
-r3587 | pelissip | 2005-05-18 08:53:39 +0000 (Wed, 18 May 2005) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-Fix bug: returning 1 didn't take the rounding mode into account.
-Simplify dependencies of mpfr_pow.
-
-------------------------------------------------------------------------
-r3586 | pelissip | 2005-05-18 08:42:54 +0000 (Wed, 18 May 2005) | 4 lines
-Changed paths:
- M /trunk/expm1.c
- M /trunk/tests/texpm1.c
-
-Fix bug of overflow
-Fix bug of wrong ternary value in case of overflow
-Add test cases.
-
-------------------------------------------------------------------------
-r3585 | pelissip | 2005-05-18 08:22:55 +0000 (Wed, 18 May 2005) | 3 lines
-Changed paths:
- M /trunk/cosh.c
- M /trunk/tests/tcosh.c
-
-Fix bug of overflow.
-Fix bug of ternary value in case of overflow.
-
-------------------------------------------------------------------------
-r3584 | pelissip | 2005-05-18 08:22:28 +0000 (Wed, 18 May 2005) | 2 lines
-Changed paths:
- M /trunk/tanh.c
-
-Clean up previous patch.
-
-------------------------------------------------------------------------
-r3583 | pelissip | 2005-05-18 07:30:01 +0000 (Wed, 18 May 2005) | 4 lines
-Changed paths:
- M /trunk/sinh.c
- M /trunk/tests/tsinh.c
-
-Fix bug of overflow.
-Fix bug of ternary value in case of overflow.
-Still some bugs...
-
-------------------------------------------------------------------------
-r3582 | pelissip | 2005-05-17 16:17:12 +0000 (Tue, 17 May 2005) | 4 lines
-Changed paths:
- M /trunk/tanh.c
- M /trunk/tests/ttanh.c
-
-Rewrite the way of handling overflow.
-Fix bug due to overflow.
-Fix bug due to wrong ternary value.
-
-------------------------------------------------------------------------
-r3581 | pelissip | 2005-05-17 16:15:15 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Typo.
-
-------------------------------------------------------------------------
-r3580 | pelissip | 2005-05-17 15:37:02 +0000 (Tue, 17 May 2005) | 3 lines
-Changed paths:
- M /trunk/sinh.c
- M /trunk/tests/tsinh.c
-
-Fix bug of overflow.
-Still a problem if exp(x) is near the limit of EMAX_MAX.
-
-------------------------------------------------------------------------
-r3579 | pelissip | 2005-05-17 15:35:38 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add new macro MPFR_SAVE_DECL_UPDATE_FLAGS
-
-------------------------------------------------------------------------
-r3578 | pelissip | 2005-05-17 15:17:32 +0000 (Tue, 17 May 2005) | 3 lines
-Changed paths:
- M /trunk/sinh.c
- M /trunk/tests/tsinh.c
-
-Improve way of handling overflow (still not perfect but far better).
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3577 | pelissip | 2005-05-17 15:14:53 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/get_si.c
- M /trunk/tests/tset_si.c
-
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3576 | vlefevre | 2005-05-17 15:14:37 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/hypot.c
- M /trunk/mpfr.texi
- M /trunk/tests/thypot.c
-
-hypot(±oo, NaN) now returns +oo, as in ISO C99 (wasn't documented).
-
-------------------------------------------------------------------------
-r3575 | pelissip | 2005-05-17 14:09:21 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tasin.c
-
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3574 | pelissip | 2005-05-17 14:09:10 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/asin.c
-
-Remove useless test.
-
-------------------------------------------------------------------------
-r3573 | pelissip | 2005-05-17 13:28:02 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3572 | pelissip | 2005-05-17 13:06:26 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/set_z.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_z.c
-
-Improve coverage
-
-------------------------------------------------------------------------
-r3571 | pelissip | 2005-05-17 12:58:43 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tcmpabs.c
-
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3570 | pelissip | 2005-05-17 12:58:30 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/coverage
-
-Add CFLAGS -g.
-
-------------------------------------------------------------------------
-r3569 | pelissip | 2005-05-17 12:27:39 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Clean up
-
-------------------------------------------------------------------------
-r3568 | pelissip | 2005-05-17 12:13:44 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tfits.c
-
-Improve coverage tests.
-
-------------------------------------------------------------------------
-r3567 | pelissip | 2005-05-17 11:45:11 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3566 | pelissip | 2005-05-17 11:34:11 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/tanh.c
-
-Special a condition by the simplified one.
-
-------------------------------------------------------------------------
-r3565 | pelissip | 2005-05-17 10:31:34 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_catalan.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tget_d.c
-
-Improve coverage test (Forget to test tiny functions).
-
-------------------------------------------------------------------------
-r3564 | pelissip | 2005-05-17 10:12:30 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/coverage
-
-Typo
-
-------------------------------------------------------------------------
-r3563 | pelissip | 2005-05-17 10:04:14 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
- A /trunk/coverage
-
-Add 'coverage' script.
-
-------------------------------------------------------------------------
-r3562 | pelissip | 2005-05-17 10:03:54 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/constant.c
-
-Add 'static'
-
-------------------------------------------------------------------------
-r3561 | pelissip | 2005-05-17 08:52:13 +0000 (Tue, 17 May 2005) | 5 lines
-Changed paths:
- M /trunk/cos.c
-
-Reformating code.
-Fix potential (?) overflow for very large precision.
-Various tiny optimizations
-Improve the initial estimation of the needed precision.
-
-------------------------------------------------------------------------
-r3560 | pelissip | 2005-05-17 08:46:45 +0000 (Tue, 17 May 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/constant.c
- M /trunk/log.c
- M /trunk/mpfr-impl.h
-
-Extract constants (__gmpfr_one, two and four) from log.c to constant.c
-Fix bug in MPFR_SET_ONE.
-
-------------------------------------------------------------------------
-r3559 | pelissip | 2005-05-17 08:45:00 +0000 (Tue, 17 May 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-Remove a space.
-
-------------------------------------------------------------------------
-r3558 | vlefevre | 2005-05-16 14:29:49 +0000 (Mon, 16 May 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Typography + spelling.
-
-------------------------------------------------------------------------
-r3557 | vlefevre | 2005-05-16 14:26:20 +0000 (Mon, 16 May 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Note that mpfr_out_str has slightly changed.
-
-------------------------------------------------------------------------
-r3556 | pelissip | 2005-05-16 07:34:04 +0000 (Mon, 16 May 2005) | 3 lines
-Changed paths:
- M /trunk/TODO
-
-asin, atan, atanh are not slow anymore for small input.
-Remove it in the TODO.
-
-------------------------------------------------------------------------
-r3555 | vlefevre | 2005-05-14 17:53:00 +0000 (Sat, 14 May 2005) | 4 lines
-Changed paths:
- M /trunk/atanh.c
-
-Fixed a bug due to a typo on a variable name. It produced a
-segmentation fault in the tests on Linux/ppc (uninitialized data were
-read), not always reproducible when stepping with gdb.
-
-------------------------------------------------------------------------
-r3553 | pelissip | 2005-05-13 11:49:46 +0000 (Fri, 13 May 2005) | 2 lines
-Changed paths:
- M /trunk/expm1.c
- M /trunk/log1p.c
-
-Add support for MPFR_FAST_COMPUTE_IS_SMALL_INPUT
-
-------------------------------------------------------------------------
-r3552 | pelissip | 2005-05-13 11:41:39 +0000 (Fri, 13 May 2005) | 2 lines
-Changed paths:
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
-
-Add support for FAST_COMPUTE_IS_SMALL_INPUT.
-
-------------------------------------------------------------------------
-r3551 | pelissip | 2005-05-13 10:58:38 +0000 (Fri, 13 May 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Add round_near_x support for small arguments.
-
-------------------------------------------------------------------------
-r3550 | pelissip | 2005-05-13 10:58:20 +0000 (Fri, 13 May 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/round_near_x.c
-
-Add new internal function mpfr_round_near_x.
-
-------------------------------------------------------------------------
-r3549 | zimmerma | 2005-05-13 09:37:42 +0000 (Fri, 13 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added missing documentation for mpfr_hypot
-
-------------------------------------------------------------------------
-r3548 | pelissip | 2005-05-13 09:12:07 +0000 (Fri, 13 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/texceptions.c
-
-Add a \n for all error strings.
-
-------------------------------------------------------------------------
-r3547 | pelissip | 2005-05-13 09:11:48 +0000 (Fri, 13 May 2005) | 2 lines
-Changed paths:
- M /trunk/version.c
-
-Fix copyright date.
-
-------------------------------------------------------------------------
-r3546 | pelissip | 2005-05-13 09:11:11 +0000 (Fri, 13 May 2005) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/texp.c
-
-Fix some problems when you define mpfr_prec_t to be an unsigned short.
-Now all tests passed when mpfr_prec_t is defined to be an unsigned short
-on a 32 bit CPU!
-
-------------------------------------------------------------------------
-r3542 | vlefevre | 2005-05-12 09:21:49 +0000 (Thu, 12 May 2005) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-Detect/avoid potential integer overflows.
-
-------------------------------------------------------------------------
-r3541 | pelissip | 2005-05-12 08:55:27 +0000 (Thu, 12 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-Fix typos.
-
-------------------------------------------------------------------------
-r3540 | pelissip | 2005-05-11 15:43:40 +0000 (Wed, 11 May 2005) | 2 lines
-Changed paths:
- M /trunk/exp3.c
- M /trunk/tests/texp.c
-
-Same patch for exp_3.
-
-------------------------------------------------------------------------
-r3539 | pelissip | 2005-05-11 15:24:48 +0000 (Wed, 11 May 2005) | 5 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/exp_2.c
- M /trunk/tests/texp.c
-
-Fix bug when exp(x) is near the limit of an overflow or an
-underflow (mpfr_exp_2 didn't allow an overflow/underflow in its
-internal loop).
-Add corresponding test case. exp_3 may need similar patchs.
-
-------------------------------------------------------------------------
-r3538 | vlefevre | 2005-05-11 11:03:55 +0000 (Wed, 11 May 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update (with reformatting so that the logs are readable on 80 columns).
-
-------------------------------------------------------------------------
-r3537 | pelissip | 2005-05-11 07:42:05 +0000 (Wed, 11 May 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
- M /trunk/tests/tmul.c
-
-Fix bug due to wrong assertion.
-
-------------------------------------------------------------------------
-r3536 | pelissip | 2005-05-10 11:49:58 +0000 (Tue, 10 May 2005) | 9 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
-
-1. Change the prototype of mpfr_can_round to use const.
-2. Change the prototype of mpfr_round_raw_2 (remove first argument since it is
- useless).
-3. Change round_raw_generic to use preprocessor if rather than compiler
- to detect if flag == 1 or 0
-4. mpfr_round_raw_xxx use const attribute too.
-5. Remove mpfr_round_raw_3 since it is unused by MPFR.
-6. Add first prototype of MPFR_FAST_COMPUTE_IF_SMALL.
-
-------------------------------------------------------------------------
-r3535 | pelissip | 2005-05-10 09:52:11 +0000 (Tue, 10 May 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Update.
-
-------------------------------------------------------------------------
-r3534 | pelissip | 2005-05-10 09:34:22 +0000 (Tue, 10 May 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
- M /trunk/tests/tmul.c
-
-Fix a bug in the product of 2limbs per 2 limbs.
-Add new regression test.
-
-------------------------------------------------------------------------
-r3533 | pelissip | 2005-05-10 07:28:06 +0000 (Tue, 10 May 2005) | 5 lines
-Changed paths:
- M /trunk/configure.in
-
-Fix problem with mingw: if the configure detects MS-Windows, it skips the
-tests which try to link against GMP within the configure, hoping the Makefile
-works. The main problem is that we need libtool inside the configure to link
-against GMP.
-
-------------------------------------------------------------------------
-r3532 | pelissip | 2005-05-09 09:09:37 +0000 (Mon, 09 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-Improve random tests.
-
-------------------------------------------------------------------------
-r3531 | pelissip | 2005-05-04 16:20:06 +0000 (Wed, 04 May 2005) | 4 lines
-Changed paths:
- M /trunk/cos.c
-
-Replace initial estimation of K0 from sqrt (p/2)
-to sqrt(p/16). It seems to be 30% faster for 5000 bits, and 5% faster
-for 50 bits.
-
-------------------------------------------------------------------------
-r3529 | vlefevre | 2005-05-04 15:59:49 +0000 (Wed, 04 May 2005) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-Reformatted the code.
-
-------------------------------------------------------------------------
-r3528 | zimmerma | 2005-05-04 15:20:17 +0000 (Wed, 04 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-fixed dummy init2 followed by set_prec
-
-------------------------------------------------------------------------
-r3527 | vlefevre | 2005-05-04 13:42:36 +0000 (Wed, 04 May 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Added LIA-2 functions to implement.
-
-------------------------------------------------------------------------
-r3526 | pelissip | 2005-05-04 09:51:10 +0000 (Wed, 04 May 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/TODO
- A /trunk/coth.c
- A /trunk/csch.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/sech.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tcot.c
- A /trunk/tests/tcoth.c
- A /trunk/tests/tcsch.c
- M /trunk/tests/tsec.c
- A /trunk/tests/tsech.c
-
-Add functions mpfr_sech, mpfr_coth and mpfr_csch.
-
-------------------------------------------------------------------------
-r3525 | pelissip | 2005-05-04 09:49:51 +0000 (Wed, 04 May 2005) | 2 lines
-Changed paths:
- M /trunk/gen_inverse.h
-
-init2 alloc what is needed, not 2 (more efficient).
-
-------------------------------------------------------------------------
-r3524 | zimmerma | 2005-05-04 09:27:48 +0000 (Wed, 04 May 2005) | 4 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/algorithms.tex
- M /trunk/asinh.c
- M /trunk/const_euler.c
- M /trunk/cosh.c
- M /trunk/eint.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/hypot.c
- M /trunk/log10.c
- M /trunk/log2.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/tanh.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
-
-improved const_euler and eint
-removed dependency from input precision in several functions
-fixed two bugs in pow (detection of exact cases)
-
-------------------------------------------------------------------------
-r3523 | pelissip | 2005-05-04 08:35:23 +0000 (Wed, 04 May 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Update to reflect the current state.
-
-------------------------------------------------------------------------
-r3522 | pelissip | 2005-05-03 16:39:04 +0000 (Tue, 03 May 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Fix computing of `sup` to reflect what is described in algorithms.tex.
-
-------------------------------------------------------------------------
-r3521 | pelissip | 2005-05-03 14:57:04 +0000 (Tue, 03 May 2005) | 3 lines
-Changed paths:
- M /trunk/atan.c
-
-Tiny optimization of mpfr_atan.
-On opteron with p=53, from 9231 / 18049.89 / 81758 to 9004 / 17522.76 / 78601.
-
-------------------------------------------------------------------------
-r3520 | vlefevre | 2005-05-03 12:42:01 +0000 (Tue, 03 May 2005) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Fixed a problem in test_small (already done in the 2.1 branch)
-when long double = double.
-
-------------------------------------------------------------------------
-r3519 | pelissip | 2005-05-03 10:42:41 +0000 (Tue, 03 May 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Improve detection again (use callback).
-
-------------------------------------------------------------------------
-r3518 | pelissip | 2005-05-03 10:15:46 +0000 (Tue, 03 May 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Improve previous change.
-
-------------------------------------------------------------------------
-r3517 | pelissip | 2005-05-03 09:51:50 +0000 (Tue, 03 May 2005) | 4 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/tests/trint.c
-
-Add detection of function round, rint, ceil, floor and nearbyint at configure
-time so that spe206 which defines itself as C99 compliant can build the
-trint test.
-
-------------------------------------------------------------------------
-r3516 | pelissip | 2005-05-03 08:55:18 +0000 (Tue, 03 May 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update (Move bugs to potential).
-
-------------------------------------------------------------------------
-r3515 | vlefevre | 2005-05-03 08:08:50 +0000 (Tue, 03 May 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/hypot.c
- M /trunk/tests/thypot.c
-
-Fixed the mpfr_hypot bug, and re-enabled the test_large_small test.
-
-------------------------------------------------------------------------
-r3514 | vlefevre | 2005-05-02 23:17:44 +0000 (Mon, 02 May 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3512 | vlefevre | 2005-05-02 22:57:16 +0000 (Mon, 02 May 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Mention the mpfr_hypot bug.
-
-------------------------------------------------------------------------
-r3511 | vlefevre | 2005-05-02 22:46:56 +0000 (Mon, 02 May 2005) | 3 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-Added a test showing a bug, enabled when TEST_LARGE_SMALL is defined
-(to avoid a freeze with make check).
-
-------------------------------------------------------------------------
-r3510 | pelissip | 2005-05-02 15:05:43 +0000 (Mon, 02 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix bug.
-
-------------------------------------------------------------------------
-r3509 | pelissip | 2005-05-02 15:05:30 +0000 (Mon, 02 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Remove useless function f.
-
-------------------------------------------------------------------------
-r3508 | pelissip | 2005-05-02 13:11:39 +0000 (Mon, 02 May 2005) | 2 lines
-Changed paths:
- M /trunk/subnormal.c
-
-Fix a bug: the test to detect EVEN_rounding was wrong.
-
-------------------------------------------------------------------------
-r3507 | pelissip | 2005-05-02 13:11:07 +0000 (Mon, 02 May 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update example of use of mpfr_subnormalize.
-
-------------------------------------------------------------------------
-r3506 | pelissip | 2005-05-02 13:10:44 +0000 (Mon, 02 May 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/cmp_str.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmpabs.c
-
-mpfr_cmp_str checks for NAN.
-Add macro mpfr_cmp0 in mpfr-test.
-
-------------------------------------------------------------------------
-r3505 | pelissip | 2005-05-02 13:09:35 +0000 (Mon, 02 May 2005) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/troot.c
-
-Undo previous change for tgeneric.
-troot uses tgeneric_ui instead.
-
-------------------------------------------------------------------------
-r3504 | pelissip | 2005-05-01 09:21:43 +0000 (Sun, 01 May 2005) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-Add new functions in reuse test.
-
-------------------------------------------------------------------------
-r3503 | zimmerma | 2005-04-30 11:03:47 +0000 (Sat, 30 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added efficiency item
-
-------------------------------------------------------------------------
-r3502 | zimmerma | 2005-04-30 10:36:21 +0000 (Sat, 30 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- M /trunk/algorithms.tex
- A /trunk/eint.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/teint.c
-
-added mpfr_eint
-
-------------------------------------------------------------------------
-r3501 | pelissip | 2005-04-29 17:24:30 +0000 (Fri, 29 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Add something to do :)
-
-------------------------------------------------------------------------
-r3500 | zimmerma | 2005-04-29 08:19:01 +0000 (Fri, 29 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added comment about efficiency of atan
-
-------------------------------------------------------------------------
-r3499 | vlefevre | 2005-04-29 07:42:30 +0000 (Fri, 29 Apr 2005) | 3 lines
-Changed paths:
- A /trunk/FAQ.html
- M /trunk/Makefile.am
- M /trunk/README
- M /trunk/README.dev
- A /trunk/faq.xsl
- A /trunk/update-faq
-
-The FAQ is now distributed with MPFR. Use update-faq to update it
-from the MPFR web site.
-
-------------------------------------------------------------------------
-r3498 | zimmerma | 2005-04-29 07:30:29 +0000 (Fri, 29 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-commented out argument reduction analysis for arctan (was wrong)
-
-------------------------------------------------------------------------
-r3496 | zimmerma | 2005-04-28 09:47:32 +0000 (Thu, 28 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-wrong commit, put revision 1.37 back
-
-------------------------------------------------------------------------
-r3495 | zimmerma | 2005-04-28 09:45:05 +0000 (Thu, 28 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-wrong commit, put back revision 1.47
-
-------------------------------------------------------------------------
-r3494 | zimmerma | 2005-04-28 09:38:45 +0000 (Thu, 28 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/cos.c
- M /trunk/sin.c
-
-added error analysis for Geoff's argument reduction for arctan
-
-------------------------------------------------------------------------
-r3493 | vlefevre | 2005-04-27 20:56:08 +0000 (Wed, 27 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Added a note about mpfr_set_d and mpfr_set_ld.
-
-------------------------------------------------------------------------
-r3492 | vlefevre | 2005-04-27 13:51:06 +0000 (Wed, 27 Apr 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/update-version
-
-Define MPFR_VERSION_STRING using the update-version script
-(works with any compiler).
-
-------------------------------------------------------------------------
-r3491 | zimmerma | 2005-04-26 10:46:13 +0000 (Tue, 26 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added internal interface
-
-------------------------------------------------------------------------
-r3490 | zimmerma | 2005-04-26 10:02:01 +0000 (Tue, 26 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added suggestion from Geoff
-
-------------------------------------------------------------------------
-r3489 | zimmerma | 2005-04-26 09:37:28 +0000 (Tue, 26 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tversion.c
-
-added MPFR_VERSION_STRING
-
-------------------------------------------------------------------------
-r3488 | zimmerma | 2005-04-25 13:06:11 +0000 (Mon, 25 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new item
-
-------------------------------------------------------------------------
-r3487 | zimmerma | 2005-04-25 12:51:56 +0000 (Mon, 25 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/expm1.c
- M /trunk/log1p.c
-
-improved expm1/log1p for small argument
-
-------------------------------------------------------------------------
-r3486 | zimmerma | 2005-04-25 12:16:12 +0000 (Mon, 25 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/expm1.c
-
-improved to taken account of case |x| small (reported by Keith Briggs)
-
-------------------------------------------------------------------------
-r3485 | vlefevre | 2005-04-25 12:12:17 +0000 (Mon, 25 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Added a missing "-" and replaced a few "-" by @minus{}.
-
-------------------------------------------------------------------------
-r3484 | vlefevre | 2005-04-25 11:53:56 +0000 (Mon, 25 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Added a note for mpfr_cmp functions.
-
-------------------------------------------------------------------------
-r3483 | zimmerma | 2005-04-25 05:41:27 +0000 (Mon, 25 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
- M /trunk/tests/tset_ld.c
-
-fixed bug with tiny number
-
-------------------------------------------------------------------------
-r3482 | zimmerma | 2005-04-22 22:23:09 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed done item
-
-------------------------------------------------------------------------
-r3481 | pelissip | 2005-04-22 15:20:22 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add a macro for mpfr_const_catalan for internal use.
-
-------------------------------------------------------------------------
-r3480 | pelissip | 2005-04-22 15:18:33 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix typos.
-
-------------------------------------------------------------------------
-r3479 | zimmerma | 2005-04-22 10:38:21 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed Root, updated eint*
-
-------------------------------------------------------------------------
-r3478 | zimmerma | 2005-04-22 10:13:05 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- A /trunk/cot.c
- A /trunk/csc.c
- A /trunk/gen_inverse.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/sec.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tcot.c
- A /trunk/tests/tcsc.c
- A /trunk/tests/tsec.c
-
-added sec, csc, cot
-
-------------------------------------------------------------------------
-r3477 | zimmerma | 2005-04-22 08:48:44 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-proposal for exponential integral definition
-
-------------------------------------------------------------------------
-r3476 | zimmerma | 2005-04-22 05:38:41 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- M /trunk/tests/Makefile.am
-
-added mpfr_root, removed from TODO
-
-------------------------------------------------------------------------
-r3475 | zimmerma | 2005-04-22 05:32:01 +0000 (Fri, 22 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/cbrt.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/root.c
- M /trunk/tests/tgeneric.c
- A /trunk/tests/troot.c
-
-added mpfr_root
-
-------------------------------------------------------------------------
-r3474 | vlefevre | 2005-04-21 15:21:40 +0000 (Thu, 21 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3469 | vlefevre | 2005-04-21 13:05:42 +0000 (Thu, 21 Apr 2005) | 4 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Added the ability to change the control word when compiling tset_ld
-with -DWITH_FPU_CONTROL=1 and executing tset_ld with an argument
-(not used in the automatical tests yet).
-
-------------------------------------------------------------------------
-r3465 | vlefevre | 2005-04-21 09:32:22 +0000 (Thu, 21 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Added test_small (the same as in the 2.1 branch).
-
-------------------------------------------------------------------------
-r3463 | vlefevre | 2005-04-21 09:14:46 +0000 (Thu, 21 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-Updated a comment and reformatted the code.
-
-------------------------------------------------------------------------
-r3460 | zimmerma | 2005-04-21 06:33:22 +0000 (Thu, 21 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added explanation
-
-------------------------------------------------------------------------
-r3457 | zimmerma | 2005-04-20 07:59:38 +0000 (Wed, 20 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/const_catalan.c
- M /trunk/tests/Makefile.am
-
-adjusted initial guard digits for const_catalan to avoid failure for prec<=10^4
-
-------------------------------------------------------------------------
-r3456 | zimmerma | 2005-04-20 05:53:17 +0000 (Wed, 20 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/const_catalan.c
- M /trunk/mpfr.texi
- M /trunk/tests/tconst_catalan.c
-
-updated documentation and improved tests for mpfr_const_catalan
-
-------------------------------------------------------------------------
-r3455 | zimmerma | 2005-04-20 03:43:06 +0000 (Wed, 20 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed Catalan's constant (done)
-
-------------------------------------------------------------------------
-r3454 | zimmerma | 2005-04-20 03:40:24 +0000 (Wed, 20 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- A /trunk/const_catalan.c
- M /trunk/free_cache.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- A /trunk/tests/tconst_catalan.c
-
-added Catalan's constant
-
-------------------------------------------------------------------------
-r3453 | zimmerma | 2005-04-20 01:23:23 +0000 (Wed, 20 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added efficiency items suggested by Geoff Bailey
-
-------------------------------------------------------------------------
-r3452 | zimmerma | 2005-04-20 00:12:45 +0000 (Wed, 20 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/atan2.c
-
-fixed minor problem (wrong rounding mode for x=0, y<0), thanks Geoff Bailey
-
-------------------------------------------------------------------------
-r3451 | zimmerma | 2005-04-19 09:23:28 +0000 (Tue, 19 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one efficiency item
-
-------------------------------------------------------------------------
-r3450 | zimmerma | 2005-04-19 09:01:03 +0000 (Tue, 19 Apr 2005) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-completely rewritten algorithm and error analysis for acosh
-(did not match those in acosh.c)
-
-------------------------------------------------------------------------
-r3449 | zimmerma | 2005-04-19 08:59:31 +0000 (Tue, 19 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-algorithm and error bound did not match those of algorithm.tex!!!
-
-------------------------------------------------------------------------
-r3448 | zimmerma | 2005-04-19 07:50:22 +0000 (Tue, 19 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added missing functions for Magma
-
-------------------------------------------------------------------------
-r3447 | zimmerma | 2005-04-19 07:17:54 +0000 (Tue, 19 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr.texi
-
-changed semantics of mpfr_get_str for ndigits=0
-
-------------------------------------------------------------------------
-r3446 | zimmerma | 2005-04-14 13:44:58 +0000 (Thu, 14 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one item (efficiency)
-
-------------------------------------------------------------------------
-r3445 | pelissip | 2005-04-14 13:29:06 +0000 (Thu, 14 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/atan2.c
- M /trunk/mpfr.texi
- M /trunk/tests/tatan.c
-
-Fix atan2 to fit C99 semantic.
-
-------------------------------------------------------------------------
-r3444 | pelissip | 2005-04-14 09:20:24 +0000 (Thu, 14 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix typos.
-
-------------------------------------------------------------------------
-r3443 | pelissip | 2005-04-14 09:20:13 +0000 (Thu, 14 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/atan2.c
-
-Add TODO.
-
-------------------------------------------------------------------------
-r3442 | pelissip | 2005-04-14 08:48:54 +0000 (Thu, 14 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add documentation for mpfr_subnormalize.
-
-------------------------------------------------------------------------
-r3441 | pelissip | 2005-04-14 08:14:49 +0000 (Thu, 14 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/subnormal.c
-
-Fix bugs.
-
-------------------------------------------------------------------------
-r3440 | pelissip | 2005-04-13 17:23:03 +0000 (Wed, 13 Apr 2005) | 3 lines
-Changed paths:
- M /trunk/div_ui.c
- M /trunk/tests/tsi_op.c
-
-Apply Guillaume's patch about mpfr_div_ui.
-Fix a bug in tsi_op (forget to clean memory).
-
-------------------------------------------------------------------------
-r3439 | pelissip | 2005-04-13 16:05:02 +0000 (Wed, 13 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- A /trunk/subnormal.c
-
-Add function mpfr_subnormalize (To Test!!!!!)
-
-------------------------------------------------------------------------
-r3438 | pelissip | 2005-04-13 15:48:51 +0000 (Wed, 13 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/atan2.c
-
-Add TODO.
-
-------------------------------------------------------------------------
-r3437 | pelissip | 2005-04-13 15:46:45 +0000 (Wed, 13 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/expm1.c
-
-Fix wrong comment.
-
-------------------------------------------------------------------------
-r3436 | pelissip | 2005-04-07 13:35:38 +0000 (Thu, 07 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/tests/terf.c
-
-Reenable tests.
-
-------------------------------------------------------------------------
-r3435 | pelissip | 2005-04-07 11:58:52 +0000 (Thu, 07 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add documentation about mpfr_atan2.
-
-------------------------------------------------------------------------
-r3434 | pelissip | 2005-04-07 11:34:05 +0000 (Thu, 07 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tdim.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsi_op.c
- M /trunk/tests/tsub_ui.c
-
-Improve test suite by adding new random values.
-
-------------------------------------------------------------------------
-r3433 | pelissip | 2005-04-07 07:44:14 +0000 (Thu, 07 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tsub.c
-
-Add random tests (tgeneric + random2).
-
-------------------------------------------------------------------------
-r3432 | vlefevre | 2005-04-05 09:03:29 +0000 (Tue, 05 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Test with -ansi when making a release.
-
-------------------------------------------------------------------------
-r3431 | vlefevre | 2005-04-05 08:57:29 +0000 (Tue, 05 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Typo.
-
-------------------------------------------------------------------------
-r3430 | zimmerma | 2005-04-05 07:11:53 +0000 (Tue, 05 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/div-short.c
- M /trunk/tests/terf.c
-
-replaced // comments by /* ... */
-
-------------------------------------------------------------------------
-r3428 | pelissip | 2005-04-04 10:12:29 +0000 (Mon, 04 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Add note about mpfr_neg
-
-------------------------------------------------------------------------
-r3427 | pelissip | 2005-04-04 08:54:42 +0000 (Mon, 04 Apr 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/NEWS
- M /trunk/TODO
- A /trunk/atan2.c
- M /trunk/mpfr.h
- M /trunk/tests/tatan.c
-
-Add function mpfr_atan2
-
-------------------------------------------------------------------------
-r3426 | pelissip | 2005-03-31 16:13:11 +0000 (Thu, 31 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
- M /trunk/mpfr-gmp.h
- M /trunk/mulders.c
-
-Change to add future function mpfr_sqrhigh_n.
-
-------------------------------------------------------------------------
-r3425 | pelissip | 2005-03-31 14:52:03 +0000 (Thu, 31 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add documentation for mpfr_erfc.
-
-------------------------------------------------------------------------
-r3424 | pelissip | 2005-03-31 13:26:32 +0000 (Thu, 31 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Add items.
-
-------------------------------------------------------------------------
-r3423 | pelissip | 2005-03-31 13:13:58 +0000 (Thu, 31 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- A /trunk/erfc.c
- M /trunk/mpfr.h
- M /trunk/tests/terf.c
- M /trunk/tests/tgeneric.c
-
-Add function mpfr_erfc.
-Add a note about auto-checking correctness of MPFR.
-
-------------------------------------------------------------------------
-r3422 | vlefevre | 2005-03-30 14:49:03 +0000 (Wed, 30 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Added a testcase (the one added to the 2.1 branch).
-
-------------------------------------------------------------------------
-r3420 | pelissip | 2005-03-30 14:14:46 +0000 (Wed, 30 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Use random2 instead of random.
-
-------------------------------------------------------------------------
-r3419 | vlefevre | 2005-03-30 13:38:59 +0000 (Wed, 30 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/round_p.c
-
-Weaker conditions for return 0 in mpfr_round_p.
-
-------------------------------------------------------------------------
-r3418 | pelissip | 2005-03-30 13:13:20 +0000 (Wed, 30 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/tgeneric.c
- A /trunk/tests/tgeneric_ui.c
- M /trunk/tests/tpow.c
-
-Add generic test for functions which looks
- inexact = MPFR_TOTO (rop, op, INTEGER, RND);
-
-------------------------------------------------------------------------
-r3417 | pelissip | 2005-03-30 12:58:45 +0000 (Wed, 30 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
-
-Add ceil(log2(size)) bits to initial precision to avoid
-committing in error for huge operands.
-
-------------------------------------------------------------------------
-r3416 | vlefevre | 2005-03-30 12:21:53 +0000 (Wed, 30 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Added a test (corresp. to the one added on 2005-03-25 in tpow_z.c).
-
-------------------------------------------------------------------------
-r3415 | vlefevre | 2005-03-29 10:25:12 +0000 (Tue, 29 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
-
-Reformatted code (GNU style, untabify...).
-
-------------------------------------------------------------------------
-r3414 | pelissip | 2005-03-29 08:42:07 +0000 (Tue, 29 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Tiny update.
-Add group functions macros.
-
-------------------------------------------------------------------------
-r3413 | pelissip | 2005-03-29 07:51:18 +0000 (Tue, 29 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/tests/tpow_z.c
-
-Replace test ('p <= i') by assertion ('p > i).
-
-------------------------------------------------------------------------
-r3412 | zimmerma | 2005-03-25 21:35:57 +0000 (Fri, 25 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/mpfr.texi
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tpow_z.c
-
-fixed bug in pow_ui (and pow_z): missing factor 2 in error bound
-fixed bug in gamma of negative integer
-
-------------------------------------------------------------------------
-r3411 | pelissip | 2005-03-25 15:03:13 +0000 (Fri, 25 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/div-short.c
-
-Add info.
-
-------------------------------------------------------------------------
-r3410 | pelissip | 2005-03-25 15:02:36 +0000 (Fri, 25 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/print_raw.c
-
-Add new internal function for debugging reasons.
-
-------------------------------------------------------------------------
-r3409 | pelissip | 2005-03-25 08:43:12 +0000 (Fri, 25 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-Forget to free x and y
-
-------------------------------------------------------------------------
-r3408 | pelissip | 2005-03-25 08:38:26 +0000 (Fri, 25 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow_z.c
-
-Add failed regression test.
-
-------------------------------------------------------------------------
-r3407 | pelissip | 2005-03-25 08:38:10 +0000 (Fri, 25 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/div-short.c
-
-Improved version.
-
-------------------------------------------------------------------------
-r3406 | pelissip | 2005-03-25 08:32:09 +0000 (Fri, 25 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
- M /trunk/tests/tmul.c
-
-Undo previous change (I was wrong).
-Add new regression test.
-
-------------------------------------------------------------------------
-r3405 | pelissip | 2005-03-24 10:47:41 +0000 (Thu, 24 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
-
-Fix wrong extimated precision.
-It is log2(n+2) ulps so that log2(log2(n+2)) bits!
-
-------------------------------------------------------------------------
-r3404 | pelissip | 2005-03-24 10:01:31 +0000 (Thu, 24 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/div-short.c
-
-Add checking.
-
-------------------------------------------------------------------------
-r3403 | zimmerma | 2005-03-23 19:55:06 +0000 (Wed, 23 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added new test
-
-------------------------------------------------------------------------
-r3402 | pelissip | 2005-03-23 14:42:35 +0000 (Wed, 23 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tget_f.c
-
-Remove an signed integer trap overflow (GCC 4 + '-ftrapv').
-
-------------------------------------------------------------------------
-r3401 | pelissip | 2005-03-23 13:04:37 +0000 (Wed, 23 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Don't use Mulder at n+1 for MPFR_MUL_THRESHOLD+1
-
-------------------------------------------------------------------------
-r3400 | pelissip | 2005-03-23 13:03:55 +0000 (Wed, 23 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-Reduce the threshold for AMD64.
-
-------------------------------------------------------------------------
-r3399 | pelissip | 2005-03-22 13:58:19 +0000 (Tue, 22 Mar 2005) | 2 lines
-Changed paths:
- A /trunk/div-short.c
-
-Initial version of Short Division.
-
-------------------------------------------------------------------------
-r3398 | pelissip | 2005-03-22 12:18:33 +0000 (Tue, 22 Mar 2005) | 4 lines
-Changed paths:
- M /trunk/mul.c
-
-Fix bug on HP-UX.
-longlong's umul_ppmm seems to be buggy on such a system.
-Don't use it under HP-UX.
-
-------------------------------------------------------------------------
-r3396 | pelissip | 2005-03-21 10:34:12 +0000 (Mon, 21 Mar 2005) | 5 lines
-Changed paths:
- M /trunk/mul.c
- M /trunk/tests/tmul.c
- M /trunk/tuneup.c
-
-Add case where bn == 1 and bn == 2 by using longlong.h.
-Modify tuneup to start with prec=2*BITS_PER_MP_LIMB+1
-Fix bug in computing the estimated precision when you switch from N limbs to N+1 limbs.
-Add regression tests.
-
-------------------------------------------------------------------------
-r3395 | vlefevre | 2005-03-19 01:27:54 +0000 (Sat, 19 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/isqrt.c
-
-Typo.
-
-------------------------------------------------------------------------
-r3394 | zimmerma | 2005-03-18 07:44:55 +0000 (Fri, 18 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one efficiency item
-
-------------------------------------------------------------------------
-r3393 | zimmerma | 2005-03-17 12:54:56 +0000 (Thu, 17 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added two property-tests
-
-------------------------------------------------------------------------
-r3391 | vlefevre | 2005-03-17 00:15:18 +0000 (Thu, 17 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/atanh.c
- M /trunk/tests/tatanh.c
-
-Fixed a bug for mpfr_atanh(x) with 1 < |x| < 2 (found by Matt Reddick).
-
-------------------------------------------------------------------------
-r3390 | pelissip | 2005-03-14 10:07:14 +0000 (Mon, 14 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Update
-
-------------------------------------------------------------------------
-r3389 | pelissip | 2005-03-14 10:05:56 +0000 (Mon, 14 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-Improve test: compare between mpfr_round_p and mpfr_can_round.
-
-------------------------------------------------------------------------
-r3388 | pelissip | 2005-03-14 09:50:29 +0000 (Mon, 14 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/const_euler.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/erf.c
- M /trunk/exp2.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/mul.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/ui_pow_ui.c
- M /trunk/zeta.c
-
-Replace mpfr_can_round (..., GMP_RNDN, GMP_RNDZ, ...) to fast replacement
-mpfr_round_p.
-
-------------------------------------------------------------------------
-r3387 | pelissip | 2005-03-14 09:49:36 +0000 (Mon, 14 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/round_prec.c
-
-Remove a FIXME.
-
-------------------------------------------------------------------------
-r3386 | pelissip | 2005-03-14 09:48:45 +0000 (Mon, 14 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr-impl.h
- A /trunk/round_p.c
-
-Add new internal function mpfr_round_p which is a fast replacement
-to mpfr_can_round (x, y, GMP_RNDN, GMP_RNDZ, ...)
-
-------------------------------------------------------------------------
-r3385 | pelissip | 2005-03-14 09:47:44 +0000 (Mon, 14 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-Improve an error message.
-
-------------------------------------------------------------------------
-r3384 | pelissip | 2005-03-10 10:46:06 +0000 (Thu, 10 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
-
-Fix bug: tmp may have changed in mulhigh code.
-Restore it before calling mpn_mul.
-
-------------------------------------------------------------------------
-r3383 | pelissip | 2005-03-09 15:53:12 +0000 (Wed, 09 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-Better defaults threshold.
-
-------------------------------------------------------------------------
-r3381 | pelissip | 2005-03-09 14:24:09 +0000 (Wed, 09 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
-
-Handle case where Prec(a) ~ estimated prec of mulhigh.
-Add one extra limb, and still uses mulhigh.
-
-------------------------------------------------------------------------
-r3380 | pelissip | 2005-03-09 14:23:19 +0000 (Wed, 09 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tuneup.c
-
-Fix bug: compute Mulder Threshold from n/2+1 instead of (n+1)/2
-
-------------------------------------------------------------------------
-r3379 | pelissip | 2005-03-09 12:25:47 +0000 (Wed, 09 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Forget ';;' in switch.
-
-------------------------------------------------------------------------
-r3378 | pelissip | 2005-03-09 11:13:31 +0000 (Wed, 09 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Add '-v' for tuneup.
-
-------------------------------------------------------------------------
-r3377 | pelissip | 2005-03-09 11:10:56 +0000 (Wed, 09 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
- M /trunk/mulders.c
-
-Add assertion.
-
-------------------------------------------------------------------------
-r3376 | pelissip | 2005-03-09 10:49:38 +0000 (Wed, 09 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mul.c
- M /trunk/tests/tmul.c
-
-Improve checking
-Add test. Short Mulder product failed for this.
-
-------------------------------------------------------------------------
-r3375 | pelissip | 2005-03-09 10:20:51 +0000 (Wed, 09 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mul.c
- M /trunk/sub1sp.c
-
-Improve full assertion mode (Check mpfr_mul).
-
-------------------------------------------------------------------------
-r3373 | pelissip | 2005-03-08 16:06:36 +0000 (Tue, 08 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/logging.c
- M /trunk/mpfr-impl.h
-
-Move GLIBC detection from mpfr-impl to logging.c
-
-------------------------------------------------------------------------
-r3372 | pelissip | 2005-03-08 16:06:18 +0000 (Tue, 08 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Add log info.
-
-------------------------------------------------------------------------
-r3371 | pelissip | 2005-03-08 16:06:01 +0000 (Tue, 08 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-Improve default threshold.
-
-------------------------------------------------------------------------
-r3370 | pelissip | 2005-03-08 14:32:09 +0000 (Tue, 08 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/mul.c
- M /trunk/tuneup.c
-
-Add Mulder Short product for mpfr_mul.
-Update algorithm.tex to describe the estimated error.
-
-------------------------------------------------------------------------
-r3369 | pelissip | 2005-03-08 14:14:49 +0000 (Tue, 08 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mulders.c
-
-Add an assert.
-Cosmetic change.
-
-------------------------------------------------------------------------
-r3368 | pelissip | 2005-03-08 14:14:08 +0000 (Tue, 08 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-Update default values.
-
-------------------------------------------------------------------------
-r3367 | pelissip | 2005-03-08 14:13:35 +0000 (Tue, 08 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Clean up macro namespace.
-
-------------------------------------------------------------------------
-r3366 | pelissip | 2005-03-08 14:13:07 +0000 (Tue, 08 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tsqrt.c
-
-Cosmetics change.
-
-------------------------------------------------------------------------
-r3365 | zimmerma | 2005-03-08 13:24:44 +0000 (Tue, 08 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_f.c
- M /trunk/mpfr.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_f.c
-
-new function mpfr_get_f
-
-------------------------------------------------------------------------
-r3364 | pelissip | 2005-03-08 08:57:00 +0000 (Tue, 08 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/tests/tadd1sp.c
-
-Fix bug in case of reuse of variable (a,b,a) with Exp(b)=Exp(a)+Prec(b).
-Move copy of mantissa after test.
-
-------------------------------------------------------------------------
-r3363 | pelissip | 2005-03-07 11:40:39 +0000 (Mon, 07 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.in
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mulders.c
- M /trunk/tuneup.c
-
-Add tune for mpfr_mulhigh
-Add --with-mulhigh-size option at configure time.
-
-------------------------------------------------------------------------
-r3362 | pelissip | 2005-03-04 17:40:53 +0000 (Fri, 04 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
- M /trunk/tests/texp.c
-
-Fix bug due to wrong estimation of (get_d (x) / LOG2).
-TODO: Rexamine the algorithm of mpfr_exp_2!
-
-------------------------------------------------------------------------
-r3361 | pelissip | 2005-03-04 17:32:13 +0000 (Fri, 04 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-Transform DEBUG message to LOG message.
-
-------------------------------------------------------------------------
-r3360 | pelissip | 2005-03-04 17:14:03 +0000 (Fri, 04 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mulders.c
-
-Improve it.
-
-------------------------------------------------------------------------
-r3359 | pelissip | 2005-03-04 17:13:42 +0000 (Fri, 04 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
- M /trunk/mparam_h.in
- M /trunk/tuneup.c
-
-Tune mpfr_exp_2 now!
-
-------------------------------------------------------------------------
-r3358 | pelissip | 2005-03-03 14:59:25 +0000 (Thu, 03 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mulders.c
-
-Fix bugs.
-
-------------------------------------------------------------------------
-r3357 | pelissip | 2005-03-03 14:25:20 +0000 (Thu, 03 Mar 2005) | 3 lines
-Changed paths:
- M /trunk/mulders.c
-
-Update it.
-New code for mpfr_mul.
-
-------------------------------------------------------------------------
-r3356 | pelissip | 2005-03-02 10:46:39 +0000 (Wed, 02 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/mparam_h.in
-
-Add new default threshold for different CPU.
-
-------------------------------------------------------------------------
-r3355 | pelissip | 2005-03-02 10:23:31 +0000 (Wed, 02 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Update for tune.
-
-------------------------------------------------------------------------
-r3354 | pelissip | 2005-03-02 08:57:26 +0000 (Wed, 02 Mar 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/tests/tatan.c
-
-Fix bug in estimated error (See previous ChangeLog).
-
-------------------------------------------------------------------------
-r3353 | pelissip | 2005-02-24 17:32:25 +0000 (Thu, 24 Feb 2005) | 6 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.in
- A /trunk/mparam_h.in
- M /trunk/mpfr-impl.h
- M /trunk/tests/Makefile.am
- A /trunk/tuneup.c
-
-Add tune program for MPFR.
-Do make tune instead of make.
-BUT you need to have configure MPFR with --with-gmp-build=...
-(It uses internal libspeed.la of GMP).
-Tuning is slow...
-
-------------------------------------------------------------------------
-r3352 | pelissip | 2005-02-24 17:08:27 +0000 (Thu, 24 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/mulders.c
-
-Add note.
-
-------------------------------------------------------------------------
-r3349 | pelissip | 2005-02-22 16:40:41 +0000 (Tue, 22 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/fits_s.h
- M /trunk/fits_u.h
-
-Tiny optimization
-
-------------------------------------------------------------------------
-r3348 | pelissip | 2005-02-22 12:30:56 +0000 (Tue, 22 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Update
-
-------------------------------------------------------------------------
-r3347 | pelissip | 2005-02-22 12:12:18 +0000 (Tue, 22 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/const_log2.c
- M /trunk/const_pi.c
-
-Add logging.
-
-------------------------------------------------------------------------
-r3346 | pelissip | 2005-02-22 10:50:14 +0000 (Tue, 22 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/div_ui.c
- M /trunk/mul_ui.c
- M /trunk/si_op.c
- M /trunk/ui_div.c
-
-Reduce InterObject dependency by moving mul_si, div_si and si_div
-to the unique function they used.
-Improve mul_ui by inlining the rounding.
-
-------------------------------------------------------------------------
-r3345 | pelissip | 2005-02-21 13:48:23 +0000 (Mon, 21 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-Improve test to 1.
-
-------------------------------------------------------------------------
-r3344 | vlefevre | 2005-02-21 13:08:46 +0000 (Mon, 21 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
- M /trunk/tests/tcos.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tsin.c
-
-Updated copyright lines.
-
-------------------------------------------------------------------------
-r3342 | vlefevre | 2005-02-21 12:13:00 +0000 (Mon, 21 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sub_ui.c
-
-Code reindented / reformatted.
-
-------------------------------------------------------------------------
-r3341 | vlefevre | 2005-02-21 12:09:47 +0000 (Mon, 21 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
- M /trunk/ui_sub.c
-
-Fixed a bug for u == 0 and x == +0 introduced in ui_sub.c 1.23,
-when 0 was taken into account as a special case: the sign of the
-result 0 was incorrect. -> Consider the case u == 0 first.
-
-------------------------------------------------------------------------
-r3340 | zimmerma | 2005-02-19 22:04:01 +0000 (Sat, 19 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tests/RRTest.c
- M /trunk/tests/tcos.c
- M /trunk/tests/texp.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsin.c
-
-added generic tests in tpow
-
-------------------------------------------------------------------------
-r3339 | zimmerma | 2005-02-18 22:09:19 +0000 (Fri, 18 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
- M /trunk/tests/tsqrt.c
-
-fixed bug (variable used twice for different things)
-
-------------------------------------------------------------------------
-r3338 | zimmerma | 2005-02-18 20:19:44 +0000 (Fri, 18 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
- M /trunk/mpfr-test.h
- M /trunk/tests/RRTest.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
-
-more changes for interface with NTL
-
-------------------------------------------------------------------------
-r3337 | pelissip | 2005-02-18 16:33:39 +0000 (Fri, 18 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/round_prec.c
-
-Likely a test.
-
-------------------------------------------------------------------------
-r3336 | pelissip | 2005-02-18 16:33:25 +0000 (Fri, 18 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/mulders.c
-
-Update
-
-------------------------------------------------------------------------
-r3335 | zimmerma | 2005-02-18 15:28:25 +0000 (Fri, 18 Feb 2005) | 2 lines
-Changed paths:
- A /trunk/tests/RRTest.c
- M /trunk/tests/tadd.c
-
-added interface for NTL
-
-------------------------------------------------------------------------
-r3334 | vlefevre | 2005-02-16 17:08:25 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3333 | vlefevre | 2005-02-16 17:05:19 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Suppress some spaces.
-
-------------------------------------------------------------------------
-r3332 | pelissip | 2005-02-16 16:04:54 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Reenable underflow tests.
-
-------------------------------------------------------------------------
-r3331 | pelissip | 2005-02-16 15:58:48 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Update
-
-------------------------------------------------------------------------
-r3330 | vlefevre | 2005-02-16 13:27:24 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- D /trunk/texinfo.tex
-
-Removed texinfo.tex, as it can be installed by autoreconf -i.
-
-------------------------------------------------------------------------
-r3329 | pelissip | 2005-02-16 13:19:25 +0000 (Wed, 16 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-Fix LOADLIBES so that it works (it doesn't due to libtool change). But it
-still needs to have s static version of MPFR.
-
-------------------------------------------------------------------------
-r3328 | vlefevre | 2005-02-16 12:54:27 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-autoreconf -> autoreconf -i
-
-------------------------------------------------------------------------
-r3327 | pelissip | 2005-02-16 12:49:40 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/asinh.c
- M /trunk/exp3.c
- M /trunk/mpfr-impl.h
- M /trunk/sin_cos.c
- M /trunk/tan.c
-
-Fix wrong integer types.
-
-------------------------------------------------------------------------
-r3324 | vlefevre | 2005-02-16 11:03:35 +0000 (Wed, 16 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
- M /trunk/mul.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
-
-Spelling mistakes & reformatted code.
-
-------------------------------------------------------------------------
-r3322 | vlefevre | 2005-02-15 16:28:31 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sub1.c
-
-Reformatted code.
-
-------------------------------------------------------------------------
-r3321 | pelissip | 2005-02-15 14:56:00 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tanh.c
-
-Improve initial prec.
-
-------------------------------------------------------------------------
-r3319 | pelissip | 2005-02-15 14:52:06 +0000 (Tue, 15 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/tanh.c
-
-Remove code.
-Add special case if t=1.
-
-------------------------------------------------------------------------
-r3318 | pelissip | 2005-02-15 14:51:51 +0000 (Tue, 15 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/sub1.c
-
-mpfr_set doesn't produce an EVEN inexact flag.
-Fix this.
-
-------------------------------------------------------------------------
-r3317 | pelissip | 2005-02-15 14:51:23 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-USe of mpfr_nexttozero.
-
-------------------------------------------------------------------------
-r3316 | pelissip | 2005-02-15 14:32:16 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/atanh.c
-
-Fix bug: use x instead of xf in LOG.
-
-------------------------------------------------------------------------
-r3315 | pelissip | 2005-02-15 10:29:31 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cosh.c
- M /trunk/erf.c
- M /trunk/exp.c
- M /trunk/gamma.c
- M /trunk/log.c
- M /trunk/pow.c
- M /trunk/sinh.c
- M /trunk/tanh.c
- M /trunk/zeta.c
-
-Log input and output of functions.
-
-------------------------------------------------------------------------
-r3314 | pelissip | 2005-02-15 10:06:39 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tan.c
-
-Fix bug of overflow in tan.
-
-------------------------------------------------------------------------
-r3313 | pelissip | 2005-02-15 09:54:23 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/tan.c
-
-Use of MPFR_LOG_FUNC.
-
-------------------------------------------------------------------------
-r3312 | pelissip | 2005-02-15 09:53:44 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Do not print final log message if there was no call.
-
-------------------------------------------------------------------------
-r3311 | pelissip | 2005-02-15 09:39:57 +0000 (Tue, 15 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-Add ZivLoop for sign
-
-------------------------------------------------------------------------
-r3310 | pelissip | 2005-02-14 16:02:59 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/logging.c
-
-Fix bug: during the display of a logged var, logging is turn off.
-
-------------------------------------------------------------------------
-r3309 | pelissip | 2005-02-14 15:55:12 +0000 (Mon, 14 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/mpfr-impl.h
-
-Add MPFR_LOG_FUNC
-Use mpfr_cos as testing example.
-
-------------------------------------------------------------------------
-r3308 | pelissip | 2005-02-14 14:38:06 +0000 (Mon, 14 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
-
-Add ZivLoop controller for constantes.
-Augment exponent range in the cache.
-Remove it in const_pi.
-
-------------------------------------------------------------------------
-r3307 | pelissip | 2005-02-14 14:23:13 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-Add generic ZivLoop controller.
-
-------------------------------------------------------------------------
-r3306 | fousse | 2005-02-14 14:21:50 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Document mpfr_sum returned int value.
-
-------------------------------------------------------------------------
-r3305 | pelissip | 2005-02-14 14:18:40 +0000 (Mon, 14 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/strtofr.c
- M /trunk/sum.c
- M /trunk/ui_pow_ui.c
- M /trunk/zeta.c
-
-Clean up code.
-Add generic ZivLoop controller.
-
-------------------------------------------------------------------------
-r3303 | fousse | 2005-02-14 13:33:31 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-Consider return value's precision for rounding in mpfr_sum.
-
-------------------------------------------------------------------------
-r3302 | zimmerma | 2005-02-14 12:41:16 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
-
-removed garbage
-
-------------------------------------------------------------------------
-r3301 | pelissip | 2005-02-14 11:26:45 +0000 (Mon, 14 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/gamma.c
- M /trunk/hypot.c
-
-Clean up
-Add ZivLoop
-
-------------------------------------------------------------------------
-r3300 | pelissip | 2005-02-14 10:55:09 +0000 (Mon, 14 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/const_log2.c
-
-Remove malloc/free.
-Use of MPFR_INT_CEIL_LOG2
-Add ZivLoop controller.
-
-------------------------------------------------------------------------
-r3299 | pelissip | 2005-02-14 10:54:42 +0000 (Mon, 14 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/erf.c
-
-Clean up code.
-Fix bug with Exponent range.
-Add ZivLoop controller.
-
-------------------------------------------------------------------------
-r3298 | pelissip | 2005-02-14 10:54:06 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/cbrt.c
-
-Cleanup code.
-
-------------------------------------------------------------------------
-r3297 | zimmerma | 2005-02-14 10:38:04 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/const_log2.c
-
-further efficiency improvement (avoid mpz_init/mpz_clear)
-
-------------------------------------------------------------------------
-r3296 | pelissip | 2005-02-14 10:11:17 +0000 (Mon, 14 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/asinh.c
- M /trunk/atanh.c
-
-Add ZivLoop controller.
-Clean up code.
-Optimize it by removing the # of used vars.
-
-------------------------------------------------------------------------
-r3295 | pelissip | 2005-02-14 10:10:51 +0000 (Mon, 14 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/asin.c
- M /trunk/atan.c
-
-Add ZivLoop controller.
-
-------------------------------------------------------------------------
-r3294 | zimmerma | 2005-02-12 16:01:39 +0000 (Sat, 12 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/const_log2.c
- M /trunk/mpfr-impl.h
-
-new faster algorithm for log(2)
-
-------------------------------------------------------------------------
-r3293 | pelissip | 2005-02-11 13:08:25 +0000 (Fri, 11 Feb 2005) | 6 lines
-Changed paths:
- M /trunk/configure.in
-
-Remove detection of C++ and Fortran due to libtool.
-----
-Note (VL, 2010-02-08): this removal by an always false test was working
-with libtool 1.5.26, but doesn't work with libtool 2.2 to 2.2.6b (used
-by the MPFR 2.4.{0,1,2} tarballs).
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568520
-------------------------------------------------------------------------
-r3292 | pelissip | 2005-02-11 11:28:00 +0000 (Fri, 11 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.in
- M /trunk/tests/Makefile.am
-
-Clean up configure (simpler).
-Still a bug with CXXCPP to solve.
-
-------------------------------------------------------------------------
-r3291 | pelissip | 2005-02-11 11:27:36 +0000 (Fri, 11 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/const_log2.c
- M /trunk/mpfr-impl.h
-
-Clean up const_log2 code.
-
-------------------------------------------------------------------------
-r3290 | pelissip | 2005-02-10 15:43:41 +0000 (Thu, 10 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/cosh.c
- M /trunk/exp.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/log.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
-
-Add log for other functions.
-Add ZivLoop too.
-Cleanup exp3.
-
-------------------------------------------------------------------------
-r3289 | pelissip | 2005-02-09 16:24:18 +0000 (Wed, 09 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Update for ICC (disable shared since it doesn't work).
-
-------------------------------------------------------------------------
-r3288 | pelissip | 2005-02-09 15:05:45 +0000 (Wed, 09 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-The previous fixs don't work. New one which works but is VERY ugly.
-
-------------------------------------------------------------------------
-r3287 | pelissip | 2005-02-09 14:26:29 +0000 (Wed, 09 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Fix again to avoid fail on laurent5...
-
-------------------------------------------------------------------------
-r3286 | pelissip | 2005-02-09 14:21:48 +0000 (Wed, 09 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Set CXXCPP to "g++ -E" to avoid detection (which may fail on some systems).
-
-------------------------------------------------------------------------
-r3285 | pelissip | 2005-02-09 14:11:13 +0000 (Wed, 09 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Reduce the tested compiler for C++ and Fortran to the minimum.
-
-------------------------------------------------------------------------
-r3284 | pelissip | 2005-02-09 13:19:17 +0000 (Wed, 09 Feb 2005) | 6 lines
-Changed paths:
- M /trunk/configure.in
-
-Update GMP detection to be much more libtool compatible.
-As a consequence some tests using AC_RUN_IFELSE may fail due to ugly things
-like LD_LIBRARY_PATH no set or wrong selection of libgmp.
-So they just produce a warning, not a fatal error.
-TODO: Check if we can avoid those problems...
-
-------------------------------------------------------------------------
-r3283 | pelissip | 2005-02-08 15:49:12 +0000 (Tue, 08 Feb 2005) | 3 lines
-Changed paths:
- D /trunk/ansi2knr.1
- D /trunk/ansi2knr.c
- D /trunk/config.guess
- D /trunk/config.sub
- D /trunk/depcomp
- D /trunk/install-sh
- D /trunk/missing
- D /trunk/mkinstalldirs
- M /trunk/prepare
-
-Remove automake and libtool files.
-Use `automake --add-missing --copy -i` to generate them.
-
-------------------------------------------------------------------------
-r3282 | pelissip | 2005-02-08 13:57:04 +0000 (Tue, 08 Feb 2005) | 2 lines
-Changed paths:
- A /trunk/ansi2knr.1
- A /trunk/ansi2knr.c
-
-Add support for ansi2knr
-
-------------------------------------------------------------------------
-r3281 | pelissip | 2005-02-08 13:54:10 +0000 (Tue, 08 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/README.dev
- M /trunk/acinclude.m4
- M /trunk/configure.in
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/prepare
- M /trunk/tests/Makefile.am
- M /trunk/tests/tests.c
- M /trunk/update-version
-
-Add support for Shared Library in MPFR (both Unix and Windows) by using libtool.
-Improve configure (remove unused macros, make dist produce .zip and .bz2)
-Update update-version to modify configure.in too.
-
-------------------------------------------------------------------------
-r3280 | pelissip | 2005-02-08 13:51:09 +0000 (Tue, 08 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Update NEWS.
-
-------------------------------------------------------------------------
-r3279 | vlefevre | 2005-02-04 12:15:25 +0000 (Fri, 04 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3278 | pelissip | 2005-02-04 10:25:10 +0000 (Fri, 04 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-Add forgotten functions to reuse test.
-
-------------------------------------------------------------------------
-r3277 | pelissip | 2005-02-04 10:10:37 +0000 (Fri, 04 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-Improve reuse tests (Include 1, -1, 1/2, 2, PI and PI/2 now).
-
-------------------------------------------------------------------------
-r3276 | pelissip | 2005-02-04 09:14:37 +0000 (Fri, 04 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/tests/tatan.c
-
-Fix bug of atan(-1) (wrong sign).
-
-------------------------------------------------------------------------
-r3275 | pelissip | 2005-02-03 16:03:50 +0000 (Thu, 03 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Remove unused option --disable-cache.
-
-------------------------------------------------------------------------
-r3274 | pelissip | 2005-02-03 15:59:28 +0000 (Thu, 03 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/set_dfl_prec.c
- M /trunk/set_rnd.c
-
-Add option "thread-safe" to configure.
-Limited to use with GCC and ICC (using extension __thread).
-
-------------------------------------------------------------------------
-r3273 | pelissip | 2005-02-03 15:18:17 +0000 (Thu, 03 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add description of added functions.
-
-------------------------------------------------------------------------
-r3272 | pelissip | 2005-02-03 15:09:51 +0000 (Thu, 03 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-mpfr.h doesn't export anymore any globals.
-It doesn't define MPFR_FLAGS too.
-
-------------------------------------------------------------------------
-r3271 | pelissip | 2005-02-03 14:59:39 +0000 (Thu, 03 Feb 2005) | 7 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-Change user interface for mpfr_const_pi, mpfr_const_log2 and
-mpfr_const_euler. No more access to the cache itself.
-Create dummy functions which call the cache, and rename old
-functions to "_internal".
-Internally, it doesn't change at all (You still call directly
-the cache instead of the dummy function which calls the cache).
-
-------------------------------------------------------------------------
-r3270 | pelissip | 2005-02-03 14:43:20 +0000 (Thu, 03 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/mpfr.h
- M /trunk/tests/texceptions.c
-
-Add functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_erangeflag,
-mpfr_set_inexflag, mpfr_set_nanflag
-
-------------------------------------------------------------------------
-r3269 | pelissip | 2005-02-03 14:33:31 +0000 (Thu, 03 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/add1sp.c
- M /trunk/add_one_ulp.c
- M /trunk/cache.c
- M /trunk/div.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/pow.c
- M /trunk/pow_ui.c
- M /trunk/pow_z.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/set_q.c
- M /trunk/set_si.c
- M /trunk/set_sj.c
- M /trunk/set_ui.c
- M /trunk/set_uj.c
- M /trunk/set_z.c
- M /trunk/sqr.c
- M /trunk/strtofr.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_one_ulp.c
- M /trunk/tests/texceptions.c
-
-Rename internal functions mpfr_set_overflow in mpfr_overflow and
- mpfr_set_underflow in mpfr_underflow so that we can add new functions
-mpfr_set_underflow and mpfr_set_overflow (which set the global flags).
-
-------------------------------------------------------------------------
-r3268 | pelissip | 2005-02-03 12:46:18 +0000 (Thu, 03 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/sin.c
-
-Add support for logging.
-Add support for ZivLoop.
-Improve efficiency if prec(op) >> prec(rop), and rop ~= 0
-
-------------------------------------------------------------------------
-r3267 | pelissip | 2005-02-03 12:44:51 +0000 (Thu, 03 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Fix wrong place for MPFR_LOG_BEGIN.
-
-------------------------------------------------------------------------
-r3266 | pelissip | 2005-02-03 12:44:15 +0000 (Thu, 03 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/logging.c
-
-Rename MPFR_LOG_BADCASE in MPFR_LOG_ZIV
-
-------------------------------------------------------------------------
-r3265 | pelissip | 2005-02-03 12:43:44 +0000 (Thu, 03 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Reduce the size of some lines (more than 80 chars).
-
-------------------------------------------------------------------------
-r3264 | pelissip | 2005-02-02 16:30:05 +0000 (Wed, 02 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-Fix again. My previous fix was incorrect.
-
-------------------------------------------------------------------------
-r3262 | pelissip | 2005-02-02 15:55:38 +0000 (Wed, 02 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/logging.c
-
-Fix wrong order of include system files.
-(printf.h is not available everywhere).
-
-------------------------------------------------------------------------
-r3261 | zimmerma | 2005-02-02 15:50:51 +0000 (Wed, 02 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-inexact flag was inexact :-)
-
-------------------------------------------------------------------------
-r3260 | pelissip | 2005-02-02 15:49:20 +0000 (Wed, 02 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/next.c
- M /trunk/sin.c
- M /trunk/sub1.c
-
-Move mpfr_nexttozero and mpfr_nexttoinf from static to mpfr-impl.
-Use them in sub1 and sin.
-
-------------------------------------------------------------------------
-r3259 | pelissip | 2005-02-02 14:58:36 +0000 (Wed, 02 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/README.dev
- A /trunk/logging.c
-
-Add forgotten logging file.
-Add description of new macros in README.dev
-
-------------------------------------------------------------------------
-r3258 | pelissip | 2005-02-02 14:14:01 +0000 (Wed, 02 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/tests/tcos.c
-
-Add support for ZivLoop controller and logging.
-
-------------------------------------------------------------------------
-r3257 | pelissip | 2005-02-02 14:13:39 +0000 (Wed, 02 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure.in
- M /trunk/mpfr-impl.h
-
-Add experimental logging feature.
-Add ZivLoop controller.
-
-------------------------------------------------------------------------
-r3256 | pelissip | 2005-02-02 14:09:18 +0000 (Wed, 02 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-Forget that mpf doesn't have mpf_free_str.
-Fix this.
-
-------------------------------------------------------------------------
-r3255 | pelissip | 2005-02-02 13:50:45 +0000 (Wed, 02 Feb 2005) | 3 lines
-Changed paths:
- M /trunk/sub1.c
- M /trunk/tests/tsin.c
-
-Fix bug of sub1 if dest=src2 and src1 >> src2
-=> Fix problem of mpfr_sin
-
-------------------------------------------------------------------------
-r3254 | zimmerma | 2005-02-02 13:45:48 +0000 (Wed, 02 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
- M /trunk/tests/tui_sub.c
-
-added two tests
-
-------------------------------------------------------------------------
-r3253 | pelissip | 2005-02-01 14:50:19 +0000 (Tue, 01 Feb 2005) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Now MPFR tries to get GMP's CC and CFLAGS from its build directory.
-
-------------------------------------------------------------------------
-r3252 | pelissip | 2005-02-01 09:58:43 +0000 (Tue, 01 Feb 2005) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-Add AC_COPYRIGHT
-Clean up AC_ARG_ENABLE handling
-Add `--enable-logging` option.
-
-------------------------------------------------------------------------
-r3251 | zimmerma | 2005-01-31 09:37:09 +0000 (Mon, 31 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item
-
-------------------------------------------------------------------------
-r3250 | pelissip | 2005-01-31 08:47:04 +0000 (Mon, 31 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-Fix a wrong assertion when double == long double.
-
-------------------------------------------------------------------------
-r3249 | pelissip | 2005-01-31 08:44:16 +0000 (Mon, 31 Jan 2005) | 4 lines
-Changed paths:
- M /trunk/sin.c
-
-Add loop counter
-Check if the result is 0 (Due to new algorithm, it may be 0)
-and in that case, increase a lot the precision.
-
-------------------------------------------------------------------------
-r3248 | zimmerma | 2005-01-29 20:40:51 +0000 (Sat, 29 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/sin.c
-
-changed algorithm for mpfr_sin (to get inexact flag)
-
-------------------------------------------------------------------------
-r3246 | vlefevre | 2005-01-29 11:32:17 +0000 (Sat, 29 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/tests/texp.c
-
-Fixed a sign bug in mpfr_exp (found by Mark J Watkins).
-
-------------------------------------------------------------------------
-r3245 | zimmerma | 2005-01-28 16:57:22 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-solved efficiency problem in mpfr_sin_sign for x near Pi
-
-------------------------------------------------------------------------
-r3243 | vlefevre | 2005-01-28 14:22:34 +0000 (Fri, 28 Jan 2005) | 3 lines
-Changed paths:
- D /trunk/tests/tdump.c
-
-Removed tests/tdump.c (was no longer used and mpfr_dump is already
-tested in toutimpl.c).
-
-------------------------------------------------------------------------
-r3242 | vlefevre | 2005-01-28 14:20:09 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-Updated copyright line.
-
-------------------------------------------------------------------------
-r3240 | pelissip | 2005-01-28 13:49:30 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Clean up code (due to mix with Paul changes).
-
-------------------------------------------------------------------------
-r3239 | pelissip | 2005-01-28 13:43:11 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-Improve inexact code since sin & cos can't be exact if x != 0
-
-------------------------------------------------------------------------
-r3238 | vlefevre | 2005-01-28 13:28:30 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Removed a useless test in macro MPFR_UNSIGNED_MINUS_MODULO.
-
-------------------------------------------------------------------------
-r3237 | pelissip | 2005-01-28 13:10:04 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
-
-Much faster worst case (ie result near 0 or 1).
-
-------------------------------------------------------------------------
-r3236 | zimmerma | 2005-01-28 13:08:20 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-speed-up special case where approximation is 1 or -1
-
-------------------------------------------------------------------------
-r3235 | vlefevre | 2005-01-28 13:04:10 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/rint.c
-
-Updated comments about the rounding modes.
-
-------------------------------------------------------------------------
-r3234 | pelissip | 2005-01-28 12:23:55 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/reldiff.c
-
-Fix bug and optimize code.
-
-------------------------------------------------------------------------
-r3233 | pelissip | 2005-01-28 11:00:34 +0000 (Fri, 28 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/get_str.c
-
-FIx a warning (Wrong proto between declaration and implementation :
- forget some const).
-
-------------------------------------------------------------------------
-r3232 | vlefevre | 2005-01-28 10:58:01 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Updated copyright line.
-
-------------------------------------------------------------------------
-r3231 | vlefevre | 2005-01-28 10:56:19 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/cmp_si.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/div.c
- M /trunk/erf.c
- M /trunk/exp_2.c
- M /trunk/get_d.c
- M /trunk/get_ld.c
- M /trunk/get_str.c
- M /trunk/get_z_exp.c
- M /trunk/mpfr.h
- M /trunk/mpn_exp.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/rint.c
- M /trunk/set_str.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr_compat.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tzeta.c
-
-Updated copyright lines.
-
-------------------------------------------------------------------------
-r3230 | zimmerma | 2005-01-28 10:43:30 +0000 (Fri, 28 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-fixed efficiency problem in case of cos(Pi)
-
-------------------------------------------------------------------------
-r3229 | pelissip | 2005-01-28 09:58:28 +0000 (Fri, 28 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/rint.c
- M /trunk/tests/trint.c
-
-Fix bug if dest==src.
-Transform some MPFR_ASSERTN to MPFR_ASSERTD.
-
-------------------------------------------------------------------------
-r3227 | pelissip | 2005-01-27 16:02:23 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Fix a buffer overflow.
-
-------------------------------------------------------------------------
-r3226 | pelissip | 2005-01-27 15:40:39 +0000 (Thu, 27 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/get_ld.c
- M /trunk/mpfr-impl.h
- M /trunk/set_ld.c
- M /trunk/tests/tset_ld.c
-
-New version of mpfr_set_ld and mpfr_get_ld for IEEE Extended Little Endian.
-(Due to problem on x86 with extended precision).
-
-------------------------------------------------------------------------
-r3225 | zimmerma | 2005-01-27 13:58:24 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/mpfr_compat.c
-
-partially fixed memory leak
-
-------------------------------------------------------------------------
-r3224 | zimmerma | 2005-01-27 13:40:13 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-test for huge cancellation was misplaced
-
-------------------------------------------------------------------------
-r3223 | zimmerma | 2005-01-27 13:28:49 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tsum.c
-
-fixed memory leak
-
-------------------------------------------------------------------------
-r3222 | zimmerma | 2005-01-27 12:53:45 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-fixed inefficiency problem for x near from Pi
-
-------------------------------------------------------------------------
-r3221 | zimmerma | 2005-01-27 10:56:44 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmpabs.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/toutimpl.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tpow_z.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqr.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsum.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tzeta.c
-
-casts to allow compilation with g++
-
-------------------------------------------------------------------------
-r3220 | zimmerma | 2005-01-27 09:35:41 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-added missing cast
-
-------------------------------------------------------------------------
-r3219 | zimmerma | 2005-01-27 09:28:29 +0000 (Thu, 27 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-added missing casts
-
-------------------------------------------------------------------------
-r3218 | zimmerma | 2005-01-25 18:23:38 +0000 (Tue, 25 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-fixed bug (overlap in mpn_divrem)
-
-------------------------------------------------------------------------
-r3217 | vlefevre | 2005-01-24 16:23:29 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- D /trunk/tests/Makefile.in
-
-Removed tests/Makefile.in from CVS.
-
-------------------------------------------------------------------------
-r3216 | pelissip | 2005-01-24 15:48:34 +0000 (Mon, 24 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-Fix bug reported by Eric Buchlin by using new function
-mpfr_pow_z.
-
-------------------------------------------------------------------------
-r3215 | pelissip | 2005-01-24 15:36:49 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- A /trunk/pow_z.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tpow_z.c
-
-Add new function mpfr_pow_z and its test file.
-
-------------------------------------------------------------------------
-r3214 | pelissip | 2005-01-24 15:35:08 +0000 (Mon, 24 Jan 2005) | 4 lines
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/tests/tpow.c
-
-Fix overflows problems.
-Clean up overflow handling.
-Maybe some bugs remain...
-
-------------------------------------------------------------------------
-r3213 | vlefevre | 2005-01-24 15:04:05 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3212 | pelissip | 2005-01-24 14:19:20 +0000 (Mon, 24 Jan 2005) | 4 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Add an explicit reference to mpfr_dump so that
-you can use this function inside the tests with GDB, even if
-you don't use it in the tests.
-
-------------------------------------------------------------------------
-r3211 | zimmerma | 2005-01-24 13:45:38 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-added check before mpz_get_si() call
-
-------------------------------------------------------------------------
-r3210 | vlefevre | 2005-01-24 10:43:16 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update.
-
-------------------------------------------------------------------------
-r3209 | vlefevre | 2005-01-24 10:31:26 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Corrections on the typography.
-
-------------------------------------------------------------------------
-r3208 | vlefevre | 2005-01-24 10:16:51 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Corrected English usage.
-
-------------------------------------------------------------------------
-r3207 | vlefevre | 2005-01-24 00:03:59 +0000 (Mon, 24 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Typos.
-
-------------------------------------------------------------------------
-r3206 | zimmerma | 2005-01-21 12:20:54 +0000 (Fri, 21 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added LOADLIBES=...
-
-------------------------------------------------------------------------
-r3201 | vlefevre | 2005-01-21 10:20:17 +0000 (Fri, 21 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-Updated Copyright line.
-
-------------------------------------------------------------------------
-r3195 | pelissip | 2005-01-20 14:32:20 +0000 (Thu, 20 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sub1.c
-
-Fix again this previous patch!
-
-------------------------------------------------------------------------
-r3194 | zimmerma | 2005-01-20 11:23:51 +0000 (Thu, 20 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpn_exp.c
-
-fixed problems in get_str for huge exponent
-
-------------------------------------------------------------------------
-r3193 | pelissip | 2005-01-20 09:53:45 +0000 (Thu, 20 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-longlong.h
-
-Update longlong from GMP 4.1.4 (problem with opteron).
-
-------------------------------------------------------------------------
-r3192 | pelissip | 2005-01-18 13:30:50 +0000 (Tue, 18 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/sum.c
-
-Fix bug in case n==0 or n==1 (Reported and fixed by Laurent Fousse).
-
-------------------------------------------------------------------------
-r3191 | pelissip | 2005-01-14 15:02:15 +0000 (Fri, 14 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/sub1.c
-
-Add comments
-Fix bug in my patch (Need tests).
-
-------------------------------------------------------------------------
-r3190 | pelissip | 2005-01-14 13:50:09 +0000 (Fri, 14 Jan 2005) | 7 lines
-Changed paths:
- M /trunk/atan.c
-
-Optimize mpfr_atan_aux by removing all power of 2 in the sum to
-reduce the size of the multiplication, normalize the input to extract
-as many zeros as possible and add a special case if the input is 1
-(after normalisation). But it doesn't optimize too much...
-I need to invertigate a few more too understand what is still costly.
-It seems that mpz_mul is the most called function.
-
-------------------------------------------------------------------------
-r3189 | pelissip | 2005-01-14 13:28:45 +0000 (Fri, 14 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/tanh.c
-
-Improve and fix tanh for big floats.
-
-------------------------------------------------------------------------
-r3188 | pelissip | 2005-01-14 13:28:03 +0000 (Fri, 14 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/sub1.c
-
-Fix bug in some corner case (Just hope it doesn't add new bugs).
-It should be much faster in these cases too.
-
-------------------------------------------------------------------------
-r3187 | pelissip | 2005-01-14 13:26:55 +0000 (Fri, 14 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
-
-Remove warning
-
-------------------------------------------------------------------------
-r3186 | pelissip | 2005-01-14 11:40:22 +0000 (Fri, 14 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Tiny update
-
-------------------------------------------------------------------------
-r3185 | pelissip | 2005-01-14 08:20:35 +0000 (Fri, 14 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/acos.c
-
-Fix bug (Forget a debug line).
-
-------------------------------------------------------------------------
-r3184 | pelissip | 2005-01-13 16:21:47 +0000 (Thu, 13 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/sinh.c
-
-Fix overflow bug
-Optimize code
-
-------------------------------------------------------------------------
-r3183 | pelissip | 2005-01-13 08:22:09 +0000 (Thu, 13 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Fix bug in mpn_sub_nc in case the compiler optimize too much.
-
-------------------------------------------------------------------------
-r3182 | pelissip | 2005-01-12 10:00:52 +0000 (Wed, 12 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
-
-Add forgotten 2005 copyright line.
-
-------------------------------------------------------------------------
-r3181 | pelissip | 2005-01-12 09:57:57 +0000 (Wed, 12 Jan 2005) | 4 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
-
-Fix problem of `mpn_sub_nc' which may or may not be defined in libgmp.a
- (Add a test in the configure and a new macro MPFR_HAVE_MPN_SUB_NC)
-Add MPFR_LOG2_BIT_PER_MP_LIMB macro
-
-------------------------------------------------------------------------
-r3180 | pelissip | 2005-01-12 09:22:37 +0000 (Wed, 12 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/atan.c
-
-Massive optimization of mpfr_atan (20x faster than 2.1.0 at 53 bits!)
-Minor optimization of mpfr_acos
-
-------------------------------------------------------------------------
-r3179 | pelissip | 2005-01-11 16:27:42 +0000 (Tue, 11 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/mulders.c
-
-Fix typo
-
-------------------------------------------------------------------------
-r3178 | pelissip | 2005-01-11 08:42:16 +0000 (Tue, 11 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/gmp_op.c
-
-Reduce size of code
-Optimize a few too.
-
-------------------------------------------------------------------------
-r3177 | pelissip | 2005-01-11 08:40:51 +0000 (Tue, 11 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Forget 2005 !
-
-------------------------------------------------------------------------
-r3176 | pelissip | 2005-01-11 08:39:49 +0000 (Tue, 11 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Improve and fix detection of NAN and GCC bug.
-
-------------------------------------------------------------------------
-r3175 | pelissip | 2005-01-04 15:04:18 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
-
-new version (completely rewritten) by Paul Zimmermann.
-
-------------------------------------------------------------------------
-r3174 | pelissip | 2005-01-04 14:52:28 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/tests/tatan.c
-
-Fix forgotten '2005' Line.
-
-------------------------------------------------------------------------
-r3173 | pelissip | 2005-01-04 14:41:09 +0000 (Tue, 04 Jan 2005) | 5 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/tests/tatan.c
-
-Fix wrong inexact value (regression).
-FIXME: It seems that adding MPFR_GET_EXP (xp) bits is too much
- (since previously it always add 0, but the results were quite
- always exact - this bug was only discovered under rare case).
-
-------------------------------------------------------------------------
-r3172 | zimmerma | 2005-01-04 12:23:41 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item (mpfr_printf)
-
-------------------------------------------------------------------------
-r3171 | pelissip | 2005-01-04 10:34:17 +0000 (Tue, 04 Jan 2005) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
- M /trunk/mpfr-impl.h
-
-Optimize mpfr_exp2 by inlining some code, and by avoiding using
-mpz_sizeinbase.
-
-------------------------------------------------------------------------
-r3170 | pelissip | 2005-01-04 10:33:18 +0000 (Tue, 04 Jan 2005) | 4 lines
-Changed paths:
- M /trunk/erf.c
-
-Remove unused code.
-Remove _MPFR_PROTO for static functions.
-Other cosmetic change.
-
-------------------------------------------------------------------------
-r3169 | pelissip | 2005-01-04 10:32:01 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/get_str.c
-
-Remove _MPFR_PROTO for static functions.
-
-------------------------------------------------------------------------
-r3168 | pelissip | 2005-01-04 10:29:14 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Remove unused code.
-
-------------------------------------------------------------------------
-r3167 | pelissip | 2005-01-04 10:28:41 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-Optimize mpfr_get_d.
-
-------------------------------------------------------------------------
-r3166 | pelissip | 2005-01-04 10:28:03 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add a new configuration to check before releasing MPFR.
-
-------------------------------------------------------------------------
-r3165 | pelissip | 2005-01-04 10:26:44 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/sum.c
-
-Fix problem of tab with ncurses.
-
-------------------------------------------------------------------------
-r3164 | pelissip | 2005-01-04 10:26:14 +0000 (Tue, 04 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/cmp_si.c
- M /trunk/get_z_exp.c
-
-Likely some tests
-
-------------------------------------------------------------------------
-r3163 | pelissip | 2005-01-04 10:25:40 +0000 (Tue, 04 Jan 2005) | 4 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
-
-Fix bug if not gmp-impl.h (mpn_sub_nc is internal).
-Move MPFR_SET_EXP after checking the exponent range.
-Minor change in the way to return the ternary value.
-
-------------------------------------------------------------------------
-r3162 | zimmerma | 2005-01-01 12:17:16 +0000 (Sat, 01 Jan 2005) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/sum.c
-
-changed tab[] into *tab (and removed 'tab' in mpfr.h)
-
-------------------------------------------------------------------------
-r3161 | zimmerma | 2004-12-24 10:41:39 +0000 (Fri, 24 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-new version (completely rewritten)
-
-------------------------------------------------------------------------
-r3160 | zimmerma | 2004-12-24 10:28:47 +0000 (Fri, 24 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
- M /trunk/tests/tsqrt.c
-
-improved coverage (and fixed bug)
-
-------------------------------------------------------------------------
-r3159 | pelissip | 2004-12-21 15:54:00 +0000 (Tue, 21 Dec 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
- M /trunk/tests/trint.c
-
-Fixed errors reported by Nelson H. F. Beebe
-(forget to include sys/fpu.h if defined and math.h if std=c99).
-
-------------------------------------------------------------------------
-r3158 | pelissip | 2004-12-20 12:54:45 +0000 (Mon, 20 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-Fix wrong integer type and a test.
-
-------------------------------------------------------------------------
-r3157 | pelissip | 2004-12-20 12:53:46 +0000 (Mon, 20 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Add some assertion.
-
-------------------------------------------------------------------------
-r3156 | pelissip | 2004-12-20 12:53:20 +0000 (Mon, 20 Dec 2004) | 3 lines
-Changed paths:
- M /trunk/div_ui.c
-
-Unlikely one test.
-Fix wrong integer type
-
-------------------------------------------------------------------------
-r3155 | pelissip | 2004-12-20 12:52:47 +0000 (Mon, 20 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/sub.c
- M /trunk/sub1.c
-
-Reindent the code.
-
-------------------------------------------------------------------------
-r3154 | pelissip | 2004-12-17 14:18:49 +0000 (Fri, 17 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
- M /trunk/tan.c
-
-Optimize mpfr_tan
-
-------------------------------------------------------------------------
-r3153 | pelissip | 2004-12-17 13:36:51 +0000 (Fri, 17 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/sin.c
- M /trunk/sin_cos.c
-
-Optimize the computing of the sign of sinus if GET_EXP(x) < 0
-
-------------------------------------------------------------------------
-r3152 | pelissip | 2004-12-17 13:20:13 +0000 (Fri, 17 Dec 2004) | 3 lines
-Changed paths:
- M /trunk/cos.c
-
-Optimize mpfr_cos.
-From 3363 / 21663.99 / 79727 to 3139 / 18920.58 / 69624 (opteron).
-
-------------------------------------------------------------------------
-r3151 | pelissip | 2004-12-17 13:13:50 +0000 (Fri, 17 Dec 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Fix precision used to test long double.
-Now it is sizeof(long_double)*CHAR_BIT instead of fixed 113.
-
-------------------------------------------------------------------------
-r3150 | pelissip | 2004-12-17 11:14:56 +0000 (Fri, 17 Dec 2004) | 3 lines
-Changed paths:
- M /trunk/extract.c
-
-FIx wrong integer types
-Add an assertion.
-
-------------------------------------------------------------------------
-r3149 | pelissip | 2004-12-17 11:14:23 +0000 (Fri, 17 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-Likely / Unlikely some code.
-
-------------------------------------------------------------------------
-r3148 | pelissip | 2004-12-17 11:13:53 +0000 (Fri, 17 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/get_ld.c
- M /trunk/set_d.c
- M /trunk/set_ld.c
- M /trunk/tests/tset_ld.c
-
-Fix problem with long double with ICC (Wrong x86 processor flag).
-
-------------------------------------------------------------------------
-r3147 | pelissip | 2004-12-16 13:41:21 +0000 (Thu, 16 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
-
-Fix wrong integer types.
-
-------------------------------------------------------------------------
-r3146 | pelissip | 2004-12-16 13:37:23 +0000 (Thu, 16 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-Fix bug.
-
-------------------------------------------------------------------------
-r3145 | pelissip | 2004-12-16 13:27:11 +0000 (Thu, 16 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/acos.c
-
-Optimize mpfr_acos by choosing a better initial precision.
-
-------------------------------------------------------------------------
-r3144 | pelissip | 2004-12-16 13:12:42 +0000 (Thu, 16 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/asin.c
-
-Optimize mpfr_asin by improving the choice of the initial precision.
-
-------------------------------------------------------------------------
-r3143 | pelissip | 2004-12-16 12:04:10 +0000 (Thu, 16 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Optimize mpfr_atan.
-
-------------------------------------------------------------------------
-r3142 | pelissip | 2004-12-15 16:32:57 +0000 (Wed, 15 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/inp_str.c
- M /trunk/tests/tinp_str.c
-
-Fix problem with GCC 4.0 20041212.
-
-------------------------------------------------------------------------
-r3141 | pelissip | 2004-12-15 14:22:50 +0000 (Wed, 15 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Remove thread attribute until I found a good way to use it.
-
-------------------------------------------------------------------------
-r3140 | pelissip | 2004-12-15 10:49:11 +0000 (Wed, 15 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Test
-
-------------------------------------------------------------------------
-r3139 | pelissip | 2004-12-15 10:47:42 +0000 (Wed, 15 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/strtofr.c
-
-Add 'const' attribute to table.
-
-------------------------------------------------------------------------
-r3138 | pelissip | 2004-12-15 10:46:00 +0000 (Wed, 15 Dec 2004) | 2 lines
-Changed paths:
- D /trunk/save_expo.c
-
-Remove unused file.
-
-------------------------------------------------------------------------
-r3137 | pelissip | 2004-12-15 09:04:07 +0000 (Wed, 15 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-New way of detecting GMP libraray, which should be more portable.
-
-------------------------------------------------------------------------
-r3136 | pelissip | 2004-12-14 12:30:30 +0000 (Tue, 14 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-test.h
- M /trunk/tests/Makefile.am
- D /trunk/tests/amd64.asm
- M /trunk/tests/tests.c
- M /trunk/tests/tset_ld.c
- D /trunk/tests/x86.asm
-
-Remove useless assembly code.
-
-------------------------------------------------------------------------
-r3135 | pelissip | 2004-12-14 10:54:47 +0000 (Tue, 14 Dec 2004) | 6 lines
-Changed paths:
- M /trunk/cmp.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/set.c
-
-Add "MPFR_USE_NO_MACRO" user macro: it allows the user to link
-directly with MPFR functions rather than using Macros to access
-them. It doesn't define MPFR variable inside mpfr.h too.
-Fix set.c and cmp.c in consequences.
-Fix mpf2mpfr.h to use mpfr_get_default_rounding_mode () if needed.
-
-------------------------------------------------------------------------
-r3134 | pelissip | 2004-12-13 14:32:26 +0000 (Mon, 13 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/mulders.c
-
-Improved prototype.
-
-------------------------------------------------------------------------
-r3133 | pelissip | 2004-12-13 14:31:11 +0000 (Mon, 13 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/set_q.c
-
-Fix bug of overflow (I hope).
-
-------------------------------------------------------------------------
-r3132 | pelissip | 2004-12-13 10:23:33 +0000 (Mon, 13 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.texi
- M /trunk/set_q.c
-
-Update mpfr_set_q overflow problem.
-
-------------------------------------------------------------------------
-r3131 | pelissip | 2004-12-13 08:24:58 +0000 (Mon, 13 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/generic.c
-
-Fix wrong integer types.
-
-------------------------------------------------------------------------
-r3130 | pelissip | 2004-12-10 16:02:03 +0000 (Fri, 10 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Optimize by increasing with BITS_PER_MP_LIMB instead of log2(prec)
-
-------------------------------------------------------------------------
-r3129 | pelissip | 2004-12-10 15:59:15 +0000 (Fri, 10 Dec 2004) | 3 lines
-Changed paths:
- M /trunk/atan.c
-
-Clean up code (Fix integer types + rewrite some code).
-Optimize the code by reducing the number of used variables inside the loop.
-
-------------------------------------------------------------------------
-r3128 | pelissip | 2004-12-10 15:58:13 +0000 (Fri, 10 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/asin.c
-
-Replace mpfr_neg to MPFR_CHANGE_SIGN.
-
-------------------------------------------------------------------------
-r3127 | pelissip | 2004-12-10 15:57:48 +0000 (Fri, 10 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/add1sp.c
-
-Cosmetic changes.
-
-------------------------------------------------------------------------
-r3126 | pelissip | 2004-12-10 14:45:54 +0000 (Fri, 10 Dec 2004) | 4 lines
-Changed paths:
- M /trunk/acos.c
-
-Clean the code.
-Avoid mixing integer types.
-Fix bug of overflow if Pi is in the range but not Pi/2.
-
-------------------------------------------------------------------------
-r3125 | pelissip | 2004-12-10 14:22:49 +0000 (Fri, 10 Dec 2004) | 5 lines
-Changed paths:
- M /trunk/asin.c
-
-Clean up the code (Removing useless variables and avoid mixing wrong integer types).
-Optimize the code by improving memory allocation scheme and by incrementating by
-BITS_PER_MP_LIMB in case of an error instead of MPFR_INT_CEIL_LOG2 (prec).
-Fix an overflow bug for X=+/-1 (If PI is inside the exponent range, but not PI/2).
-
-------------------------------------------------------------------------
-r3124 | pelissip | 2004-12-09 14:34:47 +0000 (Thu, 09 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Simplify MPFR_SIGN by removing unnecessary ( ).
-
-------------------------------------------------------------------------
-r3123 | pelissip | 2004-12-09 14:31:23 +0000 (Thu, 09 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Add support for new attribute sentinel in incoming GCC 4.0
-
-------------------------------------------------------------------------
-r3122 | pelissip | 2004-12-09 13:23:25 +0000 (Thu, 09 Dec 2004) | 2 lines
-Changed paths:
- M /trunk/sin.c
- M /trunk/sin_cos.c
-
-Optimize initial precision in case of EXP(x) < 0.
-
-------------------------------------------------------------------------
-r3121 | pelissip | 2004-12-09 10:13:55 +0000 (Thu, 09 Dec 2004) | 6 lines
-Changed paths:
- M /trunk/cache.c
- M /trunk/mpfr-impl.h
- M /trunk/set.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_sj.c
-
-Optimize mpfr_set4.
-Inline rounding in mpfr_set4 and mpfr_cache
-mpfr_set4 doesn't return MPFR_EVEN_INEX (It was undocumented before).
-Fix problems with tests (Avoid mixing MPFR_EVEN_INEX and 1).
-Add MPFR_RNDRAW_EVEN for rounding with MPFR_EVEN_INEX inexact support
-
-------------------------------------------------------------------------
-r3120 | pelissip | 2004-12-08 14:08:45 +0000 (Wed, 08 Dec 2004) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/tests/tsqr.c
-
-Optimize mpfr_mul by inlining and rewriting the rounding.
-It seems that GCC option `-frename-registers` for mpfr_mul / Athlon XP
-improves its performance (But it decreases it on Pentium4)...
-
-------------------------------------------------------------------------
-r3119 | zimmerma | 2004-12-01 11:34:21 +0000 (Wed, 01 Dec 2004) | 2 lines
-Changed paths:
- A /trunk/mulders.c
-
-first try to implement Mulders' algorithm
-
-------------------------------------------------------------------------
-r3118 | pelissip | 2004-11-29 15:10:29 +0000 (Mon, 29 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Update TODO.
-
-------------------------------------------------------------------------
-r3117 | zimmerma | 2004-11-29 13:58:14 +0000 (Mon, 29 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added new tests for corner cases
-
-------------------------------------------------------------------------
-r3116 | zimmerma | 2004-11-29 13:52:35 +0000 (Mon, 29 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-added algo for pi
-
-------------------------------------------------------------------------
-r3115 | pelissip | 2004-11-25 10:28:32 +0000 (Thu, 25 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/tan.c
-
-Change initial term if exp(a)<0.
-
-------------------------------------------------------------------------
-r3114 | pelissip | 2004-11-25 10:28:13 +0000 (Thu, 25 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-Simplify the inner loop.
-
-------------------------------------------------------------------------
-r3113 | pelissip | 2004-11-25 10:11:07 +0000 (Thu, 25 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-Change initial precision if EXP(op) < 0.
-
-------------------------------------------------------------------------
-r3112 | pelissip | 2004-11-23 12:49:15 +0000 (Tue, 23 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/set_z.c
-
-Optimize code and rewrite the rounding part.
-FIXME: It seems that the previous rounding code was buggy. Still I am not sure.
-
-------------------------------------------------------------------------
-r3111 | pelissip | 2004-11-23 12:48:00 +0000 (Tue, 23 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tgmpop.c
-
-Improve tests.
-
-------------------------------------------------------------------------
-r3110 | pelissip | 2004-11-19 14:38:28 +0000 (Fri, 19 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-Improve the initial value of prec: 10% improvement (?) on average.
-
-------------------------------------------------------------------------
-r3109 | pelissip | 2004-11-19 14:36:11 +0000 (Fri, 19 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-Improve coverage test.
-
-------------------------------------------------------------------------
-r3108 | pelissip | 2004-11-19 13:02:04 +0000 (Fri, 19 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
- M /trunk/ui_pow_ui.c
-
-Fix bug for mpfr_ui_pow_ui (Wrong inexact flag).
-
-------------------------------------------------------------------------
-r3107 | pelissip | 2004-11-19 12:39:10 +0000 (Fri, 19 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/get_z.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/tget_z.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_sj.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsqr.c
- M /trunk/ufloor_log2.c
-
-Improve coverage tests.
-
-------------------------------------------------------------------------
-r3106 | pelissip | 2004-11-19 10:28:33 +0000 (Fri, 19 Nov 2004) | 4 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/README.dev
- M /trunk/mpfr-impl.h
-
-Fix typos in INSTALL.
-Sort README.dev, and add a new section about How to write a MPFR function.
-Add a link to README.dev in mpfr-impl.h.
-
-------------------------------------------------------------------------
-r3105 | pelissip | 2004-11-19 08:35:48 +0000 (Fri, 19 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/cos.c
-
-Fix a bug on some compilators:
- First MPFR_SAVE_EXPO_DECL, then TMP_DECL.
-
-------------------------------------------------------------------------
-r3104 | pelissip | 2004-11-18 15:53:55 +0000 (Thu, 18 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/tests/tpow.c
-
-Fix an overflow bug.
-
-------------------------------------------------------------------------
-r3103 | pelissip | 2004-11-18 15:15:27 +0000 (Thu, 18 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/set_si_2exp.c
- M /trunk/set_ui_2exp.c
- M /trunk/tests/tset_si.c
-
-Fix bug with inexact flag.
-FIXME: Maybe still a bug with inexact flag if overflow in mpfr_mul_2exp ?
-
-------------------------------------------------------------------------
-r3102 | pelissip | 2004-11-18 15:00:06 +0000 (Thu, 18 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr-impl.h
- M /trunk/pow_ui.c
-
-Remove mpfr_save_emin_emax and mpfr_restore_emin_emax
-from MPFR library since they are useless.
-
-------------------------------------------------------------------------
-r3101 | pelissip | 2004-11-18 14:55:08 +0000 (Thu, 18 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-Forget to remove rndraw.c test.
-
-------------------------------------------------------------------------
-r3100 | pelissip | 2004-11-18 14:52:59 +0000 (Thu, 18 Nov 2004) | 4 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add_ui.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/gamma.c
- M /trunk/hypot.c
- M /trunk/mpfr-impl.h
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/rint.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_ld.c
- M /trunk/set_q.c
- M /trunk/set_si_2exp.c
- M /trunk/set_ui_2exp.c
- M /trunk/sqrt_ui.c
- M /trunk/sub_ui.c
- M /trunk/tanh.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
-
-Replace use of mpfr_save_emin_emax () / mpfr_restore_emin_emax()
-by MPFR_SAVE_EXPO macros (DECL, MARK and FREE) which are faster
-and thread safe.
-
-------------------------------------------------------------------------
-r3098 | pelissip | 2004-11-18 14:04:52 +0000 (Thu, 18 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-Enable fast computing.
-
-------------------------------------------------------------------------
-r3097 | vlefevre | 2004-11-18 14:04:50 +0000 (Thu, 18 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix: GMP -> MPFR Copying Conditions (noted by Patrick).
-
-------------------------------------------------------------------------
-r3096 | pelissip | 2004-11-18 10:08:49 +0000 (Thu, 18 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Reorder the file and put sections to make it cleaner and more readable.
-
-------------------------------------------------------------------------
-r3095 | pelissip | 2004-11-18 09:11:19 +0000 (Thu, 18 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/log.c
-
-Reduce number of used variables.
-Optimize code and clean it.
-
-------------------------------------------------------------------------
-r3093 | vlefevre | 2004-11-18 08:56:06 +0000 (Thu, 18 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-In HTML, suppress the non-existing link to GMP.
-
-------------------------------------------------------------------------
-r3092 | pelissip | 2004-11-18 08:32:01 +0000 (Thu, 18 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/init2.c
- M /trunk/mpfr-impl.h
-
-Add a prototype of own TMP_ALLOC. Don't know if it is a good idea.
-To enable it, just build MPFR with MPFR_USE_OWN_TMP_ALLOC.
-
-------------------------------------------------------------------------
-r3091 | pelissip | 2004-11-17 16:22:14 +0000 (Wed, 17 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
- M /trunk/strtofr.c
- M /trunk/sum.c
-
-Fix bug with TMP_MARK.
-
-------------------------------------------------------------------------
-r3090 | pelissip | 2004-11-16 16:14:43 +0000 (Tue, 16 Nov 2004) | 4 lines
-Changed paths:
- M /trunk/pow_ui.c
-
-Optimize the code:
- + Special case for n == 2
- + The first squaring is done using the original input.
-
-------------------------------------------------------------------------
-r3089 | pelissip | 2004-11-16 16:13:30 +0000 (Tue, 16 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/init2.c
-
-Add new assertion to check.
-
-------------------------------------------------------------------------
-r3088 | pelissip | 2004-11-16 16:13:01 +0000 (Tue, 16 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/cmp2.c
-
-Likely / Unlikely some tests.
-
-------------------------------------------------------------------------
-r3087 | pelissip | 2004-11-15 11:44:26 +0000 (Mon, 15 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-Add unused code (Still needs a proof).
-
-------------------------------------------------------------------------
-r3086 | pelissip | 2004-11-15 11:43:33 +0000 (Mon, 15 Nov 2004) | 4 lines
-Changed paths:
- M /trunk/get_exp.c
- M /trunk/mpfr.h
- M /trunk/set_dfl_prec.c
- M /trunk/set_prec.c
- M /trunk/set_rnd.c
- M /trunk/set_ui.c
-
-Add macro version for small functions:
- mpfr_get_prec, mpfr_get_exp, mpfr_get_default_rounding_mode,
- mpfr_get_default_prec and mpfr_set_ui
-
-------------------------------------------------------------------------
-r3085 | pelissip | 2004-11-15 08:38:36 +0000 (Mon, 15 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Refix another bug (The same).
-
-------------------------------------------------------------------------
-r3084 | pelissip | 2004-11-15 08:32:23 +0000 (Mon, 15 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Fix a bug (Use __gmpfr_ceil_log2 instead of MPFR_INT_CEIL_LOG2).
-
-------------------------------------------------------------------------
-r3083 | zimmerma | 2004-11-12 17:29:54 +0000 (Fri, 12 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added algorithm for mpfr_sqrt
-improved algorithm for mpfr_div
-
-------------------------------------------------------------------------
-r3082 | zimmerma | 2004-11-12 17:22:57 +0000 (Fri, 12 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-use MPFR_SET_EXP/MPFR_GET_EXP instead of MPFR_EXP(r)++
-
-------------------------------------------------------------------------
-r3081 | vlefevre | 2004-11-12 16:03:43 +0000 (Fri, 12 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-Bug fix: delayed all the initializations after the singular test.
-
-------------------------------------------------------------------------
-r3080 | vlefevre | 2004-11-11 11:30:46 +0000 (Thu, 11 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-Untabified the source.
-
-------------------------------------------------------------------------
-r3079 | vlefevre | 2004-11-11 11:26:51 +0000 (Thu, 11 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/sqrt.c
-
-The test MPFR_GET_EXP(u) != MPFR_EMAX_MAX is no longer necessary
-since we decided to lower MPFR_EMAX_MAX to avoid such tests.
-
-------------------------------------------------------------------------
-r3078 | pelissip | 2004-11-10 16:12:53 +0000 (Wed, 10 Nov 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/sqrt.c
-
-Remove use of CNST_LIMB and TMP_ALLOC_LIMB which are GMP internal.
-Add MPFR_LIMB_ZERO.
-
-------------------------------------------------------------------------
-r3077 | zimmerma | 2004-11-10 12:10:16 +0000 (Wed, 10 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
- M /trunk/tests/tsqrt.c
-
-new simpler and faster code
-
-------------------------------------------------------------------------
-r3076 | pelissip | 2004-11-10 12:05:20 +0000 (Wed, 10 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cosh.c
- M /trunk/erf.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/gamma.c
- M /trunk/get_str.c
- M /trunk/hypot.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sum.c
- M /trunk/tan.c
- M /trunk/tanh.c
-
-Replace __gmpfr_ceil_log2 by MPFR_INT_CEIL_LOG2 when possible.
-
-------------------------------------------------------------------------
-r3075 | pelissip | 2004-11-10 12:02:34 +0000 (Wed, 10 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add __extension__ to avoid warning useless in GCC.
-
-------------------------------------------------------------------------
-r3074 | vlefevre | 2004-11-03 16:14:38 +0000 (Wed, 03 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/README
-
-Update.
-
-------------------------------------------------------------------------
-r3069 | pelissip | 2004-11-03 09:11:31 +0000 (Wed, 03 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Fix wrong Visual C++ code.
-
-------------------------------------------------------------------------
-r3068 | vlefevre | 2004-11-02 17:01:49 +0000 (Tue, 02 Nov 2004) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Code checking for GMP library wasn't working (always returning "yes"?).
-
-------------------------------------------------------------------------
-r3066 | vlefevre | 2004-10-27 16:34:33 +0000 (Wed, 27 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Updated copyright line.
-
-------------------------------------------------------------------------
-r3064 | vlefevre | 2004-10-27 14:13:24 +0000 (Wed, 27 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Added a bug and updated copyright line.
-
-------------------------------------------------------------------------
-r3062 | vlefevre | 2004-10-27 13:06:42 +0000 (Wed, 27 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3061 | vlefevre | 2004-10-27 13:04:10 +0000 (Wed, 27 Oct 2004) | 7 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/set_d.c
-
-Removed the definitions of DBL_POS_INF/DBL_NEG_INF/DBL_NAN for
-Visual C++ as they were incorrect. Modified DOUBLE_ISINF(x) so
-that infinities are no longer used (this should fix a part of
-the problem for Visual C++). If IEEE 754 is not supported, one
-should probably use the standard INFINITY macro instead of
-(1.0/0.0), since (1.0/0.0) is specific to IEEE 754.
-
-------------------------------------------------------------------------
-r3060 | vlefevre | 2004-10-27 11:55:05 +0000 (Wed, 27 Oct 2004) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/tests/tests.c
-
-Applied patch by Steve M. Robbins for non-IRIX MIPS systems
-(originally for MPFR 2.0.3).
-
-------------------------------------------------------------------------
-r3059 | vlefevre | 2004-10-26 02:11:43 +0000 (Tue, 26 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tsub1sp.c
-
-Reformatted the code.
-
-------------------------------------------------------------------------
-r3058 | vlefevre | 2004-10-26 01:49:26 +0000 (Tue, 26 Oct 2004) | 5 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_exp.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/ttanh.c
-
-Replaced mpfr_set_emin/emax by set_emin/emax in tests to check
-the return value; defined set_emin/emax in "tests/tests.c".
-Fix: added missing #include <string.h> in "tests/tests.c".
-Removed variable names in prototypes in "mpfr-test.h".
-
-------------------------------------------------------------------------
-r3057 | vlefevre | 2004-10-22 13:19:48 +0000 (Fri, 22 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
-
-Reformatted the code -> GNU style.
-
-------------------------------------------------------------------------
-r3054 | vlefevre | 2004-10-22 12:49:32 +0000 (Fri, 22 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3053 | pelissip | 2004-10-22 08:00:56 +0000 (Fri, 22 Oct 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Declaration of "tests_rand_start" and "tests_rand_end" with the same storage class specifier
-in tests.c (static missing line 65 and 109).
-
-------------------------------------------------------------------------
-r3052 | vlefevre | 2004-10-21 11:53:26 +0000 (Thu, 21 Oct 2004) | 4 lines
-Changed paths:
- M /trunk/strtofr.c
-
-Bug fixed: cast to unsigned char instead of int for isspace (no,
-these are not "psycho" systems, just systems with signed chars).
-Untabified the source.
-
-------------------------------------------------------------------------
-r3051 | pelissip | 2004-10-20 13:27:25 +0000 (Wed, 20 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Improve ICC CFLAGS by removins meaningless warnings.
-
-------------------------------------------------------------------------
-r3050 | pelissip | 2004-10-20 12:52:33 +0000 (Wed, 20 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-Remove some warnings on some "psycho" systems.
-
-------------------------------------------------------------------------
-r3049 | pelissip | 2004-10-20 09:37:55 +0000 (Wed, 20 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Update the chapter "Make a release".
-
-------------------------------------------------------------------------
-r3048 | pelissip | 2004-10-20 09:36:18 +0000 (Wed, 20 Oct 2004) | 4 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/tests.c
- M /trunk/tests/tinp_str.c
-
-Fix bug when you build MPFR outside source directory.
-Add function src_fopen to open a file in the source directory, which
-may be different from the current directory.
-
-------------------------------------------------------------------------
-r3047 | pelissip | 2004-10-20 07:12:08 +0000 (Wed, 20 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Fix a typo.
-
-------------------------------------------------------------------------
-r3046 | vlefevre | 2004-10-19 13:07:28 +0000 (Tue, 19 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Another correction (English).
-
-------------------------------------------------------------------------
-r3045 | vlefevre | 2004-10-19 13:05:34 +0000 (Tue, 19 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Minor correction.
-
-------------------------------------------------------------------------
-r3044 | pelissip | 2004-10-19 12:49:15 +0000 (Tue, 19 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Update NEWS to reflect the change in mpfr_set_str.
-
-------------------------------------------------------------------------
-r3043 | pelissip | 2004-10-19 12:45:45 +0000 (Tue, 19 Oct 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/set_str.c
- M /trunk/tests/tset_str.c
-
-Update mpfr_set_str to be much more like strtofr.
-Update the documentation to reflect the changes.
-
-------------------------------------------------------------------------
-r3042 | zimmerma | 2004-10-19 10:18:14 +0000 (Tue, 19 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-changed contributors section
-
-------------------------------------------------------------------------
-r3041 | pelissip | 2004-10-19 09:53:00 +0000 (Tue, 19 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Add a line about binary compatibility.
-
-------------------------------------------------------------------------
-r3040 | zimmerma | 2004-10-19 09:24:10 +0000 (Tue, 19 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-changed "contributors" section
-
-------------------------------------------------------------------------
-r3039 | zimmerma | 2004-10-19 09:02:46 +0000 (Tue, 19 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-changed rights (remove executable permission)
-
-------------------------------------------------------------------------
-r3038 | vlefevre | 2004-10-18 15:07:09 +0000 (Mon, 18 Oct 2004) | 7 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Misc corrections:
- + spelling mistakes
- + consistency: in direction @var{rnd} -> in the direction @var{rnd}
- + @code{NULL} pointer -> null pointer (as in the C standard)
- + in the example for mpfr_inits2 / mpfr_clears: NULL -> (void *) 0
- as NULL isn't necessarily a pointer.
-
-------------------------------------------------------------------------
-r3037 | pelissip | 2004-10-18 14:23:01 +0000 (Mon, 18 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/README
-
-Update
-
-------------------------------------------------------------------------
-r3036 | pelissip | 2004-10-18 13:28:28 +0000 (Mon, 18 Oct 2004) | 7 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_str.c
- M /trunk/strtofr.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tstrtofr.c
-
-Change "unsigned int" to "int" for base in proto of strtofr.
-Change set_str to use strtofr (Fix a bug too).
-Limit base to 36 in strtofr (since get_str is limited to 36).
-Update documentation to reflect the changes.
-mpfr_get_d1 is moved to section internal in the documentation.
-Update the tests.
-
-------------------------------------------------------------------------
-r3035 | pelissip | 2004-10-18 13:21:55 +0000 (Mon, 18 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Hard code NAN, +INF and -INF values for MVC.
-
-------------------------------------------------------------------------
-r3034 | pelissip | 2004-10-18 09:47:37 +0000 (Mon, 18 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/tout_str.c
-
-Fix problem on systems where "/dev/null" doesn't exist.
-
-------------------------------------------------------------------------
-r3033 | vlefevre | 2004-10-16 10:48:15 +0000 (Sat, 16 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/mpfr.texi
-
-Misc corrections.
-
-------------------------------------------------------------------------
-r3032 | vlefevre | 2004-10-15 14:06:28 +0000 (Fri, 15 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Updated the section "To make a release".
-
-------------------------------------------------------------------------
-r3031 | vlefevre | 2004-10-15 13:58:37 +0000 (Fri, 15 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/VERSION
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/version.c
-
-Updated the version on the trunk.
-
-------------------------------------------------------------------------
-r3030 | vlefevre | 2004-10-15 12:52:20 +0000 (Fri, 15 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r3029 | vlefevre | 2004-10-15 12:49:05 +0000 (Fri, 15 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Update for 2.1.0.
-
-------------------------------------------------------------------------
-r3028 | vlefevre | 2004-10-13 08:35:11 +0000 (Wed, 13 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Added a comment about autoreconf and a bug in Debian (now fixed).
-
-------------------------------------------------------------------------
-r3027 | pelissip | 2004-10-12 07:24:51 +0000 (Tue, 12 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Add a note about Windows 64.
-
-------------------------------------------------------------------------
-r3026 | pelissip | 2004-10-11 13:52:42 +0000 (Mon, 11 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update documentation.
-
-------------------------------------------------------------------------
-r3025 | pelissip | 2004-10-11 13:52:29 +0000 (Mon, 11 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Improve Windows installation.
-
-------------------------------------------------------------------------
-r3024 | pelissip | 2004-10-11 13:52:07 +0000 (Mon, 11 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add a line about "near" and "far".
-
-------------------------------------------------------------------------
-r3023 | pelissip | 2004-10-07 11:53:27 +0000 (Thu, 07 Oct 2004) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
- M /trunk/tests/tget_str.c
-
-Add support for ".lib" since it seems to work.
-Display GMP version inside the configure.
-
-------------------------------------------------------------------------
-r3022 | zimmerma | 2004-10-05 09:45:29 +0000 (Tue, 05 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added one new test
-
-------------------------------------------------------------------------
-r3021 | vlefevre | 2004-10-04 13:40:35 +0000 (Mon, 04 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-Added worst cases.
-
-------------------------------------------------------------------------
-r3020 | zimmerma | 2004-10-02 07:28:07 +0000 (Sat, 02 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added new tests (worst-case)
-
-------------------------------------------------------------------------
-r3019 | zimmerma | 2004-10-01 12:31:46 +0000 (Fri, 01 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added new worst-cases (directed rounding)
-
-------------------------------------------------------------------------
-r3018 | zimmerma | 2004-10-01 07:35:34 +0000 (Fri, 01 Oct 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new function to implement (dilog)
-
-------------------------------------------------------------------------
-r3017 | zimmerma | 2004-09-30 16:11:13 +0000 (Thu, 30 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed bug in get_str_aux when one extra digit
-
-------------------------------------------------------------------------
-r3016 | vlefevre | 2004-09-30 16:06:25 +0000 (Thu, 30 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/rint.c
- M /trunk/tests/trint.c
-
-Added functions mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil,
-mpfr_rint_floor.
-
-------------------------------------------------------------------------
-r3015 | pelissip | 2004-09-30 13:03:52 +0000 (Thu, 30 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-Add new test (One failed).
-
-------------------------------------------------------------------------
-r3014 | vlefevre | 2004-09-30 09:21:11 +0000 (Thu, 30 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/get_sj.c
-
-The cast to uintmax_t wasn't really useful, so I removed it.
-Added a comment.
-
-------------------------------------------------------------------------
-r3013 | vlefevre | 2004-09-30 09:06:37 +0000 (Thu, 30 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_sj.c
-
-The real fix for sizeof(intmax_t) == sizeof(mp_limb_t).
-
-------------------------------------------------------------------------
-r3012 | pelissip | 2004-09-30 08:08:59 +0000 (Thu, 30 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_sj.c
-
-Fix a bug if sizeof(intmax_t) == sizeof(mp_limb_t)
-
-------------------------------------------------------------------------
-r3011 | zimmerma | 2004-09-29 16:05:01 +0000 (Wed, 29 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added worst-case
-
-------------------------------------------------------------------------
-r3010 | pelissip | 2004-09-29 13:58:06 +0000 (Wed, 29 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/cmp.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/mpfr.texi
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ld.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcmpabs.c
-
-cmp(x,y) if x=NAN or y=NAN returns 0 and erange flag.
-
-------------------------------------------------------------------------
-r3009 | pelissip | 2004-09-29 12:54:47 +0000 (Wed, 29 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/NEWS
- M /trunk/mpfr.texi
-
-Update documentation and NEWS to reflect new functions
-and functionality.
-
-------------------------------------------------------------------------
-r3008 | pelissip | 2004-09-29 12:28:17 +0000 (Wed, 29 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_z.c
- M /trunk/strtofr.c
-
-Improve assertion.
-
-------------------------------------------------------------------------
-r3007 | pelissip | 2004-09-29 12:27:36 +0000 (Wed, 29 Sep 2004) | 6 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/get_si.c
- M /trunk/get_sj.c
- M /trunk/get_ui.c
- M /trunk/get_uj.c
- M /trunk/mpfr-impl.h
- M /trunk/set_sj.c
- M /trunk/set_uj.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/tget_sj.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_sj.c
-
-Add mpfr_clear_erangeflag and mpfr_erangeflag_p.
-Add test for theses two functions.
-mpfr_get_[s/u][i/j] have a deterministic behavior in case of OVERFLOW.
-(Return the MINIMUM or the MAXIMUM in the current type, and set
-ERANGE_flag).
-
-------------------------------------------------------------------------
-r3006 | pelissip | 2004-09-29 12:23:54 +0000 (Wed, 29 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/fits_intmax.c
- A /trunk/fits_uintmax.c
- M /trunk/mpfr.h
- M /trunk/tests/tfits.c
-
-Add mpfr_uintmax_p and mpfr_intmax_p.
-
-------------------------------------------------------------------------
-r3005 | pelissip | 2004-09-29 12:21:03 +0000 (Wed, 29 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/TODO
-
-Update INSTALL about C++
-Update TODO and VERSION.
-
-------------------------------------------------------------------------
-r3004 | pelissip | 2004-09-29 08:59:58 +0000 (Wed, 29 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Move mpfr_inits from mpfr-impl to mpfr.h.
-Add doc too.
-
-------------------------------------------------------------------------
-r3003 | pelissip | 2004-09-28 10:09:18 +0000 (Tue, 28 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_sj.c
- M /trunk/get_uj.c
-
-Reindent the sources (again).
-
-------------------------------------------------------------------------
-r3002 | pelissip | 2004-09-28 09:26:34 +0000 (Tue, 28 Sep 2004) | 5 lines
-Changed paths:
- M /trunk/mpn_exp.c
-
-Fix how to detect overflow so that it can be build with GCC -ftrapv
-option without any bugs (In the previous code, the overflow was
-detected afterwards, whereas, now, it is detected before).
-Fix also another real problem of overflow (Addition of two signed integers).
-
-------------------------------------------------------------------------
-r3001 | pelissip | 2004-09-28 08:24:07 +0000 (Tue, 28 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Rename this variable again.
-
-------------------------------------------------------------------------
-r3000 | pelissip | 2004-09-28 07:53:46 +0000 (Tue, 28 Sep 2004) | 4 lines
-Changed paths:
- M /trunk/div.c
-
-Replace variable 'near' to 'the_real_near' since MSVC incorrectly
-recognize "far" and "near" as obsolete keywords (100% incorrect, and
-clearly MSVC fault but it doesn't cost many things to change the name).
-
-------------------------------------------------------------------------
-r2999 | pelissip | 2004-09-27 14:59:46 +0000 (Mon, 27 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix typo in the documentation about get_ functions.
-
-------------------------------------------------------------------------
-r2998 | pelissip | 2004-09-27 14:58:37 +0000 (Mon, 27 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_sj.c
- M /trunk/get_uj.c
-
-Retab the sources.
-
-------------------------------------------------------------------------
-r2997 | vlefevre | 2004-09-27 13:58:21 +0000 (Mon, 27 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Added mpfr_get_uj and mpfr_get_sj in the changes 2.0.3 -> 2.1.0.
-
-------------------------------------------------------------------------
-r2996 | vlefevre | 2004-09-27 13:38:24 +0000 (Mon, 27 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Added an item about the future MPFR_FLAGS_ERANGE flag.
-
-------------------------------------------------------------------------
-r2995 | vlefevre | 2004-09-27 13:21:12 +0000 (Mon, 27 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_sj.c
- A /trunk/get_uj.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_sj.c
-
-New functions mpfr_get_sj and mpfr_get_uj, with tests.
-
-------------------------------------------------------------------------
-r2994 | pelissip | 2004-09-27 08:35:25 +0000 (Mon, 27 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/set_sj.c
-
-Remove MPFR_NEED_LONGLONG_H macro.
-
-------------------------------------------------------------------------
-r2993 | vlefevre | 2004-09-26 22:18:46 +0000 (Sun, 26 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/set_sj.c
-
-Added a cast to avoid an integer overflow.
-
-------------------------------------------------------------------------
-r2992 | vlefevre | 2004-09-24 14:53:05 +0000 (Fri, 24 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_si.c
-
-Fixed integer overflow.
-
-------------------------------------------------------------------------
-r2991 | vlefevre | 2004-09-24 14:13:20 +0000 (Fri, 24 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_si.c
-
-Fixed bugs (like those in mpfr_get_ui).
-
-------------------------------------------------------------------------
-r2990 | vlefevre | 2004-09-24 13:38:39 +0000 (Fri, 24 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-The standard autoreconf script should now be used instead of prepare.
-
-------------------------------------------------------------------------
-r2989 | zimmerma | 2004-09-24 11:43:47 +0000 (Fri, 24 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_ui.c
-
-forgot to check for 0
-
-------------------------------------------------------------------------
-r2988 | zimmerma | 2004-09-24 11:15:45 +0000 (Fri, 24 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_ui.c
-
-now use mpfr_rint()
-
-------------------------------------------------------------------------
-r2987 | pelissip | 2004-09-24 08:32:31 +0000 (Fri, 24 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update doc of mpfr_get_str (Minimum space is 7).
-
-------------------------------------------------------------------------
-r2986 | zimmerma | 2004-09-24 07:21:04 +0000 (Fri, 24 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/get_ui.c
- M /trunk/tests/tset_si.c
-
-fixed double-rounding bug in get_ui
-
-------------------------------------------------------------------------
-r2985 | pelissip | 2004-09-23 15:28:35 +0000 (Thu, 23 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-Prevent from multiple inclusion.
-mpf_init inits to 0 rather than NAN.
-
-------------------------------------------------------------------------
-r2984 | pelissip | 2004-09-23 13:54:41 +0000 (Thu, 23 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Fix some tiny problems.
-
-------------------------------------------------------------------------
-r2983 | zimmerma | 2004-09-23 10:16:45 +0000 (Thu, 23 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added item on rounding to odd
-
-------------------------------------------------------------------------
-r2982 | pelissip | 2004-09-21 12:42:37 +0000 (Tue, 21 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/strtofr.c
-
-Fix a bug in FreeBsd 5.20 / Alpha / Gcc 3.3.3.
-Not a MPFR bug, but add some code to avoid it.
-Reference: http://www.freebsd.org/cgi/query-pr.cgi?pr=72024
-------------------------------------------------------------------------
-r2981 | pelissip | 2004-09-21 11:46:11 +0000 (Tue, 21 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
- M /trunk/tests/tstrtofr.c
-
-Add a new test and clarify a comment.
-
-------------------------------------------------------------------------
-r2980 | pelissip | 2004-09-21 09:52:54 +0000 (Tue, 21 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/strtofr.c
-
-Update Assertion for pow2.
-
-------------------------------------------------------------------------
-r2979 | pelissip | 2004-09-20 15:38:19 +0000 (Mon, 20 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Update NEWS.
-
-------------------------------------------------------------------------
-r2978 | pelissip | 2004-09-20 15:13:51 +0000 (Mon, 20 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Update TODO due to new function mpfr_strtofr
-
-------------------------------------------------------------------------
-r2977 | pelissip | 2004-09-20 14:45:32 +0000 (Mon, 20 Sep 2004) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/get_d.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/set_d.c
- M /trunk/strtofr.c
- M /trunk/tests/memory.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tests.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tstrtofr.c
-
-Add ICC detection && support.
-Remove some potential warnings in the test files.
-
-------------------------------------------------------------------------
-r2976 | pelissip | 2004-09-20 08:57:28 +0000 (Mon, 20 Sep 2004) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.texi
- A /trunk/strtofr.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tstrtofr.c
-
-Add mpfr_strtofr function.
-Add mpfr_strtofr test file.
-Add mpfr_strtofr documentation.
-
-------------------------------------------------------------------------
-r2975 | pelissip | 2004-09-20 08:55:56 +0000 (Mon, 20 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Improve GMP.h vs libgmp.a version checking.
-
-------------------------------------------------------------------------
-r2974 | zimmerma | 2004-09-17 16:26:22 +0000 (Fri, 17 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one entry (new function 1/sqrt(x))
-
-------------------------------------------------------------------------
-r2973 | pelissip | 2004-09-17 09:49:50 +0000 (Fri, 17 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
- M /trunk/tests/Makefile.am
-
-Use LIBS instead of LDADD for libraries (GMP).
-
-------------------------------------------------------------------------
-r2972 | pelissip | 2004-09-17 07:21:31 +0000 (Fri, 17 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Min GMP version is 4.1.0 now.
-
-------------------------------------------------------------------------
-r2971 | pelissip | 2004-09-16 11:12:09 +0000 (Thu, 16 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Add a check if both gmp.h and libgmp.a have the same version.
-
-------------------------------------------------------------------------
-r2970 | pelissip | 2004-09-16 11:11:23 +0000 (Thu, 16 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Fix a typo.
-
-------------------------------------------------------------------------
-r2969 | pelissip | 2004-09-15 08:50:55 +0000 (Wed, 15 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-Add a forgotten regression test "1.2.3"
-
-------------------------------------------------------------------------
-r2968 | vlefevre | 2004-09-15 08:38:08 +0000 (Wed, 15 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/config.guess
- M /trunk/config.sub
-
-Update from the autotools-dev Debian package.
-
-------------------------------------------------------------------------
-r2967 | vlefevre | 2004-09-15 08:27:38 +0000 (Wed, 15 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2966 | pelissip | 2004-09-14 15:11:07 +0000 (Tue, 14 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add 2 new macros for handling correctly overflow.
-
-------------------------------------------------------------------------
-r2965 | zimmerma | 2004-09-13 14:00:36 +0000 (Mon, 13 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-fixed bug (several '.' allowed in mantissa)
-
-------------------------------------------------------------------------
-r2964 | zimmerma | 2004-09-03 09:06:13 +0000 (Fri, 03 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added notes for Windows
-
-------------------------------------------------------------------------
-r2963 | pelissip | 2004-09-02 07:06:39 +0000 (Thu, 02 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Add a line about Dynamic Version of MPFR.
-
-------------------------------------------------------------------------
-r2962 | zimmerma | 2004-09-01 16:42:07 +0000 (Wed, 01 Sep 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added warnings about init functions (mpf wrt mpfr)
-
-------------------------------------------------------------------------
-r2961 | pelissip | 2004-08-31 13:01:00 +0000 (Tue, 31 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update documentations.
-
-------------------------------------------------------------------------
-r2960 | pelissip | 2004-08-31 13:00:15 +0000 (Tue, 31 Aug 2004) | 3 lines
-Changed paths:
- M /trunk/get_z.c
- M /trunk/mpfr.h
- M /trunk/tests/tget_z.c
-
-Rename mpz_set_fr to mpfr_get_z.
-Provide a conditionnal macro for mpz_set_fr.
-
-------------------------------------------------------------------------
-r2959 | pelissip | 2004-08-31 09:20:41 +0000 (Tue, 31 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add doc for mpfr_sqr.
-
-------------------------------------------------------------------------
-r2958 | pelissip | 2004-08-31 08:58:29 +0000 (Tue, 31 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix month.
-
-------------------------------------------------------------------------
-r2957 | pelissip | 2004-08-26 09:05:32 +0000 (Thu, 26 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-Add a new test to check overflow.
-
-------------------------------------------------------------------------
-r2956 | pelissip | 2004-08-24 14:00:42 +0000 (Tue, 24 Aug 2004) | 3 lines
-Changed paths:
- M /trunk/exp_2.c
-
-Try to retype correctly the functions (replace int by the correct type).
-Still some works to do.
-
-------------------------------------------------------------------------
-r2955 | pelissip | 2004-08-23 09:32:27 +0000 (Mon, 23 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add description of what does MPFR_INT_CEIL_LOG2.
-
-------------------------------------------------------------------------
-r2954 | pelissip | 2004-08-23 09:31:32 +0000 (Mon, 23 Aug 2004) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/exp_2.c
- A /trunk/isqrt.c
-
-Move __gmpfr_isqrt and __gmpfr_cuberoot to another file.
-Clean up the code of mpfr_exp_2: remove DEBUG condition to use TRACE, ASSERT and DUMP.
-Use MPFR_INT_CEIL_LOG2 instead of __gmpfr_ceil_log2.
-
-------------------------------------------------------------------------
-r2953 | pelissip | 2004-08-23 09:29:55 +0000 (Mon, 23 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Improve a comment.
-
-------------------------------------------------------------------------
-r2952 | pelissip | 2004-08-23 09:01:18 +0000 (Mon, 23 Aug 2004) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/int_ceil_log2.c
- M /trunk/mpfr-impl.h
-
-Add MPFR_INT_CEIL_LOG2 macro and __gmpfr_int_ceil_log2 function
-(don't use function but macro).
-
-------------------------------------------------------------------------
-r2951 | pelissip | 2004-08-23 08:58:24 +0000 (Mon, 23 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Fix 2 typos.
-
-------------------------------------------------------------------------
-r2950 | pelissip | 2004-08-19 15:02:18 +0000 (Thu, 19 Aug 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Fix a bug on 64-bits introduced due to huger MPFR_EMAX_MAX.
-
-------------------------------------------------------------------------
-r2949 | pelissip | 2004-08-19 14:42:03 +0000 (Thu, 19 Aug 2004) | 5 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Add new functions: mpfr_get_emin_min, mpfr_get_emax_max, mpfr_get_emin_max and
-mpfr_get_emax_min.
-Add documentation and explanation about potential portability problem when
-you mpfr_set_emin and mpfr_set_emax.
-
-------------------------------------------------------------------------
-r2948 | vlefevre | 2004-07-28 15:10:23 +0000 (Wed, 28 Jul 2004) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Added mpfr-longlong.h to libmpfr_a_SOURCES so that it is distributed
-with make dist.
-
-------------------------------------------------------------------------
-r2947 | vlefevre | 2004-07-28 15:06:29 +0000 (Wed, 28 Jul 2004) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Added mpfr-gmp.h to libmpfr_a_SOURCES so that it is distributed
-with make dist.
-
-------------------------------------------------------------------------
-r2946 | pelissip | 2004-07-26 14:38:56 +0000 (Mon, 26 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add a new section.
-
-------------------------------------------------------------------------
-r2945 | pelissip | 2004-07-20 09:09:34 +0000 (Tue, 20 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- A /trunk/sqr.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tsqr.c
-
-Add function mpfr_sqr (TODO: Make doc)
-
-------------------------------------------------------------------------
-r2944 | pelissip | 2004-07-19 11:48:10 +0000 (Mon, 19 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-Fix an unsigned/signed comparison.
-
-------------------------------------------------------------------------
-r2943 | pelissip | 2004-07-19 11:39:27 +0000 (Mon, 19 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-Improve the emulation of mpn_sqr_n and fix some typos.
-
-------------------------------------------------------------------------
-r2942 | pelissip | 2004-07-16 11:33:34 +0000 (Fri, 16 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-Remove unused item "rnd_mode" in cache struct.
-
-------------------------------------------------------------------------
-r2941 | pelissip | 2004-07-16 08:59:40 +0000 (Fri, 16 Jul 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tversion.c
- M /trunk/version.c
-
-Renamme mpfr_version to mpfr_get_version to be more GMP compatible.
-Add macro mpfr_version.
-
-------------------------------------------------------------------------
-r2940 | pelissip | 2004-07-16 08:54:53 +0000 (Fri, 16 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/cmp_ui.c
- M /trunk/round_raw_generic.c
-
-Likely some tests.
-
-------------------------------------------------------------------------
-r2939 | pelissip | 2004-07-15 07:58:02 +0000 (Thu, 15 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/set_si.c
-
-Add a speciliation for set_si for GCC.
-
-------------------------------------------------------------------------
-r2938 | pelissip | 2004-07-09 09:42:26 +0000 (Fri, 09 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-Try to optimize a few agm by rewriting a few the loop.
-
-------------------------------------------------------------------------
-r2937 | pelissip | 2004-07-09 09:41:45 +0000 (Fri, 09 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-Likely / Unlikely some tests using gcov.
-
-------------------------------------------------------------------------
-r2936 | pelissip | 2004-07-06 12:16:52 +0000 (Tue, 06 Jul 2004) | 5 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Remove some unused code.
-Add MPFR_LMIB_PER_DOUBLE
-Add MPFR_DUMP
-Add MPFR_TRACE
-
-------------------------------------------------------------------------
-r2935 | pelissip | 2004-07-06 12:14:44 +0000 (Tue, 06 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Likely some tests.
-
-------------------------------------------------------------------------
-r2934 | pelissip | 2004-07-06 12:14:11 +0000 (Tue, 06 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-Used static precision for the array of limb for double.
-
-------------------------------------------------------------------------
-r2933 | pelissip | 2004-07-06 12:10:24 +0000 (Tue, 06 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-Likely some tests / Other minor optimisations.
-
-------------------------------------------------------------------------
-r2932 | pelissip | 2004-07-06 12:09:31 +0000 (Tue, 06 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/ui_div.c
-
-Minor modifications.
-
-------------------------------------------------------------------------
-r2931 | pelissip | 2004-07-06 12:08:13 +0000 (Tue, 06 Jul 2004) | 3 lines
-Changed paths:
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
-
-Unlikely a test so that it is faster when you call theses functions
-with the same dest and source which is the common case in MPFR.
-
-------------------------------------------------------------------------
-r2930 | pelissip | 2004-07-06 12:04:08 +0000 (Tue, 06 Jul 2004) | 3 lines
-Changed paths:
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
-
-Likely a test to optimize when dest and src are the same
-(which is very likely inside MPFR).
-
-------------------------------------------------------------------------
-r2929 | pelissip | 2004-07-06 12:02:59 +0000 (Tue, 06 Jul 2004) | 2 lines
-Changed paths:
- M /trunk/cache.c
-
-Likely a test (since cache should always work fine).
-
-------------------------------------------------------------------------
-r2928 | pelissip | 2004-06-28 12:11:44 +0000 (Mon, 28 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
- M /trunk/get_d.c
-
-Add some likely, and use a static table instead of a dynamic one.
-
-------------------------------------------------------------------------
-r2927 | pelissip | 2004-06-16 12:08:30 +0000 (Wed, 16 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/asin.c
- M /trunk/atan.c
-
-Unlikely some tests.
-
-------------------------------------------------------------------------
-r2926 | pelissip | 2004-06-10 15:10:12 +0000 (Thu, 10 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/set_z.c
-
-Likely / Unlikely the code.
-
-------------------------------------------------------------------------
-r2925 | pelissip | 2004-06-10 14:03:10 +0000 (Thu, 10 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Respace some macro.
-
-------------------------------------------------------------------------
-r2924 | pelissip | 2004-06-10 14:02:30 +0000 (Thu, 10 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/save_expo.c
-
-Retab some lines.
-
-------------------------------------------------------------------------
-r2923 | pelissip | 2004-06-10 14:01:33 +0000 (Thu, 10 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/get_z.c
-
-Optimize a bit.
-
-------------------------------------------------------------------------
-r2922 | pelissip | 2004-06-10 13:59:50 +0000 (Thu, 10 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/sin.c
- M /trunk/tests/tsin.c
-
-Fix an overflow bug.
-
-------------------------------------------------------------------------
-r2921 | zimmerma | 2004-06-08 07:27:40 +0000 (Tue, 08 Jun 2004) | 2 lines
-Changed paths:
- M /trunk/exp3.c
- M /trunk/tests/texp.c
-
-fixed bug in mpfr_exp_3 (wrong assert)
-
-------------------------------------------------------------------------
-r2920 | pelissip | 2004-05-27 14:39:34 +0000 (Thu, 27 May 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Fix typos.
-
-------------------------------------------------------------------------
-r2919 | pelissip | 2004-05-27 09:52:44 +0000 (Thu, 27 May 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update doc.
-
-------------------------------------------------------------------------
-r2918 | zimmerma | 2004-05-18 16:00:28 +0000 (Tue, 18 May 2004) | 3 lines
-Changed paths:
- M /trunk/cos.c
-
-fixed problem for x near from Pi/2 (the internal precision should take
-into account the cancellation)
-
-------------------------------------------------------------------------
-r2917 | pelissip | 2004-05-18 15:26:19 +0000 (Tue, 18 May 2004) | 2 lines
-Changed paths:
- M /trunk/sin.c
- M /trunk/tests/tsin.c
-
-Improve tests for sin.
-
-------------------------------------------------------------------------
-r2916 | zimmerma | 2004-05-18 14:29:55 +0000 (Tue, 18 May 2004) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-mpfr_sin_sign() should use at least MPFR_GET_EXP() bits
-
-------------------------------------------------------------------------
-r2915 | pelissip | 2004-05-17 07:57:34 +0000 (Mon, 17 May 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Remove an item.
-
-------------------------------------------------------------------------
-r2914 | pelissip | 2004-05-12 14:57:36 +0000 (Wed, 12 May 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tcos.c
- M /trunk/tests/ttan.c
-
-Add a potential test (Too slow).
-
-------------------------------------------------------------------------
-r2913 | pelissip | 2004-05-12 14:57:10 +0000 (Wed, 12 May 2004) | 2 lines
-Changed paths:
- M /trunk/tan.c
-
-Simplify the code.
-
-------------------------------------------------------------------------
-r2912 | pelissip | 2004-05-11 07:21:45 +0000 (Tue, 11 May 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Remove a C++ comment.
-
-------------------------------------------------------------------------
-r2911 | pelissip | 2004-05-10 07:03:28 +0000 (Mon, 10 May 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Remove a forgotten "assertd" which isn't useful anymore.
-
-------------------------------------------------------------------------
-r2910 | pelissip | 2004-05-07 15:04:30 +0000 (Fri, 07 May 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/mpfr-impl.h
-
-Optimize cos.
-
-------------------------------------------------------------------------
-r2909 | zimmerma | 2004-05-07 13:00:11 +0000 (Fri, 07 May 2004) | 3 lines
-Changed paths:
- M /trunk/cos.c
-
-improved initial value of working precision (did not take into account
-2K lost bits for large arguments)
-
-------------------------------------------------------------------------
-r2908 | pelissip | 2004-05-06 12:37:21 +0000 (Thu, 06 May 2004) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/asin.c
- M /trunk/atan.c
- M /trunk/exp2.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/texp2.c
- M /trunk/tests/ttanh.c
-
-Fix overflow and add corresponding tests.
-
-------------------------------------------------------------------------
-r2907 | pelissip | 2004-05-06 10:42:56 +0000 (Thu, 06 May 2004) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-Fix a bug in a formula.
-
-------------------------------------------------------------------------
-r2906 | pelissip | 2004-05-06 10:42:44 +0000 (Thu, 06 May 2004) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-Optimize it a bit.
-
-------------------------------------------------------------------------
-r2905 | pelissip | 2004-05-06 09:56:48 +0000 (Thu, 06 May 2004) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/exp_2.c
- M /trunk/gamma.c
- M /trunk/tests/texp.c
- M /trunk/tests/tgamma.c
-
-Fix overflow problems.
-
-------------------------------------------------------------------------
-r2904 | pelissip | 2004-05-06 09:11:20 +0000 (Thu, 06 May 2004) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tcosh.c
-
-Fix overflow bug.
-
-------------------------------------------------------------------------
-r2903 | pelissip | 2004-05-05 15:34:06 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-Remove the double vars. (Use fixed instead).
-
-------------------------------------------------------------------------
-r2902 | pelissip | 2004-05-05 15:14:07 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Add a note about tanh.
-
-------------------------------------------------------------------------
-r2901 | pelissip | 2004-05-05 15:10:43 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/tanh.c
- M /trunk/tests/ttanh.c
-
-Fix a bug in cas of overflow in tanh.
-
-------------------------------------------------------------------------
-r2900 | pelissip | 2004-05-05 13:02:20 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/tanh.c
-
-Optimize a few by reducing the # of used vars.
-
-------------------------------------------------------------------------
-r2899 | pelissip | 2004-05-05 12:29:28 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/cosh.c
- M /trunk/tests/tcosh.c
-
-Fix critical bugs due to different kind of overflow in cosh.
-
-------------------------------------------------------------------------
-r2898 | pelissip | 2004-05-05 12:28:38 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add MPFR_TMP_INIT_ABS macro.
-
-------------------------------------------------------------------------
-r2897 | pelissip | 2004-05-05 09:39:23 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
- M /trunk/cosh.c
-
-Optimize cosh a few by removing an unused intermedary var.
-
-------------------------------------------------------------------------
-r2896 | pelissip | 2004-05-05 07:49:22 +0000 (Wed, 05 May 2004) | 2 lines
-Changed paths:
- M /trunk/const_log2.c
-
-Fix a critical bug in case of overflow.
-
-------------------------------------------------------------------------
-r2895 | pelissip | 2004-05-04 15:46:42 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tlog.c
-
-Fix a critical bug in cos in case you have set the float range for the exponents.
-
-------------------------------------------------------------------------
-r2894 | pelissip | 2004-05-04 14:17:54 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-Optimize a few cos.
-
-------------------------------------------------------------------------
-r2893 | pelissip | 2004-05-04 13:34:15 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-Optimize the way of computing initial precision.
-
-------------------------------------------------------------------------
-r2892 | pelissip | 2004-05-04 12:52:01 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-Add a test to check an overflow in const_pi (called by log in case of emulation of the float type).
-
-------------------------------------------------------------------------
-r2891 | pelissip | 2004-05-04 12:50:59 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
-
-Move to ASSERT mode some code.
-
-------------------------------------------------------------------------
-r2890 | pelissip | 2004-05-04 12:46:13 +0000 (Tue, 04 May 2004) | 3 lines
-Changed paths:
- M /trunk/const_pi.c
-
-Push/Pop emin/emax so that an overflow can't occur in mpfr_set_z(x,pi,r)
-Add test too.
-
-------------------------------------------------------------------------
-r2889 | pelissip | 2004-05-04 09:06:04 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/mul_2ui.c
-
-Add some UNLIKELY to the while.
-
-------------------------------------------------------------------------
-r2888 | pelissip | 2004-05-04 09:05:30 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-Add some UNLIKELY to the tests.
-
-------------------------------------------------------------------------
-r2887 | pelissip | 2004-05-04 09:05:00 +0000 (Tue, 04 May 2004) | 2 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/tests/tadd1sp.c
-
-Fix an overflow bug in add1sp.
-
-------------------------------------------------------------------------
-r2885 | pelissip | 2004-04-29 07:31:09 +0000 (Thu, 29 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Fix a typo in AC_MY_LIBS.
-
-------------------------------------------------------------------------
-r2884 | pelissip | 2004-04-28 07:47:59 +0000 (Wed, 28 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/cmp.c
- M /trunk/mpfr.h
-
-Add mpfr_cmp as a real function, not only a macro.
-
-------------------------------------------------------------------------
-r2883 | pelissip | 2004-04-28 07:43:36 +0000 (Wed, 28 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/set.c
-
-Add mpfr_set and mpfr_abs as real functions.
-
-------------------------------------------------------------------------
-r2882 | pelissip | 2004-04-27 13:35:45 +0000 (Tue, 27 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-When using GCC, optimize certain common comparisons.
-
-------------------------------------------------------------------------
-r2881 | zimmerma | 2004-04-27 11:40:47 +0000 (Tue, 27 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one item
-
-------------------------------------------------------------------------
-r2880 | pelissip | 2004-04-27 09:04:14 +0000 (Tue, 27 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-Minor Optimizations.
-
-------------------------------------------------------------------------
-r2879 | pelissip | 2004-04-27 09:03:17 +0000 (Tue, 27 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/cache.c
-
-Fix a bug (Use nextbeloz instead of sub_one_ulp).
-
-------------------------------------------------------------------------
-r2878 | pelissip | 2004-04-21 13:07:50 +0000 (Wed, 21 Apr 2004) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mpfr-impl.h
-
-Add option in configure: --disable-cache
-to disable the use of the cache for the const.
-
-------------------------------------------------------------------------
-r2877 | pelissip | 2004-04-21 12:47:53 +0000 (Wed, 21 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix a typo.
-
-------------------------------------------------------------------------
-r2876 | pelissip | 2004-04-21 12:36:30 +0000 (Wed, 21 Apr 2004) | 5 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/cache.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/free_cache.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
-
-Add preliminary generic code to handle cached const.
-Move const_pi, const_log2 to use this generic cache,
-which fix bugs of the previous implementation.
-const_euler is now cached too.
-
-------------------------------------------------------------------------
-r2875 | pelissip | 2004-04-21 12:34:00 +0000 (Wed, 21 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/round_prec.c
-
-Fix a bug (If x = Nan, the new new precision wasn't set).
-
-------------------------------------------------------------------------
-r2874 | pelissip | 2004-04-21 12:33:29 +0000 (Wed, 21 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/cputime.h
-
-Fix a typo bug.
-
-------------------------------------------------------------------------
-r2873 | pelissip | 2004-04-20 12:13:51 +0000 (Tue, 20 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_log2.c
-
-Add new test about the cache: new bug to fix.
-
-------------------------------------------------------------------------
-r2872 | pelissip | 2004-04-20 12:03:40 +0000 (Tue, 20 Apr 2004) | 2 lines
-Changed paths:
- A /trunk/iszero.c
-
-Add forgotten file for mpfr_zero_p.
-
-------------------------------------------------------------------------
-r2871 | pelissip | 2004-04-20 09:32:20 +0000 (Tue, 20 Apr 2004) | 6 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/isinf.c
- M /trunk/isnan.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/sgn.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tsgn.c
-
-Add mpfr_zero_p.
-Add macros for mpfr_inf_p, mpfr_nan_p and mpfr_zero_p.
-Add macro for mpfr_sgn.
-Update doc.
-Add new tests.
-
-------------------------------------------------------------------------
-r2870 | pelissip | 2004-04-20 09:30:56 +0000 (Tue, 20 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-Fix a bug in a proto.
-
-------------------------------------------------------------------------
-r2869 | pelissip | 2004-04-20 09:29:48 +0000 (Tue, 20 Apr 2004) | 3 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/tests/tagm.c
-
-Fix a bug when both op are < 0 (It seems it was my fault).
-Add a test to check it.
-
-------------------------------------------------------------------------
-r2868 | pelissip | 2004-04-09 08:38:02 +0000 (Fri, 09 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
-
-Fix a bug (Remove useless function).
-
-------------------------------------------------------------------------
-r2867 | pelissip | 2004-04-08 09:12:08 +0000 (Thu, 08 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-Fix another bug (Maybe the last?).
-
-------------------------------------------------------------------------
-r2866 | pelissip | 2004-04-08 09:09:45 +0000 (Thu, 08 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.h
-
-Fix a tiny bug.
-
-------------------------------------------------------------------------
-r2865 | pelissip | 2004-04-08 09:07:10 +0000 (Thu, 08 Apr 2004) | 4 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-test.h
- M /trunk/tests/reuse.c
- M /trunk/tests/tests.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_f.c
-
-Update memory allocations scheme without gmp-impl.h.
-Now the semantic of the memory allocation scheme is the same
-with and without gmp-impl, as it should be.
-
-------------------------------------------------------------------------
-r2864 | pelissip | 2004-04-07 14:42:32 +0000 (Wed, 07 Apr 2004) | 3 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/gmp_op.c
- M /trunk/mpfr.texi
- M /trunk/sub_ui.c
- M /trunk/tests/tgmpop.c
- M /trunk/ui_sub.c
-
-For add/sub_type functions where type is a type without signed zeros,
-specify the expected result when both operands are 0.
-
-------------------------------------------------------------------------
-r2863 | pelissip | 2004-04-07 14:40:47 +0000 (Wed, 07 Apr 2004) | 4 lines
-Changed paths:
- M /trunk/init2.c
- M /trunk/mpfr-gmp.c
- M /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-Modify a few the allocation scheme without gmp-impl.h
-Add pseudo-constants __MPFR_EXP_NAN, __MPFR_EXP_ZERO and __MPFR_EXP_INF
-for future (?) inlining of some functions.
-
-------------------------------------------------------------------------
-r2862 | zimmerma | 2004-04-07 14:19:44 +0000 (Wed, 07 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/mpn_exp.c
- M /trunk/set_str.c
- M /trunk/tests/tset_str.c
-
-fixed problem when overflow in destination exponent happens
-
-------------------------------------------------------------------------
-r2861 | pelissip | 2004-04-07 13:31:54 +0000 (Wed, 07 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-Fix a bug in case a mpz_t == 0 (mpz_sizeinbase(0Z,2)==0 and MPFR_PREC_MIN=2).
-
-------------------------------------------------------------------------
-r2860 | pelissip | 2004-04-07 13:12:41 +0000 (Wed, 07 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/tests/tpow.c
-
-Fix a bug in case of pow(2E1000000,-10);
-
-------------------------------------------------------------------------
-r2859 | zimmerma | 2004-04-05 08:53:04 +0000 (Mon, 05 Apr 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-fixed problem (cmpabs doesn't work for x=0)
-
-------------------------------------------------------------------------
-r2858 | pelissip | 2004-03-26 13:27:16 +0000 (Fri, 26 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/check.c
- M /trunk/cmp2.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/next.c
- M /trunk/random2.c
- M /trunk/round_prec.c
- M /trunk/set_d.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/trandom.c
- M /trunk/urandomb.c
-
-Change from MP_LIMB_T_ONE to MPFR_LIMB_ONE and/or MPFR_LIMB_MASK.
-
-------------------------------------------------------------------------
-r2857 | pelissip | 2004-03-26 13:26:29 +0000 (Fri, 26 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/init2.c
-
-Improve comments.
-
-------------------------------------------------------------------------
-r2856 | pelissip | 2004-03-26 13:24:58 +0000 (Fri, 26 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-Fix a bug.
-
-------------------------------------------------------------------------
-r2855 | pelissip | 2004-03-26 13:24:14 +0000 (Fri, 26 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-Move detecting macros (__MPFR_GCC, __MPFR_STDC, __MPFR_GLIBC and __MPFR_GMP) from mpfr to mpfr-impl
-
-------------------------------------------------------------------------
-r2854 | zimmerma | 2004-03-22 10:54:28 +0000 (Mon, 22 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-removed blank
-
-------------------------------------------------------------------------
-r2853 | vlefevre | 2004-03-22 10:20:16 +0000 (Mon, 22 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
-
-Test write access to CVS.
-
-------------------------------------------------------------------------
-r2852 | pelissip | 2004-03-18 09:57:51 +0000 (Thu, 18 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-gmp.c
-
-Fix a bug in a string.
-
-------------------------------------------------------------------------
-r2851 | pelissip | 2004-03-17 15:50:27 +0000 (Wed, 17 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add documentation of 'j' functions.
-
-------------------------------------------------------------------------
-r2850 | pelissip | 2004-03-17 12:40:01 +0000 (Wed, 17 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Fix (?) definition of MPFR_PREC_MAX.
-
-------------------------------------------------------------------------
-r2849 | pelissip | 2004-03-17 09:45:26 +0000 (Wed, 17 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-Change the order of the tests.
-
-------------------------------------------------------------------------
-r2848 | pelissip | 2004-03-17 08:45:08 +0000 (Wed, 17 Mar 2004) | 4 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/exp3.c
- M /trunk/mpfr-impl.h
- M /trunk/tests/texp.c
-
-Rename mpfr_exp3 in mpfr_exp_3.
-Update THRESHOLD for mpfr_exp.
-Add MPFR_EXP_THRESHOLD.
-
-------------------------------------------------------------------------
-r2847 | pelissip | 2004-03-16 15:24:50 +0000 (Tue, 16 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Add new option "--with-gmp-build="
-
-------------------------------------------------------------------------
-r2846 | pelissip | 2004-03-16 15:24:26 +0000 (Tue, 16 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Update INSTALL
-
-------------------------------------------------------------------------
-r2845 | pelissip | 2004-03-16 13:44:38 +0000 (Tue, 16 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Fix a bug (Forget to cast to mp_exp_t).
-
-------------------------------------------------------------------------
-r2844 | pelissip | 2004-03-16 10:45:49 +0000 (Tue, 16 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/swap.c
-
-Update comment
-
-------------------------------------------------------------------------
-r2843 | pelissip | 2004-03-16 10:43:24 +0000 (Tue, 16 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_z.c
- M /trunk/mpfr.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/tget_z.c
-
-Add mpz_set_fr function and its test.
-
-------------------------------------------------------------------------
-r2842 | pelissip | 2004-03-15 14:09:49 +0000 (Mon, 15 Mar 2004) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- A /trunk/set_sj.c
- A /trunk/set_uj.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tset_sj.c
-
-Add new functions:
- mpfr_set_sj_2exp, mpfr_set_sj
- mpfr_set_uj_2exp, mpfr_set_uj
-
-------------------------------------------------------------------------
-r2841 | pelissip | 2004-03-15 14:08:54 +0000 (Mon, 15 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/sub1sp.c
-
-Fix a compiler bug (limb !=0 instead of limb).
-
-------------------------------------------------------------------------
-r2840 | pelissip | 2004-03-15 13:26:42 +0000 (Mon, 15 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/print_raw.c
-
-Fix a cast problem on some systems (sizeof(mp_limb_t) > sizeof(unsigned long)).
-
-------------------------------------------------------------------------
-r2839 | pelissip | 2004-03-12 17:45:07 +0000 (Fri, 12 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tsub1sp.c
-
-Remove use of abort (They can create core dump on some systems).
-
-------------------------------------------------------------------------
-r2838 | pelissip | 2004-03-12 13:17:53 +0000 (Fri, 12 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/tests/tacos.c
-
-Fix bug of inexact flag for acos(0).
-
-------------------------------------------------------------------------
-r2837 | pelissip | 2004-03-12 12:51:09 +0000 (Fri, 12 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/tests/memory.c
-
-Update.
-
-------------------------------------------------------------------------
-r2836 | pelissip | 2004-03-11 12:39:08 +0000 (Thu, 11 Mar 2004) | 3 lines
-Changed paths:
- M /trunk/si_op.c
- M /trunk/tests/tsi_op.c
-
-Fix bug about forgotten MPFR_INVERT_RND.
-Add test too.
-
-------------------------------------------------------------------------
-r2835 | pelissip | 2004-03-11 12:38:33 +0000 (Thu, 11 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add doc about HAVE_STDINT_H
-
-------------------------------------------------------------------------
-r2834 | pelissip | 2004-03-10 16:16:28 +0000 (Wed, 10 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix doc about MPFR_DECL_INIT.
-
-------------------------------------------------------------------------
-r2833 | pelissip | 2004-03-10 15:31:42 +0000 (Wed, 10 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Fix the declaration of 'MPFR_DECL_INIT'
-
-------------------------------------------------------------------------
-r2832 | pelissip | 2004-03-10 14:58:16 +0000 (Wed, 10 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/init2.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Add 'MPFR_DECL_INIT' macro.
-
-------------------------------------------------------------------------
-r2831 | pelissip | 2004-03-10 10:16:51 +0000 (Wed, 10 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/rint.c
-
-Rename NEAREST_AWAY in GMP_RNDNA.
-
-------------------------------------------------------------------------
-r2830 | pelissip | 2004-03-10 09:35:45 +0000 (Wed, 10 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add the description of mpfr_set_ui_2exp and mpfr_set_si_2exp.
-
-------------------------------------------------------------------------
-r2829 | pelissip | 2004-03-09 17:31:29 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- A /trunk/set_si_2exp.c
- A /trunk/set_ui_2exp.c
- M /trunk/tests/tset_si.c
-
-Add mpfr_set_si_2exp and mpfr_set_ui_2exp and their tests.
-
-------------------------------------------------------------------------
-r2828 | pelissip | 2004-03-09 15:20:01 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add doc about mpfr_cmp_f function
-
-------------------------------------------------------------------------
-r2827 | pelissip | 2004-03-09 15:18:17 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/mpfr.h
- M /trunk/set_f.c
- M /trunk/tests/tgmpop.c
-
-Add mpfr_cmp_f and its test.
-
-------------------------------------------------------------------------
-r2826 | pelissip | 2004-03-09 14:11:27 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/cmp_ld.c
- M /trunk/mpfr.h
- M /trunk/tests/Makefile.am
- M /trunk/tests/tcmp_d.c
- A /trunk/tests/tcmp_ld.c
-
-Add mpfr_cmp_ld and its test
-
-------------------------------------------------------------------------
-r2825 | pelissip | 2004-03-09 13:58:39 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add doc of 2 macros.
-
-------------------------------------------------------------------------
-r2824 | pelissip | 2004-03-09 13:51:50 +0000 (Tue, 09 Mar 2004) | 3 lines
-Changed paths:
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/mpfr.h
-
-Add mpfr_cmp_ui and mpfr_cmp_si as real functions
-(The macros are still defined and used).
-
-------------------------------------------------------------------------
-r2823 | pelissip | 2004-03-09 13:43:31 +0000 (Tue, 09 Mar 2004) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/si_op.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tsi_op.c
-
-Add mpfr_add_si, mpfr_sub_si, mpfr_si_sub, mpfr_mul_si, mpfr_div_si and
-mpfr_si_div.
-Add the corresponding test.
-
-------------------------------------------------------------------------
-r2822 | pelissip | 2004-03-09 11:02:34 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tgmpop.c
-
-Add `mpfr_cmp_q` and `mpfr_cmp_z`.
-
-------------------------------------------------------------------------
-r2821 | pelissip | 2004-03-09 10:06:01 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Clean up configure
-
-------------------------------------------------------------------------
-r2820 | pelissip | 2004-03-09 09:51:08 +0000 (Tue, 09 Mar 2004) | 2 lines
-Changed paths:
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
-
-Add ASSERT for NAN.
-
-------------------------------------------------------------------------
-r2819 | pelissip | 2004-02-27 12:41:37 +0000 (Fri, 27 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add documentation for MPFR_VERSION
-
-------------------------------------------------------------------------
-r2818 | pelissip | 2004-02-26 11:20:49 +0000 (Thu, 26 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Optimize a few mpfr_mul.
-
-------------------------------------------------------------------------
-r2817 | pelissip | 2004-02-26 10:05:12 +0000 (Thu, 26 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-Add Laurent Fousse in the AUTHORS file.
-
-------------------------------------------------------------------------
-r2816 | vlefevre | 2004-02-26 09:56:02 +0000 (Thu, 26 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Fixed a bug in check2b and added a test; add1.c coverage is now
-complete.
-
-------------------------------------------------------------------------
-r2815 | vlefevre | 2004-02-25 16:30:33 +0000 (Wed, 25 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Improved coverage.
-
-------------------------------------------------------------------------
-r2814 | vlefevre | 2004-02-25 16:00:58 +0000 (Wed, 25 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Improved coverage.
-
-------------------------------------------------------------------------
-r2813 | vlefevre | 2004-02-25 15:44:56 +0000 (Wed, 25 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Bugs fixed in a test function -> improved coverage.
-
-------------------------------------------------------------------------
-r2812 | pelissip | 2004-02-25 15:02:22 +0000 (Wed, 25 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/round_raw_generic.c
-
-Optimize mpfr_round_raw_?
-
-------------------------------------------------------------------------
-r2811 | pelissip | 2004-02-25 10:57:16 +0000 (Wed, 25 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/add1sp.c
- M /trunk/sgn.c
- M /trunk/sub1sp.c
-
-Simplify the code.
-
-------------------------------------------------------------------------
-r2808 | vlefevre | 2004-02-24 14:51:42 +0000 (Tue, 24 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-Avoid integer overflow.
-
-------------------------------------------------------------------------
-r2807 | vlefevre | 2004-02-24 14:44:38 +0000 (Tue, 24 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-Ported code clean-up to trunk.
-
-------------------------------------------------------------------------
-r2802 | pelissip | 2004-02-24 13:23:35 +0000 (Tue, 24 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/div.c
- M /trunk/eq.c
- M /trunk/frac.c
- M /trunk/log10.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set_d.c
- M /trunk/set_str.c
- M /trunk/sin.c
- M /trunk/sqrt.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sum.c
- M /trunk/tests/tests.c
-
-Remove some warnings.
-MPFR can be compiled (but not checked!) with a C++ compiler.
-
-------------------------------------------------------------------------
-r2797 | pelissip | 2004-02-24 09:12:03 +0000 (Tue, 24 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tzeta.c
-
-Improve test coverage.
-
-------------------------------------------------------------------------
-r2796 | zimmerma | 2004-02-24 08:14:39 +0000 (Tue, 24 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-further simplification of the code (replaced one in-place shift and copy
-by out-of-place shift or copy)
-
-------------------------------------------------------------------------
-r2795 | zimmerma | 2004-02-23 16:47:46 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tui_div.c
-
-use GMP_RND_MAX instead of hard-coded constant
-
-------------------------------------------------------------------------
-r2794 | zimmerma | 2004-02-23 16:23:59 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/tests/tdiv.c
-
-simplified the code of div.c and improved coverage
-
-------------------------------------------------------------------------
-r2792 | pelissip | 2004-02-23 14:20:32 +0000 (Mon, 23 Feb 2004) | 3 lines
-Changed paths:
- D /trunk/longlong.h
- M /trunk/mpfr-impl.h
- A /trunk/mpfr-longlong.h
-
-Rename 'longlong.h' in 'mpfr-longlong.h' so that when MPFR is built
-within GMP it uses GMP's 'longlong.h' rather than MPFR's copy.
-
-------------------------------------------------------------------------
-r2791 | vlefevre | 2004-02-23 14:19:02 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2789 | pelissip | 2004-02-23 14:09:10 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- A /trunk/free_cache.c
-
-Add mpfr_free_cache (2).
-
-------------------------------------------------------------------------
-r2788 | pelissip | 2004-02-23 14:08:44 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tests.c
-
-Add mpfr_free_cache.
-
-------------------------------------------------------------------------
-r2787 | pelissip | 2004-02-23 13:51:41 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tget_str.c
-
-Add mpfr_free_str function.
-
-------------------------------------------------------------------------
-r2786 | pelissip | 2004-02-23 12:14:40 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Remove a warning.
-
-------------------------------------------------------------------------
-r2785 | pelissip | 2004-02-23 12:14:29 +0000 (Mon, 23 Feb 2004) | 4 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Reorder the declarations of the functions.
-Remove duplicate declarations.
-Remove mpfr_factorial.
-
-------------------------------------------------------------------------
-r2784 | zimmerma | 2004-02-23 10:01:42 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-patch from Guillaume Hanrot
-
-------------------------------------------------------------------------
-r2783 | pelissip | 2004-02-23 09:43:29 +0000 (Mon, 23 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/pow_ui.c
- M /trunk/set_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
-
-Improve coverage tests.
-Fix 2 underflow bugs.
-
-------------------------------------------------------------------------
-r2782 | pelissip | 2004-02-23 09:42:29 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-Update comment
-
-------------------------------------------------------------------------
-r2781 | pelissip | 2004-02-23 09:42:04 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Improve comments.
-
-------------------------------------------------------------------------
-r2780 | pelissip | 2004-02-23 09:41:28 +0000 (Mon, 23 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Add a comment.
-
-------------------------------------------------------------------------
-r2779 | vlefevre | 2004-02-22 01:48:32 +0000 (Sun, 22 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Added tests.
-
-------------------------------------------------------------------------
-r2775 | fousse | 2004-02-20 13:15:44 +0000 (Fri, 20 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/sum.c
- M /trunk/tests/tsum.c
-
-Changed mpfr_sum to use unsigned long instead of unsigned int. More tests.
-
-------------------------------------------------------------------------
-r2774 | pelissip | 2004-02-20 12:58:30 +0000 (Fri, 20 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/neg.c
- M /trunk/tests/tset.c
-
-mpfr_neg (b, b, r) for b=NAN didn't set NAN flag.
-
-------------------------------------------------------------------------
-r2773 | pelissip | 2004-02-20 10:49:34 +0000 (Fri, 20 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr_sgn is no longer a macro.
-
-------------------------------------------------------------------------
-r2770 | pelissip | 2004-02-19 12:33:47 +0000 (Thu, 19 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-Fix bug with exact rationnal arguments (0.5+3/2 freezes).
-
-------------------------------------------------------------------------
-r2767 | vlefevre | 2004-02-18 12:47:00 +0000 (Wed, 18 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/config.guess
- M /trunk/config.sub
-
-Update from the autotools-dev Debian package (2004-01-05).
-
-------------------------------------------------------------------------
-r2761 | vlefevre | 2004-02-18 10:41:00 +0000 (Wed, 18 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/set_f.c
- M /trunk/tests/tset_f.c
-
-Fixed a bug in mpfr_set_f for 0 (wrong sign) and added the test.
-
-------------------------------------------------------------------------
-r2760 | pelissip | 2004-02-18 10:29:40 +0000 (Wed, 18 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-Fix bug if you build MPFR with ASSERT.
-
-------------------------------------------------------------------------
-r2759 | pelissip | 2004-02-17 14:39:16 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Reduce the number of used variables.
-
-------------------------------------------------------------------------
-r2758 | zimmerma | 2004-02-17 14:29:28 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/round_raw_generic.c
-
-improved again documentation
-
-------------------------------------------------------------------------
-r2757 | zimmerma | 2004-02-17 14:27:06 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-simplified rounding
-
-------------------------------------------------------------------------
-r2756 | zimmerma | 2004-02-17 14:17:31 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/round_raw_generic.c
-
-improved documentation of *inexp
-
-------------------------------------------------------------------------
-r2752 | pelissip | 2004-02-17 12:12:21 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-Simplify the random code.
-
-------------------------------------------------------------------------
-r2751 | pelissip | 2004-02-17 12:12:02 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-Optimize it a few.
-
-------------------------------------------------------------------------
-r2750 | pelissip | 2004-02-17 12:11:49 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/round_raw_generic.c
-
-Add 2004 in copyright line.
-
-------------------------------------------------------------------------
-r2749 | pelissip | 2004-02-17 12:11:26 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add a section which describes the needed macros for building MPFR.
-
-------------------------------------------------------------------------
-r2747 | zimmerma | 2004-02-17 11:21:04 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-added comment about probability of normalized product
-
-------------------------------------------------------------------------
-r2744 | vlefevre | 2004-02-17 10:36:11 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Added a note about the ternary value, important in practice.
-
-------------------------------------------------------------------------
-r2743 | zimmerma | 2004-02-17 10:02:29 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/set_f.c
- M /trunk/tests/tset_f.c
-
-fixed 2 bugs and added test
-
-------------------------------------------------------------------------
-r2742 | zimmerma | 2004-02-17 10:01:18 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/round_raw_generic.c
-
-added comment about return value
-
-------------------------------------------------------------------------
-r2741 | pelissip | 2004-02-17 08:57:19 +0000 (Tue, 17 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Try so support GMP as a Shared Library.
-
-------------------------------------------------------------------------
-r2740 | zimmerma | 2004-02-16 18:23:49 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-improved error message
-
-------------------------------------------------------------------------
-r2739 | pelissip | 2004-02-16 18:02:42 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
-
-Fix the computing of the error for mpq_add and mpq_sub.
-
-------------------------------------------------------------------------
-r2738 | vlefevre | 2004-02-16 17:57:38 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Added more tests (improved tadd1.c coverage).
-
-------------------------------------------------------------------------
-r2737 | zimmerma | 2004-02-16 17:47:59 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-added cancellation test for add_q
-
-------------------------------------------------------------------------
-r2736 | vlefevre | 2004-02-16 17:37:59 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Added tests (improved tadd1.c coverage).
-
-------------------------------------------------------------------------
-r2735 | pelissip | 2004-02-16 17:35:26 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/tests/tgmpop.c
-
-Fix bug of add_q and sub_q with special values (NAN, INF and ZERO).
-
-------------------------------------------------------------------------
-r2734 | zimmerma | 2004-02-16 17:12:45 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/set_d.c
- M /trunk/set_q.c
-
-deal with overflow/underflow in mpfr_div
-
-------------------------------------------------------------------------
-r2733 | zimmerma | 2004-02-16 17:04:34 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tgmpop.c
-
-added hard-coded tests
-
-------------------------------------------------------------------------
-r2732 | vlefevre | 2004-02-16 16:50:31 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-When the precisions are the same, test both mpfr_add1sp and mpfr_add1.
-
-------------------------------------------------------------------------
-r2731 | vlefevre | 2004-02-16 16:34:39 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Added overflow check.
-
-------------------------------------------------------------------------
-r2730 | pelissip | 2004-02-16 16:17:38 +0000 (Mon, 16 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/add1sp.c
- M /trunk/div.c
- M /trunk/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-Optimize add1sp, sub1sp and div.
-Improve coverage test for sub1sp.
-
-------------------------------------------------------------------------
-r2729 | vlefevre | 2004-02-16 16:06:11 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-Removed unused label.
-
-------------------------------------------------------------------------
-r2727 | vlefevre | 2004-02-16 15:05:18 +0000 (Mon, 16 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-Really reverted to rev. 1.54 + kept optimization + commented out
-is_odd_even.
-
-------------------------------------------------------------------------
-r2725 | zimmerma | 2004-02-16 14:30:43 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/set_d.c
- M /trunk/set_ld.c
-
-take into account possible out-of-range exponent
-
-------------------------------------------------------------------------
-r2724 | zimmerma | 2004-02-16 14:24:48 +0000 (Mon, 16 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-revert to rev 1.54 code for case x infinite
-(was less efficient but simpler)
-
-------------------------------------------------------------------------
-r2723 | zimmerma | 2004-02-16 13:56:42 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-fixed bug with in-place computation
-
-------------------------------------------------------------------------
-r2722 | vlefevre | 2004-02-16 13:55:27 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tsqrt.c
-
-Code clean-up and fix to avoid warnings.
-
-------------------------------------------------------------------------
-r2721 | zimmerma | 2004-02-16 13:35:20 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-changed back to C99 standard for special values of x^y
-
-------------------------------------------------------------------------
-r2720 | zimmerma | 2004-02-16 11:33:24 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-added test for *function* mpfr_round
-
-------------------------------------------------------------------------
-r2719 | zimmerma | 2004-02-16 11:06:06 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tinp_str.c
- M /trunk/tests/tout_str.c
-
-check return value of fopen
-
-------------------------------------------------------------------------
-r2718 | vlefevre | 2004-02-16 11:01:38 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-Removed the no longer used label "fin" and fixed the indentation.
-
-------------------------------------------------------------------------
-r2717 | vlefevre | 2004-02-16 10:55:36 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Fix: MPFR_NOT_ZERO -> MPFR_NOTZERO.
-
-------------------------------------------------------------------------
-r2716 | vlefevre | 2004-02-16 10:52:40 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-Commented out the now useless "double uo, vo;".
-
-------------------------------------------------------------------------
-r2715 | zimmerma | 2004-02-16 10:41:02 +0000 (Mon, 16 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-improved coverage tests
-
-------------------------------------------------------------------------
-r2714 | zimmerma | 2004-02-14 23:05:51 +0000 (Sat, 14 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/mpfr.texi
- M /trunk/set_d.c
- M /trunk/set_q.c
- M /trunk/set_str_raw.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tset_d.c
- A /trunk/tests/tset_exp.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/ui_div.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
-
-new coverage tests
-
-------------------------------------------------------------------------
-r2713 | zimmerma | 2004-02-14 11:11:31 +0000 (Sat, 14 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/hypot.c
- M /trunk/inp_str.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/mpfr.texi
- M /trunk/mpn_exp.c
- M /trunk/mul_ui.c
- M /trunk/next.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/inp_str.data
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/thypot.c
- A /trunk/tests/tinp_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
-
-improved coverage test
-
-------------------------------------------------------------------------
-r2712 | zimmerma | 2004-02-13 17:39:02 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tset_si.c
-
-improved coverage test
-
-------------------------------------------------------------------------
-r2711 | zimmerma | 2004-02-13 17:17:52 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/tests/tget_str.c
-
-improved test coverage
-
-------------------------------------------------------------------------
-r2710 | zimmerma | 2004-02-13 16:00:10 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-improved test coverage
-
-------------------------------------------------------------------------
-r2709 | zimmerma | 2004-02-13 15:35:19 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/exp3.c
- M /trunk/tests/texp.c
-
-improved test coverage
-
-------------------------------------------------------------------------
-r2708 | pelissip | 2004-02-13 15:05:42 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd1sp.c
-
-Fix a bug in taddsp (Forget to check if random does not generate zero).
-
-------------------------------------------------------------------------
-r2707 | zimmerma | 2004-02-13 13:57:24 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/teq.c
-
-improved editing style
-
-------------------------------------------------------------------------
-r2706 | zimmerma | 2004-02-13 13:44:41 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/div_ui.c
- M /trunk/tests/tdiv_ui.c
-
-improved test coverage
-
-------------------------------------------------------------------------
-r2705 | zimmerma | 2004-02-13 13:43:27 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/eq.c
- M /trunk/tests/teq.c
-
-partly rewritten, and improved test coverage
-
-------------------------------------------------------------------------
-r2704 | vlefevre | 2004-02-13 13:33:10 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-Added tests for mpfr_mul_2si and mpfr_div_2si + corrections.
-
-------------------------------------------------------------------------
-r2703 | vlefevre | 2004-02-13 12:31:49 +0000 (Fri, 13 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and
-mpfr_div_2ui as the 2exp form is obsolete.
-
-------------------------------------------------------------------------
-r2702 | zimmerma | 2004-02-13 12:25:14 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tfactorial.c
-
-removed warnings
-
-------------------------------------------------------------------------
-r2701 | pelissip | 2004-02-13 11:30:05 +0000 (Fri, 13 Feb 2004) | 5 lines
-Changed paths:
- M /trunk/check.c
- M /trunk/cmp_abs.c
- M /trunk/set.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tcmpabs.c
- M /trunk/tests/texceptions.c
- A /trunk/tests/tfits.c
- A /trunk/tests/toutimpl.c
-
-Add test for mpfr_cmpabs
-Add test for mpfr_fits_
-Add test for internal dumping functions.
-Improve coverage test for exceptions / set / check.
-
-------------------------------------------------------------------------
-r2700 | zimmerma | 2004-02-13 10:52:11 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
- M /trunk/tests/tconst_pi.c
-
-improved coverage
-
-------------------------------------------------------------------------
-r2699 | zimmerma | 2004-02-13 10:31:42 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-removed Kevin, added missing accent
-
-------------------------------------------------------------------------
-r2698 | zimmerma | 2004-02-13 09:33:55 +0000 (Fri, 13 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_ui.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/mpfr.texi
- M /trunk/tests/tagm.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_log2.c
- M /trunk/uceil_exp2.c
-
-improved coverage test
-
-------------------------------------------------------------------------
-r2697 | pelissip | 2004-02-12 18:02:28 +0000 (Thu, 12 Feb 2004) | 4 lines
-Changed paths:
- M /trunk/dump.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr.h
-
-Rewrite (simplify) mpfr_dump.
-Change its proto.
-Fix mpf_dump macro in mpf2mpfr.
-
-------------------------------------------------------------------------
-r2696 | pelissip | 2004-02-12 17:58:40 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/div.c
- M /trunk/mul.c
- M /trunk/sub.c
-
-Remove MPFR_ASSERTN(0) and add MPFR_ASSERTD(last condition) instead.
-
-------------------------------------------------------------------------
-r2695 | zimmerma | 2004-02-12 16:54:28 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-improved coverage
-
-------------------------------------------------------------------------
-r2694 | zimmerma | 2004-02-12 16:38:06 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
-
-improved coverage
-
-------------------------------------------------------------------------
-r2693 | zimmerma | 2004-02-12 16:25:29 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-improved cov. test
-
-------------------------------------------------------------------------
-r2692 | zimmerma | 2004-02-12 16:08:00 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tfrac.c
-
-improved cov. test
-
-------------------------------------------------------------------------
-r2691 | zimmerma | 2004-02-12 16:01:26 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/fma.c
- M /trunk/tests/tfma.c
-
-improved coverage test
-
-------------------------------------------------------------------------
-r2690 | zimmerma | 2004-02-12 15:05:14 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/factorial.c
- M /trunk/tests/tfactorial.c
-
-improved coverage test
-
-------------------------------------------------------------------------
-r2689 | zimmerma | 2004-02-12 14:30:20 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/expm1.c
- M /trunk/tests/texpm1.c
-
-improved test coverage
-
-------------------------------------------------------------------------
-r2688 | pelissip | 2004-02-12 14:20:43 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
-
-Improve coverage of const_pi and const_log2 (Test for prec > 20000).
-
-------------------------------------------------------------------------
-r2687 | zimmerma | 2004-02-12 14:08:06 +0000 (Thu, 12 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/tests/texp.c
-
-fixed tiny bugs for corner cases
-improved test coverage
-
-------------------------------------------------------------------------
-r2686 | pelissip | 2004-02-12 13:49:44 +0000 (Thu, 12 Feb 2004) | 6 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/add.c
- A /trunk/add1sp.c
- M /trunk/copysign.c
- M /trunk/div_2ui.c
- M /trunk/mpfr-impl.h
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tadd1sp.c
- A /trunk/tests/tcopysign.c
- M /trunk/tests/tdim.c
- M /trunk/tests/texp.c
- A /trunk/tests/tminmax.c
- M /trunk/tests/tmul_2exp.c
-
-+ Add mpfr_add1sp which provides addition when all the operands have the same precision.
-+ Add new test files for mpfr_copysign and mpfr_min and mpfr_max.
-+ Add test for mpfr_exp10 in tests/texp.c
-+ Improve coverage of div_2ui.c and mul_2ui.c
-+ Add a forgotten ASSERT in mpfr_sqrt
-
-------------------------------------------------------------------------
-r2685 | zimmerma | 2004-02-12 13:20:50 +0000 (Thu, 12 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-improved test coverage
-replaced mpfr_get_d1 by mpfr_get_si
-
-------------------------------------------------------------------------
-r2684 | zimmerma | 2004-02-12 12:54:48 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/erf.c
- M /trunk/tests/terf.c
-
-improved coverage test
-
-------------------------------------------------------------------------
-r2683 | zimmerma | 2004-02-12 12:38:17 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added new coverage test
-
-------------------------------------------------------------------------
-r2682 | pelissip | 2004-02-12 11:42:34 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Fix some mistakes.
-
-------------------------------------------------------------------------
-r2681 | pelissip | 2004-02-12 11:38:49 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Add a description of the gcov tool.
-
-------------------------------------------------------------------------
-r2680 | zimmerma | 2004-02-12 11:35:50 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-now 100% of coverage of sub1.c
-
-------------------------------------------------------------------------
-r2679 | zimmerma | 2004-02-12 11:06:02 +0000 (Thu, 12 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/dim.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tdim.c
-
-new test file for mpfr_dim
-
-------------------------------------------------------------------------
-r2672 | pelissip | 2004-02-06 15:57:28 +0000 (Fri, 06 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Replace AS_HELP_STRING to AC_HELP_STRING (obsolete)
-
-------------------------------------------------------------------------
-r2671 | pelissip | 2004-02-06 15:37:40 +0000 (Fri, 06 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/add1.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asinh.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/const_pi.c
- M /trunk/copysign.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/dump.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/fma.c
- M /trunk/get_exp.c
- M /trunk/get_z_exp.c
- M /trunk/init.c
- M /trunk/inits.c
- M /trunk/inp_str.c
- M /trunk/isinf.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/log1p.c
- M /trunk/mpfr-test.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/powerof2.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_inf.c
- M /trunk/set_q.c
- M /trunk/set_si.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/volatile.c
-
-Add forgotten copyright 2004 line.
-Add a small documentation about mpfr_sum.
-
-------------------------------------------------------------------------
-r2668 | pelissip | 2004-02-06 13:59:56 +0000 (Fri, 06 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- A /trunk/sum.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tsum.c
-
-Added mpfr_sum function.
-
-------------------------------------------------------------------------
-r2665 | pelissip | 2004-02-06 13:27:05 +0000 (Fri, 06 Feb 2004) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/acinclude.m4
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/clear.c
- M /trunk/clears.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_d.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/comparisons.c
- M /trunk/configure.in
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp10.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fits_s.h
- M /trunk/fits_u.h
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/gamma.c
- M /trunk/get_d.c
- M /trunk/get_exp.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_z_exp.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inits.c
- M /trunk/inits2.c
- M /trunk/inp_str.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- A /trunk/longlong.h
- M /trunk/minmax.c
- A /trunk/mp_clz_tab.c
- A /trunk/mpfr-gmp.c
- A /trunk/mpfr-gmp.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpn_exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/next.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/powerof2.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sgn.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub1sp.c
- M /trunk/sub_one_ulp.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/memory.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tui_pow.c
- M /trunk/uceil_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/version.c
- M /trunk/volatile.c
-
-+ Better support of non IEEE doubles.
-+ You can compile MPFR without gmp internal files (ie gmp-impl.h, gmp-mparam.h, and config.h). You only need gmp.h and libgmp.a. But you can still compile with GMP internal files (configure detects them).
-
-------------------------------------------------------------------------
-r2664 | vlefevre | 2004-02-06 13:06:36 +0000 (Fri, 06 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2660 | vlefevre | 2004-02-06 10:54:26 +0000 (Fri, 06 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Updated MPFR URL.
-
-------------------------------------------------------------------------
-r2659 | vlefevre | 2004-02-06 10:49:54 +0000 (Fri, 06 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-Added the changes from version 2.0.1 to version 2.0.2.
-
-------------------------------------------------------------------------
-r2657 | vlefevre | 2004-02-06 10:14:00 +0000 (Fri, 06 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Added: "3) Update the NEWS file.".
-
-------------------------------------------------------------------------
-r2655 | zimmerma | 2004-02-03 10:06:53 +0000 (Tue, 03 Feb 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr.texi
- M /trunk/tests/tget_str.c
-
-fixed bug in get_str (case pow2, rnd=up or down)
-
-------------------------------------------------------------------------
-r2654 | zimmerma | 2004-01-30 16:27:35 +0000 (Fri, 30 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-fixed problem (s1 = s-1 inexact)
-
-------------------------------------------------------------------------
-r2653 | zimmerma | 2004-01-30 15:06:42 +0000 (Fri, 30 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/factorial.c
- M /trunk/gamma.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tgamma.c
-
-fixed problem in gamma/factorial
-
-------------------------------------------------------------------------
-r2652 | zimmerma | 2004-01-30 12:51:58 +0000 (Fri, 30 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/hypot.c
- M /trunk/tests/tagm.c
- M /trunk/tests/thypot.c
-
-added new tests for agm and hypot (+ fixed bugs)
-
-------------------------------------------------------------------------
-r2651 | pelissip | 2004-01-29 16:12:42 +0000 (Thu, 29 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Add GMP_RND_MAX so that a for loop of the rounding modes looks like:
- for(int r = 0 ; r < GMP_RND_MAX ; r++)
-
-------------------------------------------------------------------------
-r2650 | pelissip | 2004-01-28 14:22:05 +0000 (Wed, 28 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/get_d.c
- M /trunk/mpfr-impl.h
- M /trunk/set_d.c
- M /trunk/set_ld.c
- M /trunk/sub1sp.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/uceil_exp2.c
- M /trunk/ufloor_log2.c
-
-Better supports of non IEEE-754 floats (don't use anymore ieee_double_extract if _GMP_IEEE is not set).
-
-------------------------------------------------------------------------
-r2649 | vlefevre | 2004-01-28 11:32:57 +0000 (Wed, 28 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/frac.c
-
-Added comments and a temporary fix.
-
-------------------------------------------------------------------------
-r2648 | zimmerma | 2004-01-27 08:00:00 +0000 (Tue, 27 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/cbrt.c
- M /trunk/erf.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/terf.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tzeta.c
-
-fixed bugs in atan cbrt erf
-added new hard-coded tests
-
-------------------------------------------------------------------------
-r2647 | zimmerma | 2004-01-26 13:14:55 +0000 (Mon, 26 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-removed argument reduction in sin(Pi*s/2) [delegated to mpfr_sin]
-
-------------------------------------------------------------------------
-r2646 | zimmerma | 2004-01-26 13:11:54 +0000 (Mon, 26 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-print inputs of test2 in binary form
-commented out test for 0.8 (input is not exactly representable)
-
-------------------------------------------------------------------------
-r2645 | pelissip | 2004-01-26 11:45:21 +0000 (Mon, 26 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-+ Internal functions of zeta are now declared as static.
-+ Add new tests which fail.
-
-------------------------------------------------------------------------
-r2644 | zimmerma | 2004-01-22 22:30:52 +0000 (Thu, 22 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/algorithms.tex
- M /trunk/asin.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/erf.c
- M /trunk/exp_2.c
- M /trunk/frac.c
- M /trunk/mpfr-impl.h
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/terf.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/trint.c
-
-added several hard-coded tests (and fixed bugs found)
-
-------------------------------------------------------------------------
-r2643 | pelissip | 2004-01-20 13:08:53 +0000 (Tue, 20 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fix tiny bug of Concept Index / Rounding Modes.
-
-------------------------------------------------------------------------
-r2642 | pelissip | 2004-01-20 13:04:30 +0000 (Tue, 20 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update minor things.
-
-------------------------------------------------------------------------
-r2641 | zimmerma | 2004-01-20 11:07:48 +0000 (Tue, 20 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-minor change in contributions
-
-------------------------------------------------------------------------
-r2640 | zimmerma | 2004-01-20 10:56:59 +0000 (Tue, 20 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added Patrick in the main contributors
-
-------------------------------------------------------------------------
-r2639 | vlefevre | 2004-01-20 10:08:27 +0000 (Tue, 20 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Fixed spelling mistake.
-
-------------------------------------------------------------------------
-r2638 | pelissip | 2004-01-20 09:15:19 +0000 (Tue, 20 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Reorder the documentation.
-
-------------------------------------------------------------------------
-r2637 | ryde | 2004-01-19 23:51:46 +0000 (Mon, 19 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-# Add a remark to mpf_strto.
-
-------------------------------------------------------------------------
-r2636 | ryde | 2004-01-19 23:31:56 +0000 (Mon, 19 Jan 2004) | 4 lines
-Changed paths:
- M /trunk/TODO
-
-# Drop my thought about addmul instead of fma. The latter takes a
-# separate destination and is hence not the same as what mpn and mpz
-# addmul do.
-
-------------------------------------------------------------------------
-r2635 | pelissip | 2004-01-19 16:06:34 +0000 (Mon, 19 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tset_d.c
-
-Update tests to remove the use of double when possible.
-
-------------------------------------------------------------------------
-r2634 | pelissip | 2004-01-19 16:05:24 +0000 (Mon, 19 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-Reenable the cmp between inexact flags.
-
-------------------------------------------------------------------------
-r2633 | pelissip | 2004-01-19 16:03:30 +0000 (Mon, 19 Jan 2004) | 4 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/set_rnd.c
- M /trunk/tests/texceptions.c
-
-Add mpfr_get_default_rounding_mode.
-Add the tests for mpfr_get/set_default_rounding_mode.
-Fix mpfr_set_default_rounding_mode.
-
-------------------------------------------------------------------------
-r2632 | vlefevre | 2004-01-19 03:01:10 +0000 (Mon, 19 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-_mpfr_ceil -> mpfr_ceil_double + check for overflow.
-
-------------------------------------------------------------------------
-r2631 | vlefevre | 2004-01-19 02:39:21 +0000 (Mon, 19 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/get_str.c
- A /trunk/mpn_exp.c
-
-Moved the mpfr_mpn_exp function to a new file "mpn_exp.c" as it is
-used by both "get_str.c" and "set_str.c".
-
-------------------------------------------------------------------------
-r2630 | pelissip | 2004-01-16 15:55:15 +0000 (Fri, 16 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-Update it to remove the use of float/double.
-
-------------------------------------------------------------------------
-r2629 | pelissip | 2004-01-15 16:57:35 +0000 (Thu, 15 Jan 2004) | 2 lines
-Changed paths:
- D /trunk/from_Torbjorn
- M /trunk/get_str.c
- M /trunk/tests/tget_str.c
-
-Add a new check in tget_str.c.
-
-------------------------------------------------------------------------
-r2628 | pelissip | 2004-01-15 16:56:48 +0000 (Thu, 15 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Add new macros.
-
-------------------------------------------------------------------------
-r2627 | pelissip | 2004-01-15 16:55:45 +0000 (Thu, 15 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-Readd stdio.h in case of DEBUG mode.
-
-------------------------------------------------------------------------
-r2626 | pelissip | 2004-01-15 16:55:25 +0000 (Thu, 15 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-Optimize a few sub1sp by removing the normalisation in case of exact rounding and by removing the calcul of the rounding mode in case of exact rounding.
-
-------------------------------------------------------------------------
-r2625 | zimmerma | 2004-01-15 14:43:17 +0000 (Thu, 15 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed problem in case m=0 and b=2^k (lost bits from 1st digit were not taken
-into account)
-
-------------------------------------------------------------------------
-r2624 | zimmerma | 2004-01-15 12:09:25 +0000 (Thu, 15 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/set_str.c
-
-mpn_exp -> mpfr_mpn_exp
-
-------------------------------------------------------------------------
-r2623 | vlefevre | 2004-01-15 08:49:34 +0000 (Thu, 15 Jan 2004) | 2 lines
-Changed paths:
- D /trunk/gammaPiAGMformula.c
-
-Removed gammaPiAGMformula.c (old version, no longer used).
-
-------------------------------------------------------------------------
-r2622 | vlefevre | 2004-01-14 17:18:34 +0000 (Wed, 14 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/cbrt.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/div_ui.c
- M /trunk/eq.c
- M /trunk/exp.c
- M /trunk/exp_2.c
- M /trunk/get_ld.c
- M /trunk/hypot.c
- M /trunk/init2.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log2.c
- M /trunk/reldiff.c
- M /trunk/save_expo.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_str.c
- M /trunk/ui_div.c
- M /trunk/zeta.c
-
-Changed some error messages into assertions.
-Removed some useless #include's.
-
-------------------------------------------------------------------------
-r2621 | pelissip | 2004-01-14 12:42:22 +0000 (Wed, 14 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
-
-Continue to port tests so that they don't use double.
-
-------------------------------------------------------------------------
-r2620 | pelissip | 2004-01-09 16:00:54 +0000 (Fri, 09 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/cmp_str.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tgmpop.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-Update the tests to reduce the use of floats.
-
-------------------------------------------------------------------------
-r2619 | pelissip | 2004-01-09 10:15:51 +0000 (Fri, 09 Jan 2004) | 2 lines
-Changed paths:
- D /trunk/mpfi.c
- D /trunk/mpfi.h
-
-Remove unused files mpfi.c and mpfi.h
-
-------------------------------------------------------------------------
-r2618 | pelissip | 2004-01-09 09:51:23 +0000 (Fri, 09 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/tests/tabs.c
-
-Update test.
-Don't use floats anymore.
-
-------------------------------------------------------------------------
-r2617 | pelissip | 2004-01-09 09:50:45 +0000 (Fri, 09 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-Add RND_RAND
-Add SIGN_RAND
-
-------------------------------------------------------------------------
-r2616 | pelissip | 2004-01-09 08:58:24 +0000 (Fri, 09 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/isinteger.c
-
-+ Simplify the singular code.
-+ Fix potential type errors. (Used mpfr_prec_t instead of mpfr_uexp_t).
-
-------------------------------------------------------------------------
-r2615 | pelissip | 2004-01-08 16:51:51 +0000 (Thu, 08 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tgmpop.c
-
-+ Add a new test file for checking functions mpfr_add/sub/mul/div_q/z (from gmp_op.c).
-+ Fix bugs of mpfr_add/sub/mul/div_q/z.
-
-------------------------------------------------------------------------
-r2614 | vlefevre | 2004-01-07 19:58:45 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
--0 -> @minus{}0.
-
-------------------------------------------------------------------------
-r2613 | vlefevre | 2004-01-07 19:54:53 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Specifications for mpfr_min and mpfr_max.
-
-------------------------------------------------------------------------
-r2612 | vlefevre | 2004-01-07 17:21:06 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Updated MPFR_INTPREC_MAX definition, as mpfr_prec_t has changed.
-
-------------------------------------------------------------------------
-r2611 | pelissip | 2004-01-07 16:37:09 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tsub1sp.c
-
-Add a new test between sub1 and sub1sp.
-
-------------------------------------------------------------------------
-r2610 | pelissip | 2004-01-07 16:28:42 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/minmax.c
-
-Fix copyright line.
-
-------------------------------------------------------------------------
-r2609 | zimmerma | 2004-01-07 16:27:09 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/sub1.c
- M /trunk/tests/tsub.c
-
-fixed wrong sign of inexact flag
-
-------------------------------------------------------------------------
-r2608 | vlefevre | 2004-01-07 16:11:04 +0000 (Wed, 07 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Added casts to size_t so that integers representing a size get
-this type as soon as possible.
-
-------------------------------------------------------------------------
-r2607 | pelissip | 2004-01-07 14:48:33 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-Use MPFR_ASSERTN(0) instead of abort.
-
-------------------------------------------------------------------------
-r2606 | pelissip | 2004-01-07 14:48:10 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Fix the definition of MPFR_PREC_MAX
-
-------------------------------------------------------------------------
-r2605 | zimmerma | 2004-01-07 14:46:09 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added new test to check bug repair
-
-------------------------------------------------------------------------
-r2604 | zimmerma | 2004-01-07 14:45:21 +0000 (Wed, 07 Jan 2004) | 3 lines
-Changed paths:
- M /trunk/sub1.c
-
-fixed bug (wrong inexact flag) for rounding to nearest when sh=0 and
-first trailing limbs coincide
-
-------------------------------------------------------------------------
-r2603 | pelissip | 2004-01-07 14:27:34 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/sub.c
-
-Fix copyright lines (2004).
-
-------------------------------------------------------------------------
-r2602 | pelissip | 2004-01-07 14:05:30 +0000 (Wed, 07 Jan 2004) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/add.c
- M /trunk/sub.c
- M /trunk/sub1sp.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tsub1sp.c
-
-Fix bug of sub1sp.c on sparck.
-Add new tests for sub1sp.
-Reenable sub1sp for mpfr_add / mpfr_sub.
-
-------------------------------------------------------------------------
-r2601 | pelissip | 2004-01-07 14:04:30 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/print_raw.c
-
-Change output format of mpfr_print_mant_binary.
-
-------------------------------------------------------------------------
-r2600 | vlefevre | 2004-01-07 13:27:29 +0000 (Wed, 07 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/cmp2.c
-
-Clarified comment.
-
-------------------------------------------------------------------------
-r2599 | vlefevre | 2004-01-06 14:17:50 +0000 (Tue, 06 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Updated copyright line.
-
-------------------------------------------------------------------------
-r2598 | vlefevre | 2004-01-06 14:06:48 +0000 (Tue, 06 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tversion.c
- M /trunk/update-version
- A /trunk/version.c
-
-Added mpfr_version function and test.
-
-------------------------------------------------------------------------
-r2597 | vlefevre | 2004-01-06 13:46:32 +0000 (Tue, 06 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-The mpfr_print_rnd_mode return type is const char *, not char *.
-
-------------------------------------------------------------------------
-r2596 | pelissip | 2004-01-06 13:06:37 +0000 (Tue, 06 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_z.c
-
-Update the copyright line of the source files to 2004.
-
-------------------------------------------------------------------------
-r2595 | pelissip | 2004-01-06 12:30:41 +0000 (Tue, 06 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_z.c
-
-Add the tests to check if 0 for signed class with unsigned 0 is set to 0+.
-
-------------------------------------------------------------------------
-r2594 | zimmerma | 2004-01-05 16:35:08 +0000 (Mon, 05 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-specified sign of zero in mpfr_set_*
-
-------------------------------------------------------------------------
-r2593 | zimmerma | 2004-01-05 14:32:56 +0000 (Mon, 05 Jan 2004) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-removed test using denorms
-
-------------------------------------------------------------------------
-r2592 | pelissip | 2003-12-22 17:08:57 +0000 (Mon, 22 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/add.c
- M /trunk/sub.c
-
-Disable sub1sp in add.c and in sub.c since it provides some bugs on spark (Log/acos/asin and atan tests failed but not tsub or tsub1sp).
-
-------------------------------------------------------------------------
-r2591 | pelissip | 2003-12-22 17:08:01 +0000 (Mon, 22 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Change comment.
-
-------------------------------------------------------------------------
-r2590 | pelissip | 2003-12-22 14:13:24 +0000 (Mon, 22 Dec 2003) | 3 lines
-Changed paths:
- M /trunk/init2.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-+ Rearrange the code to be more "compatible" with broken systems.
-+ Preprocessing checks are done in init2.c since GMP constants can't be used in preprocessing #if.
-
-------------------------------------------------------------------------
-r2589 | pelissip | 2003-12-22 13:56:15 +0000 (Mon, 22 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/sub1sp.c
-
-Use MPFR_UNSIGNED_MINUS_MODULO when needed.
-
-------------------------------------------------------------------------
-r2588 | pelissip | 2003-12-22 10:57:56 +0000 (Mon, 22 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/clears.c
- M /trunk/inits.c
- M /trunk/inits2.c
-
-Explicit support for K&R C since ansi2knr can't be used.
-
-------------------------------------------------------------------------
-r2587 | ryde | 2003-12-20 00:02:38 +0000 (Sat, 20 Dec 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-(tests_rand_start): Use gmp_randinit_default not the
-RANDS macro, to cope with new non-seeding MT setup by RANDS.
-
-------------------------------------------------------------------------
-r2586 | pelissip | 2003-12-19 16:29:48 +0000 (Fri, 19 Dec 2003) | 3 lines
-Changed paths:
- M /trunk/get_ui.c
- M /trunk/init2.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-Support of MPFR_PREC_FORMAT.
-Fix a bug in case mp_prec_t = unsigned short.
-
-------------------------------------------------------------------------
-r2585 | vlefevre | 2003-12-19 14:19:53 +0000 (Fri, 19 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/update-version
-
-Update due to a change in mpfr.h.
-
-------------------------------------------------------------------------
-r2584 | pelissip | 2003-12-19 11:56:42 +0000 (Fri, 19 Dec 2003) | 4 lines
-Changed paths:
- M /trunk/VERSION
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-+ Modify Version to 2.1.0.
-+ Add MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and MPFR_VERSION_PATCHLEVEL in mpfr.h
-+ Add MPFR_VERSION_NUM and MPFR_VERSION to check Mpfr version.
-
-------------------------------------------------------------------------
-r2583 | pelissip | 2003-12-19 11:54:48 +0000 (Fri, 19 Dec 2003) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/sub1sp.c
- M /trunk/tests/mpf_compat.h
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
-
-Remove one warning in mpf_compat.h
-Create a new macro: MPFR_RET_NEVER_GO_HERE
-Modify ui_sub/div to use it to make Insure++ happy.
-
-------------------------------------------------------------------------
-r2582 | zimmerma | 2003-12-19 11:44:42 +0000 (Fri, 19 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated mpfr_root entry
-
-------------------------------------------------------------------------
-r2581 | vlefevre | 2003-12-19 11:41:10 +0000 (Fri, 19 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/README.dev
- A /trunk/update-version
-
-Added update-version script to update the MPFR version.
-
-------------------------------------------------------------------------
-r2580 | zimmerma | 2003-12-19 10:06:10 +0000 (Fri, 19 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed one item, added one
-
-------------------------------------------------------------------------
-r2579 | zimmerma | 2003-12-16 12:46:28 +0000 (Tue, 16 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-removed unused target "tests"
-
-------------------------------------------------------------------------
-r2578 | zimmerma | 2003-12-16 12:38:36 +0000 (Tue, 16 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-removed AC_DEFINE(hpux) [not used any more]
-
-------------------------------------------------------------------------
-r2577 | ryde | 2003-12-15 22:01:21 +0000 (Mon, 15 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-(EXTRA_DIST): Add round_raw_generic.c.
-
-------------------------------------------------------------------------
-r2576 | pelissip | 2003-12-15 14:39:35 +0000 (Mon, 15 Dec 2003) | 8 lines
-Changed paths:
- M /trunk/asin.c
- M /trunk/atan.c
- M /trunk/cbrt.c
- M /trunk/div.c
- M /trunk/fits_u.h
- M /trunk/gamma.c
- M /trunk/get_d.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/round_prec.c
- M /trunk/round_raw_generic.c
- M /trunk/set_ld.c
- M /trunk/set_ui.c
- M /trunk/sub1sp.c
- M /trunk/tests/memory.c
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/reuse.c
- M /trunk/tests/rnd_mode.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcomparisons.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_d_2exp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tinits.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tnext.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsgn.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub1sp.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-+ Optimize a few div.c
-+ Remove some warnings in asin.c, atan.c.
-+ Include limits.h before gmp-impl.h in mpfr-impl.h
-+ mpfr-tests.h doesn't include anumore standard include files.
-+ Test files include only standard includes and mpfr-tests.h.
-+ Add some forgotten mpfr_clear in mpf[r]_compat.
-+ Remove some warnings in the tests.
-
-------------------------------------------------------------------------
-r2575 | zimmerma | 2003-12-15 09:11:37 +0000 (Mon, 15 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-removed unused arguments
-
-------------------------------------------------------------------------
-r2574 | zimmerma | 2003-12-15 09:00:22 +0000 (Mon, 15 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-removed AC_DEFINE(__STDC__) for OSF
-
-------------------------------------------------------------------------
-r2573 | zimmerma | 2003-12-15 08:48:24 +0000 (Mon, 15 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-removed MISCFLAGS (not used any more)
-
-------------------------------------------------------------------------
-r2572 | ryde | 2003-12-14 00:42:04 +0000 (Sun, 14 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Quote AC_DEFUN names, for automake 1.8.
-
-------------------------------------------------------------------------
-r2571 | pelissip | 2003-12-10 13:40:52 +0000 (Wed, 10 Dec 2003) | 3 lines
-Changed paths:
- M /trunk/powerof2.c
- M /trunk/sub1sp.c
- M /trunk/tests/tsub1sp.c
-
-+ Add a new test in case of underflow.
-+ Fix bug in case of underflow for sub1 / sub1sp (mpfr_powerof2 could be called with invalid numbers).
-
-------------------------------------------------------------------------
-r2570 | pelissip | 2003-12-09 14:58:26 +0000 (Tue, 09 Dec 2003) | 3 lines
-Changed paths:
- M /trunk/print_raw.c
- M /trunk/sub1sp.c
-
-+ Fixed bugs of mpfr_print_mant_binary on 64 bits CPU (1L instead of 1).
-+ Fixed bugs of mpfr_sub1sp on 64-bits CPU (mp_limb_t instead of int).
-
-------------------------------------------------------------------------
-r2569 | pelissip | 2003-12-09 13:52:50 +0000 (Tue, 09 Dec 2003) | 8 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/add.c
- M /trunk/clear.c
- M /trunk/init2.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/print_raw.c
- M /trunk/round_prec.c
- M /trunk/set_prec.c
- M /trunk/sub.c
- M /trunk/sub1.c
- A /trunk/sub1sp.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- A /trunk/tests/tsub1sp.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_pow.c
-
-+ Add function mpfr_print_mantissa_binary, for debugging reason.
-+ Rename MPFR_ALLOC_SIZE in MPFR_MALLOC_SIZE.
-+ Add conditionnal -DSMALL directive in mpfr-impl.h.
-+ Add new function: sub1sp.
- Subtraction in case of all the ops have the same prec.
-+ Add its test (tsub1sp).
-+ Modify a few the tests to avoid comparing mpfr results with double, for portability reason.
-
-------------------------------------------------------------------------
-r2568 | vlefevre | 2003-12-05 17:47:09 +0000 (Fri, 05 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/exp10.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Added mpfr_exp10 function.
-
-------------------------------------------------------------------------
-r2567 | pelissip | 2003-12-01 10:25:01 +0000 (Mon, 01 Dec 2003) | 3 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/get_d.c
- M /trunk/mpfr-impl.h
- M /trunk/neg.c
- M /trunk/powerof2.c
- M /trunk/set_d.c
- M /trunk/set_ld.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
-
-Port all the IEEE dependent remaining functions so that it uses a generic way to compute the result if it detects that the double is not in IEEE format ( _GMP_IEEE_FLOATS == 0).
-MPFR now should work well on non-IEEE machines.
-
-------------------------------------------------------------------------
-r2566 | zimmerma | 2003-12-01 10:20:37 +0000 (Mon, 01 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added suggestion for 2 new functions
-
-------------------------------------------------------------------------
-r2565 | zimmerma | 2003-12-01 09:17:41 +0000 (Mon, 01 Dec 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added entry (portability)
-
-------------------------------------------------------------------------
-r2564 | pelissip | 2003-11-25 17:22:31 +0000 (Tue, 25 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/cmp.c
- M /trunk/mpfr-impl.h
- M /trunk/sub1.c
-
-Optimize a few add1.c/sub1.c by using MPFR_LIKELY / MPFR_UNLIKELY.
-
-------------------------------------------------------------------------
-r2563 | pelissip | 2003-11-21 16:26:19 +0000 (Fri, 21 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/eq.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/factorial.c
- M /trunk/fits_s.h
- M /trunk/fits_u.h
- M /trunk/gamma.c
- M /trunk/inp_str.c
- M /trunk/isinteger.c
- M /trunk/mul.c
- M /trunk/pow.c
- M /trunk/pow_ui.c
- M /trunk/round_prec.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/sub1.c
- M /trunk/zeta.c
-
-Remove some warnings and potential errors (Comparison between signed and unsigned).
-
-------------------------------------------------------------------------
-r2562 | pelissip | 2003-11-21 15:27:35 +0000 (Fri, 21 Nov 2003) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/check.c
- M /trunk/clear.c
- M /trunk/mpfr-impl.h
- M /trunk/tests/Makefile.am
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tcbrt.c
- A /trunk/tests/tcheck.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/terf.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_pow.c
-
-+ Add new internal function: mpfr_check.
-+ Add the corresponding test file.
-+ Translate mpfr_set_d to mpfr_set_str / mpfr_set_ui in the tests for portability reasons.
-
-------------------------------------------------------------------------
-r2558 | zimmerma | 2003-11-21 10:16:17 +0000 (Fri, 21 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-use integers instead of double's
-
-------------------------------------------------------------------------
-r2557 | vlefevre | 2003-11-21 08:05:29 +0000 (Fri, 21 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/TODO
-
-Notes about not using mpfr_set_d in the tests.
-
-------------------------------------------------------------------------
-r2554 | pelissip | 2003-11-19 10:01:34 +0000 (Wed, 19 Nov 2003) | 4 lines
-Changed paths:
- M /trunk/mul.c
- M /trunk/pow.c
- M /trunk/set_ui.c
-
- Optimization of mpfr_mul.
- Tiny optimization of mpfr_pow (The case y=0 has been put inside the MPFR_ARE_SINGULAR block).
- Tiny optimisation of mpfr_set_ui.
-
-------------------------------------------------------------------------
-r2553 | zimmerma | 2003-11-18 16:07:12 +0000 (Tue, 18 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-fixed bug in case exact result
-
-------------------------------------------------------------------------
-r2552 | zimmerma | 2003-11-18 16:05:36 +0000 (Tue, 18 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-added new tests
-
-------------------------------------------------------------------------
-r2551 | pelissip | 2003-11-18 11:46:34 +0000 (Tue, 18 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/round_raw_generic.c
-
- Optimize round_raw_generic by reducing the number of redundant tests.
-
-------------------------------------------------------------------------
-r2550 | pelissip | 2003-11-17 14:43:54 +0000 (Mon, 17 Nov 2003) | 9 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/exceptions.c
- M /trunk/get_d.c
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/round_prec.c
- A /trunk/round_raw_generic.c
- M /trunk/set_str.c
- M /trunk/sub1.c
- M /trunk/tests/Makefile.am
-
-* Optimize a few div.c and mul.c.
-* Reorder the tests.
-* Remove mpfr_round_raw_generic and create 4 new functions which replace it, for efficiency reasons.
-* Add round_raw_generic.c which is the generic file to create the 4 new functions.
-* Add new MACRO: MPFR_RNDUTEST_OR_RNDDNOTTEST which is a faster way to check if (rnd_mode==GMP_RNDU && test) || (rnd_mode==GMP_RNDD && !test).
-* Add new MACRO: MPFR_UNSIGNED_MINUS_MODULO.
-* Optimize mpfr_can_round_raw.
-* Some new defines in mpfr.h to increase compatibility with MPFR v2.0.1 and above.
-
-------------------------------------------------------------------------
-r2548 | zimmerma | 2003-11-14 12:47:01 +0000 (Fri, 14 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/tests/tpow.c
-
-fixed bug in pow_si (exact result, case z = x)
-
-------------------------------------------------------------------------
-r2546 | zimmerma | 2003-11-14 10:44:53 +0000 (Fri, 14 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-added test to check bug fix (bug was in mpfr_pow)
-
-------------------------------------------------------------------------
-r2545 | zimmerma | 2003-11-14 10:43:40 +0000 (Fri, 14 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-added new test to check for bug fix (output precision > input precisions)
-
-------------------------------------------------------------------------
-r2544 | zimmerma | 2003-11-14 10:42:30 +0000 (Fri, 14 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-just improved editing style
-
-------------------------------------------------------------------------
-r2543 | zimmerma | 2003-11-14 10:41:35 +0000 (Fri, 14 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-fixed bug for output precision > max(input precisions)
-
-------------------------------------------------------------------------
-r2542 | vlefevre | 2003-11-14 10:40:26 +0000 (Fri, 14 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Ported the gcc-3.3 bug detection patch to the trunk.
-
-------------------------------------------------------------------------
-r2539 | pelissip | 2003-11-07 16:15:45 +0000 (Fri, 07 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/add1.c
-
-Fix a stupid bug (diff_exp is not equal to the difference of prec)
-
-------------------------------------------------------------------------
-r2538 | vlefevre | 2003-11-07 13:25:18 +0000 (Fri, 07 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/init2.c
-
-Initialize the exp field.
-
-------------------------------------------------------------------------
-r2537 | pelissip | 2003-11-07 10:08:57 +0000 (Fri, 07 Nov 2003) | 4 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/copysign.c
- M /trunk/div.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/exceptions.c
- M /trunk/extract.c
- M /trunk/get_d.c
- M /trunk/get_exp.c
- M /trunk/get_str.c
- M /trunk/init2.c
- M /trunk/isinteger.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/set_prec.c
- M /trunk/set_str_raw.c
- M /trunk/sub1.c
- M /trunk/swap.c
-
-Some minor optimizations.
-Optimization of mul.c / sub1.c.
-Some clean up in the header files.
-
-------------------------------------------------------------------------
-r2536 | pelissip | 2003-11-05 16:18:16 +0000 (Wed, 05 Nov 2003) | 3 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add_one_ulp.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/cmp.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_ui.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/erf.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/fma.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/get_z_exp.c
- M /trunk/hypot.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/rint.c
- M /trunk/set.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/zeta.c
-
-Fix some bugs (Use MPFR_ASSERT(1) instead of MPFR_ASSERT(0))
-Optimize swap.c and copysign.c.
-
-------------------------------------------------------------------------
-r2535 | pelissip | 2003-11-05 12:11:47 +0000 (Wed, 05 Nov 2003) | 4 lines
-Changed paths:
- M /trunk/cmp2.c
- M /trunk/mpfr-impl.h
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/sub1.c
-
-Optimize mpfr_prec_round.
-Optimize mpfr_set (Case of both src & dest have the same precision).
-Start optimizing mpfr_sub1.
-
-------------------------------------------------------------------------
-r2534 | pelissip | 2003-11-05 09:00:03 +0000 (Wed, 05 Nov 2003) | 7 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/cmp_ui.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/set.c
- M /trunk/set_ui.c
- A /trunk/sgn.c
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tsgn.c
-
-Add a real function for mpfr_sgn (not a call to mpfr_cmp_ui_2exp).
-Add a test for mpfr_sgn.
-Change the proto of mpfr_add1 and mpfr_sub1 by removing the last arg.
-Simplify the logic of the sign in mpfr_sub1.
-Tiny speed up for cmp/set/sqrt.
-mpfr-impl auto include all the needed local header files (gmp, gmp-impl, mpfr).
-
-------------------------------------------------------------------------
-r2533 | vlefevre | 2003-11-04 16:14:47 +0000 (Tue, 04 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/pow_ui.c
-
-Merged the mpfr-2-0-2-branch pow_ui.c changes to the trunk.
-
-------------------------------------------------------------------------
-r2530 | vlefevre | 2003-11-04 13:51:03 +0000 (Tue, 04 Nov 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
-
-The check_inf test wasn't called. Added 2 missing mpfr_clear and \n.
-
-------------------------------------------------------------------------
-r2529 | pelissip | 2003-11-04 13:15:26 +0000 (Tue, 04 Nov 2003) | 10 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cputime.h
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/erf.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/fma.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/get_str.c
- M /trunk/hypot.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/minmax.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/set_inf.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/sin_cos.c
- M /trunk/sub.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp2.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/tui_pow.c
- M /trunk/zeta.c
-
-+ Remove MPFR_CLEAR_NAN and MPFR_CLEAR_INF. Only use MPFR_CLEAR_FLAGS.
- MPFR_SET_INF, MPFR_SET_ZERO and MPFR_SET_ZERO must clear the flags before setting them.
-+ Add a new test in tacosh.c : check Inf / Nan flags.
-+ Use MPFR_IS_SINGULAR in all the remaining files.
-+ Fix the use of MPFR_CLEAR_FLAGS.
-+ mpfr-impl.h auto include gmp.h, gmp-impl.h, mpfr.h and limits.h.
-+ Rename _PROTO to _MPFR_PROTO, and remove _GMP_PROTO.
-+ Add MPFR_INT_SIGN macro.
-+ Encapsulate a few more the sign.
-
-------------------------------------------------------------------------
-r2526 | vlefevre | 2003-10-30 00:03:26 +0000 (Thu, 30 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/log1p.c
-
-MPFR_RET_NAN -> MPFR_RET(0).
-
-------------------------------------------------------------------------
-r2525 | pelissip | 2003-10-28 16:31:13 +0000 (Tue, 28 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/div.c
- M /trunk/eq.c
- M /trunk/erf.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/fma.c
- M /trunk/frac.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/hypot.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/minmax.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/next.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/set_si.c
- M /trunk/set_ui.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/sub_one_ulp.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/tpow.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/zeta.c
-
-Use of MPFR_UNLIKELY and MPFR_IS_SINGULAR for fast detection of special values (Nan, Inf or Zero).
-Start to encapsulate the sign to be independent of the representation (Must be 1 or -1).
-
-------------------------------------------------------------------------
-r2524 | pelissip | 2003-10-27 15:15:04 +0000 (Mon, 27 Oct 2003) | 8 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/clear.c
- M /trunk/div.c
- M /trunk/exceptions.c
- M /trunk/extract.c
- M /trunk/get_d.c
- M /trunk/get_si.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/init2.c
- M /trunk/log.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/sqrt_ui.c
- M /trunk/sub_ui.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
-
-Change the internal format of MPFR: ZERO, INF and NAN have special values of exp.
-Rename MPFR_ESIZE in MPFR_LIMB_SIZE.
-Rename MPFR_ABSZISE in MPFR_ALLOC_SIZE.
-Rename MPFR_INIT in MPFR_TMP_INIT (INIT1 too).
-"mpfr.h" includes <gmp.h> if GMP isn't detected.
-Change the way of detecting stdio.h (To check).
-Use mpfr namespace for new definitions in "mpfr.h".
-
-------------------------------------------------------------------------
-r2522 | vlefevre | 2003-10-27 13:06:22 +0000 (Mon, 27 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-Another fix, for acosh(-INF).
-
-------------------------------------------------------------------------
-r2521 | vlefevre | 2003-10-27 12:57:27 +0000 (Mon, 27 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-Fixed exit status.
-
-------------------------------------------------------------------------
-r2519 | vlefevre | 2003-10-21 12:33:17 +0000 (Tue, 21 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/mpfr.h
- M /trunk/tests/trint.c
-
-Merged the mpfr-2-0-2-branch changes to the trunk.
-
-------------------------------------------------------------------------
-r2514 | vlefevre | 2003-10-20 15:47:10 +0000 (Mon, 20 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/gmp_op.c
- M /trunk/mpfr.texi
- M /trunk/rint.c
- M /trunk/tests/trint.c
-
-Merged the mpfr-2-0-2-branch changes to the trunk.
-
-------------------------------------------------------------------------
-r2511 | vlefevre | 2003-10-17 13:34:46 +0000 (Fri, 17 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/erf.c
- M /trunk/tests/tasin.c
- M /trunk/tests/terf.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/trint.c
-
-Merged the mpfr-2-0-2-branch changes to the trunk.
-
-------------------------------------------------------------------------
-r2505 | vlefevre | 2003-10-16 12:48:40 +0000 (Thu, 16 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Update.
-
-------------------------------------------------------------------------
-r2504 | vlefevre | 2003-10-16 11:54:20 +0000 (Thu, 16 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/VERSION
-
-Updated version on trunk.
-
-------------------------------------------------------------------------
-r2503 | vlefevre | 2003-10-16 11:48:31 +0000 (Thu, 16 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2502 | vlefevre | 2003-10-16 09:55:46 +0000 (Thu, 16 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/get_d.c
- M /trunk/set_d.c
-
-Fixed several bugs.
-
-------------------------------------------------------------------------
-r2501 | vlefevre | 2003-10-16 09:32:26 +0000 (Thu, 16 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-Added XDEBUG support (like in set_d.c).
-
-------------------------------------------------------------------------
-r2500 | vlefevre | 2003-10-15 09:46:52 +0000 (Wed, 15 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Replaced all non-ASCII characters by an equivalent 7-bit sequence
-to support unpatched texinfo.tex files.
-
-------------------------------------------------------------------------
-r2499 | zimmerma | 2003-10-15 09:32:21 +0000 (Wed, 15 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-removed #define DEBUG (turned on accidentally)
-
-------------------------------------------------------------------------
-r2498 | vlefevre | 2003-10-15 09:15:19 +0000 (Wed, 15 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Bug on the ternary value was fixed by Paul Zimmermann on 2003-10-14.
-
-------------------------------------------------------------------------
-r2497 | zimmerma | 2003-10-14 12:29:45 +0000 (Tue, 14 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added preamble about ternary flag for special functions
-
-------------------------------------------------------------------------
-r2496 | zimmerma | 2003-10-14 12:13:37 +0000 (Tue, 14 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/terf.c
- M /trunk/tests/texp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tzeta.c
-
-now uses #include "tgeneric.c" everywhere
-(and modified test_generic to check also the inexact flag)
-
-------------------------------------------------------------------------
-r2495 | zimmerma | 2003-10-14 12:12:10 +0000 (Tue, 14 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tui_div.c
-
-check_nan() is back
-
-------------------------------------------------------------------------
-r2494 | zimmerma | 2003-10-14 12:08:37 +0000 (Tue, 14 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-removed old unused code
-
-------------------------------------------------------------------------
-r2493 | zimmerma | 2003-10-14 12:05:25 +0000 (Tue, 14 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-fixed tests for x=0
-removed composition tests (were already in-between #if 0 ... #endif)
-
-------------------------------------------------------------------------
-r2492 | zimmerma | 2003-10-14 11:49:06 +0000 (Tue, 14 Oct 2003) | 4 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/erf.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/gamma.c
- M /trunk/hypot.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/ui_pow_ui.c
- M /trunk/zeta.c
-
-replaced mpfr_can_round (approx, err, rnd1, GMP_RNDN, prec)
-by mpfr_can_round (approx, err, rnd1, GMP_RNDZ, prec + 1)
-which in addition guarantees a correct inexact flag
-
-------------------------------------------------------------------------
-r2491 | zimmerma | 2003-10-14 11:42:51 +0000 (Tue, 14 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new items (version number, rounding modes)
-
-------------------------------------------------------------------------
-r2490 | zimmerma | 2003-10-14 11:42:00 +0000 (Tue, 14 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-added comment about --enable-alloca=debug
-
-------------------------------------------------------------------------
-r2489 | zimmerma | 2003-10-13 13:12:46 +0000 (Mon, 13 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-added section "Problems due to compiler bugs"
-
-------------------------------------------------------------------------
-r2488 | zimmerma | 2003-10-13 08:03:14 +0000 (Mon, 13 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/exp3.c
- M /trunk/exp_2.c
-
-change in can_round calls to get correct inexact flag for rounding to nearest
-
-------------------------------------------------------------------------
-r2487 | zimmerma | 2003-10-10 09:05:15 +0000 (Fri, 10 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-fixed bug in mpfr_pow found by Ming J. Tsai (overflow)
-
-------------------------------------------------------------------------
-r2486 | vlefevre | 2003-10-08 15:43:13 +0000 (Wed, 08 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/asin.c
- M /trunk/atan.c
-
-Removed useless inclusion of standard headers and some #ifdef DEBUG
-code. Partial reindentation.
-
-------------------------------------------------------------------------
-r2485 | vlefevre | 2003-10-08 15:22:05 +0000 (Wed, 08 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/strncasecmp.c
-
-Added a #include <stddef.h> because size_t is used.
-
-------------------------------------------------------------------------
-r2484 | zimmerma | 2003-10-07 08:37:28 +0000 (Tue, 07 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tzeta.c
-
-reduced test time
-
-------------------------------------------------------------------------
-r2483 | zimmerma | 2003-10-07 07:41:55 +0000 (Tue, 07 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-reduced test time
-
-------------------------------------------------------------------------
-r2482 | zimmerma | 2003-10-07 07:36:12 +0000 (Tue, 07 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-reduced test time
-
-------------------------------------------------------------------------
-r2481 | zimmerma | 2003-10-06 16:11:15 +0000 (Mon, 06 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/round_prec.c
-
-fixed comment of mpfr_round_raw_generic
-
-------------------------------------------------------------------------
-r2480 | zimmerma | 2003-10-06 15:53:46 +0000 (Mon, 06 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/extract.c
- M /trunk/get_si.c
- M /trunk/get_ui.c
-
-replaced ABSSIZE by ESIZE (ABSSIZE is the allocated size, and should be
-used only in functions init, set_prec, round_prec)
-
-------------------------------------------------------------------------
-r2479 | zimmerma | 2003-10-06 15:52:25 +0000 (Mon, 06 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-fixed bug in allocation for in-place operation
-
-------------------------------------------------------------------------
-r2478 | zimmerma | 2003-10-06 14:44:18 +0000 (Mon, 06 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/asin.c
- M /trunk/atan.c
-
-inexact flag should now be correct for directed rounding
-fixed a bug for mpfr_atan(-Inf) [gave +Pi/2 instead of -Pi/2]
-
-------------------------------------------------------------------------
-r2477 | zimmerma | 2003-10-06 14:43:00 +0000 (Mon, 06 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-added test for atan(-Inf)
-
-------------------------------------------------------------------------
-r2476 | zimmerma | 2003-10-06 13:32:02 +0000 (Mon, 06 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-use macros to avoid possible problem with float input
-
-------------------------------------------------------------------------
-r2475 | zimmerma | 2003-10-06 13:31:20 +0000 (Mon, 06 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-new proposal for mpfr_can_round
-
-------------------------------------------------------------------------
-r2474 | zimmerma | 2003-10-06 08:35:42 +0000 (Mon, 06 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr_mul_2exp/mpfr_div_2exp are not obsolete
-
-------------------------------------------------------------------------
-r2473 | vlefevre | 2003-10-05 23:11:12 +0000 (Sun, 05 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Clearer mpfr_eq documentation (thanks to Kevin Ryde for the remark).
-
-------------------------------------------------------------------------
-r2472 | vlefevre | 2003-10-03 13:00:41 +0000 (Fri, 03 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-MPFR_ASSERTN rewritten to avoid "statement with no effect" warnings
-with gcc when the assertion is always true.
-
-------------------------------------------------------------------------
-r2471 | vlefevre | 2003-10-03 12:49:59 +0000 (Fri, 03 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/add1.c
-
-Optimization (thanks to Patrick Pelissier), as the allocated size
-may be larger than the size used by the significant bits.
-
-------------------------------------------------------------------------
-r2470 | vlefevre | 2003-10-03 12:30:14 +0000 (Fri, 03 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/mpfr.texi
-
-Updated installation notes.
-
-------------------------------------------------------------------------
-r2469 | vlefevre | 2003-10-03 08:01:45 +0000 (Fri, 03 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/cmp_abs.c
- M /trunk/mpfr.texi
-
-Infinities are now accepted in mpfr_cmpabs. Updated its definition
-in the source (no longer sign(abs(b) - abs(c))).
-
-------------------------------------------------------------------------
-r2468 | vlefevre | 2003-10-02 22:30:16 +0000 (Thu, 02 Oct 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Use @url{} for URLs.
-
-------------------------------------------------------------------------
-r2467 | vlefevre | 2003-10-02 21:57:39 +0000 (Thu, 02 Oct 2003) | 6 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-As suggested by PZ:
- o documentation of mpfr_fits_* functions moved to the section
- on conversions;
- o grouped some mpfr_pow special cases;
- o explanation concerning the meaning of rnd in mpfr_frac.
-
-------------------------------------------------------------------------
-r2466 | vlefevre | 2003-10-02 17:17:59 +0000 (Thu, 02 Oct 2003) | 8 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/print_raw.c
- M /trunk/set_str_raw.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/terf.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-Updated documentation. In particular, mpfr_set_str_raw renamed
-as mpfr_set_str_binary. This function and mpfr_print_binary are
-now internal functions. mpfr_print_binary no longer prints the
-non-significant 0 bits. Updated the source to match the manual.
-mpfr_print_binary has been completely rewritten (now directly
-prints to stdout, without using an intermediate string). In
-mpfr_set_str_binary, replaced atol by strtol + error checking.
-
-------------------------------------------------------------------------
-r2465 | zimmerma | 2003-10-02 14:14:08 +0000 (Thu, 02 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added paragraph on support/grants
-added help for mpfr_erf
-
-------------------------------------------------------------------------
-r2464 | vlefevre | 2003-10-02 14:05:59 +0000 (Thu, 02 Oct 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Make node titles match section titles, and updated menus and xrefs.
-Added a line break after @samp{uninstall}.
-
-------------------------------------------------------------------------
-r2463 | vlefevre | 2003-10-01 15:06:25 +0000 (Wed, 01 Oct 2003) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/zeta.c
-
-Corrections in the MPFR manual (PZ & VL). Functions mpfr_const_pi,
-mpfr_const_log2 and mpfr_zeta now return a ternary value. Updated
-TODO file.
-
-------------------------------------------------------------------------
-r2462 | vlefevre | 2003-09-30 16:50:58 +0000 (Tue, 30 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Added a bug related to the ternary value and worst cases.
-
-------------------------------------------------------------------------
-r2461 | vlefevre | 2003-09-30 16:29:01 +0000 (Tue, 30 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
-
-Added exponent range support.
-
-------------------------------------------------------------------------
-r2460 | vlefevre | 2003-09-30 10:34:39 +0000 (Tue, 30 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Corrections up to Section 5.6 (PZ & VL).
-
-------------------------------------------------------------------------
-r2459 | vlefevre | 2003-09-30 10:12:24 +0000 (Tue, 30 Sep 2003) | 7 lines
-Changed paths:
- M /trunk/get_z_exp.c
-
-Re-added the assert on the exponent, but replacing MPFR_EMIN_MIN by
-MP_EXP_T_MIN (this makes more sense): an assertion failed would mean
-that the exponent is not representable (an undefined behavior in the
-ISO C standard). If need be, we could choose to return MP_EXP_T_MIN
-in such a case, or perhaps MP_EXP_T_MAX to signal an error. The
-mantissa would still be meaningful.
-
-------------------------------------------------------------------------
-r2458 | pelissip | 2003-09-30 07:47:49 +0000 (Tue, 30 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Update TODO & mpfr_set_prec.
-
-------------------------------------------------------------------------
-r2457 | vlefevre | 2003-09-29 14:40:11 +0000 (Mon, 29 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Corrections up to Section 4.
-
-------------------------------------------------------------------------
-r2456 | vlefevre | 2003-09-29 08:00:19 +0000 (Mon, 29 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-Added authors Kevin Ryde and Patrick Pelissier.
-
-------------------------------------------------------------------------
-r2455 | vlefevre | 2003-09-29 07:48:10 +0000 (Mon, 29 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Removed "known problems" that are no longer problems.
-
-------------------------------------------------------------------------
-r2454 | vlefevre | 2003-09-26 12:39:37 +0000 (Fri, 26 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/BUGS
-
-Removed bugs related to the tests and to the exponents
-as they no longer occur. Updated some potentials bugs.
-
-------------------------------------------------------------------------
-r2453 | vlefevre | 2003-09-25 16:50:34 +0000 (Thu, 25 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tinits.c
-
-Removed mpfr_inits, mpfr_inits2, mpfr_clears from the documentation.
-Moved their prototypes to mpfr-impl.h (internal functions until
-decided otherwise).
-
-------------------------------------------------------------------------
-r2452 | pelissip | 2003-09-25 12:03:36 +0000 (Thu, 25 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/generic.c
-
-Modify 'r' arg of GENERIC from int to long (min 32 bits).
-
-------------------------------------------------------------------------
-r2451 | vlefevre | 2003-09-25 10:31:23 +0000 (Thu, 25 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-8-bit ISO-8859-1 characters + consistent spelling.
-
-------------------------------------------------------------------------
-r2450 | vlefevre | 2003-09-25 10:17:00 +0000 (Thu, 25 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2449 | vlefevre | 2003-09-25 08:15:42 +0000 (Thu, 25 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/tests/mpf_compat.h
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_d.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tfrac.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
-
-Changed the remaining stderr to stdout.
-
-------------------------------------------------------------------------
-r2448 | vlefevre | 2003-09-24 22:32:40 +0000 (Wed, 24 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-Changed some stderr to stdout.
-
-------------------------------------------------------------------------
-r2447 | vlefevre | 2003-09-24 21:05:42 +0000 (Wed, 24 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/comparisons.c
- M /trunk/mpfr.texi
-
-Added documentation for mpfr_greater_p, mpfr_greaterequal_p,
-mpfr_less_p, mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p
-and mpfr_unordered_p.
-
-------------------------------------------------------------------------
-r2446 | vlefevre | 2003-09-24 20:26:48 +0000 (Wed, 24 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/tests/Makefile.am
- A /trunk/tests/tcomparisons.c
-
-Added tests for mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p,
-mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
-
-------------------------------------------------------------------------
-r2445 | vlefevre | 2003-09-24 16:31:11 +0000 (Wed, 24 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/tests/tnext.c
-
-Added a few more tests (involving mpfr_nexttoward). The tests for
-the mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward functions
-should now be sufficient.
-
-------------------------------------------------------------------------
-r2444 | vlefevre | 2003-09-24 13:19:30 +0000 (Wed, 24 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/next.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tnext.c
-
-Added generic tests for mpfr_nextabove and mpfr_nextbelow.
-Fixed a bug in next.c related to assertion checks.
-
-------------------------------------------------------------------------
-r2443 | vlefevre | 2003-09-24 12:02:45 +0000 (Wed, 24 Sep 2003) | 5 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/set_str.c
- M /trunk/tests/tset_str.c
-
-Accept (case-insensitive) NaN and Inf in input for bases <= 16 for
-backward compatibility in these bases (for bases > 16, we cannot
-guaranty backward compatibility with the current wanted behavior).
-Added tests.
-
-------------------------------------------------------------------------
-r2442 | zimmerma | 2003-09-24 10:33:20 +0000 (Wed, 24 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one item from Kevin
-
-------------------------------------------------------------------------
-r2441 | vlefevre | 2003-09-24 09:26:34 +0000 (Wed, 24 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/texinfo.tex
-
-Added support for some top-bit-set characters in the .texi source.
-
-------------------------------------------------------------------------
-r2440 | vlefevre | 2003-09-24 08:40:04 +0000 (Wed, 24 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Added information on special values for mpfr_pow.
-
-------------------------------------------------------------------------
-r2439 | zimmerma | 2003-09-24 08:35:06 +0000 (Wed, 24 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added MAKEINFOFLAGS = --enable-encoding to get 8-bit characters in mpfr.info
-
-------------------------------------------------------------------------
-r2438 | zimmerma | 2003-09-24 08:05:50 +0000 (Wed, 24 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/AUTHORS
- M /trunk/mpfr.texi
-
-used ISO-8859-1 in AUTHORS
-and @`e, @"o in mpfr.texi (waiting for code for ISO-8859-1 compatibility)
-
-------------------------------------------------------------------------
-r2437 | ryde | 2003-09-24 00:40:24 +0000 (Wed, 24 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_C_LONG_DOUBLE_FORMAT): Remove conftest* temporary
-files.
-
-------------------------------------------------------------------------
-r2436 | vlefevre | 2003-09-24 00:36:19 +0000 (Wed, 24 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Fixed comparisons (cases @NaN@ and @Inf@).
-
-------------------------------------------------------------------------
-r2435 | zimmerma | 2003-09-23 09:19:22 +0000 (Tue, 23 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-two updates
-
-------------------------------------------------------------------------
-r2434 | vlefevre | 2003-09-22 15:03:30 +0000 (Mon, 22 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Updated mpfr_pow description.
-
-------------------------------------------------------------------------
-r2433 | zimmerma | 2003-09-22 13:50:46 +0000 (Mon, 22 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/print_rnd_mode.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
-
-changed __gmp_const into const in *.c
-[Torbjo"rn: Please use __gmp_const just in user header files, plain C const in other files.]
-
-------------------------------------------------------------------------
-r2432 | vlefevre | 2003-09-22 13:30:46 +0000 (Mon, 22 Sep 2003) | 6 lines
-Changed paths:
- M /trunk/TODO
-
-Removed
-
-- allow the ISO C "P" exponent separator for base 16 in input functions
-
-(already done).
-
-------------------------------------------------------------------------
-r2431 | vlefevre | 2003-09-22 13:09:16 +0000 (Mon, 22 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/tests/tset_ld.c
-
-Implemented the following:
-- use (LDBL_MAX/2)+(LDBL_MAX/4*LDBL_EPSILON) instead of loop in tset_ld
- to get largest power of 2 that fits in a long double
-
-------------------------------------------------------------------------
-r2430 | vlefevre | 2003-09-22 11:23:09 +0000 (Mon, 22 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/sub1.c
-
-Added some MPFR_ASSERTN and improved a comment.
-
-------------------------------------------------------------------------
-r2429 | vlefevre | 2003-09-22 07:56:47 +0000 (Mon, 22 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
-
-Avoid string literals longer than 509 characters (ISO C89 limit).
-
-------------------------------------------------------------------------
-r2428 | vlefevre | 2003-09-22 07:53:16 +0000 (Mon, 22 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/tests/texceptions.c
-
-(test_set_underflow, test_set_overflow): Cleaner fix (for pre-C99
-compilers).
-
-------------------------------------------------------------------------
-r2427 | ryde | 2003-09-22 01:45:07 +0000 (Mon, 22 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/tests/texceptions.c
-
-(test_set_underflow, test_set_overflow): Use
-"static" on "r" to allow non-constant initializers.
-
-------------------------------------------------------------------------
-r2426 | ryde | 2003-09-21 00:37:17 +0000 (Sun, 21 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Converting Floats): In mpfr_get_d_2exp, the rounding mode
-is given, it doesn't use the default mode.
-
-------------------------------------------------------------------------
-r2425 | ryde | 2003-09-21 00:14:49 +0000 (Sun, 21 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Assigning Floats): In mpfr_set_str and mpfr_set_str_raw,
-show "const" not "__gmp_const".
-(Simultaneous Float Init & Assign): In mpfr_init_set_str, ditto.
-
-------------------------------------------------------------------------
-r2424 | ryde | 2003-09-21 00:07:26 +0000 (Sun, 21 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Rounding Modes): Add blank line around @itemize.
-
-------------------------------------------------------------------------
-r2423 | ryde | 2003-09-21 00:06:03 +0000 (Sun, 21 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Miscellaneous Float Functions): In mpfr_urandomb and
-mpfr_random, use @math and @le.
-
-------------------------------------------------------------------------
-r2422 | ryde | 2003-09-20 23:51:49 +0000 (Sat, 20 Sep 2003) | 6 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Assigning Floats): In mpfr_set_*, remove remarks about
-long being rounded (this should be clear already), about rounding of
-decimal double constants like 0.1 (too basic to appear here),
-(Converting Floats): In mpfr_get_d_2exp, remove remark about exp
-exceeding IEEE exponent range (should be clear already).
-
-------------------------------------------------------------------------
-r2421 | zimmerma | 2003-09-19 14:25:15 +0000 (Fri, 19 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated items: removed conversion from/to float (obsolete)
-
-------------------------------------------------------------------------
-r2420 | zimmerma | 2003-09-19 14:09:51 +0000 (Fri, 19 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/zeta.c
-
-got rid of <math.h> dependency in mpfr_zeta
-
-------------------------------------------------------------------------
-r2419 | zimmerma | 2003-09-19 13:41:10 +0000 (Fri, 19 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/exp_2.c
- M /trunk/get_str.c
- M /trunk/log_b2.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/round_prec.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tasin.c
- M /trunk/tests/texp.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tzeta.c
-
-mpfr_round_prec is now obsolete
-new function mpfr_prec_round replaces it
-
-------------------------------------------------------------------------
-r2418 | vlefevre | 2003-09-18 10:33:57 +0000 (Thu, 18 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Fix for C implementations with 16-bit int.
-
-------------------------------------------------------------------------
-r2417 | pelissip | 2003-09-18 08:37:38 +0000 (Thu, 18 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
- Optimization of macros MPFR_IS_INF, MPFR_IS_NAN and MPFR_IS_FP
-
-------------------------------------------------------------------------
-r2416 | vlefevre | 2003-09-18 06:50:14 +0000 (Thu, 18 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-Removed a comment that should have been removed in revision 1.8.
-
-------------------------------------------------------------------------
-r2415 | zimmerma | 2003-09-15 15:55:00 +0000 (Mon, 15 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-No longer perform the pre-check for exactness when first division step was
-actually a complete division. This introduced way too much overhead.
-
-------------------------------------------------------------------------
-r2414 | zimmerma | 2003-09-15 15:30:31 +0000 (Mon, 15 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/inp_str.c
-
-replaced test stream==0 by stream==NULL
-
-------------------------------------------------------------------------
-r2413 | vlefevre | 2003-09-15 13:55:30 +0000 (Mon, 15 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/round_prec.c
- M /trunk/tests/tcan_round.c
-
-Fixed a bug in mpfr_can_round_raw and added other mpfr_can_round
-tests.
-
-------------------------------------------------------------------------
-r2412 | vlefevre | 2003-09-15 13:05:05 +0000 (Mon, 15 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/round_prec.c
- M /trunk/tests/tcan_round.c
-
-Added a test to tests/tcan_round.c and assertions to round_prec.c.
-
-------------------------------------------------------------------------
-r2411 | vlefevre | 2003-09-14 08:52:44 +0000 (Sun, 14 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/tests/texceptions.c
-
-Fixed mpfr_set_overflow, added tests for mpfr_set_underflow
-and mpfr_set_overflow, and reverted exp.c.
-
-------------------------------------------------------------------------
-r2410 | zimmerma | 2003-09-13 08:46:47 +0000 (Sat, 13 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-overflow with round to zero was incorrect
-
-------------------------------------------------------------------------
-r2409 | vlefevre | 2003-09-11 16:49:11 +0000 (Thu, 11 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/clears.c
- A /trunk/inits.c
- A /trunk/inits2.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tinits.c
-
-New functions mpfr_inits, mpfr_inits2 and mpfr_clears to initialize or
-free several floating-point numbers (written by Patrick Pélissier).
-
-------------------------------------------------------------------------
-r2408 | vlefevre | 2003-09-09 16:09:42 +0000 (Tue, 09 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/zeta.c
-
-Replaced malloc/free by __gmp_allocate_func/__gmp_free_func in
-mpfr_zeta_pos. zeta.c still uses math (libm) functions -> TODO:
-remove this dependence.
-
-------------------------------------------------------------------------
-r2407 | vlefevre | 2003-09-09 15:13:38 +0000 (Tue, 09 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-Added a test that makes MPFR crash (coming from the mpfr_zeta crash).
-
-------------------------------------------------------------------------
-r2406 | vlefevre | 2003-09-09 14:28:47 +0000 (Tue, 09 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-Case that crashes MPFR (coming from test_generic) -> function test1.
-
-------------------------------------------------------------------------
-r2405 | vlefevre | 2003-09-09 11:33:45 +0000 (Tue, 09 Sep 2003) | 6 lines
-Changed paths:
- M /trunk/ui_pow.c
-
-Ended up by simplifying mpfr_ui_pow to fix it completely (with a
-call to mpfr_pow, in a way similar to other ui functions). There
-isn't significant differences with the old code anyway, and the
-case integer^integer wasn't optimized like in mpfr_pow.
-The test tui_pow now passes, but the test tzeta now fails!
-
-------------------------------------------------------------------------
-r2404 | vlefevre | 2003-09-09 10:39:01 +0000 (Tue, 09 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
- M /trunk/ui_pow.c
-
-Code clean-up and reindented. Replaced a 8 by CHAR_BIT,
-as CHAR_BIT isn't necessarily equal to 8. The bug seems
-to occur on all machines.
-
-------------------------------------------------------------------------
-r2403 | vlefevre | 2003-09-08 16:22:08 +0000 (Mon, 08 Sep 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-Added a test to reproduce a bug (to be fixed later) on all 64-bit
-machines.
-
-------------------------------------------------------------------------
-r2402 | vlefevre | 2003-09-08 15:50:30 +0000 (Mon, 08 Sep 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-Added a cast (useful under Linux/alpha).
-
-------------------------------------------------------------------------
-r2401 | vlefevre | 2003-09-01 15:20:39 +0000 (Mon, 01 Sep 2003) | 4 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/print_rnd_mode.c
-
-Changes (Patrick Pelissier's suggestions):
- _ mpfr_print_rnd_mode now has __gmp_const char * return type;
- _ some corrections in mpfr.texi, documentencoding set.
-
-------------------------------------------------------------------------
-r2400 | ryde | 2003-08-30 23:25:43 +0000 (Sat, 30 Aug 2003) | 2 lines
-Changed paths:
- M /trunk/tests/amd64.asm
-
-#Corrections to initial checkin.
-
-------------------------------------------------------------------------
-r2399 | ryde | 2003-08-30 02:13:55 +0000 (Sat, 30 Aug 2003) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-(EXTRA_libfrtests_a_SOURCES): Add amd64.asm.
-
-------------------------------------------------------------------------
-r2398 | ryde | 2003-08-30 02:13:34 +0000 (Sat, 30 Aug 2003) | 2 lines
-Changed paths:
- A /trunk/tests/amd64.asm
-
-New file.
-
-------------------------------------------------------------------------
-r2397 | ryde | 2003-08-30 02:13:18 +0000 (Sat, 30 Aug 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Correction to:
-(MPFR_CONFIGS): Add amd64-*-* to x86 test objects.
-
-------------------------------------------------------------------------
-r2396 | ryde | 2003-08-30 01:42:49 +0000 (Sat, 30 Aug 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-(tests_machine_prec_long_double): Add amd64 to the
-comments.
-
-------------------------------------------------------------------------
-r2395 | ryde | 2003-08-30 01:41:08 +0000 (Sat, 30 Aug 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_CONFIGS): Add amd64-*-* to x86 test objects.
-
-------------------------------------------------------------------------
-r2394 | ryde | 2003-08-30 01:39:32 +0000 (Sat, 30 Aug 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-(check_set_get): Improve error messages.
-
-------------------------------------------------------------------------
-r2393 | ryde | 2003-08-30 01:38:46 +0000 (Sat, 30 Aug 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/tests.c
-
-(ld_trace): New function.
-
-------------------------------------------------------------------------
-r2392 | ryde | 2003-08-30 01:37:40 +0000 (Sat, 30 Aug 2003) | 3 lines
-Changed paths:
- M /trunk/set_ld.c
-
-(ldbl_max_struct): Use octal character constants, since hex
-is an ANSI-ism.
-
-------------------------------------------------------------------------
-r2391 | vlefevre | 2003-08-07 07:56:08 +0000 (Thu, 07 Aug 2003) | 2 lines
-Changed paths:
- M /trunk/ui_pow_ui.c
-
-Avoid a potential overflow.
-
-------------------------------------------------------------------------
-r2390 | zimmerma | 2003-08-04 11:13:04 +0000 (Mon, 04 Aug 2003) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/tests/tagm.c
-
-fixed pb found by Damien Fisher
-
-------------------------------------------------------------------------
-r2389 | vlefevre | 2003-07-24 15:47:17 +0000 (Thu, 24 Jul 2003) | 3 lines
-Changed paths:
- M /trunk/get_d.c
-
-If the exponent of the number is meaningless (src = NaN, inf or 0),
-0 is stored in expptr (behavior similar to the ISO C frexp function).
-
-------------------------------------------------------------------------
-r2388 | zimmerma | 2003-07-21 13:16:54 +0000 (Mon, 21 Jul 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one item
-
-------------------------------------------------------------------------
-r2387 | ryde | 2003-07-19 00:17:02 +0000 (Sat, 19 Jul 2003) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-(check_PROGRAMS): Add tget_d_2exp.c.
-
-------------------------------------------------------------------------
-r2386 | ryde | 2003-07-19 00:15:46 +0000 (Sat, 19 Jul 2003) | 2 lines
-Changed paths:
- A /trunk/tests/tget_d_2exp.c
-
-New file, partly derived from tget_d.c.
-
-------------------------------------------------------------------------
-r2385 | ryde | 2003-07-19 00:12:19 +0000 (Sat, 19 Jul 2003) | 3 lines
-Changed paths:
- M /trunk/get_d.c
-
-(mpfr_get_d_2exp): Ensure 0.5 <= abs(ret) < 1.0 is respected
-when rounding away from zero.
-
-------------------------------------------------------------------------
-r2384 | ryde | 2003-07-19 00:07:32 +0000 (Sat, 19 Jul 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/tests.c
-
-(d_trace): New function.
-
-------------------------------------------------------------------------
-r2383 | ryde | 2003-07-19 00:06:15 +0000 (Sat, 19 Jul 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Converting Floats): mpfr_get_d_2exp stores to a long.
-
-------------------------------------------------------------------------
-r2382 | ryde | 2003-07-19 00:00:24 +0000 (Sat, 19 Jul 2003) | 3 lines
-Changed paths:
- M /trunk/get_d.c
- M /trunk/mpfr.h
-
-(mpfr_get_d_2exp): Store exp in a long, same as
-mpz_get_d_2exp and mpf_get_d_2exp.
-
-------------------------------------------------------------------------
-r2381 | vlefevre | 2003-07-15 14:42:08 +0000 (Tue, 15 Jul 2003) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-Updated comment.
-
-------------------------------------------------------------------------
-r2380 | vlefevre | 2003-07-08 14:31:44 +0000 (Tue, 08 Jul 2003) | 2 lines
-Changed paths:
- M /trunk/random2.c
-
-Correction in a comment (patch by Torbjorn).
-
-------------------------------------------------------------------------
-r2379 | zimmerma | 2003-07-01 14:47:05 +0000 (Tue, 01 Jul 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/round_prec.c
-
-can_round returns 0 for NaN/Inf
-
-------------------------------------------------------------------------
-r2378 | zimmerma | 2003-07-01 10:49:04 +0000 (Tue, 01 Jul 2003) | 3 lines
-Changed paths:
- M /trunk/round_prec.c
-
-fixed Uninitialized memory read in mpfr_can_round
-(when b is NaN or Inf)
-
-------------------------------------------------------------------------
-r2377 | zimmerma | 2003-06-30 15:59:19 +0000 (Mon, 30 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-fixed array bound write (need 6+1 characters in s1 to represent -@inf@ + \0)
-
-------------------------------------------------------------------------
-r2376 | ryde | 2003-06-28 00:17:24 +0000 (Sat, 28 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-Add "const" to IEEE byte sequence data.
-
-------------------------------------------------------------------------
-r2375 | ryde | 2003-06-28 00:15:04 +0000 (Sat, 28 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-(tests_rand_end): Remove explicit __gmp_rands
-clearing, it's what RANDS_CLEAR does already.
-
-------------------------------------------------------------------------
-r2374 | ryde | 2003-06-26 23:01:02 +0000 (Thu, 26 Jun 2003) | 4 lines
-Changed paths:
- M /trunk/TODO
-
-# Clarify nan/inf bits under efficiency.
-# Add mpfr_get_d3 ieee portability.
-# Add mpfr_random not wanted in mpf integration.
-
-------------------------------------------------------------------------
-r2373 | zimmerma | 2003-06-26 13:40:08 +0000 (Thu, 26 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/cmp_d.c
- M /trunk/get_d.c
- M /trunk/get_ld.c
- M /trunk/mpfr-impl.h
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_ld.c
-
-moved macros for [L]DBL_MANT_DIG in mpfr-impl.h
-
-------------------------------------------------------------------------
-r2372 | zimmerma | 2003-06-25 10:16:43 +0000 (Wed, 25 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/urandomb.c
-
-fixed several problems noticed by Kevin
-
-------------------------------------------------------------------------
-r2371 | zimmerma | 2003-06-25 07:47:53 +0000 (Wed, 25 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-changed test for 2^1024, using LDBL_MAX_EXP
-
-------------------------------------------------------------------------
-r2370 | ryde | 2003-06-25 00:47:56 +0000 (Wed, 25 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-# Add efficiency of separate flag bit operations.
-
-------------------------------------------------------------------------
-r2369 | ryde | 2003-06-24 23:57:33 +0000 (Tue, 24 Jun 2003) | 2 lines
-Changed paths:
- D /trunk/mpfr-math.h
-
-Remove file, no longer used.
-
-------------------------------------------------------------------------
-r2368 | ryde | 2003-06-24 23:56:41 +0000 (Tue, 24 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-(libmpfr_a_SOURCES): Remove mpfr-math.h.
-
-------------------------------------------------------------------------
-r2367 | ryde | 2003-06-24 23:55:52 +0000 (Tue, 24 Jun 2003) | 5 lines
-Changed paths:
- M /trunk/get_d.c
-
-(MPFR_DBL_INFP, MPFR_DBL_INFM, MPFR_DBL_NAN): Make private
-definitions based on IEEE byte sequences, in particular avoid HUGE_VAL
-from mpfr-math.h since that's not infinity on hppa1.1-hp-hpux10.
-Remove includes of mpfr-math.h, math.h and stddef.h.
-
-------------------------------------------------------------------------
-r2366 | ryde | 2003-06-24 23:50:03 +0000 (Tue, 24 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-(check_inf_nan): New test.
-
-------------------------------------------------------------------------
-r2365 | ryde | 2003-06-24 23:45:21 +0000 (Tue, 24 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_C_LONG_DOUBLE_FORMAT): Use octal char constants,
-'\xHH' is an ANSI-ism.
-
-------------------------------------------------------------------------
-r2364 | zimmerma | 2003-06-24 10:21:38 +0000 (Tue, 24 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-check 2^1024 only when sizeof(long double) > sizeof(double)
-
-------------------------------------------------------------------------
-r2363 | zimmerma | 2003-06-24 08:20:41 +0000 (Tue, 24 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-correction to previous patch
-
-------------------------------------------------------------------------
-r2362 | zimmerma | 2003-06-24 08:14:39 +0000 (Tue, 24 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-correction to previous patch: problem was that x and u can be 0,
-then MPFR_PREC() undefined
-
-------------------------------------------------------------------------
-r2361 | ryde | 2003-06-24 00:32:32 +0000 (Tue, 24 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-(tests_start_mpfr): Make stdout and stderr unbuffered.
-
-------------------------------------------------------------------------
-r2360 | ryde | 2003-06-24 00:30:25 +0000 (Tue, 24 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-(check_inexact): For pz, use at least MPFR_PREC_MIN
-since this is required by mpfr_set_prec.
-
-------------------------------------------------------------------------
-r2359 | ryde | 2003-06-24 00:29:32 +0000 (Tue, 24 Jun 2003) | 4 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-# Correction to:
-# (check_inexact): For pz, use at least MPFR_PREC_MIN
-# since this is required by mpfr_set_prec.
-
-------------------------------------------------------------------------
-r2358 | ryde | 2003-06-24 00:20:41 +0000 (Tue, 24 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-(check_inexact): For pz, use at least MPFR_PREC_MIN
-since this is required by mpfr_set_prec.
-
-------------------------------------------------------------------------
-r2357 | ryde | 2003-06-23 23:58:03 +0000 (Mon, 23 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Remove mingw portability of random/rand48, no longer used.
-
-------------------------------------------------------------------------
-r2356 | ryde | 2003-06-23 23:55:24 +0000 (Mon, 23 Jun 2003) | 5 lines
-Changed paths:
- M /trunk/TODO
-
-Remove __setfpucw, no longer used.
-Remove mpfr_integer_p, done.
-Remove gmp rand functions in test programs, done.
-Remove MPFR_CHECK_RANDOMIZE, done (as GMP_CHECK_RANDOMIZE).
-
-------------------------------------------------------------------------
-r2355 | vlefevre | 2003-06-21 07:56:50 +0000 (Sat, 21 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr_random is deprecated.
-
-------------------------------------------------------------------------
-r2354 | zimmerma | 2003-06-20 15:01:01 +0000 (Fri, 20 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tui_div.c
-
-changed since mpfr_random now can return 0
-
-------------------------------------------------------------------------
-r2353 | vlefevre | 2003-06-20 14:21:36 +0000 (Fri, 20 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/random.c
-
-The distribution should now be uniform (mpfr_random implemented
-by calling mpfr_urandomb).
-
-------------------------------------------------------------------------
-r2352 | vlefevre | 2003-06-20 12:30:42 +0000 (Fri, 20 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/urandomb.c
-
-Take the current exponent range into account in mpfr_urandomb
-(which now returns an int).
-
-------------------------------------------------------------------------
-r2351 | vlefevre | 2003-06-20 10:37:26 +0000 (Fri, 20 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/urandomb.c
-
-Bug fix.
-
-------------------------------------------------------------------------
-r2350 | zimmerma | 2003-06-20 10:30:35 +0000 (Fri, 20 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-moved _gmp_rands_initialized stuff from tests_end_mpfr() to tests_rand_end()
-
-------------------------------------------------------------------------
-r2349 | zimmerma | 2003-06-20 09:58:46 +0000 (Fri, 20 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tset_z.c
-
-reduced default number of tests
-improved style
-
-------------------------------------------------------------------------
-r2348 | zimmerma | 2003-06-20 09:53:15 +0000 (Fri, 20 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-reduced default number of tests
-improved style
-
-------------------------------------------------------------------------
-r2347 | zimmerma | 2003-06-19 17:17:48 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-fixed bug in mpfr_exp2_aux2 (spe175.testdrive.hp.com)
-
-------------------------------------------------------------------------
-r2346 | zimmerma | 2003-06-19 15:40:52 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/exp3.c
-
-improved style
-
-------------------------------------------------------------------------
-r2345 | zimmerma | 2003-06-19 14:57:05 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added more information in case of failure
-
-------------------------------------------------------------------------
-r2344 | zimmerma | 2003-06-19 09:12:26 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tests.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
-
-removed randseed() stuff [obsolete now we use the GMP mechanism]
-
-------------------------------------------------------------------------
-r2343 | zimmerma | 2003-06-19 08:55:03 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-added memory test mechanism
-
-------------------------------------------------------------------------
-r2342 | zimmerma | 2003-06-19 08:54:42 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added new test from Parks
-
-------------------------------------------------------------------------
-r2341 | zimmerma | 2003-06-19 08:54:07 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-fixed allocation problem (forgot to clear)
-
-------------------------------------------------------------------------
-r2340 | vlefevre | 2003-06-19 01:01:38 +0000 (Thu, 19 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-Removed drand48/lrand48/srand48 prototypes.
-
-------------------------------------------------------------------------
-r2339 | ryde | 2003-06-18 22:57:32 +0000 (Wed, 18 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tset_z.c
-
-Don't use mpz_get_d1, since a 53-bit double is not
-enough when long is 64-bits.
-
-------------------------------------------------------------------------
-r2338 | ryde | 2003-06-18 22:50:59 +0000 (Wed, 18 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-Don't use mpz_get_d1, since a 53-bit double is not
-enough when long is 64-bits.
-
-------------------------------------------------------------------------
-r2337 | ryde | 2003-06-13 22:43:53 +0000 (Fri, 13 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Use autoconf recommended style for time.h with
-sys/time.h.
-
-------------------------------------------------------------------------
-r2336 | ryde | 2003-06-13 22:40:44 +0000 (Fri, 13 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_CONFIGS): Require AC_HEADER_TIME, add
-AC_CHECK_HEADERS of sys/time.h.
-
-------------------------------------------------------------------------
-r2335 | ryde | 2003-06-13 22:33:50 +0000 (Fri, 13 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_CONFIGS): Add AC_CHECK_FUNCS of gettimeofday.
-
-------------------------------------------------------------------------
-r2334 | zimmerma | 2003-06-13 15:19:12 +0000 (Fri, 13 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-moved disabled test to "special" code
-
-------------------------------------------------------------------------
-r2333 | zimmerma | 2003-06-13 11:50:07 +0000 (Fri, 13 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-added reference to Higham
-
-------------------------------------------------------------------------
-r2332 | zimmerma | 2003-06-13 08:22:53 +0000 (Fri, 13 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/erf.c
- M /trunk/exp.c
-
-improved error analysis on erf
-
-------------------------------------------------------------------------
-r2331 | zimmerma | 2003-06-13 07:52:01 +0000 (Fri, 13 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-improved indentation
-
-------------------------------------------------------------------------
-r2330 | zimmerma | 2003-06-12 16:29:34 +0000 (Thu, 12 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-added support for random see
-(when env. variable GMP_CHECK_RANDOMIZE set)
-
-------------------------------------------------------------------------
-r2329 | vlefevre | 2003-06-12 16:13:49 +0000 (Thu, 12 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-test.h
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/terf.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-Replaced misc random functions by GMP ones.
-
-------------------------------------------------------------------------
-r2328 | vlefevre | 2003-06-12 13:52:56 +0000 (Thu, 12 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/tests.c
-
-Added function randlimb().
-
-------------------------------------------------------------------------
-r2327 | vlefevre | 2003-06-12 11:37:31 +0000 (Thu, 12 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/erf.c
-
-Fixed a few bugs concerning special values, code simplified.
-
-------------------------------------------------------------------------
-r2326 | zimmerma | 2003-06-12 09:10:34 +0000 (Thu, 12 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/algorithms.tex
- A /trunk/erf.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/terf.c
-
-added error function
-
-------------------------------------------------------------------------
-r2325 | vlefevre | 2003-06-11 23:38:43 +0000 (Wed, 11 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/random2.c
-
-Make x positive + some minor changes.
-
-------------------------------------------------------------------------
-r2324 | vlefevre | 2003-06-11 23:31:05 +0000 (Wed, 11 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/random2.c
-
-New version written by Torbjorn Granlund.
-
-------------------------------------------------------------------------
-r2323 | zimmerma | 2003-06-10 15:24:16 +0000 (Tue, 10 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-updated formular for erf
-added url for Abramowitz & Stegun
-
-------------------------------------------------------------------------
-r2322 | vlefevre | 2003-06-10 13:22:52 +0000 (Tue, 10 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-Added a comment concerning NO_MATH_DEFS.
-
-------------------------------------------------------------------------
-r2321 | zimmerma | 2003-06-10 08:43:05 +0000 (Tue, 10 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-made test faster
-
-------------------------------------------------------------------------
-r2320 | zimmerma | 2003-06-10 08:41:47 +0000 (Tue, 10 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-reduced test time
-
-------------------------------------------------------------------------
-r2319 | zimmerma | 2003-06-10 08:38:54 +0000 (Tue, 10 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-reduced time of test
-
-------------------------------------------------------------------------
-r2318 | zimmerma | 2003-06-10 08:20:21 +0000 (Tue, 10 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tfrac.c
-
-reduced time
-
-------------------------------------------------------------------------
-r2317 | ryde | 2003-06-09 22:48:18 +0000 (Mon, 09 Jun 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-Patch by Torbjorn: use puts not putchar, to avoid GNUPro compiler bug.
-
-------------------------------------------------------------------------
-r2316 | ryde | 2003-06-08 23:56:47 +0000 (Sun, 08 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-Disable "8093416094703476*2^(-1075)" because mips64
-SGI cc doesn't seem to like the value (a denorm).
-
-------------------------------------------------------------------------
-r2315 | ryde | 2003-06-08 22:44:59 +0000 (Sun, 08 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/get_d.c
-
-Include <stddef.h> before <math.h>, to avoid problems with
-gcc 3.2 on hppa2.0w-hp-hpux11.11.
-
-------------------------------------------------------------------------
-r2314 | ryde | 2003-06-08 22:35:03 +0000 (Sun, 08 Jun 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-(random): Remove prototype, since it conflicts with
-stdlib.h on osf4.
-
-------------------------------------------------------------------------
-r2313 | vlefevre | 2003-05-28 14:04:50 +0000 (Wed, 28 May 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/tests/tzeta.c
-
-Added prototypes of non-standard functions that weren't always defined.
-
-------------------------------------------------------------------------
-r2312 | vlefevre | 2003-05-28 08:44:17 +0000 (Wed, 28 May 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-MPFR_EXP_CHECK is now defined when WANT_ASSERT is defined.
-
-------------------------------------------------------------------------
-r2311 | vlefevre | 2003-05-26 20:31:56 +0000 (Mon, 26 May 2003) | 3 lines
-Changed paths:
- M /trunk/zeta.c
-
-The special case s = 1 is taken into account (the previous code
-seemed to work, but perhaps not for rigorous reasons).
-
-------------------------------------------------------------------------
-r2310 | vlefevre | 2003-05-26 20:31:38 +0000 (Mon, 26 May 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-Added test for case s = 1.
-
-------------------------------------------------------------------------
-r2309 | vlefevre | 2003-05-26 15:34:17 +0000 (Mon, 26 May 2003) | 3 lines
-Changed paths:
- M /trunk/round_prec.c
-
-(mpfr_round_prec): Bug fixed (case zero wasn't taken into account)
-and 'assertion failed' avoided.
-
-------------------------------------------------------------------------
-r2308 | vlefevre | 2003-05-26 15:20:27 +0000 (Mon, 26 May 2003) | 2 lines
-Changed paths:
- M /trunk/add_one_ulp.c
- M /trunk/div_ui.c
- M /trunk/sub_one_ulp.c
-
-Update related to MPFR_GET_EXP and MPFR_SET_EXP.
-
-------------------------------------------------------------------------
-r2307 | vlefevre | 2003-05-26 14:46:42 +0000 (Mon, 26 May 2003) | 2 lines
-Changed paths:
- M /trunk/rint.c
-
-MPFR_GET_EXP (r) -> exp.
-
-------------------------------------------------------------------------
-r2306 | vlefevre | 2003-05-26 13:20:54 +0000 (Mon, 26 May 2003) | 2 lines
-Changed paths:
- M /trunk/swap.c
-
-Function mpfr_swap rewritten using memcpy.
-
-------------------------------------------------------------------------
-r2305 | vlefevre | 2003-05-26 12:03:59 +0000 (Mon, 26 May 2003) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP.
-
-------------------------------------------------------------------------
-r2304 | vlefevre | 2003-05-26 11:47:04 +0000 (Mon, 26 May 2003) | 2 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/mpfr-impl.h
- M /trunk/set_si.c
- M /trunk/set_ui.c
- M /trunk/sqrt_ui.c
- M /trunk/sub_ui.c
-
-Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP.
-
-------------------------------------------------------------------------
-r2303 | vlefevre | 2003-05-23 10:28:12 +0000 (Fri, 23 May 2003) | 2 lines
-Changed paths:
- M /trunk/add1.c
-
-Code clean-up. Assertion failed avoided.
-
-------------------------------------------------------------------------
-r2302 | vlefevre | 2003-05-22 22:11:01 +0000 (Thu, 22 May 2003) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2301 | vlefevre | 2003-05-22 21:39:40 +0000 (Thu, 22 May 2003) | 8 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/div.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/eq.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/frac.c
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_exp.c
- M /trunk/get_ld.c
- M /trunk/get_si.c
- M /trunk/get_str.c
- M /trunk/get_ui.c
- M /trunk/get_z_exp.c
- M /trunk/hypot.c
- M /trunk/isinteger.c
- M /trunk/log.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/next.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_exp.c
- M /trunk/set_f.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/setmax.c
- M /trunk/setmin.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-Macros MPFR_EXP_INVALID (invalid exponent value) and MPFR_EXP_CHECK
-added. Code update to use MPFR_GET_EXP and MPFR_SET_EXP instead of
-MPFR_EXP to allow more bug detection related to special values.
-Macros MPFR_SET_NAN, MPFR_SET_INF, MPFR_SET_ZERO and MPFR_INIT set
-the exponent of the number to MPFR_EXP_INVALID if MPFR_EXP_CHECK
-is defined. Compile with -DMPFR_EXP_CHECK and make check to see
-the potential problems; currently, 40 of 76 tests fail.
-
-------------------------------------------------------------------------
-r2300 | vlefevre | 2003-05-21 15:16:49 +0000 (Wed, 21 May 2003) | 2 lines
-Changed paths:
- M /trunk/pow_ui.c
- M /trunk/tests/tacos.c
-
-#include "gmp-impl.h" added.
-
-------------------------------------------------------------------------
-r2299 | vlefevre | 2003-05-21 14:49:03 +0000 (Wed, 21 May 2003) | 5 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-MPFR_ASSERTD: use MPFR_ASSERTN instead of ASSERT_ALWAYS so that
-it can be used as an expression.
-New macros MPFR_GET_EXP and MPFR_SET_EXP (they should almost
-completely replace MPFR_EXP).
-
-------------------------------------------------------------------------
-r2298 | zimmerma | 2003-05-19 15:04:20 +0000 (Mon, 19 May 2003) | 2 lines
-Changed paths:
- M /trunk/tests/teq.c
-
-added test 'special'
-
-------------------------------------------------------------------------
-r2297 | zimmerma | 2003-05-19 15:03:11 +0000 (Mon, 19 May 2003) | 2 lines
-Changed paths:
- M /trunk/eq.c
-
-fixed bug when n_bits larger than size*BITS_PER_MP_LIMB
-
-------------------------------------------------------------------------
-r2296 | vlefevre | 2003-05-18 00:11:11 +0000 (Sun, 18 May 2003) | 2 lines
-Changed paths:
- M /trunk/eq.c
-
-Bugs fixed (special cases).
-
-------------------------------------------------------------------------
-r2295 | zimmerma | 2003-05-13 16:02:44 +0000 (Tue, 13 May 2003) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-removed dummy test tdump
-
-------------------------------------------------------------------------
-r2294 | zimmerma | 2003-05-13 16:00:44 +0000 (Tue, 13 May 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-compatibility with mpf is done
-
-------------------------------------------------------------------------
-r2293 | zimmerma | 2003-05-13 15:52:30 +0000 (Tue, 13 May 2003) | 3 lines
-Changed paths:
- M /trunk/cmp_d.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr.texi
-
-updated mpfr_cmp_d
-added mpfr_cmp_d in mpf2mpfr.h and mpfr.texi
-
-------------------------------------------------------------------------
-r2292 | hanrot | 2003-05-13 15:03:49 +0000 (Tue, 13 May 2003) | 2 lines
-Changed paths:
- A /trunk/cmp_d.c
- A /trunk/tests/tcmp_d.c
-
-Added cmp_d.c, tcmp_d.c.
-
-------------------------------------------------------------------------
-r2291 | hanrot | 2003-05-13 15:03:07 +0000 (Tue, 13 May 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/tests/Makefile.am
- M /trunk/tests/mpf_compat.h
-
-Added cmp_d/tcmp_d.
-
-------------------------------------------------------------------------
-r2290 | zimmerma | 2003-04-11 10:08:39 +0000 (Fri, 11 Apr 2003) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/zeta.c
-
-moved test for NaN/Inf
-
-------------------------------------------------------------------------
-r2289 | zimmerma | 2003-04-11 09:54:23 +0000 (Fri, 11 Apr 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-added Riemann Zeta function (contribution from Jean-Luc Re'my)
-
-------------------------------------------------------------------------
-r2288 | ryde | 2003-04-08 23:50:59 +0000 (Tue, 08 Apr 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Move macros down below @copying.
-
-------------------------------------------------------------------------
-r2287 | ryde | 2003-04-08 23:43:51 +0000 (Tue, 08 Apr 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Add @: after various abbreviations.
-
-------------------------------------------------------------------------
-r2286 | zimmerma | 2003-04-01 11:49:34 +0000 (Tue, 01 Apr 2003) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-fixed pb with count_leading_zeros (n=0)
-
-------------------------------------------------------------------------
-r2285 | zimmerma | 2003-04-01 10:39:48 +0000 (Tue, 01 Apr 2003) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added test for bug found by Franky Backeljauw
-
-------------------------------------------------------------------------
-r2284 | zimmerma | 2003-04-01 10:39:14 +0000 (Tue, 01 Apr 2003) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-fixed bug found by Franky
-
-------------------------------------------------------------------------
-r2283 | vlefevre | 2003-03-28 12:56:46 +0000 (Fri, 28 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/exp3.c
-
-Added some asserts.
-
-------------------------------------------------------------------------
-r2282 | zimmerma | 2003-03-28 09:22:37 +0000 (Fri, 28 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-fixed pb found by Will Galway <galway@pims.math.ca> (continued)
-
-------------------------------------------------------------------------
-r2281 | hanrot | 2003-03-28 09:13:19 +0000 (Fri, 28 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
- M /trunk/tests/tconst_pi.c
-
-Patches from W. Galway.
-
-------------------------------------------------------------------------
-r2280 | zimmerma | 2003-03-28 08:40:59 +0000 (Fri, 28 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed reference to Plouffe/Bailey/Borwein formula
-
-------------------------------------------------------------------------
-r2279 | hanrot | 2003-03-27 09:37:37 +0000 (Thu, 27 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/const_pi.c
-
-Credits for the pi formula modified.
-
-------------------------------------------------------------------------
-r2278 | zimmerma | 2003-03-26 10:01:02 +0000 (Wed, 26 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
-
-changed back "unsigned char *" to "char *"
-
-------------------------------------------------------------------------
-r2277 | zimmerma | 2003-03-25 09:17:50 +0000 (Tue, 25 Mar 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
-
-char * -> const unsigned char * for mpfr_set_str, mpfr_set_str_raw,
-and mpfr_init_set_str
-
-------------------------------------------------------------------------
-r2276 | zimmerma | 2003-03-24 13:24:54 +0000 (Mon, 24 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/get_ld.c
-
-removed unused variable
-
-------------------------------------------------------------------------
-r2275 | zimmerma | 2003-03-18 10:55:37 +0000 (Tue, 18 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed documentation bug in mpfr_log2 (exact results)
-
-------------------------------------------------------------------------
-r2274 | zimmerma | 2003-03-18 09:05:42 +0000 (Tue, 18 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-changed new test in 'check4' style
-
-------------------------------------------------------------------------
-r2273 | vlefevre | 2003-03-17 02:08:03 +0000 (Mon, 17 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/mpfr.texi
-
-Update concerning underflow problems.
-
-------------------------------------------------------------------------
-r2272 | ryde | 2003-03-17 00:20:46 +0000 (Mon, 17 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-(main): Comment out underflows(), until it works.
-
-------------------------------------------------------------------------
-r2271 | ryde | 2003-03-17 00:04:41 +0000 (Mon, 17 Mar 2003) | 3 lines
-Changed paths:
- M /trunk/get_z_exp.c
-
-Comment out an assert tickled for an f with exponent
-near MPFR_EMIN_MIN.
-
-------------------------------------------------------------------------
-r2270 | ryde | 2003-03-16 23:32:38 +0000 (Sun, 16 Mar 2003) | 7 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-(LONGDOUBLE_NAN_ACTION): New version for IEEE quad big
-endian, fixing HP cc.
-(WANT_LONGDOUBLE_VOLATILE): New define for when LONGDOUBLE_VOLATILE is
-wanted.
-(WANT_GMPFR_LONGDOUBLE_VOLATILE): New define for when
-__gmpfr_longdouble_volatile is wanted.
-
-------------------------------------------------------------------------
-r2269 | ryde | 2003-03-16 23:32:05 +0000 (Sun, 16 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/volatile.c
-
-Use WANT_GMPFR_LONGDOUBLE_VOLATILE.
-
-------------------------------------------------------------------------
-r2268 | ryde | 2003-03-16 23:29:27 +0000 (Sun, 16 Mar 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_C_LONG_DOUBLE_FORMAT): Add IEEE quad big endian,
-check long double exists before testing.
-
-------------------------------------------------------------------------
-r2267 | vlefevre | 2003-03-14 11:55:34 +0000 (Fri, 14 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Added underflow test showing a bug in mpfr_pow.
-
-------------------------------------------------------------------------
-r2266 | zimmerma | 2003-03-14 08:22:36 +0000 (Fri, 14 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-fixed bug for x=1
-
-------------------------------------------------------------------------
-r2265 | vlefevre | 2003-03-14 01:50:48 +0000 (Fri, 14 Mar 2003) | 3 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/pow.c
-
-This wasn't a compiler bug; mpfr_pow is really buggy.
-Added some asserts to show that.
-
-------------------------------------------------------------------------
-r2264 | vlefevre | 2003-03-14 01:12:44 +0000 (Fri, 14 Mar 2003) | 5 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/tests/tpow.c
-
-The infinite loop concerning 1^0.5 was probably due to a bug in the
-compiler [cc (GCC) 3.2.3 20030309 (Debian prerelease)]: adding some
-printf's changes the values of the variables and the correct result
-is returned.
-
-------------------------------------------------------------------------
-r2263 | zimmerma | 2003-03-13 17:11:52 +0000 (Thu, 13 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-fixed sign problem in particular_cases()
-
-------------------------------------------------------------------------
-r2262 | zimmerma | 2003-03-13 17:10:45 +0000 (Thu, 13 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/ui_pow.c
-
-declared mpfr_ui_pow_is_exact as static
-
-------------------------------------------------------------------------
-r2261 | zimmerma | 2003-03-13 17:10:02 +0000 (Thu, 13 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/pow_si.c
-
-gnu-style
-
-------------------------------------------------------------------------
-r2260 | vlefevre | 2003-03-13 00:26:48 +0000 (Thu, 13 Mar 2003) | 4 lines
-Changed paths:
- M /trunk/tests/tpow3.c
-
-Removed some useless and inaccurate tests on NaN, infinities, zeros
-(as the behavior of mpfr_pow on such particular cases has changed);
-similar tests were added to "tests/tpow.c".
-
-------------------------------------------------------------------------
-r2259 | vlefevre | 2003-03-13 00:15:19 +0000 (Thu, 13 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/tests/tpow.c
-
-Test of mpfr_pow: particular cases. Bugs.
-
-------------------------------------------------------------------------
-r2258 | vlefevre | 2003-03-12 18:19:59 +0000 (Wed, 12 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/tests/tpow3.c
-
-Special cases for mpfr_pow().
-
-------------------------------------------------------------------------
-r2257 | zimmerma | 2003-03-11 17:32:46 +0000 (Tue, 11 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-when stream=NULL, use stdout (as indicated in the documentation)
-
-------------------------------------------------------------------------
-r2256 | vlefevre | 2003-03-03 06:04:29 +0000 (Mon, 03 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-mpfr_sin_sign -> static.
-
-------------------------------------------------------------------------
-r2255 | vlefevre | 2003-03-03 06:03:24 +0000 (Mon, 03 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Useless declaration removed.
-
-------------------------------------------------------------------------
-r2254 | vlefevre | 2003-03-03 05:51:30 +0000 (Mon, 03 Mar 2003) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-Special cases for mpfr_pow: like Section F.9.4.4 of the
-ISO C99 standard.
-
-------------------------------------------------------------------------
-r2253 | vlefevre | 2003-03-03 05:14:18 +0000 (Mon, 03 Mar 2003) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Prototype fixed.
-
-------------------------------------------------------------------------
-r2252 | vlefevre | 2003-02-27 10:20:34 +0000 (Thu, 27 Feb 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/set_str.c
- M /trunk/tests/tset_str.c
-
-mpfr_set_str now accepts a binary exponent for base 16
-(as defined by the ISO C99 standard).
-
-------------------------------------------------------------------------
-r2251 | vlefevre | 2003-02-27 05:32:01 +0000 (Thu, 27 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Comment concerning the installation of MPFR: done.
-
-------------------------------------------------------------------------
-r2250 | vlefevre | 2003-02-27 05:18:56 +0000 (Thu, 27 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/mpfr.texi
-
-New recommendation to install MPFR.
-
-------------------------------------------------------------------------
-r2249 | hanrot | 2003-02-24 12:32:56 +0000 (Mon, 24 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/dump.c
- M /trunk/get_str.c
- M /trunk/out_str.c
- M /trunk/print_raw.c
- M /trunk/set_str.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tset_str.c
-
-Replaced NaN, Inf by @NaN@, @Inf@ [for bases > 24].
-
-------------------------------------------------------------------------
-r2248 | zimmerma | 2003-02-21 15:06:24 +0000 (Fri, 21 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-added one test
-
-------------------------------------------------------------------------
-r2247 | vlefevre | 2003-02-21 15:04:06 +0000 (Fri, 21 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/get_ui.c
-
-Fixed cast (though unnecessary).
-
-------------------------------------------------------------------------
-r2246 | zimmerma | 2003-02-21 13:07:46 +0000 (Fri, 21 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added one test
-
-------------------------------------------------------------------------
-r2245 | zimmerma | 2003-02-13 15:31:51 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added mpf_compat, mpfr_compat
-
-------------------------------------------------------------------------
-r2244 | zimmerma | 2003-02-13 15:30:41 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- A /trunk/tests/mpf_compat.c
- A /trunk/tests/mpf_compat.h
- A /trunk/tests/mpfr_compat.c
-
-test files for mpf-mpfr compatibility
-
-------------------------------------------------------------------------
-r2243 | zimmerma | 2003-02-13 15:29:27 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-added mpfr_init_set_str
-
-------------------------------------------------------------------------
-r2242 | zimmerma | 2003-02-13 14:50:37 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added "const" to char* arg. of mpfr_init_set_str
-
-------------------------------------------------------------------------
-r2241 | zimmerma | 2003-02-13 14:49:47 +0000 (Thu, 13 Feb 2003) | 3 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-added macros for new mpfr functions
-changed some old macros
-
-------------------------------------------------------------------------
-r2240 | zimmerma | 2003-02-13 08:57:19 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/frac.c
- M /trunk/isinteger.c
- M /trunk/log10.c
- M /trunk/pow.c
- M /trunk/tests/tpow3.c
-
-mpfr_isinteger -> mpfr_integer_p
-
-------------------------------------------------------------------------
-r2239 | zimmerma | 2003-02-13 08:56:34 +0000 (Thu, 13 Feb 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-document new functions (fits_*, get_ui, get_si, get_d_2exp)
-added integer_p that was not documented
-
-------------------------------------------------------------------------
-r2238 | zimmerma | 2003-02-13 08:55:23 +0000 (Thu, 13 Feb 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr_isinteger -> mpfr_integer_p
-new functions: mpfr_fits_*, mpfr_get_ui, mpfr_get_si, mpfr_get_d_2exp
-
-------------------------------------------------------------------------
-r2237 | zimmerma | 2003-02-13 08:53:54 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-added mpfr_get_d_2exp
-
-------------------------------------------------------------------------
-r2236 | zimmerma | 2003-02-13 08:52:15 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-new functions mpfr_fits_* and mpfr_get_ui/si
-
-------------------------------------------------------------------------
-r2235 | zimmerma | 2003-02-13 08:51:29 +0000 (Thu, 13 Feb 2003) | 2 lines
-Changed paths:
- A /trunk/fits_s.h
- A /trunk/fits_sint.c
- A /trunk/fits_slong.c
- A /trunk/fits_sshort.c
- A /trunk/fits_u.h
- A /trunk/fits_uint.c
- A /trunk/fits_ulong.c
- A /trunk/fits_ushort.c
- A /trunk/get_si.c
- A /trunk/get_ui.c
-
-new functions mpfr_fits_* and mpfr_get_[us]i
-
-------------------------------------------------------------------------
-r2234 | zimmerma | 2003-01-27 10:13:37 +0000 (Mon, 27 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-check for +/-0.0 after variable set to NaN
-
-------------------------------------------------------------------------
-r2233 | vlefevre | 2003-01-25 02:44:06 +0000 (Sat, 25 Jan 2003) | 4 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Suppressed the underscores of AC_CHECK_LIBM in comments, otherwise
-aclocal 1.4-p6 includes libtool code in aclocal.m4 and this leads
-to compilation problems.
-
-------------------------------------------------------------------------
-r2232 | ryde | 2003-01-25 00:44:05 +0000 (Sat, 25 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-(_MPFR_H_HAVE_FILE): Copy FILE define tests from gmp.h, adds
-Borland, Microsoft and Apple MPW.
-
-------------------------------------------------------------------------
-r2231 | ryde | 2003-01-25 00:28:59 +0000 (Sat, 25 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-(libmpfr_a_SOURCES): Add volatile.c.
-
-------------------------------------------------------------------------
-r2230 | ryde | 2003-01-25 00:28:30 +0000 (Sat, 25 Jan 2003) | 2 lines
-Changed paths:
- A /trunk/volatile.c
-
-New file.
-
-------------------------------------------------------------------------
-r2229 | ryde | 2003-01-25 00:28:04 +0000 (Sat, 25 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-(Isnan_ld): New function based on LONGDOUBLE_NAN_ACTION, use it
-instead of LONGDOUBLE_ISNAN.
-
-------------------------------------------------------------------------
-r2228 | ryde | 2003-01-25 00:21:21 +0000 (Sat, 25 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-(LONGDOUBLE_ISNAN): Remove.
-
-------------------------------------------------------------------------
-r2227 | ryde | 2003-01-25 00:21:02 +0000 (Sat, 25 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-(LONGDOUBLE_ISNAN): Remove this, use LONGDOUBLE_NAN_ACTION instead.
-
-------------------------------------------------------------------------
-r2226 | ryde | 2003-01-25 00:20:07 +0000 (Sat, 25 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-(LONGDOUBLE_NAN_ACTION): New macro.
-
-------------------------------------------------------------------------
-r2225 | ryde | 2003-01-24 21:47:56 +0000 (Fri, 24 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/set_str.c
-
-Allow "e" exponent in base<=10 not <10. Restrict "E"
-exponent to base<=10 too, since digits are not case sensitive.
-
-------------------------------------------------------------------------
-r2224 | vlefevre | 2003-01-24 19:08:07 +0000 (Fri, 24 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
-
-Prototypes: use static. Some code reformatting.
-
-------------------------------------------------------------------------
-r2223 | vlefevre | 2003-01-24 16:49:54 +0000 (Fri, 24 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-The sign wasn't set when the result was zero.
-
-------------------------------------------------------------------------
-r2222 | ryde | 2003-01-24 16:17:04 +0000 (Fri, 24 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/set_str.c
-
-Reject "", "+" and "-", also fixing an attempt to allocate a 0 length
-block in these cases.
-
-------------------------------------------------------------------------
-r2221 | ryde | 2003-01-24 16:03:35 +0000 (Fri, 24 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Clear NAN and INF flags when setting result to zero.
-
-------------------------------------------------------------------------
-r2220 | vlefevre | 2003-01-24 11:29:42 +0000 (Fri, 24 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/tui_sub.c
-
-Fixed prototypes (use static...).
-
-------------------------------------------------------------------------
-r2219 | vlefevre | 2003-01-24 11:28:34 +0000 (Fri, 24 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-Missing #include.
-
-------------------------------------------------------------------------
-r2218 | zimmerma | 2003-01-23 13:16:00 +0000 (Thu, 23 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-workaround for gcc bug on m68040-unknown-netbsd1.4.1
-
-------------------------------------------------------------------------
-r2217 | zimmerma | 2003-01-23 12:41:31 +0000 (Thu, 23 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-added cast to double
-
-------------------------------------------------------------------------
-r2216 | ryde | 2003-01-23 00:00:29 +0000 (Thu, 23 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
-not "double" nans and infs.
-
-------------------------------------------------------------------------
-r2215 | ryde | 2003-01-22 23:40:43 +0000 (Wed, 22 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
-not "double" nans and infs.
-
-------------------------------------------------------------------------
-r2214 | ryde | 2003-01-22 23:32:19 +0000 (Wed, 22 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_sub.c
-
-Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
-not "double" nans and infs.
-
-------------------------------------------------------------------------
-r2213 | ryde | 2003-01-22 22:59:46 +0000 (Wed, 22 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tgamma.c
-
-Use tests_start_mpfr / tests_end_mpfr.
-
-------------------------------------------------------------------------
-r2212 | ryde | 2003-01-22 22:39:38 +0000 (Wed, 22 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tcbrt.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tzeta.c
-
-Use tests_start_mpfr / tests_end_mpfr.
-
-------------------------------------------------------------------------
-r2211 | ryde | 2003-01-22 22:34:54 +0000 (Wed, 22 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-Use tests_start_mpfr / tests_end_mpfr.
-(check_large): Use __gmp_free_func to free mpfr_get_str result.
-
-------------------------------------------------------------------------
-r2210 | ryde | 2003-01-22 22:27:46 +0000 (Wed, 22 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
-not "double" nans and infs. Use tests_start_mpfr / tests_end_mpfr.
-
-------------------------------------------------------------------------
-r2209 | ryde | 2003-01-22 22:24:50 +0000 (Wed, 22 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
-not "double" nans and infs.
-
-------------------------------------------------------------------------
-r2208 | ryde | 2003-01-22 22:18:09 +0000 (Wed, 22 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-Remove tests involving "double" nans and infs, covered by check_nan.
-
-------------------------------------------------------------------------
-r2207 | ryde | 2003-01-22 22:15:49 +0000 (Wed, 22 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tcos.c
- M /trunk/tests/tsin.c
- M /trunk/tests/ttan.c
-
-Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
-not "double" nans and infs.
-
-------------------------------------------------------------------------
-r2206 | ryde | 2003-01-18 00:31:30 +0000 (Sat, 18 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Move log_b2.h from include_HEADERS to libmpfr_a_SOURCES, it doesn't
-want to be installed.
-
-------------------------------------------------------------------------
-r2205 | ryde | 2003-01-18 00:14:32 +0000 (Sat, 18 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Correction to memory leak fix, need "result" for final rounding.
-
-------------------------------------------------------------------------
-r2204 | ryde | 2003-01-17 23:50:10 +0000 (Fri, 17 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Fix two memory leaks.
-
-------------------------------------------------------------------------
-r2203 | ryde | 2003-01-17 23:08:05 +0000 (Fri, 17 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-(LDADD): Add $(MPFR_LIBM).
-
-------------------------------------------------------------------------
-r2202 | ryde | 2003-01-17 23:00:42 +0000 (Fri, 17 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Remove -lm setups, now handled by MPFR_CHECK_LIBM.
-
-------------------------------------------------------------------------
-r2201 | ryde | 2003-01-17 22:59:51 +0000 (Fri, 17 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_CHECK_LIBM): New macro.
-(MPFR_CONFIGS): Use it.
-
-------------------------------------------------------------------------
-r2200 | zimmerma | 2003-01-17 14:59:48 +0000 (Fri, 17 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/NEWS
- M /trunk/README
- M /trunk/TODO
- M /trunk/acinclude.m4
-
-added copyright notices and license statements
-
-------------------------------------------------------------------------
-r2199 | zimmerma | 2003-01-17 08:58:45 +0000 (Fri, 17 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-now use __gmpfr_floor_log2 instead of floor/log to get rid of math.h
-
-------------------------------------------------------------------------
-r2198 | zimmerma | 2003-01-17 08:52:49 +0000 (Fri, 17 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-removed unused function dagm(), and get rid of math.h
-added tests for NaN, Inf's
-
-------------------------------------------------------------------------
-r2197 | vlefevre | 2003-01-17 00:55:13 +0000 (Fri, 17 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Re-added $OBJEXT, using AC_REQUIRE([AC_OBJEXT]) for old autoconf.
-
-------------------------------------------------------------------------
-r2196 | zimmerma | 2003-01-16 17:46:17 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-put back math.h
-
-------------------------------------------------------------------------
-r2195 | zimmerma | 2003-01-16 17:44:13 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-added back math.h (for sqrt)
-
-------------------------------------------------------------------------
-r2194 | zimmerma | 2003-01-16 17:32:19 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added log_b2.h in include_HEADERS
-
-------------------------------------------------------------------------
-r2193 | zimmerma | 2003-01-16 17:28:18 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tsin_cos
-
-------------------------------------------------------------------------
-r2192 | zimmerma | 2003-01-16 17:23:25 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added #ifdef HAVE_DENORMS for denormalized test
-
-------------------------------------------------------------------------
-r2191 | zimmerma | 2003-01-16 17:18:07 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset.c
- M /trunk/tests/tsub.c
-
-removed math.h
-
-------------------------------------------------------------------------
-r2190 | zimmerma | 2003-01-16 17:13:43 +0000 (Thu, 16 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
-
-added year 2003 in copyright line
-removed math.h
-
-------------------------------------------------------------------------
-r2189 | zimmerma | 2003-01-16 17:01:07 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-added 2003, removed math.h
-
-------------------------------------------------------------------------
-r2188 | zimmerma | 2003-01-16 16:58:56 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/memory.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tset_str.c
-
-added 2003
-
-------------------------------------------------------------------------
-r2187 | zimmerma | 2003-01-16 16:57:37 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
- M /trunk/tests/trandom.c
-
-removed math.h
-
-------------------------------------------------------------------------
-r2186 | zimmerma | 2003-01-16 16:52:51 +0000 (Thu, 16 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added year 2003
-removed math.h
-
-------------------------------------------------------------------------
-r2185 | zimmerma | 2003-01-16 16:40:46 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-patch for compiler bug on hppa2.0w-hp-hpux11.11
-
-------------------------------------------------------------------------
-r2184 | vlefevre | 2003-01-16 16:33:05 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-Macro LONGDOUBLE_ISNAN wasn't defined.
-
-------------------------------------------------------------------------
-r2183 | zimmerma | 2003-01-16 16:04:04 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-now always define Isnan
-
-------------------------------------------------------------------------
-r2182 | zimmerma | 2003-01-16 16:03:34 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-moved LONGDOUBLE_ISNAN to mpfr-test.h
-
-------------------------------------------------------------------------
-r2181 | zimmerma | 2003-01-16 16:03:04 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-removed check from isnan
-
-------------------------------------------------------------------------
-r2180 | zimmerma | 2003-01-16 16:01:55 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tests.c
- M /trunk/tests/texp.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_ld.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-replaced isnan() by Isnan()
-
-------------------------------------------------------------------------
-r2179 | vlefevre | 2003-01-16 13:58:55 +0000 (Thu, 16 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-AC_PREREQ(2.50) added (useful when both autoconf 2.13 and autoconf
-2.50 are installed, with a wrapper to select the required version).
-
-------------------------------------------------------------------------
-r2178 | vlefevre | 2003-01-16 13:30:03 +0000 (Thu, 16 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Comment in mpfr_test_init: s/preprocessor/compiler/.
-
-------------------------------------------------------------------------
-r2177 | zimmerma | 2003-01-16 13:26:53 +0000 (Thu, 16 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-fixed pb in mpfr_test_init with the compiler optimizing too much
-(this happened on Alpha with -O1 or higher)
-
-------------------------------------------------------------------------
-r2176 | vlefevre | 2003-01-15 20:43:58 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-Standard prototype only. Particular cases added.
-
-------------------------------------------------------------------------
-r2175 | zimmerma | 2003-01-15 17:29:10 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/set_str.c
-
-moved common prototype for mpn_exp in mpfr-impl.h
-
-------------------------------------------------------------------------
-r2174 | zimmerma | 2003-01-15 17:28:33 +0000 (Wed, 15 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-removed spurious ; after MPFR_ESIZE
-added prototype for mpn_exp
-
-------------------------------------------------------------------------
-r2173 | zimmerma | 2003-01-15 17:17:17 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed items done
-
-------------------------------------------------------------------------
-r2172 | zimmerma | 2003-01-15 17:14:32 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-new tests from Alain Delplanque
-
-------------------------------------------------------------------------
-r2171 | zimmerma | 2003-01-15 17:13:50 +0000 (Wed, 15 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/set_str.c
-
-new version using mpn_set_str
-[written by Alain Delplanque, edited by Paul Zimmermann]
-
-------------------------------------------------------------------------
-r2170 | vlefevre | 2003-01-15 13:05:06 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Replace $OBJEXT by o (as $OBJEXT isn't defined everywhere).
-
-------------------------------------------------------------------------
-r2169 | vlefevre | 2003-01-15 12:50:13 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-A ` must be quoted to avoid an error with Autoconf 2.13.
-
-------------------------------------------------------------------------
-r2168 | vlefevre | 2003-01-15 11:40:35 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-Use type mp_prec_t for precisions.
-
-------------------------------------------------------------------------
-r2167 | vlefevre | 2003-01-15 11:29:46 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-Source re-indented.
-
-------------------------------------------------------------------------
-r2166 | vlefevre | 2003-01-15 11:22:26 +0000 (Wed, 15 Jan 2003) | 4 lines
-Changed paths:
- M /trunk/gamma.c
-
-Several bugs fixed concerning the particular cases.
-<stdio.h> and <stdlib.h> not included by default.
-int mpfr_gamma _PROTO ... removed (was useless).
-
-------------------------------------------------------------------------
-r2165 | zimmerma | 2003-01-15 09:54:12 +0000 (Wed, 15 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/gamma.c
-
-get rid of ceil() call, that requires -lm
-
-------------------------------------------------------------------------
-r2164 | ryde | 2003-01-14 23:02:26 +0000 (Tue, 14 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/get_ld.c
-
-Force LDBL_MANT_DIG on IEEE extended, to avoid problems with
-some i386 gcc.
-
-------------------------------------------------------------------------
-r2163 | ryde | 2003-01-14 22:48:03 +0000 (Tue, 14 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-Avoid problems with bad LDBL_MAX and LDBL_MANT_DIG on some i386 gcc.
-
-------------------------------------------------------------------------
-r2162 | ryde | 2003-01-14 22:43:24 +0000 (Tue, 14 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_C_LONG_DOUBLE_FORMAT): New macro.
-(MPFR_CONFIGS): Use it.
-
-------------------------------------------------------------------------
-r2161 | vlefevre | 2003-01-11 19:32:47 +0000 (Sat, 11 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-Required casts added (and switch from uint to ulong);
-in particular, useful on Alpha.
-
-------------------------------------------------------------------------
-r2160 | ryde | 2003-01-10 21:42:53 +0000 (Fri, 10 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/get_ld.c
- M /trunk/set_ld.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
-
-# Add a copyright year.
-
-------------------------------------------------------------------------
-r2159 | ryde | 2003-01-10 21:31:31 +0000 (Fri, 10 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-Tolerate empty argv[1], which can arise from ancient bash executing
-the libtool shared library wrapper script.
-
-------------------------------------------------------------------------
-r2158 | ryde | 2003-01-10 20:59:19 +0000 (Fri, 10 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tconst_pi.c
-
-Tolerate empty argv[1], which can arise from ancient bash executing
-the libtool shared library wrapper script.
-
-------------------------------------------------------------------------
-r2157 | ryde | 2003-01-10 15:39:03 +0000 (Fri, 10 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/get_ld.c
-
-Avoid unnecessary extra power of 2 squaring, so as not to provoke an
-overflow exception when result is in range.
-
-------------------------------------------------------------------------
-r2156 | vlefevre | 2003-01-10 13:41:42 +0000 (Fri, 10 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-Extended precision detection fixed.
-
-------------------------------------------------------------------------
-r2155 | zimmerma | 2003-01-09 14:06:37 +0000 (Thu, 09 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/get_ld.c
-
-fixed possible overflow when EXP=1024
-
-------------------------------------------------------------------------
-r2154 | zimmerma | 2003-01-09 14:05:30 +0000 (Thu, 09 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-rewritten to avoid overflows
-
-------------------------------------------------------------------------
-r2153 | zimmerma | 2003-01-09 09:56:04 +0000 (Thu, 09 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added one test
-
-------------------------------------------------------------------------
-r2152 | ryde | 2003-01-08 23:14:50 +0000 (Wed, 08 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/tests/tests.c
- M /trunk/tests/tset_ld.c
-
-# Add a copyright year.
-
-------------------------------------------------------------------------
-r2151 | ryde | 2003-01-08 23:09:51 +0000 (Wed, 08 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr-test.h
-
-#Add a copyright year.
-
-------------------------------------------------------------------------
-r2150 | ryde | 2003-01-08 23:04:40 +0000 (Wed, 08 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/get_str.c
-
-(mpn_exp): Don't store -1 in a uint then return it as a long.
-Fixes systems such as alpha where sizeof(uint)!=sizeof(long).
-
-------------------------------------------------------------------------
-r2149 | ryde | 2003-01-08 22:07:59 +0000 (Wed, 08 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(AC_CHECK_HEADERS): Remove fpu_control.h, no longer required.
-
-------------------------------------------------------------------------
-r2148 | ryde | 2003-01-08 21:17:29 +0000 (Wed, 08 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Use tests_machine_prec_long_double.
-Use LDBL_MAX for largest value and to find largest power of 2.
-
-------------------------------------------------------------------------
-r2147 | ryde | 2003-01-08 21:03:01 +0000 (Wed, 08 Jan 2003) | 4 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-(__setfpucw, _FPU_EXTENDED, etc): Remove these setups.
-(tests_machine_prec_double, tests_machine_prec_long_double,
-x86_fstcw, x86_fldcw): Add prototypes.
-
-------------------------------------------------------------------------
-r2146 | ryde | 2003-01-08 21:00:32 +0000 (Wed, 08 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/tests/tests.c
-
-(tests_machine_prec_double, tests_machine_prec_long_double): New functions.
-(mpfr_test_init): Replace __setfpucw with tests_machine_prec_double.
-
-------------------------------------------------------------------------
-r2145 | ryde | 2003-01-08 20:52:04 +0000 (Wed, 08 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(MPFR_CONFIGS): Add tests/x86.asm support.
-
-------------------------------------------------------------------------
-r2144 | ryde | 2003-01-08 20:48:47 +0000 (Wed, 08 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-(X86_PATTERN): New define, supporting acinclude.m4.
-
-------------------------------------------------------------------------
-r2143 | ryde | 2003-01-08 20:43:02 +0000 (Wed, 08 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-Add x86.asm support.
-
-------------------------------------------------------------------------
-r2142 | ryde | 2003-01-08 20:35:33 +0000 (Wed, 08 Jan 2003) | 2 lines
-Changed paths:
- A /trunk/tests/x86.asm
-
-New file.
-
-------------------------------------------------------------------------
-r2141 | zimmerma | 2003-01-07 10:31:43 +0000 (Tue, 07 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-fixed pb for underflow and rounding to nearest
-
-------------------------------------------------------------------------
-r2140 | zimmerma | 2003-01-07 09:25:47 +0000 (Tue, 07 Jan 2003) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/set_ld.c
-
-added macro LONGDOUBLE_ISNAN
-use LONGDOUBLE_ISNAN in set_ld instead of cast to double and DOUBLE_ISNAN
-(did raise exception under freebsd)
-
-------------------------------------------------------------------------
-r2139 | vlefevre | 2003-01-07 01:46:51 +0000 (Tue, 07 Jan 2003) | 4 lines
-Changed paths:
- M /trunk/exp2.c
-
-Added assertions that can be resolved at compile time: the exponents
-must be representable in a long int (IMHO, this limitation should be
-avoided in a clean way).
-
-------------------------------------------------------------------------
-r2138 | ryde | 2003-01-06 21:56:38 +0000 (Mon, 06 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Remove mpfr_get_ld, done.
-
-------------------------------------------------------------------------
-r2137 | ryde | 2003-01-06 21:53:01 +0000 (Mon, 06 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Remove mpfr_set_machine_rnd_mode, done.
-
-------------------------------------------------------------------------
-r2136 | vlefevre | 2003-01-06 21:48:33 +0000 (Mon, 06 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-Bug fix: __mpfr_emax -> __gmpfr_emax.
-
-------------------------------------------------------------------------
-r2135 | ryde | 2003-01-06 21:47:37 +0000 (Mon, 06 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/set_str.c
-
-Use separate function calls to second strncasecmp and strncmp
-for consistency and to avoid gcc warnings.
-
-------------------------------------------------------------------------
-r2134 | zimmerma | 2003-01-06 19:28:25 +0000 (Mon, 06 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/tests/texp2.c
-
-fixed infinite loop for 2^integer
-
-------------------------------------------------------------------------
-r2133 | vlefevre | 2003-01-06 10:30:52 +0000 (Mon, 06 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Use digit_value_in_base for the part after the '.'.
-
-------------------------------------------------------------------------
-r2132 | vlefevre | 2003-01-06 10:11:15 +0000 (Mon, 06 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Static function digit_value_in_base is now compatible with any locale.
-
-------------------------------------------------------------------------
-r2131 | ryde | 2003-01-03 23:07:37 +0000 (Fri, 03 Jan 2003) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/tests.c
-
-(<sys/fpu.h>) [__mips]: Move from mpfr-test.h to tests/tests.c,
-and conditionalize with HAVE_SYS_FPU_H.
-
-------------------------------------------------------------------------
-r2130 | ryde | 2003-01-03 23:03:35 +0000 (Fri, 03 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(AC_CHECK_HEADERS): Add sys/fpu.h.
-
-------------------------------------------------------------------------
-r2129 | ryde | 2003-01-03 23:02:12 +0000 (Fri, 03 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-(HAVE_DENORMS) [__mips]: Remove this, let the configure test decide.
-
-------------------------------------------------------------------------
-r2128 | ryde | 2003-01-03 21:47:20 +0000 (Fri, 03 Jan 2003) | 4 lines
-Changed paths:
- M /trunk/set_str.c
-
-Use separate function calls to strncasecmp and strncmp, rather than
-?: on function pointers, since the latter demands declarations not
-present on SunOS. Both forms are optimized the same by gcc.
-
-------------------------------------------------------------------------
-r2127 | vlefevre | 2003-01-03 21:38:33 +0000 (Fri, 03 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Added some potential bugs (mpfr_exp2 is known to have such a bug).
-
-------------------------------------------------------------------------
-r2126 | ryde | 2003-01-02 23:48:32 +0000 (Thu, 02 Jan 2003) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
- M /trunk/tests/tset_str.c
-
-Add gmp-impl.h for __gmp_free_func.
-
-------------------------------------------------------------------------
-r2125 | vlefevre | 2002-12-16 00:56:03 +0000 (Mon, 16 Dec 2002) | 15 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/factorial.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/get_d.c
- M /trunk/get_str.c
- M /trunk/get_z_exp.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/next.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_exp.c
- M /trunk/set_nan.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tests.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_pow.c
-
-Suppress some #define and fix symbol names (makes code cleaner):
-perl -pi -e 's/__mpfr_flags/__gmpfr_flags/g' **/*.{c,h}
-perl -pi -e 's/__mpfr_emin/__gmpfr_emin/g' **/*.{c,h}
-perl -pi -e 's/__mpfr_emax/__gmpfr_emax/g' **/*.{c,h}
-perl -pi -e 's/__mpfr_default_fp_bit_precision/__gmpfr_default_fp_bit_precision/g' **/*.{c,h}
-perl -pi -e 's/__gmp_default_rounding_mode/__gmpfr_default_rounding_mode/g' **/*.{c,h}
-perl -pi -e 's/__mpfr_const_log2_prec/__gmpfr_const_log2_prec/g' **/*.{c,h}
-perl -pi -e 's/__mpfr_const_pi_prec/__gmpfr_const_pi_prec/g' **/*.{c,h}
-perl -pi -e 's/_mpfr_ceil_log2/__gmpfr_ceil_log2/g' **/*.{c,h}
-perl -pi -e 's/_mpfr_floor_log2/__gmpfr_floor_log2/g' **/*.{c,h}
-perl -pi -e 's/_mpfr_ceil_exp2/__gmpfr_ceil_exp2/g' **/*.{c,h}
-perl -pi -e 's/_mpfr_isqrt/__gmpfr_isqrt/g' **/*.{c,h}
-perl -pi -e 's/_mpfr_cuberoot/__gmpfr_cuberoot/g' **/*.{c,h}
-perl -pi -e 's/^#define __gmpfr_.*\n//' *.h
-
-------------------------------------------------------------------------
-r2124 | vlefevre | 2002-12-13 18:06:58 +0000 (Fri, 13 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2123 | vlefevre | 2002-12-13 18:01:04 +0000 (Fri, 13 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-IEEE 754 / IEEE P754 -> IEEE 754-1985.
-
-------------------------------------------------------------------------
-r2122 | vlefevre | 2002-12-13 11:20:28 +0000 (Fri, 13 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Correction.
-
-------------------------------------------------------------------------
-r2121 | vlefevre | 2002-12-13 11:19:25 +0000 (Fri, 13 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Added a note about the signed zero.
-
-------------------------------------------------------------------------
-r2120 | vlefevre | 2002-12-13 02:35:45 +0000 (Fri, 13 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Assertion re-added.
-
-------------------------------------------------------------------------
-r2119 | vlefevre | 2002-12-13 02:34:50 +0000 (Fri, 13 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/missing
-
-Update for new version of automake/autoconf.
-
-------------------------------------------------------------------------
-r2118 | vlefevre | 2002-12-13 02:23:23 +0000 (Fri, 13 Dec 2002) | 2 lines
-Changed paths:
- A /trunk/depcomp
-
-depcomp script added for new version of automake.
-
-------------------------------------------------------------------------
-r2117 | ryde | 2002-12-12 22:30:05 +0000 (Thu, 12 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Don't -D define PACKAGE_VERSION etc, to avoid conflict with gmp config.h.
-
-------------------------------------------------------------------------
-r2116 | zimmerma | 2002-12-12 16:41:43 +0000 (Thu, 12 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added paragraph about accuracy
-
-------------------------------------------------------------------------
-r2115 | zimmerma | 2002-12-12 15:32:52 +0000 (Thu, 12 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-rewritten unclear paragraph about precision
-
-------------------------------------------------------------------------
-r2114 | zimmerma | 2002-12-12 14:42:42 +0000 (Thu, 12 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one item
-
-------------------------------------------------------------------------
-r2113 | zimmerma | 2002-12-12 14:38:03 +0000 (Thu, 12 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-use MPN_NORMALIZE_NOT_ZERO instead of loop
-
-------------------------------------------------------------------------
-r2112 | vlefevre | 2002-12-11 14:31:28 +0000 (Wed, 11 Dec 2002) | 3 lines
-Changed paths:
- M /trunk/tests/memory.c
-
-Added #include "mpfr.h" (needed by mpfr-test.h as it uses
-mp_rnd_t in one of the prototypes).
-
-------------------------------------------------------------------------
-r2111 | vlefevre | 2002-12-10 22:23:04 +0000 (Tue, 10 Dec 2002) | 5 lines
-Changed paths:
- M /trunk/set_d.c
-
-Patch by Torbjorn Granlund <tege@swox.com>: Don't use TMP_ allocation
-mechanism for fixed size objects. Resulting streamlining. Misc
-addressing changes to work around GNUPro bugs.
-Patch by VL: Some other changes in mpfr_set_d.
-
-------------------------------------------------------------------------
-r2110 | vlefevre | 2002-12-07 12:26:11 +0000 (Sat, 07 Dec 2002) | 3 lines
-Changed paths:
- M /trunk/const_euler.c
-
-(mpfr_const_euler_S, mpfr_const_euler_R)
-Make declaration match prototype (patch by Torbjorn Granlund).
-
-------------------------------------------------------------------------
-r2109 | vlefevre | 2002-12-04 11:22:24 +0000 (Wed, 04 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/config.guess
- M /trunk/config.sub
-
-Update from ftp://ftp.gnu.org/pub/gnu/config/
-
-------------------------------------------------------------------------
-r2108 | zimmerma | 2002-12-03 13:32:21 +0000 (Tue, 03 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Use @ifnottex/@end iffnotex instead of @ifinfo/@end ifinfo
-
-------------------------------------------------------------------------
-r2107 | vlefevre | 2002-12-02 11:44:35 +0000 (Mon, 02 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/rnd_mode.c
-
-Fix rnd_mode.c (again).
-
-------------------------------------------------------------------------
-r2106 | zimmerma | 2002-12-02 09:44:41 +0000 (Mon, 02 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-put redefinitions of external symbols just before prototypes
-
-------------------------------------------------------------------------
-r2105 | zimmerma | 2002-12-02 09:23:47 +0000 (Mon, 02 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated
-
-------------------------------------------------------------------------
-r2104 | zimmerma | 2002-12-02 09:21:40 +0000 (Mon, 02 Dec 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-added new known bugs
-
-------------------------------------------------------------------------
-r2103 | ryde | 2002-11-29 23:05:47 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Add notes on mpf_t maintaining actual size for efficiency.
-
-------------------------------------------------------------------------
-r2102 | ryde | 2002-11-29 22:52:20 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Remove mpfr_set_machine_rnd_mode task.
-
-------------------------------------------------------------------------
-r2101 | ryde | 2002-11-29 22:51:58 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Tweak some math formatting for tex.
-
-------------------------------------------------------------------------
-r2100 | ryde | 2002-11-29 22:45:40 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
-
-(mpfr_set_machine_rnd_mode): Move prototype to mpfr-test.h.
-
-------------------------------------------------------------------------
-r2099 | ryde | 2002-11-29 22:42:19 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-(libfrtests_a_SOURCES): Add rnd_mode.c.
-
-------------------------------------------------------------------------
-r2098 | ryde | 2002-11-29 22:41:57 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-(libmpfr_a_SOURCES): Remove rnd_mode.c.
-
-------------------------------------------------------------------------
-r2097 | ryde | 2002-11-29 22:40:40 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- D /trunk/rnd_mode.c
-
-Remove file, moved to tests directory.
-
-------------------------------------------------------------------------
-r2096 | ryde | 2002-11-29 22:40:01 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- A /trunk/tests/rnd_mode.c
-
-New file, moved from top-level directory.
-
-------------------------------------------------------------------------
-r2095 | ryde | 2002-11-29 22:22:40 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Rounding Modes): Remove mpfr_set_machine_rnd_mode.
-
-------------------------------------------------------------------------
-r2094 | ryde | 2002-11-29 21:42:11 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/setmin.c
-
-Use GNU style code layout.
-
-------------------------------------------------------------------------
-r2093 | ryde | 2002-11-29 21:35:59 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/setmax.c
-
-Use GNU style code layout.
-
-------------------------------------------------------------------------
-r2092 | zimmerma | 2002-11-29 17:26:31 +0000 (Fri, 29 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-redefined external symbols in the __gmpfr namespace
-
-------------------------------------------------------------------------
-r2091 | zimmerma | 2002-11-25 17:04:36 +0000 (Mon, 25 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-added one fprintf in case of error
-
-------------------------------------------------------------------------
-r2090 | vlefevre | 2002-11-25 16:11:33 +0000 (Mon, 25 Nov 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/rnd_mode.c
-
-mpfr_set_machine_rnd_mode fixed to compile on some architectures
-(e.g. ARM). Now returns an int.
-
-------------------------------------------------------------------------
-r2089 | vlefevre | 2002-11-25 15:30:56 +0000 (Mon, 25 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r2088 | zimmerma | 2002-11-25 12:54:49 +0000 (Mon, 25 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-removed all tests that compare to libm
-
-------------------------------------------------------------------------
-r2087 | zimmerma | 2002-11-25 10:54:35 +0000 (Mon, 25 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-changed to distinguish mpfr failures from libm failures
-
-------------------------------------------------------------------------
-r2086 | zimmerma | 2002-11-25 10:37:43 +0000 (Mon, 25 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added 3 tests that make libm fail under HP-PA
-
-------------------------------------------------------------------------
-r2085 | vlefevre | 2002-11-23 23:47:18 +0000 (Sat, 23 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2084 | zimmerma | 2002-11-22 10:40:05 +0000 (Fri, 22 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/ui_pow.c
-
-forgot to remove debug statement
-
-------------------------------------------------------------------------
-r2083 | zimmerma | 2002-11-22 10:26:38 +0000 (Fri, 22 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/tests/tui_pow.c
- M /trunk/ui_pow.c
-
-fixed bug (infinite loop) for exact powers
-
-------------------------------------------------------------------------
-r2082 | ryde | 2002-11-21 22:28:44 +0000 (Thu, 21 Nov 2002) | 3 lines
-Changed paths:
- M /trunk/TODO
-
-More on tuned thresholds, more on config.h etc, new section on mpf/mpfr
-integration.
-
-------------------------------------------------------------------------
-r2081 | vlefevre | 2002-11-20 14:34:08 +0000 (Wed, 20 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-Code clean-up.
-
-------------------------------------------------------------------------
-r2080 | zimmerma | 2002-11-20 13:08:23 +0000 (Wed, 20 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/log.c
- M /trunk/set_ld.c
-
-fixed some problems found by insure
-
-------------------------------------------------------------------------
-r2079 | zimmerma | 2002-11-20 11:03:21 +0000 (Wed, 20 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-forgotten fclose() call
-
-------------------------------------------------------------------------
-r2078 | zimmerma | 2002-11-20 10:13:01 +0000 (Wed, 20 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-fixed array bound write
-
-------------------------------------------------------------------------
-r2077 | zimmerma | 2002-11-19 16:46:45 +0000 (Tue, 19 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed non-ansi features
-
-------------------------------------------------------------------------
-r2076 | zimmerma | 2002-11-19 16:26:22 +0000 (Tue, 19 Nov 2002) | 2 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/div_ui.c
-
-added explicit cast
-
-------------------------------------------------------------------------
-r2075 | zimmerma | 2002-10-24 12:04:59 +0000 (Thu, 24 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mpfr_cbrt
-
-------------------------------------------------------------------------
-r2074 | vlefevre | 2002-10-20 09:46:03 +0000 (Sun, 20 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update.
-
-------------------------------------------------------------------------
-r2073 | zimmerma | 2002-10-20 07:43:07 +0000 (Sun, 20 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-fixed bug with wrong sign detection
-
-------------------------------------------------------------------------
-r2072 | vlefevre | 2002-10-19 10:25:49 +0000 (Sat, 19 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-Some fixes to avoid overflows.
-
-------------------------------------------------------------------------
-r2071 | zimmerma | 2002-10-19 08:08:47 +0000 (Sat, 19 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-fixed bug for large arguments
-
-------------------------------------------------------------------------
-r2070 | zimmerma | 2002-10-19 08:08:15 +0000 (Sat, 19 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/cbrt.c
-
-improved code for rounding to nearest
-
-------------------------------------------------------------------------
-r2069 | zimmerma | 2002-10-19 08:05:45 +0000 (Sat, 19 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/asinh.c
-
-fixed bug for EXP(x) > EMAX/2
-
-------------------------------------------------------------------------
-r2068 | zimmerma | 2002-10-19 08:04:51 +0000 (Sat, 19 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-modified description of hypot and cbrt
-
-------------------------------------------------------------------------
-r2067 | vlefevre | 2002-10-18 14:57:01 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update.
-
-------------------------------------------------------------------------
-r2066 | vlefevre | 2002-10-18 14:53:53 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-Added test showing bug in sign detection.
-
-------------------------------------------------------------------------
-r2065 | vlefevre | 2002-10-18 13:45:02 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-Added newline.
-
-------------------------------------------------------------------------
-r2064 | vlefevre | 2002-10-18 12:39:07 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Bug in mpfr_hypot.
-
-------------------------------------------------------------------------
-r2063 | vlefevre | 2002-10-18 12:26:16 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-Added test that makes mpfr_hypot fail.
-
-------------------------------------------------------------------------
-r2062 | vlefevre | 2002-10-18 12:06:17 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-Precision Nt: int -> mp_prec_t.
-
-------------------------------------------------------------------------
-r2061 | vlefevre | 2002-10-18 10:21:31 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-Added some tests.
-
-------------------------------------------------------------------------
-r2060 | vlefevre | 2002-10-18 09:58:41 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tcbrt.c
-
-main () -> main (void).
-
-------------------------------------------------------------------------
-r2059 | zimmerma | 2002-10-18 07:00:18 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tcbrt.c
-
-added tcbrt.c, test file for mpfr_cbrt
-
-------------------------------------------------------------------------
-r2058 | zimmerma | 2002-10-18 06:58:51 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-fixed overflow problem
-
-------------------------------------------------------------------------
-r2057 | zimmerma | 2002-10-18 06:58:08 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/cbrt.c
-
-completely rewritten using mpz_root
-
-------------------------------------------------------------------------
-r2056 | zimmerma | 2002-10-18 06:57:14 +0000 (Fri, 18 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added cbrt
-
-------------------------------------------------------------------------
-r2055 | vlefevre | 2002-10-17 16:48:10 +0000 (Thu, 17 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-C9X -> ISO/IEC 9899:1999 (ISO C99).
-
-------------------------------------------------------------------------
-r2054 | vlefevre | 2002-10-17 16:03:57 +0000 (Thu, 17 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-Cases NaN and -0.0 taken into account.
-
-------------------------------------------------------------------------
-r2053 | zimmerma | 2002-10-17 15:37:00 +0000 (Thu, 17 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-added check for +0 and -0
-
-------------------------------------------------------------------------
-r2052 | zimmerma | 2002-10-17 15:13:09 +0000 (Thu, 17 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-added one test (2^1024)
-
-------------------------------------------------------------------------
-r2051 | zimmerma | 2002-10-17 15:11:54 +0000 (Thu, 17 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-fixed bug when overflow for double type
-
-------------------------------------------------------------------------
-r2050 | zimmerma | 2002-10-17 12:56:49 +0000 (Thu, 17 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mpfr_set_ld and mpfr_get_ld
-
-------------------------------------------------------------------------
-r2049 | vlefevre | 2002-10-16 18:37:48 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/get_ld.c
-
-Fix for -0.0.
-
-------------------------------------------------------------------------
-r2048 | zimmerma | 2002-10-16 18:21:54 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- A /trunk/log_b2.h
-
-constants for mpfr_get_str and mpfr_set_str
-
-------------------------------------------------------------------------
-r2047 | vlefevre | 2002-10-16 16:25:56 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Obsolete comment removed.
-
-------------------------------------------------------------------------
-r2046 | vlefevre | 2002-10-16 16:23:35 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-Removed log_b2.h as it doesn't seem to be necessary.
-
-------------------------------------------------------------------------
-r2045 | zimmerma | 2002-10-16 15:41:24 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpfr_get_ld
-
-------------------------------------------------------------------------
-r2044 | zimmerma | 2002-10-16 15:40:19 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_ld.c
- M /trunk/tests/tset_ld.c
-
-added mpfr_get_ld and tests for set_ld/get_ld
-
-------------------------------------------------------------------------
-r2043 | zimmerma | 2002-10-16 15:38:46 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-added cast to long double
-
-------------------------------------------------------------------------
-r2042 | vlefevre | 2002-10-16 10:08:09 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Update (tset_ld).
-
-------------------------------------------------------------------------
-r2041 | vlefevre | 2002-10-16 08:13:25 +0000 (Wed, 16 Oct 2002) | 4 lines
-Changed paths:
- M /trunk/tests/tset_ld.c
-
-Test removed as the minimal precision for a long double is something
-like 10 decimal digits. Anyway, there are implementations for which
-long double = double = IEEE double precision.
-
-------------------------------------------------------------------------
-r2040 | vlefevre | 2002-10-16 07:38:15 +0000 (Wed, 16 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/set_ld.c
-
-DBL_MANT_DIG and LDBL_MANT_DIG are normally defined by <float.h>.
-
-------------------------------------------------------------------------
-r2039 | zimmerma | 2002-10-15 14:58:26 +0000 (Tue, 15 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- A /trunk/set_ld.c
- M /trunk/tests/Makefile.am
- A /trunk/tests/tset_ld.c
-
-added mpfr_set_ld and test file
-
-------------------------------------------------------------------------
-r2038 | vlefevre | 2002-10-13 14:12:46 +0000 (Sun, 13 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Bug in mpfr_sin (and perhaps other functions): error analysis.
-
-------------------------------------------------------------------------
-r2037 | vlefevre | 2002-10-13 13:54:45 +0000 (Sun, 13 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Bug fixed (found by Dmitrii Baksheyev): atan(1) cannot be exact.
-
-------------------------------------------------------------------------
-r2036 | ryde | 2002-10-08 01:41:21 +0000 (Tue, 08 Oct 2002) | 5 lines
-Changed paths:
- M /trunk/TODO
-
-Remove mpfr_get_str using mpn_get_str (done).
-Remove no grepping for __setfpucw, done (near enough).
-New thread-safety section, add const_pi and const_log2 caching.
-New portability section, add mingw random and _mpfr_ceil_log2 IEEE-ism.
-
-------------------------------------------------------------------------
-r2035 | ryde | 2002-10-08 01:38:34 +0000 (Tue, 08 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-(AC_MY_LIBS): Show the filename in the error message.
-
-------------------------------------------------------------------------
-r2034 | zimmerma | 2002-10-04 14:32:53 +0000 (Fri, 04 Oct 2002) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-mpfr_get_default_prec was missing (thanks to F. Morain)
-
-------------------------------------------------------------------------
-r2033 | vlefevre | 2002-09-30 12:22:28 +0000 (Mon, 30 Sep 2002) | 3 lines
-Changed paths:
- M /trunk/BUGS
-
-Removed get_str.c bug, as the mpfr_get_str function has
-completely been rewritten.
-
-------------------------------------------------------------------------
-r2032 | zimmerma | 2002-09-26 08:15:34 +0000 (Thu, 26 Sep 2002) | 3 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed wrong inexact flag for a - b where a and b are of different signs
-and EXP(a) < EXP(b)
-
-------------------------------------------------------------------------
-r2031 | zimmerma | 2002-09-26 08:00:09 +0000 (Thu, 26 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added test for inexact flag (bug found by Andreas Enge)
-
-------------------------------------------------------------------------
-r2030 | ryde | 2002-09-23 22:51:26 +0000 (Mon, 23 Sep 2002) | 3 lines
-Changed paths:
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_prec.c
-
-(mpfr_init, mpfr_init2, mpfr_set_prec): Make void return, these always
-succeed.
-
-------------------------------------------------------------------------
-r2029 | zimmerma | 2002-09-23 12:25:52 +0000 (Mon, 23 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/urandomb.c
-
-fixed various tiny problems
-
-------------------------------------------------------------------------
-r2028 | zimmerma | 2002-09-23 12:19:24 +0000 (Mon, 23 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-added more tests for mpfr_urandomb, and for small precision
-
-------------------------------------------------------------------------
-r2027 | zimmerma | 2002-09-23 08:45:25 +0000 (Mon, 23 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/random2.c
- M /trunk/tests/trandom.c
-
-fixed bugs in mpfr_random2 (wrong exponent, invalid numbers)
-
-------------------------------------------------------------------------
-r2026 | zimmerma | 2002-09-23 08:42:28 +0000 (Mon, 23 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-added checks for mpfr_random2
-
-------------------------------------------------------------------------
-r2025 | zimmerma | 2002-09-23 08:20:31 +0000 (Mon, 23 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/cmp_abs.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/pow.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tsub.c
-
-cmp_abs -> cmpabs (for compatibility with mpz)
-
-------------------------------------------------------------------------
-r2024 | ryde | 2002-09-21 22:57:26 +0000 (Sat, 21 Sep 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Converting Floats): Don't refer to the internal _mp_free_func with
-mpfr_get_str.
-
-------------------------------------------------------------------------
-r2023 | ryde | 2002-09-21 22:51:58 +0000 (Sat, 21 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-(Special Functions, Internals): Make these into nodes.
-
-------------------------------------------------------------------------
-r2022 | zimmerma | 2002-09-20 16:11:47 +0000 (Fri, 20 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-now accept uppercase letters too
-
-------------------------------------------------------------------------
-r2021 | zimmerma | 2002-09-20 16:07:35 +0000 (Fri, 20 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added test for uppercase letters
-
-------------------------------------------------------------------------
-r2020 | zimmerma | 2002-09-18 15:11:33 +0000 (Wed, 18 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-now mpfr_agm returns an int (inexact flag)
-
-------------------------------------------------------------------------
-r2019 | vlefevre | 2002-09-13 10:11:33 +0000 (Fri, 13 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/prepare
-
-Some more information.
-
-------------------------------------------------------------------------
-r2018 | vlefevre | 2002-09-12 11:50:34 +0000 (Thu, 12 Sep 2002) | 3 lines
-Changed paths:
- M /trunk/configure.in
-
-On HP-UX, use the +allowunsats switch for ld, otherwise ld complains
-that some GMP symbols are unsatisfied.
-
-------------------------------------------------------------------------
-r2017 | zimmerma | 2002-09-12 09:54:44 +0000 (Thu, 12 Sep 2002) | 2 lines
-Changed paths:
- M /trunk/gamma.c
- M /trunk/tests/tgamma.c
-
-fixed bug in reflection formula for x<1
-
-------------------------------------------------------------------------
-r2016 | vlefevre | 2002-08-23 22:05:08 +0000 (Fri, 23 Aug 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/mpfr.texi
-
-MPFR now needs GMP 4.1 or higher.
-
-------------------------------------------------------------------------
-r2015 | ryde | 2002-08-22 00:56:07 +0000 (Thu, 22 Aug 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-math.h
-
-(__mpfr_nan): Clarify comments about HP C and alpha.
-
-------------------------------------------------------------------------
-r2014 | ryde | 2002-08-22 00:47:22 +0000 (Thu, 22 Aug 2002) | 4 lines
-Changed paths:
- M /trunk/mpfr-math.h
-
-(_MPFR_NAN_BYTES, _MPFR_INFP_BYTES, _MPFR_INFM_BYTES):
-Use HAVE_DOUBLE_IEEE_LITTLE_ENDIAN etc to select endianness, not a big
-block of #ifdefs.
-
-------------------------------------------------------------------------
-r2013 | vlefevre | 2002-08-12 00:35:25 +0000 (Mon, 12 Aug 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/strcasecmp.c
- A /trunk/strncasecmp.c
-
-strcasecmp.c -> strcasecmp.c & strncasecmp.c
-
-------------------------------------------------------------------------
-r2012 | ryde | 2002-08-07 01:47:30 +0000 (Wed, 07 Aug 2002) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-Use $(top_builddir) consistently with libmpfr.a, for the benefit of
-srcdir!=builddir.
-
-------------------------------------------------------------------------
-r2011 | vlefevre | 2002-08-02 23:36:46 +0000 (Fri, 02 Aug 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Don't touch user specified flags (CFLAGS). [patch by Kevin Ryde]
-
-------------------------------------------------------------------------
-r2010 | vlefevre | 2002-07-30 03:19:37 +0000 (Tue, 30 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-impl.h
- M /trunk/set_str.c
-
-Better check for strcasecmp and strncasecmp. Bug fixed.
-
-------------------------------------------------------------------------
-r2009 | vlefevre | 2002-07-28 23:48:20 +0000 (Sun, 28 Jul 2002) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- A /trunk/comparisons.c
- M /trunk/mpfr.h
-
-Functions mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p,
-mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
-
-------------------------------------------------------------------------
-r2008 | vlefevre | 2002-07-28 01:58:32 +0000 (Sun, 28 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/prepare
- M /trunk/tests/Makefile.am
-
-Use AUTOMAKE_OPTIONS = gnu [suggested by Kevin Ryde]
-
-------------------------------------------------------------------------
-r2007 | vlefevre | 2002-07-28 01:43:29 +0000 (Sun, 28 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-check target -> TESTS = $(check_PROGRAMS) [suggested by Kevin Ryde]
-
-------------------------------------------------------------------------
-r2006 | vlefevre | 2002-07-28 01:28:54 +0000 (Sun, 28 Jul 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/strcasecmp.c
-
-strcasecmp and strncasecmp -> mpfr_strcasecmp and mpfr_strncasecmp
-if they are provided by MPFR.
-
-------------------------------------------------------------------------
-r2005 | vlefevre | 2002-07-28 00:50:51 +0000 (Sun, 28 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-TMP_MARK missing (patch by Kevin Ryde).
-
-------------------------------------------------------------------------
-r2004 | vlefevre | 2002-07-26 17:53:53 +0000 (Fri, 26 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r2003 | vlefevre | 2002-07-26 17:49:03 +0000 (Fri, 26 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/README
- M /trunk/README.dev
-
-Update (mainly concerning CVS use).
-
-------------------------------------------------------------------------
-r2002 | vlefevre | 2002-07-26 15:52:58 +0000 (Fri, 26 Jul 2002) | 5 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/mpfr-impl.h
- M /trunk/next.c
- M /trunk/setmax.c
- M /trunk/setmin.c
-
-Prototype of mpfr_setmax and mpfr_setmin changed (exponent given).
-In mpfr_exp for x ~= 0, add_one_ulp and sub_one_ulp are no longer
-used (sub_one_ulp was incorrect). These cases should now be faster.
-Small fix in mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward.
-
-------------------------------------------------------------------------
-r2001 | vlefevre | 2002-07-26 15:21:45 +0000 (Fri, 26 Jul 2002) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/TODO
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/next.c
- A /trunk/setmax.c
- A /trunk/setmin.c
- M /trunk/sub_one_ulp.c
-
-New internal functions mpfr_setmin and mpfr_setmax.
-New functions mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward.
-Small fix in mpfr_sub_one_ulp.
-
-------------------------------------------------------------------------
-r2000 | zimmerma | 2002-07-26 13:24:45 +0000 (Fri, 26 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-improved the computation of g = ceil((e-1)/log_2(beta)), using two tables
-
-------------------------------------------------------------------------
-r1999 | vlefevre | 2002-07-25 15:43:49 +0000 (Thu, 25 Jul 2002) | 5 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.texi
- M /trunk/save_expo.c
- M /trunk/set_q.c
- M /trunk/sqrt_ui.c
- M /trunk/sub_ui.c
- M /trunk/ui_pow_ui.c
-
-Function mpfr_check_range now propagates the inexact ternary value.
-Function mpfr_restore_emin_emax OR's the saved flags with the current
-flags, as this is more useful in general.
-Macro MPFR_RESTORE_RET removed (no longer useful).
-
-------------------------------------------------------------------------
-r1998 | vlefevre | 2002-07-24 17:38:21 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/frac.c
-
-Change concerning an assertion, due to GMP limitation.
-
-------------------------------------------------------------------------
-r1997 | zimmerma | 2002-07-24 16:35:02 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-gnu indentation
-
-------------------------------------------------------------------------
-r1996 | zimmerma | 2002-07-24 16:32:49 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tgamma.c
-
-reduce range of tests (did take too much time)
-
-------------------------------------------------------------------------
-r1995 | zimmerma | 2002-07-24 16:31:00 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added plenty of new cases, now covers all lines of get_str.c
-
-------------------------------------------------------------------------
-r1994 | zimmerma | 2002-07-24 16:29:40 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-updated documentation of mpfr_get_str
-
-------------------------------------------------------------------------
-r1993 | zimmerma | 2002-07-24 16:28:21 +0000 (Wed, 24 Jul 2002) | 4 lines
-Changed paths:
- M /trunk/get_str.c
-
-completely new version, written by Alain Delplanque and Paul Zimmermann.
-It now directly uses mpn_get_str, with subquadratic complexity.
-About 3 times faster than previous version in most cases.
-
-------------------------------------------------------------------------
-r1992 | vlefevre | 2002-07-24 16:23:27 +0000 (Wed, 24 Jul 2002) | 3 lines
-Changed paths:
- M /trunk/frac.c
-
-Bug fixed: unsigned int variables changed to int to avoid operations
-with mixed signed/unsigned variables and unwanted casts.
-
-------------------------------------------------------------------------
-r1991 | vlefevre | 2002-07-24 16:04:16 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/frac.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- A /trunk/tests/tfrac.c
-
-Function mpfr_frac and tests added.
-
-------------------------------------------------------------------------
-r1990 | vlefevre | 2002-07-24 15:05:51 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-Bug fixed (0 was forgotten).
-
-------------------------------------------------------------------------
-r1989 | vlefevre | 2002-07-24 11:11:07 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/isinteger.c
-
-Optimization: mpfr_trunc no longer used!
-
-------------------------------------------------------------------------
-r1988 | vlefevre | 2002-07-24 10:13:00 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/isinteger.c
-
-mpfr_isinteger extended to non-fp numbers and to zero.
-
-------------------------------------------------------------------------
-r1987 | vlefevre | 2002-07-24 09:59:01 +0000 (Wed, 24 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/isnum.c
-
-Simpler test.
-
-------------------------------------------------------------------------
-r1986 | vlefevre | 2002-07-23 17:19:47 +0000 (Tue, 23 Jul 2002) | 2 lines
-Changed paths:
- A /trunk/mul.c
-
-Re-adding mul.c with fixed permissions.
-
-------------------------------------------------------------------------
-r1985 | vlefevre | 2002-07-23 17:18:56 +0000 (Tue, 23 Jul 2002) | 2 lines
-Changed paths:
- D /trunk/mul.c
-
-Temporarily removing mul.c in order to try to fix its permissions.
-
-------------------------------------------------------------------------
-r1984 | vlefevre | 2002-07-23 16:22:08 +0000 (Tue, 23 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Fixed permissions.
-
-------------------------------------------------------------------------
-r1983 | vlefevre | 2002-07-23 16:02:30 +0000 (Tue, 23 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_si.c
- M /trunk/set_ui.c
- M /trunk/tests/texceptions.c
-
-Function mpfr_check_range improved in the underflow case.
-
-------------------------------------------------------------------------
-r1982 | vlefevre | 2002-07-22 15:52:33 +0000 (Mon, 22 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r1981 | zimmerma | 2002-07-22 15:22:13 +0000 (Mon, 22 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/dump.c
-
-now dump in base 2
-
-------------------------------------------------------------------------
-r1980 | zimmerma | 2002-07-22 15:11:50 +0000 (Mon, 22 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-forgot one free() call
-
-------------------------------------------------------------------------
-r1979 | vlefevre | 2002-07-22 13:57:15 +0000 (Mon, 22 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-mpfr_pow bug removed.
-
-------------------------------------------------------------------------
-r1978 | vlefevre | 2002-07-22 13:54:55 +0000 (Mon, 22 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Reindentation.
-
-------------------------------------------------------------------------
-r1977 | vlefevre | 2002-07-22 13:51:20 +0000 (Mon, 22 Jul 2002) | 3 lines
-Changed paths:
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-pow.c: bug fixed (in the call to mpfr_can_round).
-tpow.c: mpfr_clear added.
-
-------------------------------------------------------------------------
-r1976 | vlefevre | 2002-07-22 13:26:54 +0000 (Mon, 22 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Modified the two tests to make the bug appear.
-
-------------------------------------------------------------------------
-r1975 | zimmerma | 2002-07-22 09:37:31 +0000 (Mon, 22 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added two tests
-
-------------------------------------------------------------------------
-r1974 | vlefevre | 2002-07-19 15:31:23 +0000 (Fri, 19 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Updated note concerning rcs2log.
-
-------------------------------------------------------------------------
-r1973 | vlefevre | 2002-07-19 11:31:30 +0000 (Fri, 19 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Line mpfr_get_exp / mpfr_set_exp removed.
-
-------------------------------------------------------------------------
-r1972 | zimmerma | 2002-07-16 15:33:31 +0000 (Tue, 16 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added function check_large
-
-------------------------------------------------------------------------
-r1971 | vlefevre | 2002-07-15 13:16:15 +0000 (Mon, 15 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/config.guess
- M /trunk/config.sub
-
-Update from ftp://ftp.gnu.org/pub/gnu/config/
-
-------------------------------------------------------------------------
-r1970 | vlefevre | 2002-07-14 23:44:41 +0000 (Sun, 14 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-math.h
-
-Add __sparc__ (patch by Nix <nix@esperi.demon.co.uk>).
-
-------------------------------------------------------------------------
-r1969 | vlefevre | 2002-07-14 23:39:13 +0000 (Sun, 14 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Note about randomized tests.
-
-------------------------------------------------------------------------
-r1968 | vlefevre | 2002-07-04 15:09:17 +0000 (Thu, 04 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Bug concerning the rounding of pow().
-
-------------------------------------------------------------------------
-r1967 | vlefevre | 2002-07-04 14:26:00 +0000 (Thu, 04 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-mpfr_pow() didn't work when the exponent was a negative integer.
-
-------------------------------------------------------------------------
-r1966 | vlefevre | 2002-07-04 14:25:40 +0000 (Thu, 04 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/get_z_exp.c
-
-mpfr_get_z_exp() didn't work when the MPFR number was negative.
-
-------------------------------------------------------------------------
-r1965 | vlefevre | 2002-07-04 11:59:27 +0000 (Thu, 04 Jul 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_exp.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- A /trunk/set_exp.c
-
-New functions mpfr_get_exp and mpfr_set_exp.
-
-------------------------------------------------------------------------
-r1964 | zimmerma | 2002-06-27 14:07:06 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed duplicated entry (thread-safe)
-
-------------------------------------------------------------------------
-r1963 | zimmerma | 2002-06-27 13:57:23 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new items
-
-------------------------------------------------------------------------
-r1962 | zimmerma | 2002-06-27 12:55:03 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added special cases
-
-------------------------------------------------------------------------
-r1961 | zimmerma | 2002-06-27 12:50:36 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added one reference (nocite)
-
-------------------------------------------------------------------------
-r1960 | zimmerma | 2002-06-27 12:50:15 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
-
-added one reference
-
-------------------------------------------------------------------------
-r1959 | zimmerma | 2002-06-27 12:49:01 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/inp_str.c
-
-fixed bug in return value
-
-------------------------------------------------------------------------
-r1958 | zimmerma | 2002-06-27 12:30:03 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-new additions
-
-------------------------------------------------------------------------
-r1957 | zimmerma | 2002-06-27 09:31:01 +0000 (Thu, 27 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added pointer to mpfr_inp_str in mpfr_set_str
-
-------------------------------------------------------------------------
-r1956 | vlefevre | 2002-06-26 23:55:24 +0000 (Wed, 26 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r1955 | vlefevre | 2002-06-26 23:51:49 +0000 (Wed, 26 Jun 2002) | 3 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/div.c
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/print_raw.c
- M /trunk/rint.c
- M /trunk/round_prec.c
- M /trunk/set.c
- M /trunk/set_si.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/sub1.c
-
-MP_LIMB_T_HIGHBIT -> MPFR_LIMB_HIGHBIT.
-MPFR is now compatible with GMP 4.1.
-
-------------------------------------------------------------------------
-r1954 | vlefevre | 2002-06-15 10:50:23 +0000 (Sat, 15 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Added: make MPFR thread-safe.
-
-------------------------------------------------------------------------
-r1953 | zimmerma | 2002-06-14 13:14:34 +0000 (Fri, 14 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/set_q.c
-
-fixed bug found by Gerardo Ballabio
-
-------------------------------------------------------------------------
-r1952 | zimmerma | 2002-06-14 13:14:08 +0000 (Fri, 14 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_q.c
-
-added one test (bug in mpfr-2.0.1 found by Gerardo Ballabio)
-
-------------------------------------------------------------------------
-r1951 | zimmerma | 2002-06-13 12:44:16 +0000 (Thu, 13 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added mpfr_modf
-
-------------------------------------------------------------------------
-r1950 | vlefevre | 2002-06-12 22:30:26 +0000 (Wed, 12 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Added modf (to implement).
-
-------------------------------------------------------------------------
-r1949 | vlefevre | 2002-06-08 22:58:28 +0000 (Sat, 08 Jun 2002) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tmul.c
-
-check: Apply a hack to the parameter order to make sparc gcc 2.95.2
-happy (patch by Kevin Ryde) + static added.
-
-------------------------------------------------------------------------
-r1948 | vlefevre | 2002-06-08 22:45:57 +0000 (Sat, 08 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Patch by Kevin Ryde.
-
-------------------------------------------------------------------------
-r1947 | vlefevre | 2002-06-08 02:45:27 +0000 (Sat, 08 Jun 2002) | 3 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
-
-Suppress tests if sqrt is not affected by mpfr_set_machine_rnd_mode
-(patch by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1946 | vlefevre | 2002-06-08 02:25:49 +0000 (Sat, 08 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r1945 | vlefevre | 2002-06-08 02:20:00 +0000 (Sat, 08 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/README
-
-fdl.texi added.
-
-------------------------------------------------------------------------
-r1944 | vlefevre | 2002-06-08 02:16:07 +0000 (Sat, 08 Jun 2002) | 9 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/README.dev
- A /trunk/fdl.texi
- M /trunk/mpfr.texi
- M /trunk/texinfo.tex
-
-Patch by Kevin Ryde (and Vincent Lefevre).
-mpfr.texi: Change license to FDL, use @copying per texinfo 4.2.
-Use @dircategory, @direntry, @documentdescription.
-Move @contents to start of file.
-(VERSION, UPDATED): New variables.
-(m, GMPtimes, times): New macros.
-(Float Arithmetic): Fix html output. Reported by Richard Dawe.
-(GNU Free Documentation License): New appendix.
-
-------------------------------------------------------------------------
-r1943 | vlefevre | 2002-06-06 11:08:47 +0000 (Thu, 06 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-Use gmp-impl.h to get MPFR_HAVE_FESETROUND (reported by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1942 | zimmerma | 2002-06-05 15:27:23 +0000 (Wed, 05 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-patch for mpfr.texi
-
-------------------------------------------------------------------------
-r1941 | zimmerma | 2002-06-05 15:24:46 +0000 (Wed, 05 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-patch from Richard Dawe <richdawe@bigfoot.com> to generate HTML
-
-------------------------------------------------------------------------
-r1940 | zimmerma | 2002-06-05 15:05:21 +0000 (Wed, 05 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/gamma.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.am
- M /trunk/tests/tgamma.c
-
-added mpfr_gamma in libmpfr
-
-------------------------------------------------------------------------
-r1939 | vlefevre | 2002-06-05 01:01:42 +0000 (Wed, 05 Jun 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-test.h
- M /trunk/tests/tests.c
-
-Check for isnan.
-
-------------------------------------------------------------------------
-r1938 | vlefevre | 2002-05-29 13:08:04 +0000 (Wed, 29 May 2002) | 2 lines
-Changed paths:
- M /trunk/rint.c
-
-Bug fixed (possible integer overflow).
-
-------------------------------------------------------------------------
-r1937 | vlefevre | 2002-05-29 12:48:06 +0000 (Wed, 29 May 2002) | 2 lines
-Changed paths:
- M /trunk/add_one_ulp.c
- M /trunk/sub_one_ulp.c
-
-Bug fixed (possible integer overflow).
-
-------------------------------------------------------------------------
-r1936 | vlefevre | 2002-05-29 12:41:19 +0000 (Wed, 29 May 2002) | 2 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/sub1.c
-
-Bug fixed (possible integer overflow).
-
-------------------------------------------------------------------------
-r1935 | vlefevre | 2002-05-29 12:21:32 +0000 (Wed, 29 May 2002) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
-
-Note added for mpfr_check_range. Bug fixed.
-
-------------------------------------------------------------------------
-r1934 | vlefevre | 2002-05-29 11:37:31 +0000 (Wed, 29 May 2002) | 3 lines
-Changed paths:
- M /trunk/urandomb.c
-
-Sign wasn't set (reported by Dmitrii Baksheyev).
-Types fixed and code clean-up.
-
-------------------------------------------------------------------------
-r1933 | vlefevre | 2002-05-29 10:56:51 +0000 (Wed, 29 May 2002) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Types fixed and code clean-up.
-
-------------------------------------------------------------------------
-r1932 | vlefevre | 2002-05-27 13:48:56 +0000 (Mon, 27 May 2002) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/tests/Makefile.am
- A /trunk/tests/memory.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- A /trunk/tests/tests.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
-
-Patch by Kevin Ryde for memory leak checking + misc declaration fixes.
-Code moved from mpfr-test.h to tests.c.
-
-------------------------------------------------------------------------
-r1931 | vlefevre | 2002-05-14 23:14:53 +0000 (Tue, 14 May 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Ternary flag for mpfr_agm.
-
-------------------------------------------------------------------------
-r1930 | vlefevre | 2002-05-14 23:03:08 +0000 (Tue, 14 May 2002) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/add.c
- M /trunk/asin.c
- M /trunk/atan.c
- M /trunk/cmp2.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/div.c
- M /trunk/exceptions.c
- M /trunk/gamma.c
- M /trunk/generic.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/isinteger.c
- M /trunk/mpfi.h
- M /trunk/out_str.c
- M /trunk/set_si.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/sub.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tset.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tzeta.c
- M /trunk/ui_div.c
- M /trunk/zeta.c
-
-Copyright line updated.
-
-------------------------------------------------------------------------
-r1929 | zimmerma | 2002-05-14 14:47:35 +0000 (Tue, 14 May 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-ternary flag for mpfr_agm?
-
-------------------------------------------------------------------------
-r1928 | zimmerma | 2002-05-14 14:37:20 +0000 (Tue, 14 May 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-update wrt mpfr_set_machine_rnd_mode
-
-------------------------------------------------------------------------
-r1927 | zimmerma | 2002-05-14 09:44:27 +0000 (Tue, 14 May 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mathematical description of arithmetico-geometric mean
-
-------------------------------------------------------------------------
-r1926 | vlefevre | 2002-05-08 00:13:28 +0000 (Wed, 08 May 2002) | 4 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/acinclude.m4
-
-The problem on a G4 PowerPC was a bug in gcc; this is now tested
-in configure (float-conversion bug) and -ffloat-store is used if
-need be.
-
-------------------------------------------------------------------------
-r1925 | vlefevre | 2002-05-06 08:37:34 +0000 (Mon, 06 May 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Problem on the G4 PowerPC.
-
-------------------------------------------------------------------------
-r1924 | zimmerma | 2002-04-30 18:49:21 +0000 (Tue, 30 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/pow.c
- M /trunk/tests/tpow.c
-
-fixed problem (infinite loop) in mpfr_pow for exact powers
-
-------------------------------------------------------------------------
-r1923 | zimmerma | 2002-04-30 09:54:12 +0000 (Tue, 30 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed errors found by Sylvain Pion
-
-------------------------------------------------------------------------
-r1922 | vlefevre | 2002-04-27 23:13:33 +0000 (Sat, 27 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-not relevant -> undefined.
-
-------------------------------------------------------------------------
-r1921 | vlefevre | 2002-04-27 23:07:29 +0000 (Sat, 27 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Some changes concerning the internals and zeros
-(including remarks by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1920 | vlefevre | 2002-04-25 15:40:13 +0000 (Thu, 25 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/mpfr-math.h
-
-Check if HUGE_VAL is supported.
-
-------------------------------------------------------------------------
-r1919 | vlefevre | 2002-04-25 14:03:17 +0000 (Thu, 25 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Changes in mpfr_set_str.
-
-------------------------------------------------------------------------
-r1918 | zimmerma | 2002-04-25 13:45:07 +0000 (Thu, 25 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-update
-
-------------------------------------------------------------------------
-r1917 | zimmerma | 2002-04-25 09:04:20 +0000 (Thu, 25 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/set_str.c
-
-mpfr_set_str doesn't require any more a final '\0'
- and return the number of characters read
-
-------------------------------------------------------------------------
-r1916 | zimmerma | 2002-04-25 09:02:31 +0000 (Thu, 25 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-modified tests for special values
-
-------------------------------------------------------------------------
-r1915 | vlefevre | 2002-04-24 10:25:02 +0000 (Wed, 24 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/cmp_abs.c
-
-Description updated.
-
-------------------------------------------------------------------------
-r1914 | vlefevre | 2002-04-24 10:23:42 +0000 (Wed, 24 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-mpfr_cmp_abs no longer an internal function and described in mpfr.texi.
-In mpfr.texi, a @var{} was forgotten.
-
-------------------------------------------------------------------------
-r1913 | vlefevre | 2002-04-24 10:21:15 +0000 (Wed, 24 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/cmp_abs.c
-
-mpfr_cmp_abs can now be called on zero numbers.
-
-------------------------------------------------------------------------
-r1912 | vlefevre | 2002-04-24 00:21:46 +0000 (Wed, 24 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-math.h
-
-Structures are used to get correct alignment.
-
-------------------------------------------------------------------------
-r1911 | vlefevre | 2002-04-23 23:32:28 +0000 (Tue, 23 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-math.h
-
-_MPFR_INF*_BYTES fix. On alpha, use a "double" for the bytes,
-to avoid a mis-conversion on alpha gcc 3.0.2. (Kevin Ryde)
-
-------------------------------------------------------------------------
-r1910 | vlefevre | 2002-04-23 20:00:42 +0000 (Tue, 23 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/mul.c
- M /trunk/mul_2si.c
- A /trunk/powerof2.c
- M /trunk/set_z.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
-
-Underflow semantics changed (not tested).
-
-------------------------------------------------------------------------
-r1909 | vlefevre | 2002-04-23 09:35:26 +0000 (Tue, 23 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Code simplified due to change in the maximum exponent range.
-
-------------------------------------------------------------------------
-r1908 | zimmerma | 2002-04-23 09:08:33 +0000 (Tue, 23 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-modifs from Andreas
-
-------------------------------------------------------------------------
-r1907 | vlefevre | 2002-04-22 22:23:26 +0000 (Mon, 22 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-math.h
-
-Union -> array + cast because of the HP compiler.
-
-------------------------------------------------------------------------
-r1906 | vlefevre | 2002-04-20 13:17:37 +0000 (Sat, 20 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/get_d.c
-
-Avoid constant floating expression, as this doesn't give the correct
-result with gcc on some Alpha machines. (patch by Paul Zimmermann)
-
-------------------------------------------------------------------------
-r1905 | vlefevre | 2002-04-19 23:19:31 +0000 (Fri, 19 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-RAND_MAX defined if not already defined (as it should be).
-
-------------------------------------------------------------------------
-r1904 | vlefevre | 2002-04-19 23:10:09 +0000 (Fri, 19 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-Include config.h, for the benefit of test programs not using
-gmp-impl.h (Kevin Ryde).
-
-------------------------------------------------------------------------
-r1903 | zimmerma | 2002-04-19 18:16:53 +0000 (Fri, 19 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-added tests in mpfr_test_init for denorms and extended precision
-
-------------------------------------------------------------------------
-r1902 | zimmerma | 2002-04-19 17:22:46 +0000 (Fri, 19 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-mpfr_init and mpfr_init2 now return an int
-
-------------------------------------------------------------------------
-r1901 | vlefevre | 2002-04-19 16:37:15 +0000 (Fri, 19 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/set_q.c
-
-Exponent range saved/restored. Returns NaN when the numerator
-or the denominator is too large for MPFR.
-
-------------------------------------------------------------------------
-r1900 | vlefevre | 2002-04-19 12:26:06 +0000 (Fri, 19 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/div_ui.c
- M /trunk/mul_ui.c
- M /trunk/set_si.c
- M /trunk/set_ui.c
- M /trunk/sqrt_ui.c
- M /trunk/sub_ui.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
-
-Added some assertions (any unsigned long must be representable
-in a mp_limb_t).
-
-------------------------------------------------------------------------
-r1899 | vlefevre | 2002-04-19 12:01:16 +0000 (Fri, 19 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/cmp_si.c
- M /trunk/mpfr-impl.h
- M /trunk/set_si.c
-
-SAFE_ABS changed so that it can be used for any unsigned type.
-
-------------------------------------------------------------------------
-r1898 | vlefevre | 2002-04-18 15:36:36 +0000 (Thu, 18 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/set_z.c
-
-Added code to prevent possible integer overflow when the input number
-is very large.
-
-------------------------------------------------------------------------
-r1897 | vlefevre | 2002-04-18 15:22:56 +0000 (Thu, 18 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-New values for exponent range.
-
-------------------------------------------------------------------------
-r1896 | zimmerma | 2002-04-18 14:28:31 +0000 (Thu, 18 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-call get_d with rounding mode in check2, to avoid problems near +Inf
-
-------------------------------------------------------------------------
-r1895 | zimmerma | 2002-04-18 12:10:49 +0000 (Thu, 18 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-2147483647 -> INT_MAX
-
-------------------------------------------------------------------------
-r1894 | zimmerma | 2002-04-18 09:47:02 +0000 (Thu, 18 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/tests/tadd.c
-
-improved ulp() to deal with infinities
-and fixed tadd/check2 to deal with infinities
-
-------------------------------------------------------------------------
-r1893 | zimmerma | 2002-04-17 12:04:21 +0000 (Wed, 17 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-improved documentation of mpfr_set_precset_prec.
-
-------------------------------------------------------------------------
-r1892 | zimmerma | 2002-04-16 16:31:42 +0000 (Tue, 16 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed documentation of cosh/sinh/tanh
-
-------------------------------------------------------------------------
-r1891 | vlefevre | 2002-04-16 13:26:15 +0000 (Tue, 16 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/cmp_si.c
- M /trunk/cmp_ui.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp rewritten.
-Prototype changed.
-
-------------------------------------------------------------------------
-r1890 | vlefevre | 2002-04-16 00:56:54 +0000 (Tue, 16 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Use AC_CANONICAL_HOST and $host instead of $OS_TYPE and $MACHTYPE
-(patch suggested by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1889 | vlefevre | 2002-04-16 00:51:21 +0000 (Tue, 16 Apr 2002) | 2 lines
-Changed paths:
- A /trunk/config.guess
- A /trunk/config.sub
-
-Added files from ftp.gnu.org for automake and AC_CANONICAL_HOST.
-
-------------------------------------------------------------------------
-r1888 | zimmerma | 2002-04-15 17:45:46 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_sub.c
-
-replaced 2.2e-307 by DBL_MIN
-
-------------------------------------------------------------------------
-r1887 | vlefevre | 2002-04-15 16:23:49 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/README
-
-Typo: Gnu -> GNU.
-
-------------------------------------------------------------------------
-r1886 | vlefevre | 2002-04-15 15:43:26 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/VERSION
- M /trunk/mpfr.texi
-
-Update for future 2.0.2.
-
-------------------------------------------------------------------------
-r1884 | vlefevre | 2002-04-15 15:33:49 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for mpfr 2.0.1.
-
-------------------------------------------------------------------------
-r1883 | vlefevre | 2002-04-15 15:32:21 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/VERSION
- M /trunk/mpfr.texi
-
-Back to version 2.0.1, updated documentation.
-
-------------------------------------------------------------------------
-r1882 | vlefevre | 2002-04-15 14:48:58 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/README.dev
- M /trunk/VERSION
-
-Post-release commit.
-
-------------------------------------------------------------------------
-r1881 | vlefevre | 2002-04-15 14:38:45 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for mpfr 2.0.1.
-
-------------------------------------------------------------------------
-r1880 | vlefevre | 2002-04-15 14:16:20 +0000 (Mon, 15 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/cmp_ui.c
-
-mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp can no longer be called with a NaN.
-Misc bugs fixed.
-
-------------------------------------------------------------------------
-r1879 | zimmerma | 2002-04-15 14:08:47 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-added main changes in version 2.0.1
-
-------------------------------------------------------------------------
-r1878 | vlefevre | 2002-04-15 13:47:24 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/README
-
-Update for "make dist".
-
-------------------------------------------------------------------------
-r1877 | vlefevre | 2002-04-15 13:26:56 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/COPYING
- A /trunk/COPYING.LIB
- M /trunk/README
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_ui.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fma.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_str.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inp_str.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/minmax.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfi.c
- M /trunk/mpfi.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-math.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/rnd_mode.c
- M /trunk/round_prec.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-COPYING -> COPYING.LIB and GPL re-added.
-
-------------------------------------------------------------------------
-r1876 | vlefevre | 2002-04-15 12:34:08 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update.
-
-------------------------------------------------------------------------
-r1875 | vlefevre | 2002-04-15 12:13:27 +0000 (Mon, 15 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Removed switches -g -O2 as already done by configure.
-
-------------------------------------------------------------------------
-r1874 | vlefevre | 2002-04-14 22:55:55 +0000 (Sun, 14 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Update.
-
-------------------------------------------------------------------------
-r1873 | vlefevre | 2002-04-14 15:53:55 +0000 (Sun, 14 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Removed useless @iftex...
-
-------------------------------------------------------------------------
-r1872 | vlefevre | 2002-04-14 11:14:31 +0000 (Sun, 14 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Update.
-
-------------------------------------------------------------------------
-r1871 | vlefevre | 2002-04-14 10:24:27 +0000 (Sun, 14 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/set_q.c
-
-When q = 0, +0 is returned.
-
-------------------------------------------------------------------------
-r1870 | vlefevre | 2002-04-13 18:32:56 +0000 (Sat, 13 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1869 | vlefevre | 2002-04-13 18:27:39 +0000 (Sat, 13 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/acinclude.m4
- M /trunk/set_str.c
- A /trunk/strcasecmp.c
- M /trunk/tests/tset_str.c
-
-Support for NaN and Inf (case insensitive) in mpfr_set_str. Tests.
-
-------------------------------------------------------------------------
-r1868 | vlefevre | 2002-04-13 01:40:03 +0000 (Sat, 13 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1867 | vlefevre | 2002-04-13 01:22:51 +0000 (Sat, 13 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1866 | vlefevre | 2002-04-13 01:18:54 +0000 (Sat, 13 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Misc changes. Use of AC_CACHE_CHECK.
-
-------------------------------------------------------------------------
-r1865 | vlefevre | 2002-04-12 16:11:14 +0000 (Fri, 12 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/mpfr-impl.h
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/texp.c
-
-Code clean-up.
-
-------------------------------------------------------------------------
-r1864 | vlefevre | 2002-04-12 14:51:26 +0000 (Fri, 12 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1863 | vlefevre | 2002-04-12 14:29:58 +0000 (Fri, 12 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-New tests.
-
-------------------------------------------------------------------------
-r1862 | vlefevre | 2002-04-12 14:29:49 +0000 (Fri, 12 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/get_d.c
-
-mpfr_get_d* fixed.
-
-------------------------------------------------------------------------
-r1861 | vlefevre | 2002-04-12 10:25:34 +0000 (Fri, 12 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/const_log2.c
-
-Types fixed in const_log2.c (this fixes the tconst_log2 crash).
-
-------------------------------------------------------------------------
-r1860 | vlefevre | 2002-04-12 09:58:11 +0000 (Fri, 12 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Added a note about the native SunOS 4 C compiler.
-
-------------------------------------------------------------------------
-r1859 | vlefevre | 2002-04-11 22:37:48 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tconst_log2.c
-
-Type fixed.
-
-------------------------------------------------------------------------
-r1858 | vlefevre | 2002-04-11 16:42:20 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/set_d.c
-
-mpfr_set_d bug fixed, but other bugs still remain...
-
-------------------------------------------------------------------------
-r1857 | vlefevre | 2002-04-11 16:21:50 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/print_rnd_mode.c
-
-NULL was undeclared on some architectures (reported by Torbjorn Granlund).
-
-------------------------------------------------------------------------
-r1856 | vlefevre | 2002-04-11 13:00:43 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/get_d.c
- M /trunk/mpfr-math.h
-
-#include ordering changed for Windows + Cygwin 32.
-
-------------------------------------------------------------------------
-r1855 | vlefevre | 2002-04-11 12:41:54 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-LDFLAGS changed on HP-UX.
-
-------------------------------------------------------------------------
-r1854 | vlefevre | 2002-04-11 03:35:40 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1853 | vlefevre | 2002-04-11 03:29:44 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-Subnormal test in different rounding modes + fix.
-
-------------------------------------------------------------------------
-r1852 | vlefevre | 2002-04-11 02:49:49 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/configure.in
-
-Function MPFR_CONFIGS.
-
-------------------------------------------------------------------------
-r1851 | vlefevre | 2002-04-11 01:54:09 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-Tests added.
-
-------------------------------------------------------------------------
-r1850 | vlefevre | 2002-04-11 01:53:57 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/get_d.c
-
-get_d.c partly rewritten (Paul Zimmermann).
-
-------------------------------------------------------------------------
-r1849 | vlefevre | 2002-04-11 01:36:49 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/set_q.c
-
-#include ordering fixed.
-
-------------------------------------------------------------------------
-r1848 | vlefevre | 2002-04-11 01:24:20 +0000 (Thu, 11 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Check for gcc float-conversion bug.
-
-------------------------------------------------------------------------
-r1847 | vlefevre | 2002-04-10 23:21:41 +0000 (Wed, 10 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/round_prec.c
-
-Added comment for mpfr_round_raw_generic (about using 1-bit precision).
-
-------------------------------------------------------------------------
-r1846 | vlefevre | 2002-04-10 14:05:52 +0000 (Wed, 10 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update (thanks to Nathalie Revol).
-
-------------------------------------------------------------------------
-r1845 | vlefevre | 2002-04-10 12:20:13 +0000 (Wed, 10 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1844 | vlefevre | 2002-04-10 12:13:25 +0000 (Wed, 10 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/rnd_mode.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-HAVE_FESETROUND renamed to MPFR_HAVE_FESETROUND to avoid possible
-name conflict.
-
-------------------------------------------------------------------------
-r1843 | vlefevre | 2002-04-10 00:12:01 +0000 (Wed, 10 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- D /trunk/srandom.h
-
-Added missing headers in libmpfr_a_SOURCES.
-
-------------------------------------------------------------------------
-r1842 | vlefevre | 2002-04-09 23:53:57 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1841 | vlefevre | 2002-04-09 23:48:30 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Possible tconst_log2 crash under Solaris.
-
-------------------------------------------------------------------------
-r1840 | vlefevre | 2002-04-09 23:30:08 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Under OSF, use option -ffloat-store only when the compiler is gcc.
-
-------------------------------------------------------------------------
-r1839 | vlefevre | 2002-04-09 23:11:46 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-include_HEADERS should contain only mpfr.h and mpf2mpfr.h.
-
-------------------------------------------------------------------------
-r1838 | vlefevre | 2002-04-09 13:47:16 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Added code to support fesetround under Solaris.
-
-------------------------------------------------------------------------
-r1837 | vlefevre | 2002-04-09 12:49:54 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-"In case of problem" update.
-
-------------------------------------------------------------------------
-r1836 | vlefevre | 2002-04-09 12:40:11 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Old URL removed.
-
-------------------------------------------------------------------------
-r1835 | vlefevre | 2002-04-09 11:33:14 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Renaming: DIR -> GMPINSTALL, GMPDIR -> GMPBUILD. Bug on IRIX updated.
-
-------------------------------------------------------------------------
-r1834 | vlefevre | 2002-04-09 11:04:42 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Removed note about stack-alloc.h.
-
-------------------------------------------------------------------------
-r1833 | vlefevre | 2002-04-09 10:50:01 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/rnd_mode.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-Check for fenv.h -> check for fesetround.
-
-------------------------------------------------------------------------
-r1832 | vlefevre | 2002-04-09 00:12:01 +0000 (Tue, 09 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/README.dev
-
-Added note concerning patch submission.
-
-------------------------------------------------------------------------
-r1831 | vlefevre | 2002-04-08 21:23:50 +0000 (Mon, 08 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Note about overflows. Functions mpfr_{div,mul}_{si,ui} described.
-
-------------------------------------------------------------------------
-r1830 | vlefevre | 2002-04-07 23:22:34 +0000 (Sun, 07 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next (and last?) pre-release.
-
-------------------------------------------------------------------------
-r1829 | vlefevre | 2002-04-07 23:11:04 +0000 (Sun, 07 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Stricter test for HAVE_INFS.
-
-------------------------------------------------------------------------
-r1828 | vlefevre | 2002-04-07 20:20:15 +0000 (Sun, 07 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update.
-
-------------------------------------------------------------------------
-r1827 | vlefevre | 2002-04-07 20:10:31 +0000 (Sun, 07 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Added note about IRIX.
-
-------------------------------------------------------------------------
-r1826 | vlefevre | 2002-04-07 01:01:01 +0000 (Sun, 07 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1825 | vlefevre | 2002-04-07 00:38:47 +0000 (Sun, 07 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/exp.c
- M /trunk/exp_2.c
- M /trunk/get_d.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-mpfr_get_d -> mpfr_get_d1 and mpfr_get_d2 -> mpfr_get_d.
-
-------------------------------------------------------------------------
-r1824 | vlefevre | 2002-04-06 01:01:29 +0000 (Sat, 06 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1823 | vlefevre | 2002-04-06 00:54:50 +0000 (Sat, 06 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-Update.
-
-------------------------------------------------------------------------
-r1822 | vlefevre | 2002-04-05 23:56:33 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-New file from Paul.
-
-------------------------------------------------------------------------
-r1821 | vlefevre | 2002-04-05 12:31:59 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-COPYING.LIB removed.
-
-------------------------------------------------------------------------
-r1820 | vlefevre | 2002-04-05 12:29:11 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/COPYING
- D /trunk/COPYING.LIB
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/cbrt.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_ui.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fma.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/generic.c
- M /trunk/get_d.c
- M /trunk/get_str.c
- M /trunk/get_z_exp.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inp_str.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/minmax.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfi.c
- M /trunk/mpfi.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-math.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/rnd_mode.c
- M /trunk/round_prec.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_f.c
- M /trunk/set_inf.c
- M /trunk/set_nan.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sin_cos.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/srandom.h
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/uceil_exp2.c
- M /trunk/uceil_log2.c
- M /trunk/ufloor_log2.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-COPYING.LIB -> COPYING.
-
-------------------------------------------------------------------------
-r1819 | vlefevre | 2002-04-05 12:14:11 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/README
- A /trunk/README.dev
-
-README.dev added.
-
-------------------------------------------------------------------------
-r1818 | zimmerma | 2002-04-05 12:08:31 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-put back label removed by error
-
-------------------------------------------------------------------------
-r1817 | zimmerma | 2002-04-05 12:05:35 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-removed _FPU_RC_NEAREST ... for x86 (not used any more, now use fenv.h)
-
-------------------------------------------------------------------------
-r1816 | zimmerma | 2002-04-05 12:04:40 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/sqrt.c
-
-removed nested TMP_MARK's (problems when configuring gmp with --disable-alloca)
-
-------------------------------------------------------------------------
-r1815 | zimmerma | 2002-04-05 11:47:25 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-fixed pb with two markers (with --disable-alloca)
-
-------------------------------------------------------------------------
-r1814 | vlefevre | 2002-04-05 11:40:58 +0000 (Fri, 05 Apr 2002) | 2 lines
-Changed paths:
- D /trunk/shortmul.c
-
-Removed (not used).
-
-------------------------------------------------------------------------
-r1813 | zimmerma | 2002-04-05 07:21:21 +0000 (Fri, 05 Apr 2002) | 3 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mpfr-test.h
- M /trunk/rnd_mode.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-use AC_CHECK_HEADERS to check for fenv.h
-and AC_CHECK_FUNCS to check for lrand48
-
-------------------------------------------------------------------------
-r1812 | vlefevre | 2002-04-04 23:44:27 +0000 (Thu, 04 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/README
-
-Added "VERSION" and "prepare" descriptions.
-
-------------------------------------------------------------------------
-r1811 | zimmerma | 2002-04-04 14:20:19 +0000 (Thu, 04 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed bugs found by Nathalie
-
-------------------------------------------------------------------------
-r1810 | vlefevre | 2002-04-04 13:50:20 +0000 (Thu, 04 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1809 | vlefevre | 2002-04-04 13:46:23 +0000 (Thu, 04 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Removed check for extended precision, as no longer used.
-
-------------------------------------------------------------------------
-r1808 | zimmerma | 2002-04-04 11:46:32 +0000 (Thu, 04 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-added check for denormalized numbers
-
-------------------------------------------------------------------------
-r1807 | zimmerma | 2002-04-04 10:19:32 +0000 (Thu, 04 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new functions to implement
-
-------------------------------------------------------------------------
-r1806 | vlefevre | 2002-04-03 16:28:40 +0000 (Wed, 03 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update for the next pre-release.
-
-------------------------------------------------------------------------
-r1805 | vlefevre | 2002-04-03 13:52:42 +0000 (Wed, 03 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
--ffloat-store is a gcc option.
-
-------------------------------------------------------------------------
-r1804 | vlefevre | 2002-04-03 13:40:49 +0000 (Wed, 03 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Added 4th argument to AC_TRY_RUN.
-
-------------------------------------------------------------------------
-r1803 | vlefevre | 2002-04-03 12:12:45 +0000 (Wed, 03 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Re-fix.
-
-------------------------------------------------------------------------
-r1802 | zimmerma | 2002-04-03 10:11:59 +0000 (Wed, 03 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mpfr-test.h
-
-added check for fpu_control.h
-
-------------------------------------------------------------------------
-r1801 | zimmerma | 2002-04-03 10:02:27 +0000 (Wed, 03 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added missing cast to double
-
-------------------------------------------------------------------------
-r1800 | vlefevre | 2002-04-02 23:42:48 +0000 (Tue, 02 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-[ ] used around error message.
-
-------------------------------------------------------------------------
-r1799 | vlefevre | 2002-04-02 15:44:50 +0000 (Tue, 02 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-Update.
-
-------------------------------------------------------------------------
-r1798 | vlefevre | 2002-04-02 15:36:51 +0000 (Tue, 02 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Check BITS_PER_MP_LIMB and BYTES_PER_MP_LIMB.
-
-------------------------------------------------------------------------
-r1797 | vlefevre | 2002-04-02 12:30:24 +0000 (Tue, 02 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr-impl.h
- D /trunk/sqrtrem.c
-
-sqrtrem.c removed.
-
-------------------------------------------------------------------------
-r1796 | vlefevre | 2002-04-02 11:50:27 +0000 (Tue, 02 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/ChangeLog
-
-New ChangeLog file (generated by rcs2log).
-
-------------------------------------------------------------------------
-r1795 | vlefevre | 2002-04-02 11:42:03 +0000 (Tue, 02 Apr 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Suppress PACKAGE and VERSION definitions for the compiler.
-
-------------------------------------------------------------------------
-r1794 | zimmerma | 2002-04-01 17:28:42 +0000 (Mon, 01 Apr 2002) | 2 lines
-Changed paths:
- D /trunk/Configure
-
-old file
-
-------------------------------------------------------------------------
-r1793 | zimmerma | 2002-03-31 14:58:47 +0000 (Sun, 31 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-more "internal" changes suggested by Vincent
-
-------------------------------------------------------------------------
-r1792 | zimmerma | 2002-03-31 14:48:14 +0000 (Sun, 31 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added suggestions from Kevin in "internals"
-
-------------------------------------------------------------------------
-r1791 | zimmerma | 2002-03-28 09:01:28 +0000 (Thu, 28 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-added test for denorms
-
-------------------------------------------------------------------------
-r1790 | zimmerma | 2002-03-28 09:01:06 +0000 (Thu, 28 Mar 2002) | 3 lines
-Changed paths:
- M /trunk/set_d.c
-
-on a 32-bit machine, denormalized numbers with high 32 bits to 0
-were flushed to zero
-
-------------------------------------------------------------------------
-r1789 | zimmerma | 2002-03-27 15:26:18 +0000 (Wed, 27 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/asin.c
-
-sign of sin(-1) was not set
-
-------------------------------------------------------------------------
-r1788 | zimmerma | 2002-03-27 15:25:54 +0000 (Wed, 27 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tasin.c
-
-added check for asin(-1)
-
-------------------------------------------------------------------------
-r1787 | zimmerma | 2002-03-27 14:38:50 +0000 (Wed, 27 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/texp2.c
-
-added one test
-
-------------------------------------------------------------------------
-r1786 | zimmerma | 2002-03-27 14:38:29 +0000 (Wed, 27 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-previous fix was completely wrong
-
-------------------------------------------------------------------------
-r1785 | zimmerma | 2002-03-27 14:37:39 +0000 (Wed, 27 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/cmp_ui.c
-
-fixed pb in cmp_si when i = -2^31 (then beware that -1 * i < 0 !!!)
-
-------------------------------------------------------------------------
-r1784 | zimmerma | 2002-03-27 14:09:35 +0000 (Wed, 27 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-added check for underflow
-
-------------------------------------------------------------------------
-r1783 | zimmerma | 2002-03-26 18:39:57 +0000 (Tue, 26 Mar 2002) | 4 lines
-Changed paths:
- A /trunk/tests/Makefile.in
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-- use mpfr_test_init to initialize hardware floats
-- use #ifdef HAVE_INFS when using DBL_NAN, ...
-- fixed some problems with wrongly converted f-p values (esp. under IRIX)
-
-------------------------------------------------------------------------
-r1782 | zimmerma | 2002-03-26 18:36:49 +0000 (Tue, 26 Mar 2002) | 3 lines
-Changed paths:
- M /trunk/configure.in
-
-use AC_TRY_CPP instead of AC_TRY_RUN for fenv.h
-(otherwise fails on Itanium)
-
-------------------------------------------------------------------------
-r1781 | zimmerma | 2002-03-26 18:35:56 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-added function mpfr_test_init to initialize full IEEE behaviour
-
-------------------------------------------------------------------------
-r1780 | zimmerma | 2002-03-26 18:34:54 +0000 (Tue, 26 Mar 2002) | 3 lines
-Changed paths:
- M /trunk/fma.c
-
-put back simple algorithm that computes x*y exactly and then
-directly calls mpfr_add, to avoid wrong inexact flags
-
-------------------------------------------------------------------------
-r1779 | zimmerma | 2002-03-26 09:40:54 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tdump.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
-
-added 2002 in copyright line
-
-------------------------------------------------------------------------
-r1778 | zimmerma | 2002-03-26 09:40:06 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-fixed problem on x86 (set precision to double to avoid double rounding)
-
-------------------------------------------------------------------------
-r1777 | zimmerma | 2002-03-26 09:36:52 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-added check for valid 1/0, denormalized, and extended precision
-
-------------------------------------------------------------------------
-r1776 | vlefevre | 2002-03-26 09:29:34 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-New-style comment removed.
-
-------------------------------------------------------------------------
-r1775 | zimmerma | 2002-03-26 09:19:05 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added a description of the mpfr_t type in "Internals"
-
-------------------------------------------------------------------------
-r1774 | vlefevre | 2002-03-26 01:50:35 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_sub.c
-
-#include <unistd.h> removed. Redefined macros ABS removed.
-
-------------------------------------------------------------------------
-r1773 | vlefevre | 2002-03-26 01:35:24 +0000 (Tue, 26 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tui_div.c
-
-Patch by Kevin Ryde + misc fixes.
-
-------------------------------------------------------------------------
-r1772 | zimmerma | 2002-03-25 17:10:50 +0000 (Mon, 25 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-replaced getpid() by time(NULL)
-
-------------------------------------------------------------------------
-r1771 | zimmerma | 2002-03-25 14:56:28 +0000 (Mon, 25 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-MPFR_SIZE and sign were incorrectly set [thanks Kevin]
-
-------------------------------------------------------------------------
-r1770 | zimmerma | 2002-03-25 13:53:31 +0000 (Mon, 25 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added check_nan (from Kevin)
-
-------------------------------------------------------------------------
-r1769 | zimmerma | 2002-03-25 13:52:26 +0000 (Mon, 25 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-fixed bug for sqrt(-0) found by Kevin [NaN flag not cleared]
-
-------------------------------------------------------------------------
-r1768 | vlefevre | 2002-03-22 15:28:29 +0000 (Fri, 22 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-Error message now copes with extended precision.
-
-------------------------------------------------------------------------
-r1767 | zimmerma | 2002-03-22 14:41:46 +0000 (Fri, 22 Mar 2002) | 5 lines
-Changed paths:
- M /trunk/configure.in
- M /trunk/mpfr-test.h
- M /trunk/mpfr.texi
- M /trunk/rnd_mode.c
- M /trunk/tests/tget_d.c
-
-added test in configure for checking rand48 functions (HAVE_RAND48)
-and fenv.h (HAVE_FENV)
-added mpfr_set_machine_rnd_mode (if fenv.h exists)
-replaced TEST by HAVE_FENV
-
-------------------------------------------------------------------------
-r1766 | vlefevre | 2002-03-22 01:48:18 +0000 (Fri, 22 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-Missing #include.
-
-------------------------------------------------------------------------
-r1765 | vlefevre | 2002-03-22 01:25:57 +0000 (Fri, 22 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/set_nan.c
-
-MPFR_RETNAN shouldn't be used as no value is returned.
-
-------------------------------------------------------------------------
-r1764 | vlefevre | 2002-03-22 01:22:29 +0000 (Fri, 22 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/set_inf.c
-
-Regarde 0 as positive rather than negative (though it's better not to use it).
-
-------------------------------------------------------------------------
-r1763 | vlefevre | 2002-03-22 01:09:58 +0000 (Fri, 22 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/isinteger.c
-
-Memory leak (patch by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1762 | zimmerma | 2002-03-21 15:35:48 +0000 (Thu, 21 Mar 2002) | 4 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-replaced rand/lrand48, drand48, srand/srand48 by macros
- LONG_RAND, DBL_RAND, SEED_RAND
-and time(NULL) by getpid()
-
-------------------------------------------------------------------------
-r1761 | zimmerma | 2002-03-21 15:34:18 +0000 (Thu, 21 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-added macros LONG_RAND, DBL_RAND, SEED_RAND
-
-------------------------------------------------------------------------
-r1760 | zimmerma | 2002-03-21 10:04:49 +0000 (Thu, 21 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added VERSION and mpfr-math.h for "make dist"
-
-------------------------------------------------------------------------
-r1759 | zimmerma | 2002-03-19 16:45:01 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- A /trunk/set_inf.c
- A /trunk/set_nan.c
-
-new functions
-
-------------------------------------------------------------------------
-r1758 | zimmerma | 2002-03-19 16:44:32 +0000 (Tue, 19 Mar 2002) | 3 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-now use macros DBL_NAN, DBL_POS_INF, DBL_NEG_INF,
-and functions mpfr_set_nan, mpfr_set_inf
-
-------------------------------------------------------------------------
-r1757 | zimmerma | 2002-03-19 16:42:26 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-defined macros for 0/0, 1/0, -1/0
-
-------------------------------------------------------------------------
-r1756 | zimmerma | 2002-03-19 16:40:41 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-added new functions mpfr_set_nan and mpfr_set_inf
-
-------------------------------------------------------------------------
-r1755 | vlefevre | 2002-03-19 15:09:16 +0000 (Tue, 19 Mar 2002) | 3 lines
-Changed paths:
- A /trunk/VERSION
- M /trunk/configure.in
-
-File VERSION added. Contains the next version (currently 2.0.1).
-configure.in updated accordingly.
-
-------------------------------------------------------------------------
-r1754 | vlefevre | 2002-03-19 08:47:22 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/get_d.c
- A /trunk/mpfr-math.h
- M /trunk/tests/tadd.c
-
-Macros MPFR_DBL_NAN, MPFR_DBL_INFP and MPFR_DBL_INFM.
-
-------------------------------------------------------------------------
-r1753 | zimmerma | 2002-03-19 02:11:56 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-MP_LIMB_T_HIGHBIT -> ULONG_HIGHBIT
-
-------------------------------------------------------------------------
-r1752 | zimmerma | 2002-03-19 02:11:30 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-moved code under #ifdef
-
-------------------------------------------------------------------------
-r1751 | zimmerma | 2002-03-19 02:10:50 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-moved code under #ifdef TEST
-
-------------------------------------------------------------------------
-r1750 | zimmerma | 2002-03-19 02:10:13 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-remove variable sizer (not used)
-
-------------------------------------------------------------------------
-r1749 | zimmerma | 2002-03-19 02:09:11 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/cbrt.c
-
-Library GPL -> Lesser GPL
-
-------------------------------------------------------------------------
-r1748 | zimmerma | 2002-03-19 02:00:53 +0000 (Tue, 19 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated
-
-------------------------------------------------------------------------
-r1747 | vlefevre | 2002-03-17 22:13:03 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-Some changes in the types.
-
-------------------------------------------------------------------------
-r1746 | zimmerma | 2002-03-17 22:13:02 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-changed Nt variable to signed
-
-------------------------------------------------------------------------
-r1745 | vlefevre | 2002-03-17 22:03:14 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log2.c
-
-Bugs fixed.
-
-------------------------------------------------------------------------
-r1744 | zimmerma | 2002-03-17 17:53:04 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-added back mpfr_sin_cos
-
-------------------------------------------------------------------------
-r1743 | zimmerma | 2002-03-17 17:50:27 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- A /trunk/sin_cos.c
-
-new version (adapted from sin.c)
-
-------------------------------------------------------------------------
-r1742 | zimmerma | 2002-03-17 17:49:08 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/ttan.c
-
-added tests for tan(3*Pi/4) and tan(7*Pi/4)
-
-------------------------------------------------------------------------
-r1741 | zimmerma | 2002-03-17 17:48:38 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tan.c
-
-fixed bug for tan(3*Pi/4) [wrong sign]
-
-------------------------------------------------------------------------
-r1740 | zimmerma | 2002-03-17 17:27:42 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tlog10.c
-
-added test for log(10^n)
-
-------------------------------------------------------------------------
-r1739 | zimmerma | 2002-03-17 17:21:31 +0000 (Sun, 17 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/log10.c
-
-fixed infinite loop problem for log(10^n)
-
-------------------------------------------------------------------------
-r1738 | vlefevre | 2002-03-13 01:16:23 +0000 (Wed, 13 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-Fix (patch by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1737 | vlefevre | 2002-03-13 00:44:20 +0000 (Wed, 13 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/get_d.c
-
-Do not read the exponent if it has no meaning.
-
-------------------------------------------------------------------------
-r1736 | vlefevre | 2002-03-12 23:58:10 +0000 (Tue, 12 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr_random update (patch by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1735 | vlefevre | 2002-03-12 23:53:47 +0000 (Tue, 12 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-2 more known bugs.
-
-------------------------------------------------------------------------
-r1734 | vlefevre | 2002-03-12 23:48:06 +0000 (Tue, 12 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr_a{cos,sin,tan} documentation at a better place.
-
-------------------------------------------------------------------------
-r1733 | vlefevre | 2002-03-12 23:43:10 +0000 (Tue, 12 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/acos.c
-
-Some mpfr_clear added (patch by Kevin Ryde).
-
-------------------------------------------------------------------------
-r1732 | vlefevre | 2002-03-11 16:54:55 +0000 (Mon, 11 Mar 2002) | 3 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/get_d.c
- M /trunk/tests/tget_d.c
-
-mpfr_get_d3 partially rewritten (to follow the new specifications).
-tget_d.c updated because of changes in get_d.c.
-
-------------------------------------------------------------------------
-r1731 | vlefevre | 2002-03-11 13:52:30 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/print_rnd_mode.c
-
-Return a null pointer if rnd_mode is an invalid rounding mode.
-
-------------------------------------------------------------------------
-r1730 | zimmerma | 2002-03-11 13:43:18 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-set sign before calling mpfr_check_range
-
-------------------------------------------------------------------------
-r1729 | zimmerma | 2002-03-11 13:40:02 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-stupid typo in previous commit
-
-------------------------------------------------------------------------
-r1728 | zimmerma | 2002-03-11 13:36:40 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-removed expx (not used)
-
-------------------------------------------------------------------------
-r1727 | zimmerma | 2002-03-11 13:35:12 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/set_si.c
- M /trunk/tests/tset_si.c
-
-fixed typo (ai [potentially unsigned] replaced by i)
-
-------------------------------------------------------------------------
-r1726 | vlefevre | 2002-03-11 13:16:54 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/get_d.c
- M /trunk/get_str.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/tests/tget_d.c
-
-New mpfr_get_d, mpfr_get_d2, mpfr_get_d3.
-
-------------------------------------------------------------------------
-r1725 | zimmerma | 2002-03-11 13:00:29 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/print_rnd_mode.c
-
-added return
-
-------------------------------------------------------------------------
-r1724 | vlefevre | 2002-03-11 12:41:00 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_d.c
- M /trunk/set_d.c
-
-set_d.c split into get_d.c and set_d.c
-
-------------------------------------------------------------------------
-r1723 | daney | 2002-03-11 12:38:44 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- A /trunk/cbrt.c
-
-add cbrt in fonctionnality
-
-------------------------------------------------------------------------
-r1722 | vlefevre | 2002-03-11 10:53:10 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Bug removed.
-
-------------------------------------------------------------------------
-r1721 | vlefevre | 2002-03-11 05:44:18 +0000 (Mon, 11 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/extract.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-#include changes.
-
-------------------------------------------------------------------------
-r1720 | zimmerma | 2002-03-07 16:42:57 +0000 (Thu, 07 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/sinh.c
-
-fixed problem when te=ti=1 (i.e. t=0) found by Kevin Ryde
-
-------------------------------------------------------------------------
-r1719 | zimmerma | 2002-03-07 16:04:54 +0000 (Thu, 07 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-simplified test4()
-
-------------------------------------------------------------------------
-r1718 | vlefevre | 2002-03-06 17:56:06 +0000 (Wed, 06 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/TODO
-
-Update.
-
-------------------------------------------------------------------------
-r1717 | vlefevre | 2002-03-06 17:05:26 +0000 (Wed, 06 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update.
-
-------------------------------------------------------------------------
-r1716 | vlefevre | 2002-03-06 16:32:50 +0000 (Wed, 06 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Patch by Kevin Ryde concerning nodes/menus.
-
-------------------------------------------------------------------------
-r1715 | vlefevre | 2002-03-05 00:13:20 +0000 (Tue, 05 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-Casts fixed.
-
-------------------------------------------------------------------------
-r1714 | vlefevre | 2002-03-04 23:35:05 +0000 (Mon, 04 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/get_z_exp.c
- D /trunk/internal_ceil_exp2.c
- D /trunk/internal_ceil_log2.c
- D /trunk/internal_floor_log2.c
- D /trunk/mpz_set_fr.c
- A /trunk/uceil_exp2.c
- A /trunk/uceil_log2.c
- A /trunk/ufloor_log2.c
-
-File renaming.
-
-------------------------------------------------------------------------
-r1713 | vlefevre | 2002-03-04 23:05:20 +0000 (Mon, 04 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add_one_ulp.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_ui.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_2si.c
- M /trunk/div_2ui.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fma.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/init2.c
- M /trunk/inp_str.c
- M /trunk/internal_ceil_exp2.c
- M /trunk/internal_ceil_log2.c
- M /trunk/internal_floor_log2.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/minmax.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfi.c
- M /trunk/mpfi.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_2si.c
- M /trunk/mul_2ui.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rint.c
- M /trunk/rnd_mode.c
- M /trunk/round_prec.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sqrtrem.c
- M /trunk/srandom.h
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub_one_ulp.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacos.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tconst_euler.c
- M /trunk/tests/tconst_log2.c
- M /trunk/tests/tconst_pi.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/trint.c
- M /trunk/tests/tround_prec.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-Copyright line changed.
-
-------------------------------------------------------------------------
-r1712 | zimmerma | 2002-03-01 13:03:11 +0000 (Fri, 01 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-updated
-
-------------------------------------------------------------------------
-r1711 | zimmerma | 2002-03-01 13:02:03 +0000 (Fri, 01 Mar 2002) | 2 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/exp_2.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpz_set_fr.c
- M /trunk/pow.c
-
-changed name of mpz_set_fr to mpfr_get_z_exp
-
-------------------------------------------------------------------------
-r1710 | vlefevre | 2002-02-28 14:21:20 +0000 (Thu, 28 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
-
-Removed some <math.h> dependencies.
-
-------------------------------------------------------------------------
-r1709 | vlefevre | 2002-02-28 00:19:56 +0000 (Thu, 28 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-Fixed.
-
-------------------------------------------------------------------------
-r1708 | vlefevre | 2002-02-28 00:19:46 +0000 (Thu, 28 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-mpfr_get_d rewritten (still needs to be fixed when the result is a subnormal).
-
-------------------------------------------------------------------------
-r1707 | vlefevre | 2002-02-27 18:16:29 +0000 (Wed, 27 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
-
-mpfr_get_d2 tested.
-
-------------------------------------------------------------------------
-r1706 | vlefevre | 2002-02-27 14:29:18 +0000 (Wed, 27 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-Update.
-
-------------------------------------------------------------------------
-r1705 | vlefevre | 2002-02-27 14:02:18 +0000 (Wed, 27 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tget_d.c
- M /trunk/tests/tset_d.c
-
-New tests.
-
-------------------------------------------------------------------------
-r1704 | vlefevre | 2002-02-27 14:00:16 +0000 (Wed, 27 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/configure.in
-
-Additional flags for gcc + minor changes.
-
-------------------------------------------------------------------------
-r1703 | vlefevre | 2002-02-27 13:57:51 +0000 (Wed, 27 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-Minor update.
-
-------------------------------------------------------------------------
-r1702 | vlefevre | 2002-02-25 14:50:14 +0000 (Mon, 25 Feb 2002) | 7 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/set_d.c
-
-mpfr_get_d2 prototype changed (mp_exp_t instead of long).
-__mpfr_scale2 fixes: checks for integer overflows, signed zeros, exact
-rounding for subnormals in the rounding to the nearest mode (problems
-due to multiple roundings avoided).
-mpfr_get_d2: signed zeros taken into account. This function still needs
-to be rewritten (because of multiple roundings).
-
-------------------------------------------------------------------------
-r1701 | vlefevre | 2002-02-21 15:43:40 +0000 (Thu, 21 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/agm.c
- A /trunk/internal_ceil_exp2.c
- A /trunk/internal_ceil_log2.c
- A /trunk/internal_floor_log2.c
-
-_mpfr_ceil_log2, _mpfr_floor_log2, _mpfr_ceil_exp2 in separate files.
-
-------------------------------------------------------------------------
-r1700 | vlefevre | 2002-02-19 16:05:52 +0000 (Tue, 19 Feb 2002) | 3 lines
-Changed paths:
- M /trunk/get_str.c
-
-Fixes, code clean-up and some asserts against integer overflows.
-Code need to be checked.
-
-------------------------------------------------------------------------
-r1699 | vlefevre | 2002-02-14 11:36:40 +0000 (Thu, 14 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/acos.c
- M /trunk/agm.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/const_euler.c
- M /trunk/const_log2.c
- M /trunk/const_pi.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/gamma.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/tanh.c
- M /trunk/zeta.c
-
-mpfr_{div,mul}_2exp -> mpfr_{div,mul}_2ui.
-
-------------------------------------------------------------------------
-r1698 | vlefevre | 2002-02-14 02:35:35 +0000 (Thu, 14 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-Partial code clean-up and some asserts against integer overflows (2).
-
-------------------------------------------------------------------------
-r1697 | vlefevre | 2002-02-13 13:53:46 +0000 (Wed, 13 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-Partial code clean-up and some asserts against integer overflows.
-
-------------------------------------------------------------------------
-r1696 | vlefevre | 2002-02-13 13:18:12 +0000 (Wed, 13 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-MP_EXP_T_MAX and MP_EXP_T_MIN defined.
-
-------------------------------------------------------------------------
-r1695 | vlefevre | 2002-02-13 10:49:09 +0000 (Wed, 13 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Macros IS_POW2 and NOT_POW2.
-
-------------------------------------------------------------------------
-r1694 | vlefevre | 2002-02-12 17:11:50 +0000 (Tue, 12 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/ui_pow_ui.c
-
-Use mpfr_save_emin_emax and MPFR_RESTORE_RET.
-
-------------------------------------------------------------------------
-r1693 | vlefevre | 2002-02-12 16:41:50 +0000 (Tue, 12 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tdump.c
-
-Update due to changes in mpfr_get_str.
-
-------------------------------------------------------------------------
-r1692 | vlefevre | 2002-02-12 16:41:36 +0000 (Tue, 12 Feb 2002) | 4 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpz_set_fr.c
- M /trunk/out_str.c
-
-mpfr_get_str: the returned exponent for 0 is 0 (like in frexp()).
-mpz_set_fr.c: comment added.
-out_str.c: minor changes.
-
-------------------------------------------------------------------------
-r1691 | vlefevre | 2002-02-12 15:59:02 +0000 (Tue, 12 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Update.
-
-------------------------------------------------------------------------
-r1690 | vlefevre | 2002-02-12 14:42:23 +0000 (Tue, 12 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/ui_pow_ui.c
-
-Bug fixed and other changes.
-
-------------------------------------------------------------------------
-r1689 | vlefevre | 2002-02-12 14:08:25 +0000 (Tue, 12 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-NULL -> null pointer and other small changes.
-
-------------------------------------------------------------------------
-r1688 | vlefevre | 2002-02-12 14:03:02 +0000 (Tue, 12 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr.texi
-
-mpfr_get_str: null pointer returned in case of error, NaN taken into account.
-
-------------------------------------------------------------------------
-r1687 | vlefevre | 2002-02-11 14:59:18 +0000 (Mon, 11 Feb 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/set_str.c
-
-mpfr_set_str partially rewritten to cope with integer overflows.
-The rounding code hasn't been fixed yet.
-
-------------------------------------------------------------------------
-r1686 | vlefevre | 2002-02-08 17:04:01 +0000 (Fri, 08 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Typo.
-
-------------------------------------------------------------------------
-r1685 | vlefevre | 2002-02-08 17:01:49 +0000 (Fri, 08 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/set_str.c
-
-mpfr_set_str: base must be between 2 and 36.
-
-------------------------------------------------------------------------
-r1684 | daney | 2002-02-06 15:34:46 +0000 (Wed, 06 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-change the return values
-
-------------------------------------------------------------------------
-r1683 | daney | 2002-02-06 15:34:15 +0000 (Wed, 06 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-Change the test return values
-
-------------------------------------------------------------------------
-r1682 | vlefevre | 2002-02-06 02:57:55 +0000 (Wed, 06 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Some optimizations.
-
-------------------------------------------------------------------------
-r1681 | vlefevre | 2002-02-04 01:04:59 +0000 (Mon, 04 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/pow_ui.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/ui_pow.c
- M /trunk/ui_sub.c
-
-Misc bug fixes and code clean-up.
-
-------------------------------------------------------------------------
-r1680 | vlefevre | 2002-02-04 00:16:27 +0000 (Mon, 04 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/pow.c
-
-Misc bug fixes and code clean-up.
-
-------------------------------------------------------------------------
-r1679 | vlefevre | 2002-02-03 02:59:44 +0000 (Sun, 03 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
-
-For the value 0, return __mpfr_emin instead of 0.
-
-------------------------------------------------------------------------
-r1678 | vlefevre | 2002-02-01 21:35:34 +0000 (Fri, 01 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/agm.c
- M /trunk/asinh.c
- M /trunk/atanh.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/hypot.c
- M /trunk/log.c
- M /trunk/log10.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/pow_si.c
-
-Misc bug fixes and code clean-up.
-
-------------------------------------------------------------------------
-r1677 | hanrot | 2002-02-01 18:17:56 +0000 (Fri, 01 Feb 2002) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-Patch.
-
-------------------------------------------------------------------------
-r1676 | vlefevre | 2002-01-30 14:57:31 +0000 (Wed, 30 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/tests/trint.c
-
-Bux fixed.
-
-------------------------------------------------------------------------
-r1675 | vlefevre | 2002-01-30 14:57:24 +0000 (Wed, 30 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/set_z.c
-
-mpfr_set_z rewritten.
-
-------------------------------------------------------------------------
-r1674 | vlefevre | 2002-01-30 12:37:04 +0000 (Wed, 30 Jan 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Update concerning mpfr_round_prec, mpfr_rint, mpfr_ceil, mpfr_floor,
-mpfr_round and mpfr_trunc.
-
-------------------------------------------------------------------------
-r1673 | vlefevre | 2002-01-30 04:57:52 +0000 (Wed, 30 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/reuse.c
- A /trunk/tests/trint.c
-
-Tests added (mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round).
-
-------------------------------------------------------------------------
-r1672 | vlefevre | 2002-01-30 04:57:10 +0000 (Wed, 30 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr.h
- A /trunk/rint.c
- D /trunk/trunc.c
-
-mpfr_rint, mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round rewritten.
-
-------------------------------------------------------------------------
-r1671 | vlefevre | 2002-01-25 14:00:37 +0000 (Fri, 25 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/cos.c
- M /trunk/get_str.c
- M /trunk/mpfr.h
- D /trunk/round.c
- A /trunk/round_prec.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/tacos.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tgamma.c
- D /trunk/tests/tround.c
- A /trunk/tests/tround_prec.c
-
-mpfr_round -> mpfr_round_prec.
-
-------------------------------------------------------------------------
-r1670 | vlefevre | 2002-01-25 13:43:31 +0000 (Fri, 25 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-Code reformatted.
-
-------------------------------------------------------------------------
-r1669 | vlefevre | 2002-01-23 00:08:52 +0000 (Wed, 23 Jan 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-MAX, MIN, ABS macros undefined before being redefined.
-Fix in ABS macro.
-
-------------------------------------------------------------------------
-r1668 | vlefevre | 2002-01-22 02:29:47 +0000 (Tue, 22 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-Example with high bit set.
-
-------------------------------------------------------------------------
-r1667 | vlefevre | 2002-01-22 02:29:35 +0000 (Tue, 22 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-Fix (Kevin Ryde).
-
-------------------------------------------------------------------------
-r1666 | vlefevre | 2002-01-22 00:45:44 +0000 (Tue, 22 Jan 2002) | 4 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/sqrt.c
-
-MPFR_PREC_MAX redefined.
-MPFR_INTPREC_MAX defined (internal maximum precision).
-Some integer overflow detection.
-
-------------------------------------------------------------------------
-r1665 | vlefevre | 2002-01-21 11:37:41 +0000 (Mon, 21 Jan 2002) | 3 lines
-Changed paths:
- M /trunk/sqrt_ui.c
-
-Set sign of sqrt(0).
-Support for exponent range.
-
-------------------------------------------------------------------------
-r1664 | vlefevre | 2002-01-21 10:38:37 +0000 (Mon, 21 Jan 2002) | 3 lines
-Changed paths:
- M /trunk/sqrt.c
-
-can_round type changed: char -> int.
-Case sqrt(0) improved.
-
-------------------------------------------------------------------------
-r1663 | vlefevre | 2002-01-21 10:26:13 +0000 (Mon, 21 Jan 2002) | 4 lines
-Changed paths:
- M /trunk/sqrt.c
-
-Bug fixes:
- * return 1 -> MPFR_RET_NAN
- * a MPFR_CLEAR_INF was missing.
-
-------------------------------------------------------------------------
-r1662 | vlefevre | 2002-01-20 00:17:27 +0000 (Sun, 20 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/mpfr-impl.h
- M /trunk/sub_ui.c
-
-New macro MPFR_RESTORE_RET.
-
-------------------------------------------------------------------------
-r1661 | vlefevre | 2002-01-18 16:13:33 +0000 (Fri, 18 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-Code clean-up (goto suppressed).
-
-------------------------------------------------------------------------
-r1660 | vlefevre | 2002-01-18 15:40:30 +0000 (Fri, 18 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-Cases 0 * 0 + 0.
-
-------------------------------------------------------------------------
-r1659 | vlefevre | 2002-01-18 11:33:22 +0000 (Fri, 18 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-Nt: int -> mp_prec_t
-
-------------------------------------------------------------------------
-r1658 | vlefevre | 2002-01-18 11:15:54 +0000 (Fri, 18 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
- M /trunk/tests/tacosh.c
-
-<> changed back to "".
-
-------------------------------------------------------------------------
-r1657 | daney | 2002-01-18 09:58:00 +0000 (Fri, 18 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
-
-change "" -> <> in headers
-
-------------------------------------------------------------------------
-r1656 | daney | 2002-01-18 09:51:03 +0000 (Fri, 18 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-Change indentation + replace "" -> <> in header
-
-------------------------------------------------------------------------
-r1655 | vlefevre | 2002-01-17 21:45:41 +0000 (Thu, 17 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-Particular cases rewritten.
-
-------------------------------------------------------------------------
-r1654 | vlefevre | 2002-01-17 20:33:21 +0000 (Thu, 17 Jan 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-Test "__hpux", not "hpux". Mask off mrand48 return value to 31 bits
-to work around sloppy mpfr #include practices. (Torbjorn Granlund)
-
-------------------------------------------------------------------------
-r1653 | vlefevre | 2002-01-17 20:29:58 +0000 (Thu, 17 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfma.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog10.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/tui_pow.c
-
-#include fixes (Torbjorn Granlund).
-
-------------------------------------------------------------------------
-r1652 | vlefevre | 2002-01-16 15:14:09 +0000 (Wed, 16 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Comments were incorrect.
-
-------------------------------------------------------------------------
-r1651 | vlefevre | 2002-01-15 11:23:34 +0000 (Tue, 15 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Note concerning mpfr_trunc, mpfr_floor and mpfr_ceil.
-
-------------------------------------------------------------------------
-r1650 | vlefevre | 2002-01-14 13:09:42 +0000 (Mon, 14 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Special cases.
-
-------------------------------------------------------------------------
-r1649 | vlefevre | 2002-01-12 01:27:53 +0000 (Sat, 12 Jan 2002) | 3 lines
-Changed paths:
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/shortmul.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-Patches by Kevin Ryde for K&R compilers
-and other fixes in prototypes.
-
-------------------------------------------------------------------------
-r1648 | vlefevre | 2002-01-10 22:20:28 +0000 (Thu, 10 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-Test check_min added.
-
-------------------------------------------------------------------------
-r1647 | vlefevre | 2002-01-10 21:45:00 +0000 (Thu, 10 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-Test check_max added.
-
-------------------------------------------------------------------------
-r1646 | vlefevre | 2002-01-10 13:42:21 +0000 (Thu, 10 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
- M /trunk/cmp2.c
- M /trunk/log.c
-
-Spelling: "canceled"
-
-------------------------------------------------------------------------
-r1645 | zimmerma | 2002-01-10 13:05:58 +0000 (Thu, 10 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-GMP_PROTO change was already done by Vincent
-
-------------------------------------------------------------------------
-r1644 | zimmerma | 2002-01-10 12:58:47 +0000 (Thu, 10 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-prepare change PROTO -> GMP_PROTO
-
-------------------------------------------------------------------------
-r1643 | vlefevre | 2002-01-04 14:41:33 +0000 (Fri, 04 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/sub_one_ulp.c
-
-The precision can no longer be 1.
-
-------------------------------------------------------------------------
-r1642 | vlefevre | 2002-01-04 03:07:23 +0000 (Fri, 04 Jan 2002) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-__GMP_PROTO defined if not already defined.
-
-------------------------------------------------------------------------
-r1641 | vlefevre | 2002-01-04 02:57:08 +0000 (Fri, 04 Jan 2002) | 5 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/agm.c
- M /trunk/cmp2.c
- M /trunk/mpfr-impl.h
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
-
-Optimization: mpfr_cmp2 now accepts any combination of real arguments
-and computes the sign of |b| - |c| (in addition to the number of
-cancelled bits); mpfr_add, mpfr_sub, mpfr_sub1, mpfr_agm and some
-tests updated to take this change into account.
-
-------------------------------------------------------------------------
-r1640 | zimmerma | 2001-12-21 16:33:10 +0000 (Fri, 21 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-added check for sin(3*Pi/2)
-
-------------------------------------------------------------------------
-r1639 | zimmerma | 2001-12-21 16:33:02 +0000 (Fri, 21 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/sin.c
-
-fixed bug for sin(3*Pi/2)
-
-------------------------------------------------------------------------
-r1638 | vlefevre | 2001-12-19 15:50:01 +0000 (Wed, 19 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-Global NaN flag set when result is NaN.
-
-------------------------------------------------------------------------
-r1637 | zimmerma | 2001-12-19 14:41:04 +0000 (Wed, 19 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-forgot to clear nan flag for Inf
-
-------------------------------------------------------------------------
-r1636 | zimmerma | 2001-12-19 13:32:05 +0000 (Wed, 19 Dec 2001) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-changed description of mpfr_cmp to correspond to the implementation:
-NaNs are not allowed
-
-------------------------------------------------------------------------
-r1635 | zimmerma | 2001-12-19 12:39:49 +0000 (Wed, 19 Dec 2001) | 6 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-fixed mpfr_cmp2 : there was a bug noticed by Nicolas Magaud and Didier
-Bondyfalat for inputs:
-100 011 111
-100 010 110
-where it gave 8 instead of 5.
-
-------------------------------------------------------------------------
-r1634 | vlefevre | 2001-12-19 10:44:15 +0000 (Wed, 19 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/sub1.c
-
-Better comments.
-
-------------------------------------------------------------------------
-r1633 | zimmerma | 2001-12-10 09:20:59 +0000 (Mon, 10 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
- M /trunk/algorithms.tex
-
-added "PI and the AGM"
-
-------------------------------------------------------------------------
-r1632 | vlefevre | 2001-12-06 17:25:46 +0000 (Thu, 06 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tlog10.c
- A /trunk/tests/tlog2.c
- D /trunk/tests/tlog_base_10.c
- D /trunk/tests/tlog_base_2.c
-
-Files renamed (log in base 2 and 10).
-
-------------------------------------------------------------------------
-r1631 | vlefevre | 2001-12-06 17:22:14 +0000 (Thu, 06 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tconst_euler.c
- A /trunk/tests/tconst_log2.c
- A /trunk/tests/tconst_pi.c
- D /trunk/tests/teuler.c
- D /trunk/tests/tlog2.c
- D /trunk/tests/tpi.c
-
-Files renamed (constants).
-
-------------------------------------------------------------------------
-r1630 | vlefevre | 2001-12-06 17:12:59 +0000 (Thu, 06 Dec 2001) | 2 lines
-Changed paths:
- D /trunk/aclocal.m4
-
-File aclocal.m4 removed, as generated by aclocal (called by prepare).
-
-------------------------------------------------------------------------
-r1629 | vlefevre | 2001-12-06 17:02:18 +0000 (Thu, 06 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/log10.c
- A /trunk/log2.c
- D /trunk/log_base_10.c
- D /trunk/log_base_2.c
-
-Files log_base_*.c renamed.
-
-------------------------------------------------------------------------
-r1628 | vlefevre | 2001-12-06 16:53:25 +0000 (Thu, 06 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/const_euler.c
- A /trunk/const_log2.c
- A /trunk/const_pi.c
- D /trunk/euler.c
- D /trunk/log2.c
- D /trunk/pi.c
-
-Functions (constants) renamed.
-
-------------------------------------------------------------------------
-r1627 | vlefevre | 2001-12-06 16:33:10 +0000 (Thu, 06 Dec 2001) | 3 lines
-Changed paths:
- D /trunk/Makefile.in
- D /trunk/configure
- D /trunk/tests/Makefile.in
-
-Files configure, Makefile.in, tests/Makefile.in removed.
-Use the `prepare' script to generate them.
-
-------------------------------------------------------------------------
-r1626 | vlefevre | 2001-12-06 12:37:05 +0000 (Thu, 06 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-Removed 2 bugs.
-
-------------------------------------------------------------------------
-r1625 | vlefevre | 2001-12-06 12:12:43 +0000 (Thu, 06 Dec 2001) | 2 lines
-Changed paths:
- A /trunk/prepare
-
-Initial release.
-
-------------------------------------------------------------------------
-r1624 | zimmerma | 2001-12-05 17:06:03 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added arc-tangent (from Mathieu)
-
-------------------------------------------------------------------------
-r1623 | zimmerma | 2001-12-05 16:29:15 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added paragraph on asin and acos from Mathieu Dutour
-
-------------------------------------------------------------------------
-r1622 | zimmerma | 2001-12-05 16:28:31 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- A /trunk/tests/tacos.c
-
-added tacos
-
-------------------------------------------------------------------------
-r1621 | zimmerma | 2001-12-05 16:27:44 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-in check5, test NaNs before calling mpfr_cmp
-
-------------------------------------------------------------------------
-r1620 | zimmerma | 2001-12-05 16:26:56 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-added acos
-
-------------------------------------------------------------------------
-r1619 | zimmerma | 2001-12-05 16:26:34 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added acos.c
-
-------------------------------------------------------------------------
-r1618 | zimmerma | 2001-12-05 16:26:02 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- A /trunk/acos.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-added acos (from Mathieu Dutour)
-
-------------------------------------------------------------------------
-r1617 | zimmerma | 2001-12-05 16:25:10 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-use now new sqrtrem from gmp-4.0
-
-------------------------------------------------------------------------
-r1616 | zimmerma | 2001-12-05 16:08:30 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-improved test (avoid mpfr_get_d)
-
-------------------------------------------------------------------------
-r1615 | zimmerma | 2001-12-05 15:15:47 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-removed isnan prototype
-
-------------------------------------------------------------------------
-r1614 | zimmerma | 2001-12-05 15:11:47 +0000 (Wed, 05 Dec 2001) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-added stdlib.h for exit
-
-------------------------------------------------------------------------
-r1613 | zimmerma | 2001-11-30 17:55:16 +0000 (Fri, 30 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/dump.c
- M /trunk/tests/tdump.c
-
-test NaN before Inf
-changed precision to 2 for test
-
-------------------------------------------------------------------------
-r1612 | vlefevre | 2001-11-30 15:57:22 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/set_prc_raw.c
-
-Cast added.
-
-------------------------------------------------------------------------
-r1611 | zimmerma | 2001-11-30 14:48:45 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-added a new test (worst case)
-
-------------------------------------------------------------------------
-r1610 | zimmerma | 2001-11-30 14:48:12 +0000 (Fri, 30 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/atan.c
-
-nouvelle version de Mathieu Dutour,
-corrigeant certains bugs avec les pires cas de Vincent
-
-------------------------------------------------------------------------
-r1609 | vlefevre | 2001-11-30 14:37:25 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
- M /trunk/set_d.c
-
-#include order changed.
-
-------------------------------------------------------------------------
-r1608 | vlefevre | 2001-11-30 14:29:38 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/set_prec.c
-
-Misc fixes.
-
-------------------------------------------------------------------------
-r1607 | vlefevre | 2001-11-30 13:44:59 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-Unused variables.
-
-------------------------------------------------------------------------
-r1606 | zimmerma | 2001-11-30 13:37:37 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teuler.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_base_10.c
- M /trunk/tests/tlog_base_2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
-
-start tests with precision 2 instead of 1
-
-------------------------------------------------------------------------
-r1605 | zimmerma | 2001-11-30 13:29:57 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
-
-start from precision 2
-
-------------------------------------------------------------------------
-r1604 | zimmerma | 2001-11-30 13:29:06 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-big rewrite to fix problems when the estimate base exponent is too small
-
-------------------------------------------------------------------------
-r1603 | zimmerma | 2001-11-30 13:28:04 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-fixed detection of exact cases (in particular 0)
-
-------------------------------------------------------------------------
-r1602 | zimmerma | 2001-11-30 13:27:30 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-now use MPFR_PREC_MIN
-
-------------------------------------------------------------------------
-r1601 | zimmerma | 2001-11-30 13:27:01 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-exptol is now of type mp_exp_t
-
-------------------------------------------------------------------------
-r1600 | zimmerma | 2001-11-30 13:26:03 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/log2.c
-
-rewritten part with Taylor series
-
-------------------------------------------------------------------------
-r1599 | zimmerma | 2001-11-30 13:03:07 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed MPFR_PREC_MIN to 2
-
-------------------------------------------------------------------------
-r1598 | zimmerma | 2001-11-30 13:02:45 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/set_prc_raw.c
-
-updated wrt MPFR_PREC_MIN/MPFR_PREC_MAX
-
-------------------------------------------------------------------------
-r1597 | zimmerma | 2001-11-30 12:53:16 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
-
-case x=0 was forgotten
-
-------------------------------------------------------------------------
-r1596 | zimmerma | 2001-11-30 12:52:07 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/set_prec.c
-
-now use MPFR_PREC_MIN
-
-------------------------------------------------------------------------
-r1595 | zimmerma | 2001-11-30 12:51:26 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/sub1.c
-
-added comment
-
-------------------------------------------------------------------------
-r1594 | vlefevre | 2001-11-30 02:41:36 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/set_z.c
-
-mpfr_set_z rewritten to support overflows/underflows and ternary value.
-
-------------------------------------------------------------------------
-r1593 | vlefevre | 2001-11-30 00:10:52 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/set_z.c
-
-0 -> set to +0.
-
-------------------------------------------------------------------------
-r1592 | vlefevre | 2001-11-30 00:07:36 +0000 (Fri, 30 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Better sign comparison.
-
-------------------------------------------------------------------------
-r1591 | vlefevre | 2001-11-29 23:56:56 +0000 (Thu, 29 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/set_si.c
- M /trunk/set_ui.c
-
-Use MPFR_SET_POS.
-
-------------------------------------------------------------------------
-r1590 | vlefevre | 2001-11-29 14:23:12 +0000 (Thu, 29 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/trunc.c
-
-Bug fixed concerning integer overflows.
-
-------------------------------------------------------------------------
-r1589 | zimmerma | 2001-11-29 09:43:55 +0000 (Thu, 29 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/init2.c
-
-added comment
-
-------------------------------------------------------------------------
-r1588 | zimmerma | 2001-11-29 09:43:35 +0000 (Thu, 29 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/cos.c
-
-fixed bug for small precision, where r can be >= 1
-
-------------------------------------------------------------------------
-r1587 | vlefevre | 2001-11-29 03:15:54 +0000 (Thu, 29 Nov 2001) | 4 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/div_2exp.c
- A /trunk/div_2si.c
- A /trunk/div_2ui.c
- M /trunk/log.c
- M /trunk/mpfr.h
- M /trunk/mul_2exp.c
- A /trunk/mul_2si.c
- A /trunk/mul_2ui.c
-
-Functions mpfr_{mul,div}_2{si,ui} added.
-Functions mpfr_{mul,div}_2exp still exist for backward compatibility;
-they are obsolete and should not be used any longer.
-
-------------------------------------------------------------------------
-r1586 | vlefevre | 2001-11-28 17:57:53 +0000 (Wed, 28 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/minmax.c
-
-Particular cases (NaN and signed zeros).
-
-------------------------------------------------------------------------
-r1585 | vlefevre | 2001-11-28 17:12:35 +0000 (Wed, 28 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/init2.c
- M /trunk/tests/texp2.c
- M /trunk/tests/thyperbolic.c
-
-Init variables to NaN instead of 0.
-
-------------------------------------------------------------------------
-r1584 | vlefevre | 2001-11-28 17:09:37 +0000 (Wed, 28 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/atan.c
-
-Possible integer overflow fixed.
-
-------------------------------------------------------------------------
-r1583 | vlefevre | 2001-11-28 16:54:20 +0000 (Wed, 28 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/asin.c
- M /trunk/atan.c
-
-Particular cases fixed.
-
-------------------------------------------------------------------------
-r1582 | vlefevre | 2001-11-25 15:24:31 +0000 (Sun, 25 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/trunc.c
-
-Overflow support.
-
-------------------------------------------------------------------------
-r1581 | vlefevre | 2001-11-25 14:44:49 +0000 (Sun, 25 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/trunc.c
-
-K&R -> ISO C prototype.
-
-------------------------------------------------------------------------
-r1580 | vlefevre | 2001-11-25 08:04:07 +0000 (Sun, 25 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/div_2exp.c
-
-mpfr_div_2exp rewritten.
-
-------------------------------------------------------------------------
-r1579 | vlefevre | 2001-11-25 07:49:47 +0000 (Sun, 25 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mul_2exp.c
-
-mpfr_mul_2exp rewritten.
-
-------------------------------------------------------------------------
-r1578 | vlefevre | 2001-11-25 06:53:41 +0000 (Sun, 25 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-Overflow support.
-
-------------------------------------------------------------------------
-r1577 | vlefevre | 2001-11-25 06:20:35 +0000 (Sun, 25 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/init2.c
- M /trunk/mpfr-impl.h
- M /trunk/round.c
-
-Casts to size_t added (safer and could be required in the future).
-
-------------------------------------------------------------------------
-r1576 | vlefevre | 2001-11-23 16:39:25 +0000 (Fri, 23 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Minor change.
-
-------------------------------------------------------------------------
-r1575 | vlefevre | 2001-11-23 16:28:08 +0000 (Fri, 23 Nov 2001) | 5 lines
-Changed paths:
- M /trunk/mul.c
-
-mpfr_mul partially rewritten:
- * Integer overflows almost completely avoided.
- * Now supports signed zeros and overflows.
-Not tested yet.
-
-------------------------------------------------------------------------
-r1574 | vlefevre | 2001-11-22 17:21:08 +0000 (Thu, 22 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-mpfr_can_round_raw: integer overflows checked and code duplication avoided.
-
-------------------------------------------------------------------------
-r1573 | vlefevre | 2001-11-22 15:32:44 +0000 (Thu, 22 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-More bugs.
-
-------------------------------------------------------------------------
-r1572 | vlefevre | 2001-11-22 12:48:20 +0000 (Thu, 22 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/round.c
-
-mpfr_can_round and mpfr_can_round_raw: prototypes changed.
-
-------------------------------------------------------------------------
-r1571 | vlefevre | 2001-11-21 20:40:47 +0000 (Wed, 21 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1570 | vlefevre | 2001-11-21 20:07:35 +0000 (Wed, 21 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- A /trunk/add_one_ulp.c
- D /trunk/add_ulp.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_z.c
- A /trunk/sub_one_ulp.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/texp.c
- M /trunk/tests/tsqrt.c
-
-mpfr_add_one_ulp and mpfr_sub_one_ulp changed.
-
-------------------------------------------------------------------------
-r1569 | vlefevre | 2001-11-21 15:50:45 +0000 (Wed, 21 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/init2.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/round.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_rnd.c
-
-Added MPFR_PREC_MIN and MPFR_PREC_MAX.
-
-------------------------------------------------------------------------
-r1568 | vlefevre | 2001-11-21 14:06:36 +0000 (Wed, 21 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/init2.c
-
-Error test -> assert.
-mp_prec_t -> mp_size_t.
-
-------------------------------------------------------------------------
-r1567 | vlefevre | 2001-11-20 14:10:05 +0000 (Tue, 20 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tround.c
-
-Test added.
-
-------------------------------------------------------------------------
-r1566 | vlefevre | 2001-11-20 14:09:55 +0000 (Tue, 20 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/round.c
-
-mpfr_round rewritten.
-mpfr_round_raw_generic: NULL changed to 0 as not necessarily defined.
-
-------------------------------------------------------------------------
-r1565 | vlefevre | 2001-11-20 13:41:41 +0000 (Tue, 20 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Added macro MPFR_SET_ABSSIZE.
-
-------------------------------------------------------------------------
-r1564 | vlefevre | 2001-11-20 02:17:32 +0000 (Tue, 20 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-mpfr_round: Check for overflow.
-
-------------------------------------------------------------------------
-r1563 | vlefevre | 2001-11-17 03:58:19 +0000 (Sat, 17 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/sub1.c
-
-Some type changes.
-
-------------------------------------------------------------------------
-r1562 | vlefevre | 2001-11-16 17:58:50 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/add1.c
- M /trunk/mpz_set_fr.c
-
-Integer overflows checked.
-
-------------------------------------------------------------------------
-r1561 | vlefevre | 2001-11-16 17:16:31 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
-
-MPFR_ASSERTN instead of fprintf + exit.
-
-------------------------------------------------------------------------
-r1560 | vlefevre | 2001-11-16 17:10:30 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-GMP assert mechanism: macros changed until GMP is fixed.
-
-------------------------------------------------------------------------
-r1559 | zimmerma | 2001-11-16 17:04:15 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-version -> 2002
-removed executable flag
-
-------------------------------------------------------------------------
-r1558 | zimmerma | 2001-11-16 14:38:24 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/exp_2.c
- M /trunk/log.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/print_raw.c
- M /trunk/sub1.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/teuler.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
-
-mpfr_print_raw -> mpfr_print_binary
-
-------------------------------------------------------------------------
-r1557 | zimmerma | 2001-11-16 14:15:57 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/init2.c
-
-split from init.c
-
-------------------------------------------------------------------------
-r1556 | daney | 2001-11-16 14:14:10 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/expm1.c
- M /trunk/log1p.c
- M /trunk/tanh.c
-
-remove math.h
-
-------------------------------------------------------------------------
-r1555 | daney | 2001-11-16 14:04:13 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/sinh.c
-
-remve math.h
-
-------------------------------------------------------------------------
-r1554 | zimmerma | 2001-11-16 14:04:06 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added one test
-
-------------------------------------------------------------------------
-r1553 | daney | 2001-11-16 14:00:29 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/atanh.c
-
-remove math.h
-
-------------------------------------------------------------------------
-r1552 | zimmerma | 2001-11-16 13:54:55 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/init.c
-
-init -> init + init2.
-
-------------------------------------------------------------------------
-r1551 | daney | 2001-11-16 13:54:32 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/asinh.c
-
-remove math.h
-
-------------------------------------------------------------------------
-r1550 | hanrot | 2001-11-16 13:27:50 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Ajoute retours chariots dans div.c, etc.
-
-------------------------------------------------------------------------
-r1549 | hanrot | 2001-11-16 13:23:43 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-if () remplace par if ( ==0) ou if ( != 0)
-
-------------------------------------------------------------------------
-r1548 | zimmerma | 2001-11-16 13:22:13 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/TODO
- M /trunk/add_ui.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atanh.c
- M /trunk/clear.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fma.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/isinteger.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/log_base_10.c
- M /trunk/log_base_2.c
- M /trunk/minmax.c
- M /trunk/mul.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/print_raw.c
- M /trunk/rnd_mode.c
- M /trunk/set_rnd.c
- M /trunk/set_str_raw.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/Makefile.in
- M /trunk/ui_pow.c
-
-removed K&R function headers
-
-------------------------------------------------------------------------
-r1547 | hanrot | 2001-11-16 13:19:50 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-Beuh ?
-
-------------------------------------------------------------------------
-r1546 | hanrot | 2001-11-16 13:19:42 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/inp_str.c
-
-return -> MPFR_RET, patch d'un leak dans inp_str.c
-
-------------------------------------------------------------------------
-r1545 | zimmerma | 2001-11-16 13:09:07 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-changed to use GMP assert mechanism
-
-------------------------------------------------------------------------
-r1544 | daney | 2001-11-16 12:55:53 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
-
-remove stdio.h math.h
-
-------------------------------------------------------------------------
-r1543 | zimmerma | 2001-11-16 12:54:09 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/euler.c
-
-assert -> MPFR_ASSERT
-
-------------------------------------------------------------------------
-r1542 | daney | 2001-11-16 12:52:55 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-remove stdio math .h
-
-------------------------------------------------------------------------
-r1541 | daney | 2001-11-16 12:50:31 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/isinteger.c
-
-remove stdio.h math.h
-
-------------------------------------------------------------------------
-r1540 | zimmerma | 2001-11-16 12:49:36 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
- M /trunk/sub1.c
-
-ASSERT_ALWAYS -> MPFR_ASSERTN
-
-------------------------------------------------------------------------
-r1539 | zimmerma | 2001-11-16 12:39:30 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added COPYING.LIB
-
-------------------------------------------------------------------------
-r1538 | zimmerma | 2001-11-16 12:38:56 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/COPYING
-
-replaced by GPL
-
-------------------------------------------------------------------------
-r1537 | daney | 2001-11-16 12:34:00 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/factorial.c
-
-remove limits.h
-
-------------------------------------------------------------------------
-r1536 | zimmerma | 2001-11-16 12:32:48 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/add.c
- M /trunk/add1.c
- M /trunk/add_ui.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/asin.c
- M /trunk/asinh.c
- M /trunk/atan.c
- M /trunk/atanh.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp2.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_ui.c
- M /trunk/copysign.c
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/dim.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/euler.c
- M /trunk/exceptions.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/expm1.c
- M /trunk/extract.c
- M /trunk/factorial.c
- M /trunk/fma.c
- M /trunk/gamma.c
- M /trunk/gammaPiAGMformula.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/gmp_op.c
- M /trunk/hypot.c
- M /trunk/init.c
- M /trunk/inp_str.c
- M /trunk/isinf.c
- M /trunk/isinteger.c
- M /trunk/isnan.c
- M /trunk/isnum.c
- M /trunk/log.c
- M /trunk/log1p.c
- M /trunk/log2.c
- M /trunk/log_base_10.c
- M /trunk/log_base_2.c
- M /trunk/minmax.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfi.c
- M /trunk/mpfi.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/pow_si.c
- M /trunk/pow_ui.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/rnd_mode.c
- M /trunk/round.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sqrtrem.c
- M /trunk/srandom.h
- M /trunk/sub.c
- M /trunk/sub1.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tan.c
- M /trunk/tanh.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tacosh.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tasin.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatan.c
- M /trunk/tests/tatanh.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tcosh.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/teuler.c
- M /trunk/tests/texceptions.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/texpm1.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tfma.c
- M /trunk/tests/tgamma.c
- M /trunk/tests/tgeneric.c
- M /trunk/tests/tget_d.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/thypot.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog1p.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tlog_base_10.c
- M /trunk/tests/tlog_base_2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpi.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tpow3.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tround.c
- M /trunk/tests/tset.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_pow.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/trunc.c
- M /trunk/ui_div.c
- M /trunk/ui_pow.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-changed Library GPL to Lesser GPL
-
-------------------------------------------------------------------------
-r1535 | zimmerma | 2001-11-16 12:31:12 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/COPYING.LIB
-
-GNU Lesser General Public License, version 2.1
-
-------------------------------------------------------------------------
-r1534 | daney | 2001-11-16 12:30:42 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/ui_pow.c
-
-remove limits.h math.h
-
-------------------------------------------------------------------------
-r1533 | zimmerma | 2001-11-16 12:27:02 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/replace_all
-
-now treats all *.h
-
-------------------------------------------------------------------------
-r1532 | daney | 2001-11-16 12:25:25 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-remove the proto, remove math.h
-
-------------------------------------------------------------------------
-r1531 | zimmerma | 2001-11-16 12:21:07 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-removed DEBUG's
-
-------------------------------------------------------------------------
-r1530 | zimmerma | 2001-11-16 12:19:39 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-removed old patch for GMP 2.xx
-
-------------------------------------------------------------------------
-r1529 | zimmerma | 2001-11-16 12:17:56 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/eq.c
- M /trunk/swap.c
- M /trunk/urandomb.c
-
-GNU MP -> MPFR
-
-------------------------------------------------------------------------
-r1528 | zimmerma | 2001-11-16 12:08:08 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/add_ulp.c
-
-added year 2001 in copyright line
-
-------------------------------------------------------------------------
-r1527 | zimmerma | 2001-11-16 11:18:52 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/thyperbolic.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpi.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
-
-added year 2001 in copyright line
-
-------------------------------------------------------------------------
-r1526 | zimmerma | 2001-11-16 11:18:00 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/cmp.c
- M /trunk/cmp_abs.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/dump.c
- M /trunk/exp3.c
- M /trunk/exp_2.c
- M /trunk/get_str.c
- M /trunk/init.c
- M /trunk/inp_str.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr-impl.h
- M /trunk/mpfr-test.h
- M /trunk/mpfr.h
- M /trunk/mpz_set_fr.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/out_str.c
- M /trunk/pow_ui.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/round.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_str.c
- M /trunk/set_z.c
- M /trunk/sqrtrem.c
- M /trunk/sub_ui.c
- M /trunk/trunc.c
- M /trunk/ui_div.c
- M /trunk/ui_pow_ui.c
- M /trunk/ui_sub.c
-
-added year 2001 in copyright line
-removed #if __STDC__
-
-------------------------------------------------------------------------
-r1525 | zimmerma | 2001-11-16 11:15:29 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- D /trunk/sin_cos.c
-
-now two separate files cos.c and sin.c
-
-------------------------------------------------------------------------
-r1524 | zimmerma | 2001-11-16 10:43:04 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/clear.c
- M /trunk/pi.c
- M /trunk/urandomb.c
-
-added year 2001 in copyright line
-
-------------------------------------------------------------------------
-r1523 | zimmerma | 2001-11-16 10:38:25 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/BUGS
-
-updated
-
-------------------------------------------------------------------------
-r1522 | zimmerma | 2001-11-16 10:26:46 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- D /trunk/div2.c
-
-old version, removed
-
-------------------------------------------------------------------------
-r1521 | zimmerma | 2001-11-16 10:16:37 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added isinf and isnum (split from isnan)
-
-------------------------------------------------------------------------
-r1520 | zimmerma | 2001-11-16 10:16:21 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/isinf.c
- A /trunk/isnum.c
-
-new files (split from isnan.c)
-
-------------------------------------------------------------------------
-r1519 | zimmerma | 2001-11-16 10:14:44 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/asinh.c
- M /trunk/atanh.c
- M /trunk/copysign.c
- M /trunk/cosh.c
-
-removed prototype already in mpfr.h
-
-------------------------------------------------------------------------
-r1518 | zimmerma | 2001-11-16 10:14:27 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-translated french comments to english
-
-------------------------------------------------------------------------
-r1517 | zimmerma | 2001-11-16 10:14:08 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added mpfr_sub
-
-------------------------------------------------------------------------
-r1516 | zimmerma | 2001-11-16 10:13:12 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/atan.c
- M /trunk/cos.c
- M /trunk/exp_2.c
-
-added static to local functions
-
-------------------------------------------------------------------------
-r1515 | zimmerma | 2001-11-16 10:12:42 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/cmp2.c
-
-1 -> MP_LIMB_T_ONE
-
-------------------------------------------------------------------------
-r1514 | zimmerma | 2001-11-16 10:11:20 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/div_ui.c
-
-1 -> BITS_PER_MP_LIMB
-
-------------------------------------------------------------------------
-r1513 | zimmerma | 2001-11-16 10:10:48 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/euler.c
-
-added static to local functions
-removed prototype already in mpfr.h
-
-------------------------------------------------------------------------
-r1512 | zimmerma | 2001-11-16 10:10:29 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-removed mpfr_exp2_si (not used)
-
-------------------------------------------------------------------------
-r1511 | zimmerma | 2001-11-16 10:10:07 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/exp3.c
-
-added static to local functions
-translated french comments to english
-
-------------------------------------------------------------------------
-r1510 | zimmerma | 2001-11-16 10:09:29 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/expm1.c
- M /trunk/log1p.c
-
-translated french comments to english
-removed prototype already in mpfr.h
-
-------------------------------------------------------------------------
-r1509 | zimmerma | 2001-11-16 10:09:09 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/factorial.c
-
-initialized inexact to 0
-
-------------------------------------------------------------------------
-r1508 | zimmerma | 2001-11-16 10:08:47 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/generic.c
-
-used TMP_ALLOC
-translated french comments to english
-
-------------------------------------------------------------------------
-r1507 | zimmerma | 2001-11-16 10:08:18 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-simplified test
-
-------------------------------------------------------------------------
-r1506 | zimmerma | 2001-11-16 10:08:04 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/isnan.c
-
-moved inf_p and number_p to different files
-
-------------------------------------------------------------------------
-r1505 | zimmerma | 2001-11-16 10:06:38 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/log2.c
-
-added static to local functions
-explained threshold
-
-------------------------------------------------------------------------
-r1504 | zimmerma | 2001-11-16 10:06:03 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/minmax.c
-
-removed prototypes already in mpfr.h
-
-------------------------------------------------------------------------
-r1503 | zimmerma | 2001-11-16 10:05:45 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-does not include stdio.h any more
-
-------------------------------------------------------------------------
-r1502 | zimmerma | 2001-11-16 10:05:01 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
-
-added stdio.h
-
-------------------------------------------------------------------------
-r1501 | zimmerma | 2001-11-16 10:04:07 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/add_ulp.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/print_raw.c
- M /trunk/round.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/trunc.c
-
-1 -> BITS_PER_MP_LIMB
-1 << (BITS_PER_MP_LIMB - 1) -> MP_LIMB_T_HIGHBIT
-
-------------------------------------------------------------------------
-r1500 | zimmerma | 2001-11-16 09:40:02 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/out_str.c
- M /trunk/reldiff.c
-
-removed french comment
-
-------------------------------------------------------------------------
-r1499 | zimmerma | 2001-11-16 09:39:45 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/pi.c
-
-added static to local functions
-
-------------------------------------------------------------------------
-r1498 | zimmerma | 2001-11-16 09:39:26 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/pow_si.c
- M /trunk/sinh.c
- M /trunk/tanh.c
-
-removed prototype already in mpfr.h
-
-------------------------------------------------------------------------
-r1497 | zimmerma | 2001-11-16 09:39:11 +0000 (Fri, 16 Nov 2001) | 4 lines
-Changed paths:
- M /trunk/print_raw.c
-
-1 -> BITS_PER_MP_LIMB
-translated french comments to english
-added static to local functions
-
-------------------------------------------------------------------------
-r1496 | zimmerma | 2001-11-16 09:38:47 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/sub1.c
- M /trunk/trunc.c
-
-1 -> BITS_PER_MP_LIMB
-
-------------------------------------------------------------------------
-r1495 | zimmerma | 2001-11-16 09:37:52 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/round.c
-
-1 -> BITS_PER_MP_LIMB
-translated french comments to english
-
-------------------------------------------------------------------------
-r1494 | zimmerma | 2001-11-16 09:37:15 +0000 (Fri, 16 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/set_d.c
- M /trunk/sqrtrem.c
-
-1 -> BITS_PER_MP_LIMB
-added static to local functions
-
-------------------------------------------------------------------------
-r1493 | zimmerma | 2001-11-16 09:33:57 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/ui_pow.c
-
-removed proto already in mpfr.h
-
-------------------------------------------------------------------------
-r1492 | zimmerma | 2001-11-16 09:33:33 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/urandomb.c
-
-1 -> MP_LIMB_T_ONE
-
-------------------------------------------------------------------------
-r1491 | zimmerma | 2001-11-16 09:32:45 +0000 (Fri, 16 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teuler.c
- M /trunk/tests/texp.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tpi.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
-
-added stdio.h
-
-------------------------------------------------------------------------
-r1490 | vlefevre | 2001-11-15 18:11:07 +0000 (Thu, 15 Nov 2001) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/add.c
- A /trunk/add1.c
- M /trunk/sub.c
- A /trunk/sub1.c
-
-add.c -> add.c & add1.c
-sub.c -> sub.c & sub1.c + some changes.
-
-------------------------------------------------------------------------
-r1489 | zimmerma | 2001-11-13 09:33:07 +0000 (Tue, 13 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-iff the results are exact -> iff the result is exact
-
-------------------------------------------------------------------------
-r1488 | vlefevre | 2001-11-10 01:45:36 +0000 (Sat, 10 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/cmp.c
- M /trunk/cmp_abs.c
- M /trunk/exceptions.c
- M /trunk/neg.c
- M /trunk/round.c
- M /trunk/save_expo.c
- M /trunk/set.c
- M /trunk/set_si.c
- M /trunk/set_ui.c
-
-GNU coding style. K&R function headers removed.
-
-------------------------------------------------------------------------
-r1487 | vlefevre | 2001-11-10 00:47:44 +0000 (Sat, 10 Nov 2001) | 5 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-MP_LIMB_T_ONE defined.
-mp_size_unsigned_t defined.
-Important bugs fixed (in particular when int has fewer than 32 bits).
-Still unavoidable possible bugs due to the fact that mp_size_t is signed.
-
-------------------------------------------------------------------------
-r1486 | daney | 2001-11-09 11:24:05 +0000 (Fri, 09 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tgamma.c
-
-add tests file for gamma
-
-------------------------------------------------------------------------
-r1485 | daney | 2001-11-09 11:23:33 +0000 (Fri, 09 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/gammaPiAGMformula.c
-
-add gamma function an other version
-
-------------------------------------------------------------------------
-r1484 | daney | 2001-11-09 11:23:04 +0000 (Fri, 09 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/gamma.c
-
-add gamma function
-
-------------------------------------------------------------------------
-r1483 | zimmerma | 2001-11-09 06:24:52 +0000 (Fri, 09 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mis a` jour valeur de retour de mpfr_tan
-
-------------------------------------------------------------------------
-r1482 | vlefevre | 2001-11-09 01:38:45 +0000 (Fri, 09 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-Some -'s missing in floating-point.
-
-------------------------------------------------------------------------
-r1481 | zimmerma | 2001-11-08 23:15:59 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-modifs suite aux remarques de Nathalie
-
-------------------------------------------------------------------------
-r1480 | daney | 2001-11-08 17:48:33 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-remove some name of variables
-
-------------------------------------------------------------------------
-r1479 | vlefevre | 2001-11-08 17:14:01 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/cmp2.c
- D /trunk/pow2.c
-
-cmp2.c: Integer overflows checked.
-
-------------------------------------------------------------------------
-r1478 | vlefevre | 2001-11-08 17:11:36 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/isinteger.c
- M /trunk/mpfr.h
- M /trunk/pow.c
-
-Update.
-
-------------------------------------------------------------------------
-r1477 | vlefevre | 2001-11-08 16:42:30 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Fix.
-
-------------------------------------------------------------------------
-r1476 | daney | 2001-11-08 16:37:47 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-suppress variable name in dim min max
-
-------------------------------------------------------------------------
-r1475 | daney | 2001-11-08 16:23:29 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/isinteger.c
-
-export isinteger in the file isinteger.c
-
-------------------------------------------------------------------------
-r1474 | daney | 2001-11-08 16:21:56 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/pow_si.c
-
-exporte pow_si from pow2.c to pow_si.c
-
-------------------------------------------------------------------------
-r1473 | daney | 2001-11-08 16:21:06 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-rename pow2.c in pow.c (source for mpfr_pow)
-
-------------------------------------------------------------------------
-r1472 | daney | 2001-11-08 16:19:49 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/ui_pow_ui.c
-
-add ui_pow_ui.c (initially in pow.c)
-
-------------------------------------------------------------------------
-r1471 | daney | 2001-11-08 16:19:18 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- A /trunk/pow_ui.c
-
-add pow_ui.c file (initially in pow.c)
-
-------------------------------------------------------------------------
-r1470 | vlefevre | 2001-11-08 15:56:09 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/cmp2.c
- M /trunk/mpfr-impl.h
-
-mpfr_cmp2: return type changed to mp_prec_t.
-
-------------------------------------------------------------------------
-r1469 | daney | 2001-11-08 14:53:54 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-add function test4 for 3 input test + fma tests
-
-------------------------------------------------------------------------
-r1468 | vlefevre | 2001-11-08 03:04:00 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Macros added.
-
-------------------------------------------------------------------------
-r1467 | vlefevre | 2001-11-08 02:15:36 +0000 (Thu, 08 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-MP_LIMB_T_MAX instead of (mp_limb_t) -1 (a little nicer...).
-
-------------------------------------------------------------------------
-r1466 | vlefevre | 2001-11-06 17:05:41 +0000 (Tue, 06 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Code clean-up.
-
-------------------------------------------------------------------------
-r1465 | vlefevre | 2001-11-05 15:44:24 +0000 (Mon, 05 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
-
-Prototypes for K&R C.
-
-------------------------------------------------------------------------
-r1464 | vlefevre | 2001-11-05 09:58:14 +0000 (Mon, 05 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-mpfr_round_raw_generic prototype fixed.
-
-------------------------------------------------------------------------
-r1463 | daney | 2001-11-01 14:15:23 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/asin.c
-
-clear xp for Nan Inf or 0 are returned
-
-------------------------------------------------------------------------
-r1462 | daney | 2001-11-01 14:11:48 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-clear variable if an error is return
-
-------------------------------------------------------------------------
-r1461 | daney | 2001-11-01 14:10:50 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/atanh.c
-
-clear x for Nan inf 0 return
-
-------------------------------------------------------------------------
-r1460 | daney | 2001-11-01 14:10:10 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/asinh.c
-
-clear x for Nan Inf 0 return
-
-------------------------------------------------------------------------
-r1459 | daney | 2001-11-01 14:05:15 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/expm1.c
-
-clear te
-
-------------------------------------------------------------------------
-r1458 | vlefevre | 2001-11-01 12:20:32 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-Added prototype.
-
-------------------------------------------------------------------------
-r1457 | vlefevre | 2001-11-01 11:53:58 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1456 | zimmerma | 2001-11-01 10:05:27 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-fixed MLK's
-
-------------------------------------------------------------------------
-r1455 | zimmerma | 2001-11-01 09:44:03 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/pow2.c
-
-fixed MLK's in mpfr_isinteger
-
-------------------------------------------------------------------------
-r1454 | zimmerma | 2001-11-01 09:43:32 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tpow3.c
-
-fixed MLK's
-
-------------------------------------------------------------------------
-r1453 | zimmerma | 2001-11-01 09:04:19 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tui_pow.c
-
-fixed missing mpfr_clear's
-
-------------------------------------------------------------------------
-r1452 | zimmerma | 2001-11-01 08:02:00 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-added missing mpfr_clear
-
-------------------------------------------------------------------------
-r1451 | zimmerma | 2001-11-01 07:20:30 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added clear's in bug_ddefour
-
-------------------------------------------------------------------------
-r1450 | zimmerma | 2001-11-01 00:42:47 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-added mpfr_clear's
-
-------------------------------------------------------------------------
-r1449 | zimmerma | 2001-11-01 00:10:46 +0000 (Thu, 01 Nov 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-fixed MLK's
-
-------------------------------------------------------------------------
-r1448 | zimmerma | 2001-10-31 23:12:41 +0000 (Wed, 31 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-fixed MLK for Inf or Nan
-
-------------------------------------------------------------------------
-r1447 | zimmerma | 2001-10-31 22:52:06 +0000 (Wed, 31 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-fixed MLK in check_case_2
-
-------------------------------------------------------------------------
-r1446 | daney | 2001-10-31 10:16:21 +0000 (Wed, 31 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-rename factorial -> fac_ui
-
-------------------------------------------------------------------------
-r1445 | rouillie | 2001-10-30 15:26:27 +0000 (Tue, 30 Oct 2001) | 4 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/gmp_op.c
- M /trunk/mpfr.h
- M /trunk/tests/Makefile.in
-
-Change mpfr_<op>_mpz to mpfr_<op>_z
-Change mpfr_<op>_mpq to mpfr_<op>_q
-where <op> is mul,div,add,sub
-
-------------------------------------------------------------------------
-r1444 | daney | 2001-10-30 10:30:48 +0000 (Tue, 30 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/factorial.c
-
-correct factorial -> fac_ui in comments
-
-------------------------------------------------------------------------
-r1443 | daney | 2001-10-30 10:24:08 +0000 (Tue, 30 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tfactorial.c
-
-rename tfactorial -> fac_ui
-
-------------------------------------------------------------------------
-r1442 | daney | 2001-10-30 10:23:25 +0000 (Tue, 30 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/factorial.c
- M /trunk/mpfr.h
-
-rename factorial -> fac_ui
-
-------------------------------------------------------------------------
-r1441 | vlefevre | 2001-10-27 11:16:02 +0000 (Sat, 27 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1440 | zimmerma | 2001-10-26 16:01:03 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tsub_ui.c
-
-drand -> drand48
-
-------------------------------------------------------------------------
-r1439 | zimmerma | 2001-10-26 15:49:21 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-put MAX_PREC back to 100
-
-------------------------------------------------------------------------
-r1438 | zimmerma | 2001-10-26 15:46:37 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added test for inexact flag
-
-------------------------------------------------------------------------
-r1437 | zimmerma | 2001-10-26 15:45:42 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-use MPFR_RET_NAN and MPFR_RET
-
-------------------------------------------------------------------------
-r1436 | zimmerma | 2001-10-26 15:42:23 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-removed MPFR_DEBUG_LEVEL definition
-
-------------------------------------------------------------------------
-r1435 | zimmerma | 2001-10-26 15:39:21 +0000 (Fri, 26 Oct 2001) | 5 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-mpfr_set_q and mpfr_abs now return an int
-mpfr_pow_ui and mpfr_ui_pow_ui now implement exact rounding
-updated the documentation of the mpfr_*pow* functions
-removed some internal functions
-
-------------------------------------------------------------------------
-r1434 | zimmerma | 2001-10-26 15:32:23 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-implemented exact rounding (but no ternary flag)
-
-------------------------------------------------------------------------
-r1433 | daney | 2001-10-26 15:31:42 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-add some flags
-
-------------------------------------------------------------------------
-r1432 | daney | 2001-10-26 15:29:28 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-mixed version between DD and Pau => (gestion des flag inexacte dirige)
-
-------------------------------------------------------------------------
-r1431 | daney | 2001-10-26 15:28:31 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-rien
-
-------------------------------------------------------------------------
-r1430 | zimmerma | 2001-10-26 13:48:33 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-MAX_PREC included
-
-------------------------------------------------------------------------
-r1429 | zimmerma | 2001-10-26 13:31:55 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_q.c
-
-implemented inexact flag
-
-------------------------------------------------------------------------
-r1428 | hanrot | 2001-10-26 13:28:00 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Clearing high part of rem2.
-
-------------------------------------------------------------------------
-r1427 | rouillie | 2001-10-26 13:24:02 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-adds gmp_op.c
-
-------------------------------------------------------------------------
-r1426 | zimmerma | 2001-10-26 13:23:12 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr_set_q now returns an int
-
-------------------------------------------------------------------------
-r1425 | zimmerma | 2001-10-26 13:22:22 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_q.c
-
-added test for inexact flag
-
-------------------------------------------------------------------------
-r1424 | rouillie | 2001-10-26 13:19:40 +0000 (Fri, 26 Oct 2001) | 3 lines
-Changed paths:
- A /trunk/gmp_op.c
-
-Adds the file gmp_op.c containing the implementations of operations between
-mpfr and mpz/mpq data
-
-------------------------------------------------------------------------
-r1423 | daney | 2001-10-26 13:05:58 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-err <0 => is now tester
-
-------------------------------------------------------------------------
-r1422 | hanrot | 2001-10-26 13:00:54 +0000 (Fri, 26 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-Patch for bits shifted out when the high word of the quotient is nonzero.
-Induced error on inexact flag (and hence on rounding in some cases).
-
-------------------------------------------------------------------------
-r1421 | daney | 2001-10-26 12:46:30 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/copysign.c
-
-add copysign.c
-
-------------------------------------------------------------------------
-r1420 | zimmerma | 2001-10-26 12:41:45 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added one test
-
-------------------------------------------------------------------------
-r1419 | daney | 2001-10-26 12:37:43 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/dim.c
-
-simplify dim
-
-------------------------------------------------------------------------
-r1418 | daney | 2001-10-26 12:32:57 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/thypot.c
-
-add exact flag
-
-------------------------------------------------------------------------
-r1417 | daney | 2001-10-26 12:24:00 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/log_base_10.c
- M /trunk/log_base_2.c
- M /trunk/pow2.c
-
-err => long int
-
-------------------------------------------------------------------------
-r1416 | zimmerma | 2001-10-26 12:22:28 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-added one test
-
-------------------------------------------------------------------------
-r1415 | zimmerma | 2001-10-26 12:21:46 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log1p.c
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r1414 | zimmerma | 2001-10-26 12:21:08 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-can_round return 0 for b=0
-
-------------------------------------------------------------------------
-r1413 | daney | 2001-10-26 12:17:06 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-add thypot
-
-------------------------------------------------------------------------
-r1412 | daney | 2001-10-26 11:51:19 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-add coopysign
-
-------------------------------------------------------------------------
-r1411 | daney | 2001-10-26 11:50:27 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-add copysign
-
-------------------------------------------------------------------------
-r1410 | daney | 2001-10-26 11:47:46 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/expm1.c
-
-correct mp_prec_t err => long int
-
-------------------------------------------------------------------------
-r1409 | daney | 2001-10-26 11:47:09 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log1p.c
-
-correst mp_prec_t err => long int
-
-------------------------------------------------------------------------
-r1408 | rouillie | 2001-10-26 11:34:26 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-Add multiplication/division/addition/subtraction by mpz and mpq
-
-------------------------------------------------------------------------
-r1407 | zimmerma | 2001-10-26 10:56:14 +0000 (Fri, 26 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added two tests
-fixed bug in generic tests (one more bit is needed to get an exact result)
-
-------------------------------------------------------------------------
-r1406 | zimmerma | 2001-10-26 10:55:36 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-fixed pb with exact results not detected (ck was < 0)
-
-------------------------------------------------------------------------
-r1405 | hanrot | 2001-10-26 09:12:13 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-Rien.
-
-------------------------------------------------------------------------
-r1404 | hanrot | 2001-10-26 09:11:07 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Patch for the computation of the u_lo + r part of the remainder when u_lo = 0.
-
-------------------------------------------------------------------------
-r1403 | zimmerma | 2001-10-26 08:43:09 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tsub.c
- M /trunk/tests/tui_div.c
-
-added test for inexact flag
-
-------------------------------------------------------------------------
-r1402 | zimmerma | 2001-10-26 08:41:29 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed pbs with inexact flag
-
-------------------------------------------------------------------------
-r1401 | zimmerma | 2001-10-26 08:41:05 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-now mpfr_div and mpfr_ui_div return an int
-
-------------------------------------------------------------------------
-r1400 | zimmerma | 2001-10-26 08:40:13 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/ui_div.c
-
-implemented ternary flag in mpfr_ui_div
-
-------------------------------------------------------------------------
-r1399 | zimmerma | 2001-10-26 08:39:28 +0000 (Fri, 26 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/log_base_2.c
-
-removed unnecessary CLEAR_FLAGS
-used MPFR_RET_NAN
-
-------------------------------------------------------------------------
-r1398 | zimmerma | 2001-10-26 08:38:58 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tlog_base_2.c
-
-reduced number of tests
-
-------------------------------------------------------------------------
-r1397 | zimmerma | 2001-10-26 08:31:58 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_10.c
-
-removed unnecessary CLEAR_FLAGS
-
-------------------------------------------------------------------------
-r1396 | zimmerma | 2001-10-26 08:30:00 +0000 (Fri, 26 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-improved mpfr_compare
-fixed wrong function name for mpfr_log2
-
-------------------------------------------------------------------------
-r1395 | zimmerma | 2001-10-26 08:23:51 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-rewritten to implement ternary inexact flag
-
-------------------------------------------------------------------------
-r1394 | zimmerma | 2001-10-26 08:15:24 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-fixed generic test (pb with double rounding)
-
-------------------------------------------------------------------------
-r1393 | zimmerma | 2001-10-26 07:46:30 +0000 (Fri, 26 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-increased MAX_PREC
-
-------------------------------------------------------------------------
-r1392 | hanrot | 2001-10-25 22:03:55 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-Changed the type of err from mp_prec_t (unsigned) to int.
-
-------------------------------------------------------------------------
-r1391 | hanrot | 2001-10-25 21:32:42 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.in
- M /trunk/tests/tdiv.c
-
-Added tests for inexact flag.
-
-------------------------------------------------------------------------
-r1390 | hanrot | 2001-10-25 21:32:33 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/algorithms.tex
- M /trunk/configure
- M /trunk/div.c
-
-Patch for even rounding.
-
-------------------------------------------------------------------------
-r1389 | daney | 2001-10-25 17:12:26 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_2.c
-
-rien
-
-------------------------------------------------------------------------
-r1388 | daney | 2001-10-25 17:05:29 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_10.c
-
-rien
-
-------------------------------------------------------------------------
-r1387 | vlefevre | 2001-10-25 17:00:10 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-Warning avoided.
-
-------------------------------------------------------------------------
-r1386 | zimmerma | 2001-10-25 17:00:06 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tfma
-
-------------------------------------------------------------------------
-r1385 | zimmerma | 2001-10-25 16:53:36 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tfma.c
-
-slong -> t
-
-------------------------------------------------------------------------
-r1384 | zimmerma | 2001-10-25 16:53:05 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-nouvelew version (without loop)
-
-------------------------------------------------------------------------
-r1383 | daney | 2001-10-25 16:51:56 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/pow2.c
-
-rien
-
-------------------------------------------------------------------------
-r1382 | daney | 2001-10-25 16:50:31 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/pow2.c
- M /trunk/tests/reuse.c
-
-rien
-
-------------------------------------------------------------------------
-r1381 | daney | 2001-10-25 16:45:27 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-change
-
-------------------------------------------------------------------------
-r1380 | vlefevre | 2001-10-25 16:45:20 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1379 | daney | 2001-10-25 16:34:55 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/pow2.c
-
-correct bugs with reuse
-
-------------------------------------------------------------------------
-r1378 | daney | 2001-10-25 16:34:05 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-test for log2 log10 pow
-
-------------------------------------------------------------------------
-r1377 | hanrot | 2001-10-25 16:29:46 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/mpfr.h
-
-La division nouvelle est arrivee.
-
-------------------------------------------------------------------------
-r1376 | zimmerma | 2001-10-25 16:04:18 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-ajoute' nouveau test
-
-------------------------------------------------------------------------
-r1375 | vlefevre | 2001-10-25 15:34:17 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1374 | hanrot | 2001-10-25 15:26:36 +0000 (Thu, 25 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/round.c
-
-round_raw, round_raw2 -> round_raw_generic. Macros to simulate previous
-behaviour. Even rounding returns +- MPFR_EVEN_INEX.
-
-------------------------------------------------------------------------
-r1373 | zimmerma | 2001-10-25 15:24:11 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_10.c
-
-fixed pb with mpfr_log10(a, a) with a=-Inf
-
-------------------------------------------------------------------------
-r1372 | zimmerma | 2001-10-25 15:14:01 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added two tests
-
-------------------------------------------------------------------------
-r1371 | zimmerma | 2001-10-25 15:06:12 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-added one test
-
-------------------------------------------------------------------------
-r1370 | daney | 2001-10-25 15:03:13 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-add log2 and log10
-
-------------------------------------------------------------------------
-r1369 | daney | 2001-10-25 15:02:59 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_10.c
-
-correction for reuse
-
-------------------------------------------------------------------------
-r1368 | daney | 2001-10-25 15:02:45 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_2.c
-
-coorection for reuse
-
-------------------------------------------------------------------------
-r1367 | zimmerma | 2001-10-25 14:53:19 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/texceptions.c
-
-test file for testing exceptions
-
-------------------------------------------------------------------------
-r1366 | vlefevre | 2001-10-25 14:32:20 +0000 (Thu, 25 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/add.c
-
-mpfr_add1 completely rewritten. Overflows are checked.
-The ternary value should now be supported (but it hasn't been tested yet).
-
-------------------------------------------------------------------------
-r1365 | daney | 2001-10-25 14:04:09 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/fma.c
-
-new version
-
-------------------------------------------------------------------------
-r1364 | zimmerma | 2001-10-25 13:54:46 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added one test
-
-------------------------------------------------------------------------
-r1363 | zimmerma | 2001-10-25 13:54:27 +0000 (Thu, 25 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/tests/tgeneric.c
-
-add possibility to define a random function (default is mpfr_random)
-to get random variables in specific ranges
-
-------------------------------------------------------------------------
-r1362 | zimmerma | 2001-10-25 13:53:19 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tacosh.c
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatanh.c
-
-now use tgeneric.c
-
-------------------------------------------------------------------------
-r1361 | zimmerma | 2001-10-25 13:50:49 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added texceptions
-
-------------------------------------------------------------------------
-r1360 | zimmerma | 2001-10-25 13:49:56 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-documented exception mechanism (with Vincent Lefe`vre)
-
-------------------------------------------------------------------------
-r1359 | zimmerma | 2001-10-25 13:48:28 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tfactorial.c
-
-changed stupid test (was computing only 200!)
-
-------------------------------------------------------------------------
-r1358 | zimmerma | 2001-10-25 13:47:27 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/factorial.c
-
-implemented inexact flag
-
-------------------------------------------------------------------------
-r1357 | zimmerma | 2001-10-25 13:45:42 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
-
-1999 -> 2001
-
-------------------------------------------------------------------------
-r1356 | zimmerma | 2001-10-25 13:45:14 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-check overflow
-
-------------------------------------------------------------------------
-r1355 | zimmerma | 2001-10-25 13:39:35 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-added two tests
-
-------------------------------------------------------------------------
-r1354 | zimmerma | 2001-10-25 13:37:24 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-implemented overflow/underflow
-
-------------------------------------------------------------------------
-r1353 | daney | 2001-10-25 13:36:56 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/atanh.c
-
-correct atanh(INF)=INF exact
-
-------------------------------------------------------------------------
-r1352 | daney | 2001-10-25 13:14:54 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-correct test inf for atanh
-
-------------------------------------------------------------------------
-r1351 | zimmerma | 2001-10-25 12:52:08 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added warning for mpfr_set_d
-
-------------------------------------------------------------------------
-r1350 | daney | 2001-10-25 09:19:06 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-correct bug in tests file (test of atanh for + or - Inf)
-
-------------------------------------------------------------------------
-r1349 | zimmerma | 2001-10-25 08:37:39 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tadd_ui (forgotten?)
-
-------------------------------------------------------------------------
-r1348 | zimmerma | 2001-10-25 08:37:19 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
-
-added special test
-
-------------------------------------------------------------------------
-r1347 | zimmerma | 2001-10-25 08:36:55 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-fixed bug in rounding part when rounding towards 0 (infinite loop due to bn<an)
-
-------------------------------------------------------------------------
-r1346 | zimmerma | 2001-10-25 08:34:51 +0000 (Thu, 25 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tasinh.c
-
-added one special test
-
-------------------------------------------------------------------------
-r1345 | daney | 2001-10-24 17:33:12 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/minmax.c
-
-correct the Nan case
-
-------------------------------------------------------------------------
-r1344 | daney | 2001-10-24 17:23:08 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/dim.c
-
-add the function mpfr_dim
-
-------------------------------------------------------------------------
-r1343 | daney | 2001-10-24 17:22:36 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/minmax.c
-
-add function mpfr_min and mpfr_max
-
-------------------------------------------------------------------------
-r1342 | daney | 2001-10-24 16:12:27 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tasinh.c
- M /trunk/tests/tatanh.c
-
-correct these tesats files
-
-------------------------------------------------------------------------
-r1341 | daney | 2001-10-24 16:11:23 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/asinh.c
- M /trunk/atanh.c
- M /trunk/cosh.c
- M /trunk/sinh.c
- M /trunk/tanh.c
-
-correct some bugs
-
-------------------------------------------------------------------------
-r1340 | zimmerma | 2001-10-24 15:47:48 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added EXTRA_DIST= tgeneric.c
-
-------------------------------------------------------------------------
-r1339 | daney | 2001-10-24 15:32:28 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-remove tfma
-
-------------------------------------------------------------------------
-r1338 | daney | 2001-10-24 15:29:56 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tfma.c
-
-add tfma
-
-------------------------------------------------------------------------
-r1337 | daney | 2001-10-24 09:34:27 +0000 (Wed, 24 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/acosh.c
-
-acosh revue et corrige...+beau
-
-------------------------------------------------------------------------
-r1336 | daney | 2001-10-23 16:57:30 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-add mpfr_log10
-
-------------------------------------------------------------------------
-r1335 | daney | 2001-10-23 16:56:22 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- A /trunk/log_base_10.c
-
-add log_base_10
-
-------------------------------------------------------------------------
-r1334 | daney | 2001-10-23 16:55:58 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-add tlog_base_10
-
-------------------------------------------------------------------------
-r1333 | daney | 2001-10-23 16:55:25 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tlog_base_10.c
-
-add test file for log_base_10 function
-
-------------------------------------------------------------------------
-r1332 | daney | 2001-10-23 16:54:12 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-correct a bug in mpfr_log10 section
-
-------------------------------------------------------------------------
-r1331 | daney | 2001-10-23 13:14:13 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-add help of log10 + fma
-
-------------------------------------------------------------------------
-r1330 | daney | 2001-10-23 12:38:15 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_2.c
-
-correct particular cases
-
-------------------------------------------------------------------------
-r1329 | daney | 2001-10-23 12:33:00 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/log_base_2.c
-
-improve the clear flags
-
-------------------------------------------------------------------------
-r1328 | daney | 2001-10-23 09:41:29 +0000 (Tue, 23 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tpow3.c
-
-correction dans l'entete
-
-------------------------------------------------------------------------
-r1327 | vlefevre | 2001-10-21 07:56:29 +0000 (Sun, 21 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tdiv.c
-
-Some changes to avoid warnings.
-
-------------------------------------------------------------------------
-r1326 | vlefevre | 2001-10-21 07:12:18 +0000 (Sun, 21 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Bug fixed (char -> int).
-
-------------------------------------------------------------------------
-r1325 | vlefevre | 2001-10-19 20:47:39 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.in
-
-Update.
-
-------------------------------------------------------------------------
-r1324 | vlefevre | 2001-10-19 20:45:12 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/sub_ui.c
-
-Bugs fixed concerning the "inexact" ternary value.
-
-------------------------------------------------------------------------
-r1323 | daney | 2001-10-19 16:56:51 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-suppress thypot tgeneric
-
-------------------------------------------------------------------------
-r1322 | daney | 2001-10-19 16:53:12 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-suppress sample
-
-------------------------------------------------------------------------
-r1321 | zimmerma | 2001-10-19 16:26:47 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-void -> int as return value for mpfr_add_ui
-
-------------------------------------------------------------------------
-r1320 | zimmerma | 2001-10-19 16:26:19 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add_ui.c
-
-added ternary flag
-
-------------------------------------------------------------------------
-r1319 | zimmerma | 2001-10-19 16:24:50 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-void -> int for mpfr_add and mpfr_add_ui
-
-------------------------------------------------------------------------
-r1318 | daney | 2001-10-19 16:21:08 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/thypot.c
-
-add test for hypot
-
-------------------------------------------------------------------------
-r1317 | daney | 2001-10-19 16:15:16 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-add some test
-
-------------------------------------------------------------------------
-r1316 | daney | 2001-10-19 16:13:56 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-add some functions
-
-------------------------------------------------------------------------
-r1315 | daney | 2001-10-19 16:12:44 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-add some proto
-
-------------------------------------------------------------------------
-r1314 | daney | 2001-10-19 16:09:34 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tpow3.c
-
-add test file for pow
-
-------------------------------------------------------------------------
-r1313 | daney | 2001-10-19 16:09:01 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-add the help for pow and pow_si
-
-------------------------------------------------------------------------
-r1312 | daney | 2001-10-19 16:08:29 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/pow2.c
-
-add the function pow and pow_si
-
-------------------------------------------------------------------------
-r1311 | zimmerma | 2001-10-19 16:02:34 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added two tests for 0-c and c-0 with prec(c) > prec(a)
-
-------------------------------------------------------------------------
-r1310 | vlefevre | 2001-10-19 15:53:17 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/neg.c
-
-Removed #include <stdio.h>, "return 0;" replaced by "MPFR_RET(0);".
-
-------------------------------------------------------------------------
-r1309 | vlefevre | 2001-10-19 15:45:18 +0000 (Fri, 19 Oct 2001) | 4 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/sub.c
-
-mpfr_add1 and mpfr_sub1 prototypes moved to mpfr-impl.h (to detect clashes).
-Bug fix concerning the inexact ternary value in mpfr_sub.
-mpfr_add now returns an int (inexact ternary value unsupported if true add).
-
-------------------------------------------------------------------------
-r1308 | vlefevre | 2001-10-19 14:49:44 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-Update.
-
-------------------------------------------------------------------------
-r1307 | vlefevre | 2001-10-19 14:13:10 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-Underflow/overflow check.
-
-------------------------------------------------------------------------
-r1306 | vlefevre | 2001-10-19 14:02:01 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Documentation updated.
-
-------------------------------------------------------------------------
-r1305 | vlefevre | 2001-10-19 13:57:06 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_ui.c
-
-Comment added.
-
-------------------------------------------------------------------------
-r1304 | vlefevre | 2001-10-19 13:41:41 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-MPFR_RET(0) replaced by MPFR_RET_NAN.
-
-------------------------------------------------------------------------
-r1303 | vlefevre | 2001-10-19 13:28:41 +0000 (Fri, 19 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Macro MPFR_RET_NAN.
-
-------------------------------------------------------------------------
-r1302 | vlefevre | 2001-10-18 17:29:45 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Code clean-up in mpfr_round_raw (well... IMHO).
-
-------------------------------------------------------------------------
-r1301 | daney | 2001-10-18 15:30:04 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/ui_pow.c
-
-take in account of CHAR_BIT in ui_pow
-
-------------------------------------------------------------------------
-r1300 | zimmerma | 2001-10-18 15:21:45 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-cast to mp_limb_t was missing
-
-------------------------------------------------------------------------
-r1299 | vlefevre | 2001-10-18 15:05:45 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/acosh.c
- M /trunk/asinh.c
- M /trunk/atanh.c
- M /trunk/factorial.c
-
-BITS_PER_CHAR replaced by the standard CHAR_BIT.
-
-------------------------------------------------------------------------
-r1298 | hanrot | 2001-10-18 14:58:14 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r1297 | daney | 2001-10-18 13:55:26 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tui_pow.c
-
-add test of ui_pow
-
-------------------------------------------------------------------------
-r1296 | daney | 2001-10-18 13:54:47 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-add the help of ui_pow
-
-------------------------------------------------------------------------
-r1295 | daney | 2001-10-18 13:54:21 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/ui_pow.c
-
-add the function pow(unsign long int, mpfr_t)
-
-------------------------------------------------------------------------
-r1294 | vlefevre | 2001-10-18 13:52:48 +0000 (Thu, 18 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/configure
- M /trunk/configure.in
-
-Improved configure.in.
-configure generated by Autoconf 2.52.
-
-------------------------------------------------------------------------
-r1293 | daney | 2001-10-18 12:09:08 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-ajout du flag inexact
-
-------------------------------------------------------------------------
-r1292 | vlefevre | 2001-10-18 11:27:38 +0000 (Thu, 18 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/configure
-
-fixed and improved check for gmp.h/gmp-impl.h/config.h/gmp-mparam.h/longlong.h
-and corresponding error message
-
-------------------------------------------------------------------------
-r1291 | daney | 2001-10-18 10:38:10 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-add the help on log2
-
-------------------------------------------------------------------------
-r1290 | daney | 2001-10-18 10:36:00 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tlog_base_2.c
-
-add the test file of the log2 (log in base 2)
-
-------------------------------------------------------------------------
-r1289 | daney | 2001-10-18 10:35:11 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/log_base_2.c
-
-ajout de log2 (log en base 2)
-
-------------------------------------------------------------------------
-r1288 | daney | 2001-10-18 10:24:43 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tanh.c
-
-correst tanh(0)
-
-------------------------------------------------------------------------
-r1287 | zimmerma | 2001-10-18 10:20:41 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-added two more tests
-
-------------------------------------------------------------------------
-r1286 | zimmerma | 2001-10-18 10:20:09 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-wrong sign passed to mpfr_can_round (mp_limb_t may be unsigned)
-
-------------------------------------------------------------------------
-r1285 | daney | 2001-10-18 10:10:49 +0000 (Thu, 18 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sinh.c
-
-correct a bug for sinh(Inf)
-
-------------------------------------------------------------------------
-r1284 | daney | 2001-10-17 15:49:52 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tanh.c
-
-correct syntax of tanh.c
-
-------------------------------------------------------------------------
-r1283 | daney | 2001-10-17 15:47:03 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sinh.c
-
-correct an error
-
-------------------------------------------------------------------------
-r1282 | daney | 2001-10-17 15:42:10 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/cosh.c
-
-correct few things
-
-------------------------------------------------------------------------
-r1281 | daney | 2001-10-17 15:29:50 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/cosh.c
-
-little patch for cosh
-
-------------------------------------------------------------------------
-r1280 | daney | 2001-10-17 15:04:43 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/texpm1.c
-
-add the test function of expm1
-
-------------------------------------------------------------------------
-r1279 | daney | 2001-10-17 15:04:06 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tlog1p.c
-
-add the test of the function log1p
-
-------------------------------------------------------------------------
-r1278 | daney | 2001-10-17 15:03:04 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/expm1.c
-
-add the function expm1
-
-------------------------------------------------------------------------
-r1277 | daney | 2001-10-17 15:02:30 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/log1p.c
-
-add the function log1p
-
-------------------------------------------------------------------------
-r1276 | daney | 2001-10-17 12:50:15 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-add to mpfr.texi log1p and expm1
-
-------------------------------------------------------------------------
-r1275 | daney | 2001-10-17 12:37:46 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-actualisation de exp2.c
-
-------------------------------------------------------------------------
-r1274 | daney | 2001-10-17 12:36:51 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-actualisation de exp2
-
-------------------------------------------------------------------------
-r1273 | hanrot | 2001-10-17 10:28:27 +0000 (Wed, 17 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.in
- M /trunk/tests/tdiv.c
-
-New tests in tdiv.c.
-
-------------------------------------------------------------------------
-r1272 | hanrot | 2001-10-17 10:28:14 +0000 (Wed, 17 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/div.c
- A /trunk/div2.c
-
-New division in div.c, old one renamed in mpfr_div2. Remains to implement
-exact/inexact flag. Should not be *that* hard.
-
-------------------------------------------------------------------------
-r1271 | daney | 2001-10-16 16:02:21 +0000 (Tue, 16 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-ajout de functions pow, fma, hypot etc etc
-
-------------------------------------------------------------------------
-r1270 | zimmerma | 2001-10-16 15:48:48 +0000 (Tue, 16 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added fma.c
-
-------------------------------------------------------------------------
-r1269 | zimmerma | 2001-10-16 15:48:34 +0000 (Tue, 16 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototypes for mpfr_fma and mpfr_hypot
-
-------------------------------------------------------------------------
-r1268 | zimmerma | 2001-10-16 15:48:12 +0000 (Tue, 16 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/hypot.c
-
-small changes for inexact flag
-
-------------------------------------------------------------------------
-r1267 | zimmerma | 2001-10-16 15:41:38 +0000 (Tue, 16 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/fma.c
-
-added some cases for Inf
-implement (partly) inexact flag
-
-------------------------------------------------------------------------
-r1266 | daney | 2001-10-16 15:09:29 +0000 (Tue, 16 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/hypot.c
-
-ajout hypot
-
-------------------------------------------------------------------------
-r1265 | daney | 2001-10-16 15:06:29 +0000 (Tue, 16 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/fma.c
-
-ajout de fma
-
-------------------------------------------------------------------------
-r1264 | vlefevre | 2001-10-16 10:13:02 +0000 (Tue, 16 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-Comment: // --> /* ... */
-
-------------------------------------------------------------------------
-r1263 | zimmerma | 2001-10-15 14:19:10 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tgeneric.c
-
-generic test file
-
-------------------------------------------------------------------------
-r1262 | zimmerma | 2001-10-15 14:16:50 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-added cast to (void*) for new functions returning an int
-
-------------------------------------------------------------------------
-r1261 | zimmerma | 2001-10-15 14:16:25 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
-
-added test for inexact flag
-
-------------------------------------------------------------------------
-r1260 | zimmerma | 2001-10-15 14:15:49 +0000 (Mon, 15 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/tests/tcos.c
-
-now use tgeneric.c
-added more tests
-
-------------------------------------------------------------------------
-r1259 | zimmerma | 2001-10-15 14:15:27 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcosh.c
- M /trunk/tests/texp.c
- M /trunk/tests/texp2.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsinh.c
- M /trunk/tests/ttan.c
- M /trunk/tests/ttanh.c
-
-now use tgeneric.c
-
-------------------------------------------------------------------------
-r1258 | zimmerma | 2001-10-15 14:14:38 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-fixed test of return values for infinities: foo(+/-Inf) is *exact*
-
-------------------------------------------------------------------------
-r1257 | zimmerma | 2001-10-15 14:13:33 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset.c
-
-now also try with negative numbers
-
-------------------------------------------------------------------------
-r1256 | zimmerma | 2001-10-15 14:09:24 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/cos.c
- M /trunk/cosh.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp_2.c
- M /trunk/log.c
-
-implement ternary inexact flag
-
-------------------------------------------------------------------------
-r1255 | zimmerma | 2001-10-15 14:08:57 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/div_2exp.c
- M /trunk/exp3.c
- M /trunk/mul_2exp.c
-
-implement inexact flag
-
-------------------------------------------------------------------------
-r1254 | zimmerma | 2001-10-15 14:06:46 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-return type is now int for mpfr_mul_2exp and mpfr_div_2exp
-
-------------------------------------------------------------------------
-r1253 | zimmerma | 2001-10-15 14:06:17 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-return type is now int for more functions
-
-------------------------------------------------------------------------
-r1252 | zimmerma | 2001-10-15 14:05:10 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-sign was not set
-
-------------------------------------------------------------------------
-r1251 | zimmerma | 2001-10-15 14:04:24 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-rewritten completely mpfr_can_round_raw
-
-------------------------------------------------------------------------
-r1250 | zimmerma | 2001-10-15 14:02:37 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-documented mpfr_set4
-
-------------------------------------------------------------------------
-r1249 | zimmerma | 2001-10-15 14:02:13 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_prec.c
-
-return non-zero if malloc failed
-
-------------------------------------------------------------------------
-r1248 | zimmerma | 2001-10-15 14:01:42 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/set_q.c
-
-cosmetic changes
-
-------------------------------------------------------------------------
-r1247 | zimmerma | 2001-10-15 14:01:18 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sin.c
- M /trunk/sinh.c
- M /trunk/tan.c
- M /trunk/tanh.c
-
-implement ternary inexact flag
-
-------------------------------------------------------------------------
-r1246 | zimmerma | 2001-10-15 14:00:45 +0000 (Mon, 15 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sqrt_ui.c
-
-avoid one variable
-
-------------------------------------------------------------------------
-r1245 | daney | 2001-10-12 15:19:02 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-correction d'erreurs sur les notations + correction de la regle 9
-
-------------------------------------------------------------------------
-r1244 | zimmerma | 2001-10-12 12:56:24 +0000 (Fri, 12 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-fixed MPFR_ASSERT
-documented MPFR_ASSERTN and MPFR_ASSERTD
-
-------------------------------------------------------------------------
-r1243 | zimmerma | 2001-10-12 12:24:18 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-added test for mpfr_init_set_f prototype
-
-------------------------------------------------------------------------
-r1242 | zimmerma | 2001-10-12 12:23:50 +0000 (Fri, 12 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added test for inexact flag
-corrected a wrong test
-
-------------------------------------------------------------------------
-r1241 | zimmerma | 2001-10-12 12:23:11 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-cosmetic change
-
-------------------------------------------------------------------------
-r1240 | zimmerma | 2001-10-12 12:22:36 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tsub_ui (did exist but forgotten in Makefile) and tset (new file)
-
-------------------------------------------------------------------------
-r1239 | zimmerma | 2001-10-12 12:21:40 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tset.c
-
-test file for mpfr_set, initial version
-
-------------------------------------------------------------------------
-r1238 | zimmerma | 2001-10-12 12:20:53 +0000 (Fri, 12 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-void -> int as return value for several functions
-and explained the ternary return value
-
-------------------------------------------------------------------------
-r1237 | zimmerma | 2001-10-12 12:19:49 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/neg.c
- M /trunk/set_f.c
- M /trunk/ui_sub.c
-
-implemented inexact flag
-
-------------------------------------------------------------------------
-r1236 | zimmerma | 2001-10-12 12:18:46 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-void -> int as return value for new functions implementing inexact flag
-
-------------------------------------------------------------------------
-r1235 | zimmerma | 2001-10-12 12:18:10 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-implemented inexact flag in mpfr_set_d
-
-------------------------------------------------------------------------
-r1234 | zimmerma | 2001-10-12 12:17:24 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-implemented inexact flag in mpfr_round
-
-------------------------------------------------------------------------
-r1233 | zimmerma | 2001-10-12 12:16:13 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-completely rewritten
-
-------------------------------------------------------------------------
-r1232 | zimmerma | 2001-10-12 12:15:46 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-computation of inexact flag now directly uses mpfr_round_raw
-
-------------------------------------------------------------------------
-r1231 | zimmerma | 2001-10-12 12:13:27 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-added 'if' in MPFR_ASSERT to avoid compiler warning
-
-------------------------------------------------------------------------
-r1230 | zimmerma | 2001-10-12 12:12:07 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-put initial value in variables which may be used without being initialized
-
-------------------------------------------------------------------------
-r1229 | zimmerma | 2001-10-12 12:11:23 +0000 (Fri, 12 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated things done, added Rounding section
-
-------------------------------------------------------------------------
-r1228 | daney | 2001-10-11 16:47:30 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-ajout de log1p et expm1
-
-------------------------------------------------------------------------
-r1227 | zimmerma | 2001-10-11 15:26:57 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tatan.c
-
-reduced number of random tests (took too much time)
-
-------------------------------------------------------------------------
-r1226 | zimmerma | 2001-10-11 15:19:04 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added random tests for inexact flag
-
-------------------------------------------------------------------------
-r1225 | zimmerma | 2001-10-11 15:18:22 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
- M /trunk/sub_ui.c
-
-implemented inexact flag
-
-------------------------------------------------------------------------
-r1224 | zimmerma | 2001-10-11 15:05:13 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_sub.c
-
-added random tests for inexact flag
-
-------------------------------------------------------------------------
-r1223 | daney | 2001-10-11 14:51:03 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-ajout du log generic et de fma
-
-------------------------------------------------------------------------
-r1222 | zimmerma | 2001-10-11 12:33:08 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-inexact flag was wrong in some cases
-
-------------------------------------------------------------------------
-r1221 | zimmerma | 2001-10-11 12:31:37 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added random tests for inexact flag
-
-------------------------------------------------------------------------
-r1220 | zimmerma | 2001-10-11 12:28:53 +0000 (Thu, 11 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/tests/tasin.c
-
-reduced number of loops per precision from 100 to 10
-(test was too long)
-
-------------------------------------------------------------------------
-r1219 | zimmerma | 2001-10-11 08:25:55 +0000 (Thu, 11 Oct 2001) | 3 lines
-Changed paths:
- M /trunk/configure
-
-improved check for gmp-impl.h/config.h/gmp-mparam.h/longlong.h
-and corresponding error message
-
-------------------------------------------------------------------------
-r1218 | zimmerma | 2001-10-11 08:25:03 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-stack-alloc.h no longer needed (will be included in gmp-impl.h)
-
-------------------------------------------------------------------------
-r1217 | zimmerma | 2001-10-11 08:24:35 +0000 (Thu, 11 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-stack-alloc.h is no longer needed (will be included in gmp-impl.h)
-
-------------------------------------------------------------------------
-r1216 | zimmerma | 2001-10-09 13:25:20 +0000 (Tue, 09 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added proof of rules
-
-------------------------------------------------------------------------
-r1215 | zimmerma | 2001-10-09 11:38:44 +0000 (Tue, 09 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-fixed buggy test
-
-------------------------------------------------------------------------
-r1214 | zimmerma | 2001-10-05 07:35:10 +0000 (Fri, 05 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-fixed bug for b + d where b=2^900+2^500+2^110, d=2^900-2^500-2^110
-
-------------------------------------------------------------------------
-r1213 | zimmerma | 2001-10-03 10:24:47 +0000 (Wed, 03 Oct 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-fixed bug in mpfr_set_d on 64-bit machines
-
-------------------------------------------------------------------------
-r1212 | zimmerma | 2001-09-28 12:13:30 +0000 (Fri, 28 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-fixed a few problems in mpfr_set_d for sizer < MPFR_LIMBS_PER_DOUBLE
-
-------------------------------------------------------------------------
-r1211 | zimmerma | 2001-09-28 10:15:12 +0000 (Fri, 28 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.bib
-
-added paper of Brent and McMillan
-
-------------------------------------------------------------------------
-r1210 | zimmerma | 2001-09-28 10:11:04 +0000 (Fri, 28 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-does not call compare_exp2_exp3 when argc=4
-
-------------------------------------------------------------------------
-r1209 | zimmerma | 2001-09-28 10:09:06 +0000 (Fri, 28 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one item
-
-------------------------------------------------------------------------
-r1208 | zimmerma | 2001-09-28 09:42:22 +0000 (Fri, 28 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/set_prec.c
-
-now mpfr_set_prec returns 1 instead of producing an error in case prec=0
-
-------------------------------------------------------------------------
-r1207 | daney | 2001-09-27 13:03:29 +0000 (Thu, 27 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-New version with new generic function + / * etc
-
-------------------------------------------------------------------------
-r1206 | vlefevre | 2001-09-20 15:08:05 +0000 (Thu, 20 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/BUGS
- M /trunk/INSTALL
- M /trunk/README
-
-BUGS updated.
-
-------------------------------------------------------------------------
-r1205 | vlefevre | 2001-09-13 16:35:18 +0000 (Thu, 13 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttan.c
-
-Prototype changes.
-
-------------------------------------------------------------------------
-r1204 | vlefevre | 2001-09-13 13:20:40 +0000 (Thu, 13 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/dump.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
-
-<strings.h> -> <string.h> (ISO C).
-
-------------------------------------------------------------------------
-r1203 | vlefevre | 2001-09-13 13:12:21 +0000 (Thu, 13 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_prc_raw.c
-
-#include added.
-
-------------------------------------------------------------------------
-r1202 | vlefevre | 2001-09-13 12:32:44 +0000 (Thu, 13 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/agm.c
- M /trunk/euler.c
- M /trunk/init.c
- M /trunk/pi.c
- M /trunk/print_rnd_mode.c
- M /trunk/set_prec.c
- M /trunk/tests/reuse.c
- M /trunk/tests/tcos.c
- M /trunk/tests/tfactorial.c
- M /trunk/tests/tisnan.c
- M /trunk/tests/tpow.c
- M /trunk/tests/tsin.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttan.c
-
-#include added/removed.
-
-------------------------------------------------------------------------
-r1201 | vlefevre | 2001-09-13 12:16:12 +0000 (Thu, 13 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/configure
- M /trunk/configure.in
- M /trunk/mpfr-impl.h
-
-GCC option -Wno-implicit removed and prototype added to mpfr-impl.h
-
-------------------------------------------------------------------------
-r1200 | vlefevre | 2001-09-12 15:51:26 +0000 (Wed, 12 Sep 2001) | 8 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/Makefile.in
-
-INCLUDES in Makefile.am: -I$(top_srcdir) and @INCLUDES@ swapped.
-This defines the following precedence for the tests:
- 1) MPFR directories
- 2) User-defined directory
- 3) GMP include directory
-This allows the user to override the GMP longlong.h file with the
-gcc-3 one, by using: INCLUDES="-I.../include" ./configure ...
-
-------------------------------------------------------------------------
-r1199 | vlefevre | 2001-09-12 13:50:42 +0000 (Wed, 12 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/log2.c
-
-#include order fixed.
-
-------------------------------------------------------------------------
-r1198 | vlefevre | 2001-09-12 12:19:27 +0000 (Wed, 12 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-Tests added (in particular, inex value).
-
-------------------------------------------------------------------------
-r1197 | vlefevre | 2001-09-12 12:19:06 +0000 (Wed, 12 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1196 | vlefevre | 2001-09-11 15:21:52 +0000 (Tue, 11 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-MPFR_RET: definition changed to avoid warning.
-
-------------------------------------------------------------------------
-r1195 | vlefevre | 2001-09-11 14:02:32 +0000 (Tue, 11 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/set.c
- M /trunk/set_si.c
- M /trunk/set_ui.c
-
-Inexact ternary value for mpfr_set4, mpfr_set_ui and mpfr_set_si.
-
-------------------------------------------------------------------------
-r1194 | vlefevre | 2001-09-11 13:55:08 +0000 (Tue, 11 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Macro SAFE_ABS.
-
-------------------------------------------------------------------------
-r1193 | vlefevre | 2001-09-11 13:16:51 +0000 (Tue, 11 Sep 2001) | 3 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/mpfr-impl.h
-
-Inexact ternary value and flag for mpfr_set_underflow, mpfr_set_overflow
-and mpfr_check_range.
-
-------------------------------------------------------------------------
-r1192 | vlefevre | 2001-09-11 03:20:42 +0000 (Tue, 11 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/set.c
-
-Macro MPFR_RET added. Ternary value for mpfr_set4.
-
-------------------------------------------------------------------------
-r1191 | vlefevre | 2001-09-11 01:02:15 +0000 (Tue, 11 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
- M /trunk/mpfr.h
-
-New flags.
-
-------------------------------------------------------------------------
-r1190 | vlefevre | 2001-09-10 23:58:12 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/div.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_f.c
- M /trunk/set_si.c
- M /trunk/set_ui.c
- M /trunk/sqrt.c
- M /trunk/tests/Makefile.in
-
-Parameter added to mpfr_round_raw: pointer to inexact ternary value.
-
-------------------------------------------------------------------------
-r1189 | hanrot | 2001-09-10 16:30:21 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Zqwiuyt
-
-------------------------------------------------------------------------
-r1188 | hanrot | 2001-09-10 16:21:42 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Zorgs.
-
-------------------------------------------------------------------------
-r1187 | hanrot | 2001-09-10 15:42:12 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Gleurbs.
-
-------------------------------------------------------------------------
-r1186 | hanrot | 2001-09-10 15:40:57 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Patch grotesque.
-
-------------------------------------------------------------------------
-r1185 | hanrot | 2001-09-10 15:20:08 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Patch for the case SIZE(r) < MPFR_LIMBS_PER_DOUBLE.
-
-------------------------------------------------------------------------
-r1184 | zimmerma | 2001-09-10 07:47:29 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- A /trunk/tests/ttan.c
-
-test file for mpfr_tan
-
-------------------------------------------------------------------------
-r1183 | zimmerma | 2001-09-10 07:47:15 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsin.c
-
-fixed a few typos
-
-------------------------------------------------------------------------
-r1182 | zimmerma | 2001-09-10 07:46:56 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/tests/reuse.c
-
-added mpfr_tan
-
-------------------------------------------------------------------------
-r1181 | zimmerma | 2001-09-10 07:46:37 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added ttan
-
-------------------------------------------------------------------------
-r1180 | zimmerma | 2001-09-10 07:45:54 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added the tangent
-
-------------------------------------------------------------------------
-r1179 | zimmerma | 2001-09-10 07:45:14 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added tan.c
-
-------------------------------------------------------------------------
-r1178 | zimmerma | 2001-09-10 07:44:05 +0000 (Mon, 10 Sep 2001) | 2 lines
-Changed paths:
- A /trunk/tan.c
-
-tangent function
-
-------------------------------------------------------------------------
-r1177 | zimmerma | 2001-09-07 12:46:54 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-removed mpfr_sin and mpfr_cos (now separate implementations)
-
-------------------------------------------------------------------------
-r1176 | zimmerma | 2001-09-07 12:45:52 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-removed sin_cos
-
-------------------------------------------------------------------------
-r1175 | zimmerma | 2001-09-07 12:41:15 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added sine and cosine
-
-------------------------------------------------------------------------
-r1174 | zimmerma | 2001-09-07 12:40:29 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-removed sin_cos, added sin and cos
-
-------------------------------------------------------------------------
-r1173 | zimmerma | 2001-09-07 12:37:21 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-removed mpfr_sin_cos
-
-------------------------------------------------------------------------
-r1172 | zimmerma | 2001-09-07 12:32:28 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-removed sin_cos, added sin and cos
-
-------------------------------------------------------------------------
-r1171 | zimmerma | 2001-09-07 12:32:07 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-removed tsin_cos, added tsin and tcos
-
-------------------------------------------------------------------------
-r1170 | zimmerma | 2001-09-07 12:30:42 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tcos.c
- A /trunk/tests/tsin.c
-
-test files for mpfr_cos and mpfr_sin
-
-------------------------------------------------------------------------
-r1169 | zimmerma | 2001-09-07 12:30:14 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- A /trunk/sin.c
-
-new implementation of mpfr_sin, using mpfr_cos
-
-------------------------------------------------------------------------
-r1168 | zimmerma | 2001-09-07 12:29:52 +0000 (Fri, 07 Sep 2001) | 2 lines
-Changed paths:
- A /trunk/cos.c
-
-new (faster) implementation of mpfr_cos
-
-------------------------------------------------------------------------
-r1167 | vlefevre | 2001-09-06 15:59:15 +0000 (Thu, 06 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/exceptions.c
-
-Fix: flags set in mpfr_set_{under,over}flow().
-
-------------------------------------------------------------------------
-r1166 | vlefevre | 2001-09-06 12:49:53 +0000 (Thu, 06 Sep 2001) | 3 lines
-Changed paths:
- M /trunk/sub.c
-
-Cases where the result is 0 fixed.
-Integer overflow checked in mpfr_sub.
-
-------------------------------------------------------------------------
-r1165 | vlefevre | 2001-09-06 11:35:12 +0000 (Thu, 06 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/add.c
-
-In add.c: use mpfr_cmp_abs instead of mpfr_cmp3; x - x fixed for GMP_RNDD.
-
-------------------------------------------------------------------------
-r1164 | vlefevre | 2001-09-06 10:27:57 +0000 (Thu, 06 Sep 2001) | 2 lines
-Changed paths:
- A /trunk/cmp_abs.c
-
-Compare the absolute values of two nonzero FP numbers.
-
-------------------------------------------------------------------------
-r1163 | vlefevre | 2001-09-05 15:40:47 +0000 (Wed, 05 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/cmp.c
- M /trunk/mpfr.h
-
-mpfr_cmp3 changed and integer overflows checked.
-
-------------------------------------------------------------------------
-r1162 | zimmerma | 2001-09-05 09:52:50 +0000 (Wed, 05 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added efficiency item
-
-------------------------------------------------------------------------
-r1161 | vlefevre | 2001-09-03 14:52:45 +0000 (Mon, 03 Sep 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Cases [+-]0 + [+-]0 fixed (depending on the rounding mode).
-
-------------------------------------------------------------------------
-r1160 | vlefevre | 2001-08-29 15:29:46 +0000 (Wed, 29 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-Optimization + overflow support.
-
-------------------------------------------------------------------------
-r1159 | vlefevre | 2001-08-29 14:10:30 +0000 (Wed, 29 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/mpfr-impl.h
-
-Case +0 + -0 fixed.
-
-------------------------------------------------------------------------
-r1158 | zimmerma | 2001-08-29 12:30:24 +0000 (Wed, 29 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added one test
-
-------------------------------------------------------------------------
-r1157 | zimmerma | 2001-08-29 09:24:30 +0000 (Wed, 29 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-another test from Norbert
-
-------------------------------------------------------------------------
-r1156 | zimmerma | 2001-08-29 09:24:10 +0000 (Wed, 29 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-another fix (final copy when xsize > ysize was wrong)
-
-------------------------------------------------------------------------
-r1155 | zimmerma | 2001-08-28 16:15:02 +0000 (Tue, 28 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added several tests for case (1b)
-
-------------------------------------------------------------------------
-r1154 | zimmerma | 2001-08-28 15:57:47 +0000 (Tue, 28 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-another fix (previous one was incomplete)
-
-------------------------------------------------------------------------
-r1153 | zimmerma | 2001-08-28 15:56:22 +0000 (Tue, 28 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added one more test (from Norbert)
-
-------------------------------------------------------------------------
-r1152 | vlefevre | 2001-08-28 14:20:50 +0000 (Tue, 28 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Bug fixed.
-
-------------------------------------------------------------------------
-r1151 | vlefevre | 2001-08-28 10:28:50 +0000 (Tue, 28 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Bug fixed and update to check the exponents.
-
-------------------------------------------------------------------------
-r1150 | zimmerma | 2001-08-27 14:54:28 +0000 (Mon, 27 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-added test for 53 <= xprec, yprec <= 128
-
-------------------------------------------------------------------------
-r1149 | zimmerma | 2001-08-27 14:10:03 +0000 (Mon, 27 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added multiple tests for 53 <= xprec, yprec <= 128
-
-------------------------------------------------------------------------
-r1148 | zimmerma | 2001-08-27 14:09:13 +0000 (Mon, 27 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-was completely wrong for ysize > xsize
-
-------------------------------------------------------------------------
-r1147 | zimmerma | 2001-08-27 12:47:37 +0000 (Mon, 27 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added faster formula in exp(-8*n) for Euler's constant
-
-------------------------------------------------------------------------
-r1146 | vlefevre | 2001-08-25 09:58:24 +0000 (Sat, 25 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Assertion support with debug level.
-
-------------------------------------------------------------------------
-r1145 | vlefevre | 2001-08-25 09:11:18 +0000 (Sat, 25 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/add_ui.c
- A /trunk/exceptions.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- A /trunk/save_expo.c
- M /trunk/sub_ui.c
-
-Some support for exponent change and exceptions.
-
-------------------------------------------------------------------------
-r1144 | zimmerma | 2001-08-23 14:57:09 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-added constant ALPHA (for mpfr_const_euler)
-
-------------------------------------------------------------------------
-r1143 | zimmerma | 2001-08-23 14:56:36 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.in
-
-added euler/teuler
-
-------------------------------------------------------------------------
-r1142 | zimmerma | 2001-08-23 14:53:23 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added teuler
-
-------------------------------------------------------------------------
-r1141 | zimmerma | 2001-08-23 14:47:41 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added euler.c
-
-------------------------------------------------------------------------
-r1140 | zimmerma | 2001-08-23 14:45:58 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-fixed pb with c2 = c2old << dif with dif negative
-
-------------------------------------------------------------------------
-r1139 | zimmerma | 2001-08-23 14:25:50 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed bug for (2^53+4) - 1
-
-------------------------------------------------------------------------
-r1138 | zimmerma | 2001-08-23 13:51:31 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added new test from Norbert Mueller
-
-------------------------------------------------------------------------
-r1137 | zimmerma | 2001-08-23 13:41:17 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-fixed pb: sh becomes "negative"
-
-------------------------------------------------------------------------
-r1136 | zimmerma | 2001-08-23 11:13:44 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-included Euler's constant
-
-------------------------------------------------------------------------
-r1135 | zimmerma | 2001-08-23 11:13:10 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- A /trunk/algorithms.bib
-
-bibtex file for algorithms.tex
-
-------------------------------------------------------------------------
-r1134 | zimmerma | 2001-08-23 11:07:19 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- A /trunk/tests/teuler.c
-
-test file for mpfr_const_euler
-
-------------------------------------------------------------------------
-r1133 | zimmerma | 2001-08-23 11:06:52 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- A /trunk/euler.c
-
-computation of Euler's constant 0.577...
-
-------------------------------------------------------------------------
-r1132 | zimmerma | 2001-08-23 11:06:23 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added missing prototype
-
-------------------------------------------------------------------------
-r1131 | zimmerma | 2001-08-23 11:01:31 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr_const_euler returns an int
-
-------------------------------------------------------------------------
-r1130 | zimmerma | 2001-08-23 11:00:34 +0000 (Thu, 23 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-added mpfr_const_euler
-
-------------------------------------------------------------------------
-r1129 | vlefevre | 2001-08-22 16:01:37 +0000 (Wed, 22 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-Tests added.
-
-------------------------------------------------------------------------
-r1128 | vlefevre | 2001-08-22 16:01:28 +0000 (Wed, 22 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-Bugs fixed (particular cases).
-
-------------------------------------------------------------------------
-r1127 | vlefevre | 2001-08-22 15:18:06 +0000 (Wed, 22 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-"mant(c) != 1/2" test was broken.
-
-------------------------------------------------------------------------
-r1126 | vlefevre | 2001-08-22 15:05:23 +0000 (Wed, 22 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-check fixed. Check added: 2^53 + 1 --> 2^53.
-
-------------------------------------------------------------------------
-r1125 | vlefevre | 2001-08-22 14:24:02 +0000 (Wed, 22 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.in
-
-Update.
-
-------------------------------------------------------------------------
-r1124 | zimmerma | 2001-08-21 15:02:19 +0000 (Tue, 21 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-added one test
-
-------------------------------------------------------------------------
-r1123 | zimmerma | 2001-08-21 15:02:05 +0000 (Tue, 21 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-fixed stupid bug when dif < 0
-
-------------------------------------------------------------------------
-r1122 | zimmerma | 2001-08-14 14:15:25 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
-
-added mpfr_asin
-
-------------------------------------------------------------------------
-r1121 | zimmerma | 2001-08-14 14:14:57 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added missing cast
-
-------------------------------------------------------------------------
-r1120 | zimmerma | 2001-08-14 13:50:47 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tasin.c
-
-test file for mpfr_asin
-
-------------------------------------------------------------------------
-r1119 | zimmerma | 2001-08-14 13:47:32 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- A /trunk/asin.c
-
-arc-sine, contributed by Mathieu Dutour
-
-------------------------------------------------------------------------
-r1118 | zimmerma | 2001-08-14 13:37:06 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-added mpfr_asin
-
-------------------------------------------------------------------------
-r1117 | zimmerma | 2001-08-14 13:36:50 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tatan.c
-
-new name for file tarctan.c
-
-------------------------------------------------------------------------
-r1116 | zimmerma | 2001-08-14 13:36:37 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- D /trunk/tests/tarctan.c
-
-renamed to tatan.c
-
-------------------------------------------------------------------------
-r1115 | zimmerma | 2001-08-14 13:36:10 +0000 (Tue, 14 Aug 2001) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-renamed tarctan.c into tatan.c
-added tasin.c
-
-------------------------------------------------------------------------
-r1114 | zimmerma | 2001-08-14 13:32:47 +0000 (Tue, 14 Aug 2001) | 3 lines
-Changed paths:
- M /trunk/Makefile.am
-
-renamed arctan.c to atan.c
-added asin.c
-
-------------------------------------------------------------------------
-r1113 | zimmerma | 2001-08-14 13:32:20 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- A /trunk/atan.c
-
-new name for file arctan.c
-
-------------------------------------------------------------------------
-r1112 | zimmerma | 2001-08-14 13:32:04 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- D /trunk/arctan.c
-
-moved to atan.c
-
-------------------------------------------------------------------------
-r1111 | zimmerma | 2001-08-14 13:15:56 +0000 (Tue, 14 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-low significant bit is in ap[0] and not in ap[an-1] !!!
-
-------------------------------------------------------------------------
-r1110 | vlefevre | 2001-08-13 17:56:06 +0000 (Mon, 13 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Cleaner MPFR_SET_SAME_SIGN.
-
-------------------------------------------------------------------------
-r1109 | vlefevre | 2001-08-13 04:48:05 +0000 (Mon, 13 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Macros MPFR_SET_SAME_SIGN, MPFR_INIT and MPFR_INIT1 changed to expressions.
-
-------------------------------------------------------------------------
-r1108 | vlefevre | 2001-08-10 15:40:56 +0000 (Fri, 10 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/set_si.c
- M /trunk/set_ui.c
- M /trunk/set_z.c
-
-Bugs fixed (wrong types).
-
-------------------------------------------------------------------------
-r1107 | vlefevre | 2001-08-10 12:35:30 +0000 (Fri, 10 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Macros mpfr_init_set_* changed to expressions.
-
-------------------------------------------------------------------------
-r1106 | vlefevre | 2001-08-10 12:04:17 +0000 (Fri, 10 Aug 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-Makefile.in update.
-
-------------------------------------------------------------------------
-r1105 | zimmerma | 2001-07-06 14:02:40 +0000 (Fri, 06 Jul 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-edited wrt GNU style
-
-------------------------------------------------------------------------
-r1104 | zimmerma | 2001-07-06 13:56:34 +0000 (Fri, 06 Jul 2001) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed stupid bug: ceil(a/b) isn't (a+b-1)/a but simply a/b for a negative!
-
-------------------------------------------------------------------------
-r1103 | zimmerma | 2001-07-06 13:04:04 +0000 (Fri, 06 Jul 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed array bound write (bn < an + cancel1 + 1)
-
-------------------------------------------------------------------------
-r1102 | zimmerma | 2001-07-06 12:32:13 +0000 (Fri, 06 Jul 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-macros MPFR_NOTZERO and MPFR_ISZERO did not work properly with 64-bit words
-
-------------------------------------------------------------------------
-r1101 | zimmerma | 2001-06-29 16:21:05 +0000 (Fri, 29 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed bug for output base 2^k
-
-------------------------------------------------------------------------
-r1100 | zimmerma | 2001-06-29 16:19:30 +0000 (Fri, 29 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added one test
-
-------------------------------------------------------------------------
-r1099 | zimmerma | 2001-06-29 16:17:20 +0000 (Fri, 29 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added a section for the exponential
-
-------------------------------------------------------------------------
-r1098 | zimmerma | 2001-06-29 11:56:51 +0000 (Fri, 29 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
- M /trunk/tests/tdiv_ui.c
-
-fixed bug when dividend is 0
-
-------------------------------------------------------------------------
-r1097 | zimmerma | 2001-06-28 12:45:27 +0000 (Thu, 28 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/exp_2.c
-
-moved TMP_FREE
-
-------------------------------------------------------------------------
-r1096 | zimmerma | 2001-06-28 12:39:45 +0000 (Thu, 28 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added 2 things
-
-------------------------------------------------------------------------
-r1095 | zimmerma | 2001-06-27 09:40:24 +0000 (Wed, 27 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added mpfr.info to files to remove for "make distclean"
-
-------------------------------------------------------------------------
-r1094 | vlefevre | 2001-06-23 01:41:08 +0000 (Sat, 23 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.am
- M /trunk/tests/Makefile.in
-
-Non-existent C source references removed.
-
-------------------------------------------------------------------------
-r1093 | vlefevre | 2001-06-23 01:13:41 +0000 (Sat, 23 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-Macros MPFR_INIT and MPFR_INIT1 fixed.
-
-------------------------------------------------------------------------
-r1092 | zimmerma | 2001-06-18 13:52:58 +0000 (Mon, 18 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/sqrt.c
-
-nested double TMP_DECL's
-
-------------------------------------------------------------------------
-r1091 | daney | 2001-06-14 15:55:36 +0000 (Thu, 14 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/arctan.c
- M /trunk/mpfr.h
- M /trunk/out_str.c
- M /trunk/sin_cos.c
- M /trunk/tests/Makefile.am
- M /trunk/tests/Makefile.in
- M /trunk/tests/reuse.c
- M /trunk/tests/tarctan.c
- M /trunk/tests/tfactorial.c
- M /trunk/ui_sub.c
-
-A few patches.
-
-------------------------------------------------------------------------
-r1090 | zimmerma | 2001-06-07 14:22:08 +0000 (Thu, 07 Jun 2001) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/sin_cos.c
-
-added mpfr_sin and mpfr_cos
-corrected in the documentation some exact values
-
-------------------------------------------------------------------------
-r1089 | zimmerma | 2001-06-01 16:15:23 +0000 (Fri, 01 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-removed 2 tabs
-
-------------------------------------------------------------------------
-r1088 | zimmerma | 2001-06-01 16:03:15 +0000 (Fri, 01 Jun 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added change explaining the LGPL with non-free programs
-
-------------------------------------------------------------------------
-r1087 | hanrot | 2001-05-31 16:56:11 +0000 (Thu, 31 May 2001) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-Patch for the case b = 0 or c = 0.
-
-------------------------------------------------------------------------
-r1086 | hanrot | 2001-05-23 16:57:20 +0000 (Wed, 23 May 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-Added DDefour's bug.
-
-------------------------------------------------------------------------
-r1085 | hanrot | 2001-05-22 10:29:32 +0000 (Tue, 22 May 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-Patch in the case MPFR_PREC(b) > MPFR_PREC(a)+cancel.
-
-------------------------------------------------------------------------
-r1084 | vlefevre | 2001-05-10 12:31:23 +0000 (Thu, 10 May 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/mpfr.texi
- M /trunk/tests/Makefile.in
-
-fixed bug in mpfr.texi
-
-------------------------------------------------------------------------
-r1083 | daney | 2001-05-10 09:19:25 +0000 (Thu, 10 May 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-correction du bug donne par vincent + ajout des aides des fonctions hyperbolic
-
-------------------------------------------------------------------------
-r1082 | daney | 2001-05-09 15:26:28 +0000 (Wed, 09 May 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r1081 | zimmerma | 2001-04-20 08:49:45 +0000 (Fri, 20 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-log(0) now returns 0 (exact infinity)
-
-------------------------------------------------------------------------
-r1080 | zimmerma | 2001-04-18 16:05:20 +0000 (Wed, 18 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-fixed pbs with NaN/Inf
-
-------------------------------------------------------------------------
-r1079 | zimmerma | 2001-04-18 11:56:09 +0000 (Wed, 18 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed new bug found by Nathalie Revol (case when add_one_ulp produces a carry)
-
-------------------------------------------------------------------------
-r1078 | zimmerma | 2001-04-18 11:51:51 +0000 (Wed, 18 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsub.c
-
-added new bug found by Nathalie Revol
-
-------------------------------------------------------------------------
-r1077 | zimmerma | 2001-04-18 11:40:26 +0000 (Wed, 18 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed bug for 1.0000... - 0.000001 for rounding up or nearest
-
-------------------------------------------------------------------------
-r1076 | revol | 2001-04-17 18:23:18 +0000 (Tue, 17 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-Case where argument < 0 included, NR 17-04-2001
-
-------------------------------------------------------------------------
-r1075 | zimmerma | 2001-04-12 21:38:29 +0000 (Thu, 12 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-added new (special) tests
-
-------------------------------------------------------------------------
-r1074 | zimmerma | 2001-04-12 21:38:02 +0000 (Thu, 12 Apr 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tsub.c
-
-test file for mpfr_sub
-
-------------------------------------------------------------------------
-r1073 | zimmerma | 2001-04-12 21:37:47 +0000 (Thu, 12 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tsub
-
-------------------------------------------------------------------------
-r1072 | daney | 2001-04-06 09:30:15 +0000 (Fri, 06 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-change old exp2 (conflict with 2^x) to exp_2
-
-------------------------------------------------------------------------
-r1071 | zimmerma | 2001-04-05 18:29:54 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-0 -> GMP_RNDN
-
-------------------------------------------------------------------------
-r1070 | zimmerma | 2001-04-05 18:29:03 +0000 (Thu, 05 Apr 2001) | 3 lines
-Changed paths:
- M /trunk/cmp2.c
-
-check apart the case c=0 (otherwise some low significant limbs may be
-non zero, which may produce a wrong result)
-
-------------------------------------------------------------------------
-r1069 | zimmerma | 2001-04-05 18:18:14 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-mpfr_exp2 -> mpfr_exp_2
-
-------------------------------------------------------------------------
-r1068 | zimmerma | 2001-04-05 17:52:36 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-mpfr_exp2 -> mpfr_exp_2
-
-------------------------------------------------------------------------
-r1067 | daney | 2001-04-05 17:42:31 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-reactualise .h
-
-------------------------------------------------------------------------
-r1066 | daney | 2001-04-05 17:42:09 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/thyperbolic.c
-
-change header
-
-------------------------------------------------------------------------
-r1065 | daney | 2001-04-05 17:39:30 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-change reuse to suppress factorial
-
-------------------------------------------------------------------------
-r1064 | daney | 2001-04-05 17:33:16 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-suppress of timing in makefile
-
-------------------------------------------------------------------------
-r1063 | daney | 2001-04-05 17:22:23 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- A /trunk/exp_2.c
-
-add the old exp2 function and file renamed by exp_2
-
-------------------------------------------------------------------------
-r1062 | daney | 2001-04-05 17:20:11 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-change makefile for new functions
-
-------------------------------------------------------------------------
-r1061 | daney | 2001-04-05 17:19:21 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-change make file test for hyperbolic function exp2 and factorial
-
-------------------------------------------------------------------------
-r1060 | daney | 2001-04-05 17:17:38 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tacosh.c
- A /trunk/tests/tasinh.c
- A /trunk/tests/tatanh.c
- A /trunk/tests/tcosh.c
- A /trunk/tests/tsinh.c
- A /trunk/tests/ttanh.c
-
-add new test file for hyperbolic function
-
-------------------------------------------------------------------------
-r1059 | daney | 2001-04-05 17:16:37 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- A /trunk/tests/texp2.c
- A /trunk/tests/tfactorial.c
- A /trunk/tests/thyperbolic.c
-
-add test file for new function
-
-------------------------------------------------------------------------
-r1058 | daney | 2001-04-05 17:15:37 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/exp2.c
- A /trunk/factorial.c
-
-add function
-
-------------------------------------------------------------------------
-r1057 | daney | 2001-04-05 17:14:44 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- A /trunk/acosh.c
- A /trunk/asinh.c
- A /trunk/atanh.c
- A /trunk/sinh.c
- A /trunk/tanh.c
-
-new file function
-
-------------------------------------------------------------------------
-r1056 | daney | 2001-04-05 17:13:11 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- A /trunk/cosh.c
-
-new function file
-
-------------------------------------------------------------------------
-r1055 | zimmerma | 2001-04-05 17:07:35 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-new version with cmp2.c
-
-------------------------------------------------------------------------
-r1054 | zimmerma | 2001-04-05 15:53:49 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-fixed pb with inexact flag when 'int' and 'mp_limb_t' has different sizes
-
-------------------------------------------------------------------------
-r1053 | daney | 2001-04-05 15:31:42 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/cmp_ui.c
- M /trunk/tests/tcmp_ui.c
-
-fixed bug for mpfr_cmp_ui (Inf, 0)
-
-------------------------------------------------------------------------
-r1052 | daney | 2001-04-05 15:29:31 +0000 (Thu, 05 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/set_ui.c
- M /trunk/tests/tset_si.c
-
-fixed bug for mpfr_set_ui (x, 0) [was giving -0]
-
-------------------------------------------------------------------------
-r1051 | zimmerma | 2001-04-03 17:36:03 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/algorithms.tex
-
-added algorithm for mpfr_cmp2
-
-------------------------------------------------------------------------
-r1050 | zimmerma | 2001-04-03 17:35:37 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added cmp2.c
-
-------------------------------------------------------------------------
-r1049 | zimmerma | 2001-04-03 17:35:03 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/cmp2.c
-
-fixed bug when diff_exp >= BITS_PER_MP_LIMB
-
-------------------------------------------------------------------------
-r1048 | zimmerma | 2001-04-03 17:34:03 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-added new test for worst cases: 1 - 1/2^i and (1 + 1/2^i) - 1/2^i
-
-------------------------------------------------------------------------
-r1047 | zimmerma | 2001-04-03 17:11:08 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-changed return value of mpfr_cmp2
-
-------------------------------------------------------------------------
-r1046 | zimmerma | 2001-04-03 17:10:39 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- A /trunk/cmp2.c
-
-new file for mpfr_cmp2
-
-------------------------------------------------------------------------
-r1045 | zimmerma | 2001-04-03 17:10:23 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-moved mpfr_cmp2 to separate file cmp2.c
-
-------------------------------------------------------------------------
-r1044 | zimmerma | 2001-04-03 17:09:44 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-added several tests, and a routine that generates worst cases
-
-------------------------------------------------------------------------
-r1043 | zimmerma | 2001-04-03 10:21:10 +0000 (Tue, 03 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/trunc.c
-
-two changes suggested by Kevin Ryde
-
-------------------------------------------------------------------------
-r1042 | zimmerma | 2001-04-02 17:46:07 +0000 (Mon, 02 Apr 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-new version from new Makefile.am
-
-------------------------------------------------------------------------
-r1041 | zimmerma | 2001-03-27 20:23:12 +0000 (Tue, 27 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added new test
-
-------------------------------------------------------------------------
-r1040 | zimmerma | 2001-03-27 20:22:57 +0000 (Tue, 27 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed new bug in mpfr_cmp2 found by Fabrice
-
-------------------------------------------------------------------------
-r1039 | zimmerma | 2001-03-21 22:07:04 +0000 (Wed, 21 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-added new test
-
-------------------------------------------------------------------------
-r1038 | zimmerma | 2001-03-21 22:05:54 +0000 (Wed, 21 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed bug found by Nathalie Revol
-
-------------------------------------------------------------------------
-r1037 | zimmerma | 2001-03-20 14:32:26 +0000 (Tue, 20 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added 2 items
-
-------------------------------------------------------------------------
-r1036 | zimmerma | 2001-03-20 10:03:08 +0000 (Tue, 20 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-added test for mpfr_cmp_ui (-0, 0)
-
-------------------------------------------------------------------------
-r1035 | zimmerma | 2001-03-20 10:02:27 +0000 (Tue, 20 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-now prints -0 for -0
-
-------------------------------------------------------------------------
-r1034 | revol | 2001-03-19 18:11:09 +0000 (Mon, 19 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/cmp_ui.c
-
-Comparison between 0- and 0 now returns 0, NR 19-03-2001
-
-------------------------------------------------------------------------
-r1033 | vlefevre | 2001-03-16 13:50:18 +0000 (Fri, 16 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-added cast to avoid a warning
-
-------------------------------------------------------------------------
-r1032 | zimmerma | 2001-03-13 09:32:53 +0000 (Tue, 13 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-added tests for inexact return value
-
-------------------------------------------------------------------------
-r1031 | zimmerma | 2001-03-13 09:32:28 +0000 (Tue, 13 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-tiny bug in inexact value determination
-
-------------------------------------------------------------------------
-r1030 | zimmerma | 2001-03-13 08:55:46 +0000 (Tue, 13 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
-
-mpfr_mul now returns an int
-
-------------------------------------------------------------------------
-r1029 | zimmerma | 2001-03-09 17:52:21 +0000 (Fri, 09 Mar 2001) | 2 lines
-Changed paths:
- A /trunk/algorithms.tex
-
-description of algorithms
-
-------------------------------------------------------------------------
-r1028 | zimmerma | 2001-03-09 17:14:53 +0000 (Fri, 09 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-reorganized
-
-------------------------------------------------------------------------
-r1027 | zimmerma | 2001-03-08 13:26:07 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added few things
-
-------------------------------------------------------------------------
-r1026 | zimmerma | 2001-03-08 13:25:39 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/mpfr.h
-
-added arc-tangent
-
-------------------------------------------------------------------------
-r1025 | zimmerma | 2001-03-08 13:24:57 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tarctan
-
-------------------------------------------------------------------------
-r1024 | zimmerma | 2001-03-08 13:24:29 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
-
-added test to mpfr_arctan
-
-------------------------------------------------------------------------
-r1023 | zimmerma | 2001-03-08 13:23:34 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tarctan.c
-
-added header
-
-------------------------------------------------------------------------
-r1022 | zimmerma | 2001-03-08 13:22:20 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tarctan.c
-
-test file for mpfr_arctan
-
-------------------------------------------------------------------------
-r1021 | zimmerma | 2001-03-08 13:14:26 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/arctan.c
-
-removed math.h
-
-------------------------------------------------------------------------
-r1020 | zimmerma | 2001-03-08 13:08:25 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- A /trunk/arctan.c
-
-arctangent function (contributed by Mathieu Dutour, done slight changes)
-
-------------------------------------------------------------------------
-r1019 | zimmerma | 2001-03-08 13:07:32 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added Mathieu Dutour in contributors
-
-------------------------------------------------------------------------
-r1018 | zimmerma | 2001-03-08 13:06:20 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mpfr_arctan
-
-------------------------------------------------------------------------
-r1017 | zimmerma | 2001-03-08 11:21:31 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-added one test
-
-------------------------------------------------------------------------
-r1016 | zimmerma | 2001-03-08 11:21:14 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-fixed bug in mpfr_can_round_raw, when err > bn*BITS_PER_MP_LIMB
-
-------------------------------------------------------------------------
-r1015 | zimmerma | 2001-03-08 09:35:03 +0000 (Thu, 08 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-now tset_str <number> <prec> is possible
-
-------------------------------------------------------------------------
-r1014 | zimmerma | 2001-03-06 16:41:25 +0000 (Tue, 06 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-fixed bug for Infinity (was testing zero before)
-
-------------------------------------------------------------------------
-r1013 | zimmerma | 2001-03-01 10:32:32 +0000 (Thu, 01 Mar 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-replaced (mp_limb_t) 4294967295 by CNST_LIMB(0xFFFFFFFF)
-
-------------------------------------------------------------------------
-r1012 | zimmerma | 2001-02-22 13:40:32 +0000 (Thu, 22 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-forgot to declare q in mpfr_get_d2 when BITS_PER_MP_LIMB=64
-
-------------------------------------------------------------------------
-r1011 | zimmerma | 2001-02-21 10:40:35 +0000 (Wed, 21 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-removed fprintf() when unexpected end of string
-
-------------------------------------------------------------------------
-r1010 | zimmerma | 2001-02-21 10:39:04 +0000 (Wed, 21 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-added undef's to avoid warnings at compilation
-
-------------------------------------------------------------------------
-r1009 | zimmerma | 2001-02-19 12:46:07 +0000 (Mon, 19 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-removed mpfr_set_machine_rnd_mode
-
-------------------------------------------------------------------------
-r1008 | zimmerma | 2001-02-18 12:16:14 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/tests/reuse.c
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpi.c
- M /trunk/tests/tpow.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tswap.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-changed "int main(..)" to two lines
-
-------------------------------------------------------------------------
-r1007 | zimmerma | 2001-02-18 12:13:55 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-now initialize str_is_null correctly
-
-------------------------------------------------------------------------
-r1006 | zimmerma | 2001-02-18 12:13:41 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tround.c
-
-added more tests
-
-------------------------------------------------------------------------
-r1005 | zimmerma | 2001-02-18 12:13:16 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-don't change MPFR_SIZE when allocated size is enough
-
-------------------------------------------------------------------------
-r1004 | zimmerma | 2001-02-18 12:12:52 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-updated specification of mpfr_sgn
-
-------------------------------------------------------------------------
-r1003 | zimmerma | 2001-02-18 12:12:35 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed definition of mpfr_sgn to get rid of MPFR_NOTZERO
-
-------------------------------------------------------------------------
-r1002 | zimmerma | 2001-02-18 12:12:21 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-size of freed block by __gmp_free_func was wrong
-
-------------------------------------------------------------------------
-r1001 | zimmerma | 2001-02-18 12:11:59 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tisnan and tget_d
-
-------------------------------------------------------------------------
-r1000 | zimmerma | 2001-02-18 12:11:40 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/isnan.c
-
-fixed bug for Inf (recognized as an ordinary number)
-
-------------------------------------------------------------------------
-r999 | zimmerma | 2001-02-18 12:11:25 +0000 (Sun, 18 Feb 2001) | 2 lines
-Changed paths:
- A /trunk/tests/tget_d.c
- A /trunk/tests/tisnan.c
-
-new test file
-
-------------------------------------------------------------------------
-r998 | zimmerma | 2001-02-16 10:18:33 +0000 (Fri, 16 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-check overflow in _mpfr_ceil_exp2
-
-------------------------------------------------------------------------
-r997 | zimmerma | 2001-02-15 22:19:58 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-added prototype for Ulp
-
-------------------------------------------------------------------------
-r996 | zimmerma | 2001-02-15 22:19:42 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/isnan.c
-
-changed _d to _p, added mpfr_number_p
-
-------------------------------------------------------------------------
-r995 | zimmerma | 2001-02-15 22:19:16 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-changed MPN_COPY into MPN_COPY_INCR/MPN_COPY_DECR in mpfr_round_raw
-
-------------------------------------------------------------------------
-r994 | zimmerma | 2001-02-15 22:18:55 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-added tests for one of arguments NULL
-
-------------------------------------------------------------------------
-r993 | zimmerma | 2001-02-15 22:18:16 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-moved mpfr_sgn to mpfr.h (defined in manual)
-
-------------------------------------------------------------------------
-r992 | zimmerma | 2001-02-15 22:17:58 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
-
-use MPZ_REALLOC
-
-------------------------------------------------------------------------
-r991 | zimmerma | 2001-02-15 22:17:41 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/set_str.c
-
-added const to 2nd argument of mpfr_set_str
-
-------------------------------------------------------------------------
-r990 | zimmerma | 2001-02-15 22:17:10 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added set_ui.c
-
-------------------------------------------------------------------------
-r989 | zimmerma | 2001-02-15 22:16:44 +0000 (Thu, 15 Feb 2001) | 3 lines
-Changed paths:
- M /trunk/set_si.c
- A /trunk/set_ui.c
-
-added cast to "unsigned long" for ai = ABS(i)
-moved mpfr_set_ui to separate file
-
-------------------------------------------------------------------------
-r988 | zimmerma | 2001-02-15 22:16:04 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/mpfr.texi
-
-now when str==NULL return a block which is exactly strlen(str)+1 bytes long
-
-------------------------------------------------------------------------
-r987 | zimmerma | 2001-02-15 22:15:38 +0000 (Thu, 15 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/agm.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/generic.c
- M /trunk/log2.c
- M /trunk/pi.c
- M /trunk/print_raw.c
- M /trunk/set_d.c
- M /trunk/sin_cos.c
- M /trunk/sub.c
-
-fixed problems with old K&R compilers (_PROTO missing)
-
-------------------------------------------------------------------------
-r986 | zimmerma | 2001-02-08 12:56:50 +0000 (Thu, 08 Feb 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added more items
-
-------------------------------------------------------------------------
-r985 | zimmerma | 2001-01-23 16:11:30 +0000 (Tue, 23 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-fixed ulp computation
-
-------------------------------------------------------------------------
-r984 | zimmerma | 2001-01-19 16:20:33 +0000 (Fri, 19 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-changed behaviour for "tlog N": prints only differences with increasing ulps
-
-------------------------------------------------------------------------
-r983 | zimmerma | 2001-01-19 09:55:11 +0000 (Fri, 19 Jan 2001) | 4 lines
-Changed paths:
- M /trunk/set_d.c
-
-fixed pb in mpfr_get_d2 for 64-bit machines: in q + res/MP_BASE_AS_DOUBLE,
-q seems first to be cast into a double, which gives more than one ulp of
-error
-
-------------------------------------------------------------------------
-r982 | zimmerma | 2001-01-18 16:08:34 +0000 (Thu, 18 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added guard to prevent multiple inclusion
-
-------------------------------------------------------------------------
-r981 | zimmerma | 2001-01-18 08:42:27 +0000 (Thu, 18 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed bug in mpfr_cmp2 (found on the IA64)
-
-------------------------------------------------------------------------
-r980 | zimmerma | 2001-01-11 17:26:02 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added tests for 0 in mpfr_set_str_raw
-
-------------------------------------------------------------------------
-r979 | zimmerma | 2001-01-11 17:25:28 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-fixed bug for +0000E0
-
-------------------------------------------------------------------------
-r978 | zimmerma | 2001-01-11 16:53:48 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/sqrtrem.c
-
-incorporated changes from Kevin/Torbjorn for GMP 3.2
-
-------------------------------------------------------------------------
-r977 | zimmerma | 2001-01-11 16:46:03 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-truncate the last uk (when the precision is not a power of 2)
-
-------------------------------------------------------------------------
-r976 | zimmerma | 2001-01-11 16:45:01 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-_mp_allocate_func -> _gmp_allocate_func
-
-------------------------------------------------------------------------
-r975 | zimmerma | 2001-01-11 16:44:24 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/set_prec.c
-
-_mp_reallocate_func -> _gmp_reallocate_func
-
-------------------------------------------------------------------------
-r974 | zimmerma | 2001-01-11 16:44:04 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/set_dfl_prec.c
-
-__gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision
-
-------------------------------------------------------------------------
-r973 | zimmerma | 2001-01-11 16:43:37 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/print_raw.c
- M /trunk/round.c
-
-_mp_xxx_func -> _gmp_xxx_func
-
-------------------------------------------------------------------------
-r972 | zimmerma | 2001-01-11 16:43:16 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-removed mpfr_srandom
-
-------------------------------------------------------------------------
-r971 | zimmerma | 2001-01-11 16:42:09 +0000 (Thu, 11 Jan 2001) | 3 lines
-Changed paths:
- M /trunk/out_str.c
-
-sprintf -> fprintf
-_mp_free_func -> _gmp_free_func
-
-------------------------------------------------------------------------
-r970 | zimmerma | 2001-01-11 16:41:33 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/mpz_set_fr.c
-
-_mp_reallocate_func -> __gmp_reallocate_func
-
-------------------------------------------------------------------------
-r969 | zimmerma | 2001-01-11 16:41:09 +0000 (Thu, 11 Jan 2001) | 4 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added paragraph on NaN and infinities, docu on mpfr_nan_d and mpfr_inf_d
-removed mpfr_srandom
-some renamings
-
-------------------------------------------------------------------------
-r968 | zimmerma | 2001-01-11 16:39:50 +0000 (Thu, 11 Jan 2001) | 4 lines
-Changed paths:
- M /trunk/mpfr.h
-
-removed srandom
-__gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision
-added protocols for mpfr_get_default_prec, mpfr_nan_d and mpfr_inf_d
-
-------------------------------------------------------------------------
-r967 | zimmerma | 2001-01-11 16:38:40 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-removed superfluous TMP_FREE(marker)
-
-------------------------------------------------------------------------
-r966 | zimmerma | 2001-01-11 16:37:52 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/init.c
- M /trunk/inp_str.c
-
-_mp_xxx_func -> _gmp_xxx_func
-
-------------------------------------------------------------------------
-r965 | zimmerma | 2001-01-11 16:22:41 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/clear.c
- M /trunk/dump.c
-
-_mp_free_func -> _gmp_free_func
-
-------------------------------------------------------------------------
-r964 | zimmerma | 2001-01-11 16:21:43 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- A /trunk/isnan.c
-
-functions to check for NaN and infinities
-
-------------------------------------------------------------------------
-r963 | zimmerma | 2001-01-11 16:21:14 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added isnan.c, removed srandom.h
-
-------------------------------------------------------------------------
-r962 | zimmerma | 2001-01-11 16:19:06 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added two items from Kevin
-
-------------------------------------------------------------------------
-r961 | zimmerma | 2001-01-11 16:17:44 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-add 2 items
-
-------------------------------------------------------------------------
-r960 | zimmerma | 2001-01-11 16:17:31 +0000 (Thu, 11 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-0.4 -> 1.0
-
-------------------------------------------------------------------------
-r959 | zimmerma | 2001-01-05 16:24:25 +0000 (Fri, 05 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added one test for large operands
-
-------------------------------------------------------------------------
-r958 | zimmerma | 2001-01-05 16:23:34 +0000 (Fri, 05 Jan 2001) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-fixed bug in _mpfr_ceil_exp2 (underflow when exp < -1022)
-
-------------------------------------------------------------------------
-r957 | zimmerma | 2000-12-22 16:49:12 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-remove what was done
-
-------------------------------------------------------------------------
-r956 | zimmerma | 2000-12-22 16:48:24 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/README
-
-added mpfr-test.h
-
-------------------------------------------------------------------------
-r955 | zimmerma | 2000-12-22 16:44:51 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-added Vincent
-
-------------------------------------------------------------------------
-r954 | zimmerma | 2000-12-22 16:41:28 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/NEWS
-
-1.1 -> 2001
-
-------------------------------------------------------------------------
-r953 | zimmerma | 2000-12-22 16:17:45 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-cast for _mpfr_floor_log2 was on the wrong side
-
-------------------------------------------------------------------------
-r952 | zimmerma | 2000-12-22 16:17:09 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added one test
-
-------------------------------------------------------------------------
-r951 | zimmerma | 2000-12-22 16:16:54 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-simplified _mpfr_floor_log2
-
-------------------------------------------------------------------------
-r950 | zimmerma | 2000-12-22 16:16:35 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-code was wrong for infinity
-
-------------------------------------------------------------------------
-r949 | zimmerma | 2000-12-22 15:45:22 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-only editing
-
-------------------------------------------------------------------------
-r948 | zimmerma | 2000-12-22 15:45:04 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added special() cases
-
-------------------------------------------------------------------------
-r947 | zimmerma | 2000-12-22 15:42:49 +0000 (Fri, 22 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/log2.c
-
-removed #if 0 (on Alpha with cc the enclosed code was still used
-since the # was not in the first column)
-
-------------------------------------------------------------------------
-r946 | zimmerma | 2000-12-22 14:55:42 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-changes for version 1.1
-
-------------------------------------------------------------------------
-r945 | zimmerma | 2000-12-22 14:52:02 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added one test (exp2 vs exp3)
-
-------------------------------------------------------------------------
-r944 | zimmerma | 2000-12-22 14:51:00 +0000 (Fri, 22 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/exp2.c
-
-changed c from mp_limb_t into unsigned long in mpfr_exp2_aux2
-(otherwise bugs on IRIX -n32)
-
-------------------------------------------------------------------------
-r943 | zimmerma | 2000-12-22 12:22:13 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tpow.c
-
-added one test
-
-------------------------------------------------------------------------
-r942 | zimmerma | 2000-12-22 12:21:56 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-fixed wrong combination of conditions for Infinity
-
-------------------------------------------------------------------------
-r941 | zimmerma | 2000-12-22 12:10:49 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-added mpfr-test.h for MIPS
-
-------------------------------------------------------------------------
-r940 | hanrot | 2000-12-22 10:47:43 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.in
-
-Modified macro calls
-
-------------------------------------------------------------------------
-r939 | zimmerma | 2000-12-22 09:29:05 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added cast (int) to random() to avoid warning on Solaris
-
-------------------------------------------------------------------------
-r938 | zimmerma | 2000-12-22 09:07:59 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added <string.h>
-
-------------------------------------------------------------------------
-r937 | zimmerma | 2000-12-22 08:57:57 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sqrtrem.c
-
-tiny change at the end of main routine (suggested by Guillaume)
-
-------------------------------------------------------------------------
-r936 | zimmerma | 2000-12-22 08:54:56 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-added one test
-
-------------------------------------------------------------------------
-r935 | zimmerma | 2000-12-22 08:53:59 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added two more tests
-
-------------------------------------------------------------------------
-r934 | zimmerma | 2000-12-22 08:53:25 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed bug when c does not overlap with a, b is negative and GMP_RNDN
-
-------------------------------------------------------------------------
-r933 | zimmerma | 2000-12-22 08:52:20 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
-
-moved prototypes for mpfr_set4 and mpfr_cmp3 to mpfr.h
-
-------------------------------------------------------------------------
-r932 | zimmerma | 2000-12-22 08:51:40 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed bug in mpfr_cmp2 when d=0 and lots of bits match
-
-------------------------------------------------------------------------
-r931 | zimmerma | 2000-12-22 08:50:43 +0000 (Fri, 22 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/NEWS
-
-updated for version 1.1
-
-------------------------------------------------------------------------
-r930 | zimmerma | 2000-12-21 17:23:51 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- A /trunk/tests/tpow.c
-
-test file for power functions
-
-------------------------------------------------------------------------
-r929 | zimmerma | 2000-12-21 17:22:42 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- A /trunk/tests/reuse.c
-
-test file for in-place operations
-
-------------------------------------------------------------------------
-r928 | zimmerma | 2000-12-21 17:17:51 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-unsigned char (or int) -> mp_rnd_t
-
-------------------------------------------------------------------------
-r927 | zimmerma | 2000-12-21 17:12:14 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-unsigned char -> mp_rnd_t
-
-------------------------------------------------------------------------
-r926 | zimmerma | 2000-12-21 17:11:31 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-unsigned int -> mp_rnd_t
-
-------------------------------------------------------------------------
-r925 | zimmerma | 2000-12-21 17:08:38 +0000 (Thu, 21 Dec 2000) | 4 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/add_ui.c
- M /trunk/agm.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/get_str.c
- M /trunk/inp_str.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/reldiff.c
- M /trunk/set_d.c
- M /trunk/sin_cos.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sub.c
- M /trunk/sub_ui.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/trandom.c
- M /trunk/tests/ttrunc.c
- M /trunk/trunc.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
-
-k2r -> ansi style
-removed #include <math.h> by defining auxiliary functions
-fixed several tiny remaining bugs with NaN/Inf
-
-------------------------------------------------------------------------
-r924 | zimmerma | 2000-12-21 17:07:12 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-updated description of mpfr_cmp* and mpfr_sin_cos
-
-------------------------------------------------------------------------
-r923 | zimmerma | 2000-12-21 17:06:15 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added MPFR_SIGN
-
-------------------------------------------------------------------------
-r922 | zimmerma | 2000-12-21 17:05:49 +0000 (Thu, 21 Dec 2000) | 5 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-added MPFR_CLEAR_NAN
-MPFR_RESET_INF -> MPFR_CLEAR_INF
-moved MPFR_SIGN to mpfr.h
-added prototypes for log2/isqrt/cuberoot functions
-
-------------------------------------------------------------------------
-r921 | zimmerma | 2000-12-21 17:04:24 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added reuse, tcmp2, teq, tpow, trandom, ttrunc
-
-------------------------------------------------------------------------
-r920 | zimmerma | 2000-12-21 17:02:25 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-removed isnan(), ...
-
-------------------------------------------------------------------------
-r919 | zimmerma | 2000-12-21 17:00:59 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt_ui.c
-
-removed gmp-impl.h, isnan(), ...
-
-------------------------------------------------------------------------
-r918 | zimmerma | 2000-12-21 17:00:21 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-removed gmp-impl, isnan(), ...
-
-------------------------------------------------------------------------
-r917 | zimmerma | 2000-12-21 16:59:24 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-removed cputime stuff
-
-------------------------------------------------------------------------
-r916 | zimmerma | 2000-12-21 16:58:24 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
- M /trunk/tests/tset_z.c
-
-k&r -> ansi style
-
-------------------------------------------------------------------------
-r915 | zimmerma | 2000-12-21 16:57:08 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
- M /trunk/tests/tout_str.c
-
-removed isnan() decl.
-
-------------------------------------------------------------------------
-r914 | zimmerma | 2000-12-21 16:55:30 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-MINNORM -> mpfr-test.h
-
-------------------------------------------------------------------------
-r913 | zimmerma | 2000-12-21 16:52:57 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-ulp -> mpfr-test.h
-
-------------------------------------------------------------------------
-r912 | zimmerma | 2000-12-21 16:51:36 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-removed isnan() declaration
-
-------------------------------------------------------------------------
-r911 | zimmerma | 2000-12-21 16:50:48 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-now use MINNORM and MAXNORM
-
-------------------------------------------------------------------------
-r910 | zimmerma | 2000-12-21 16:49:00 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-max, min -> macros
-
-------------------------------------------------------------------------
-r909 | zimmerma | 2000-12-21 12:10:49 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added new tests
-
-------------------------------------------------------------------------
-r908 | zimmerma | 2000-12-21 12:07:52 +0000 (Thu, 21 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-added MINNORM, MAXNORM, MIN, MAX, ABS
-
-------------------------------------------------------------------------
-r907 | hanrot | 2000-12-20 16:36:05 +0000 (Wed, 20 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
- M /trunk/tests/tset_str.c
-
-A few basic patches.
-
-------------------------------------------------------------------------
-r906 | hanrot | 2000-12-20 16:35:55 +0000 (Wed, 20 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-Added support for PPC/Linux
-
-------------------------------------------------------------------------
-r905 | hanrot | 2000-12-20 14:54:10 +0000 (Wed, 20 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr-test.h
-
-Patch for wrong prototype.
-
-------------------------------------------------------------------------
-r904 | hanrot | 2000-12-20 10:49:00 +0000 (Wed, 20 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/configure
- M /trunk/cputime.h
- M /trunk/mpfr-test.h
- M /trunk/tests/Makefile.in
- M /trunk/tests/tadd.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-Added prototypes for all test files.
-
-------------------------------------------------------------------------
-r903 | vlefevre | 2000-12-18 15:07:51 +0000 (Mon, 18 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/add_ulp.c
- M /trunk/extract.c
- M /trunk/mpz_set_fr.c
- M /trunk/set_d.c
- M /trunk/set_q.c
- M /trunk/set_z.c
-
-Warnings suppressed on Alpha/OSF1.
-
-------------------------------------------------------------------------
-r902 | zimmerma | 2000-12-18 09:44:06 +0000 (Mon, 18 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added mpfr-test.h
-
-------------------------------------------------------------------------
-r901 | zimmerma | 2000-12-18 09:40:46 +0000 (Mon, 18 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/aclocal.m4
-
-back to 1.3
-
-------------------------------------------------------------------------
-r900 | zimmerma | 2000-12-18 09:06:50 +0000 (Mon, 18 Dec 2000) | 2 lines
-Changed paths:
- A /trunk/mpfr-test.h
-
-auxiliary test files
-
-------------------------------------------------------------------------
-r899 | zimmerma | 2000-12-18 09:06:34 +0000 (Mon, 18 Dec 2000) | 2 lines
-Changed paths:
- D /trunk/tests/mpfr-test.h
-
-moved to main directory
-
-------------------------------------------------------------------------
-r898 | zimmerma | 2000-12-18 09:02:54 +0000 (Mon, 18 Dec 2000) | 2 lines
-Changed paths:
- A /trunk/tests/mpfr-test.h
-
-auxiliary test functions
-
-------------------------------------------------------------------------
-r897 | zimmerma | 2000-12-18 09:02:00 +0000 (Mon, 18 Dec 2000) | 5 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/aclocal.m4
- M /trunk/add.c
- M /trunk/add_ui.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/configure
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/extract.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/init.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
- M /trunk/sin_cos.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sqrtrem.c
- M /trunk/sub.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/tests/Makefile.in
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/trunc.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
-
-changed name of mpfr struct fields: _mp_d -> _mpfr_d
- (to detect conflicts with mpf)
-fixed a few problems in non-STDC headers
-moved definitions of mpfr-impl.h to mpfr-test.h and created a real mpfr-impl.h
-
-------------------------------------------------------------------------
-r896 | zimmerma | 2000-12-15 17:46:34 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-removed tzeta
-
-------------------------------------------------------------------------
-r895 | zimmerma | 2000-12-15 17:42:59 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-explained how to enter NaN/Inf with mpfr_set_str_raw
-
-------------------------------------------------------------------------
-r894 | zimmerma | 2000-12-15 17:42:21 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-removed zeta.c
-
-------------------------------------------------------------------------
-r893 | zimmerma | 2000-12-15 17:40:47 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-added 'to do' for NaN/Inf flags
-
-------------------------------------------------------------------------
-r892 | zimmerma | 2000-12-15 17:39:14 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/urandomb.c
-
-clear NaN/Inf flags of result
-
-------------------------------------------------------------------------
-r891 | zimmerma | 2000-12-15 17:37:33 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/ui_sub.c
-
-improved indentation
-
-------------------------------------------------------------------------
-r890 | zimmerma | 2000-12-15 17:35:00 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/trunc.c
- M /trunk/ui_div.c
-
-adapted to NaN/Inf
-
-------------------------------------------------------------------------
-r889 | zimmerma | 2000-12-15 17:29:01 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sub_ui.c
-
-nothing (only better indenting)
-
-------------------------------------------------------------------------
-r888 | zimmerma | 2000-12-15 17:27:03 +0000 (Fri, 15 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/sub.c
-
-adapted to NaN/Inf
-removed warnings
-
-------------------------------------------------------------------------
-r887 | zimmerma | 2000-12-15 17:21:32 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt_ui.c
-
-adapted to NaN/Inf
-
-------------------------------------------------------------------------
-r886 | zimmerma | 2000-12-15 17:20:55 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/generic.c
- M /trunk/sin_cos.c
-
-removed warnings
-
-------------------------------------------------------------------------
-r885 | zimmerma | 2000-12-15 17:11:49 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-clear NaN/Inf flags in normal case
-
-------------------------------------------------------------------------
-r884 | zimmerma | 2000-12-15 17:06:11 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
-
-adapted to NaN/Inf
-
-------------------------------------------------------------------------
-r883 | zimmerma | 2000-12-15 16:55:19 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpfr_srandom
-
-------------------------------------------------------------------------
-r882 | zimmerma | 2000-12-15 16:54:50 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-now uses directly mpn_random, to avoid all problems with include files
-
-------------------------------------------------------------------------
-r881 | zimmerma | 2000-12-15 16:45:41 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsin_cos.c
-
-added 4 tests
-
-------------------------------------------------------------------------
-r880 | zimmerma | 2000-12-15 16:45:05 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sub_ui.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
-
-_mp_d -> MPFR_MANT
-
-------------------------------------------------------------------------
-r879 | zimmerma | 2000-12-15 16:41:07 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/set_prec.c
- M /trunk/set_str_raw.c
-
-added error message when memory allocation fails
-
-------------------------------------------------------------------------
-r878 | zimmerma | 2000-12-15 16:27:51 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/inp_str.c
- M /trunk/mpz_set_fr.c
- M /trunk/print_raw.c
- M /trunk/round.c
-
-added error message when memory allocation fails
-
-------------------------------------------------------------------------
-r877 | zimmerma | 2000-12-15 16:26:53 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/eq.c
- M /trunk/log.c
-
-_mp_d -> MPFR_MANT
-
-------------------------------------------------------------------------
-r876 | zimmerma | 2000-12-15 16:26:09 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/init.c
-
-0 -> NULL
-
-------------------------------------------------------------------------
-r875 | zimmerma | 2000-12-15 16:25:14 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/generic.c
-
-added error message if memory allocation fails
-
-------------------------------------------------------------------------
-r874 | zimmerma | 2000-12-15 16:24:35 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-_mp_d -> PTR
-
-------------------------------------------------------------------------
-r873 | zimmerma | 2000-12-15 16:23:08 +0000 (Fri, 15 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/agm.c
-
-_mp_prec -> MPFR_PREC
-_mp_d -> MPFR_MANT
-
-------------------------------------------------------------------------
-r872 | zimmerma | 2000-12-15 16:18:53 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
- M /trunk/mpfr.h
-
-added mpfr_swap
-
-------------------------------------------------------------------------
-r871 | zimmerma | 2000-12-15 15:09:30 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-removed MPFR_SET_IS_FP (not used)
-
-------------------------------------------------------------------------
-r870 | hanrot | 2000-12-15 14:42:57 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/init.c
- M /trunk/log.c
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/pow.c
-
-A few patches.
-
-------------------------------------------------------------------------
-r869 | vlefevre | 2000-12-15 14:36:22 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-MPFR_CHANGE_SIGN modified to avoid a possible side effect.
-
-------------------------------------------------------------------------
-r868 | zimmerma | 2000-12-15 14:24:11 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/set_f.c
-
-warning: x is a MPF not a MPFR!
-
-------------------------------------------------------------------------
-r867 | hanrot | 2000-12-15 14:12:30 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Modification of the order of includes in random.c
-
-------------------------------------------------------------------------
-r866 | vlefevre | 2000-12-15 12:56:19 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/configure
- M /trunk/configure.in
- M /trunk/tests/Makefile.in
-
-Added some warning flags for GCC.
-
-------------------------------------------------------------------------
-r865 | hanrot | 2000-12-15 12:50:28 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- A /trunk/srandom.h
-
-Header file for srandom()
-
-------------------------------------------------------------------------
-r864 | hanrot | 2000-12-15 12:21:35 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/add_ulp.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/mpfr.h
- M /trunk/pow.c
- M /trunk/random.c
-
-Patches for compiler warnings.
-
-------------------------------------------------------------------------
-r863 | hanrot | 2000-12-15 11:16:40 +0000 (Fri, 15 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/get_str.c
- M /trunk/log2.c
- M /trunk/mpz_set_fr.c
- M /trunk/mul_ui.c
- M /trunk/pi.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_q.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
- M /trunk/sub_ui.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-Yet another patch for include files.
-
-------------------------------------------------------------------------
-r862 | hanrot | 2000-12-15 11:05:55 +0000 (Fri, 15 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/add_ui.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/extract.c
- M /trunk/get_str.c
- M /trunk/init.c
- M /trunk/inp_str.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
- M /trunk/sin_cos.c
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/sub_ui.c
- M /trunk/swap.c
- M /trunk/trunc.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-Permutation of includes to avoid warnings due to careless multiple definition
-of ULONG_MAX.
-
-------------------------------------------------------------------------
-r861 | vlefevre | 2000-12-14 17:47:12 +0000 (Thu, 14 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
- M /trunk/set.c
- M /trunk/set_f.c
-
-Bug fixed concerning the flags.
-
-------------------------------------------------------------------------
-r860 | vlefevre | 2000-12-14 17:28:41 +0000 (Thu, 14 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/set_str.c
-
-Bugs fixed (in case char is signed and accented characters are given).
-
-------------------------------------------------------------------------
-r859 | vlefevre | 2000-12-14 17:02:11 +0000 (Thu, 14 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Include "urandom.h". Old code removed.
-
-------------------------------------------------------------------------
-r858 | vlefevre | 2000-12-14 15:28:28 +0000 (Thu, 14 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/reldiff.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_q.c
- M /trunk/set_si.c
-
-Take into account Inf, Nans ; clear the flags of the return variable
-in most function calls.
-
-------------------------------------------------------------------------
-r857 | vlefevre | 2000-12-14 14:36:09 +0000 (Thu, 14 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Use urandom().
-
-------------------------------------------------------------------------
-r856 | vlefevre | 2000-12-14 14:29:04 +0000 (Thu, 14 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
-
-Take into account Inf, Nans ; clear the flags of the return variable
-in most function calls.
-
-------------------------------------------------------------------------
-r855 | hanrot | 2000-12-14 12:14:57 +0000 (Thu, 14 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Yet another random patch.
-
-------------------------------------------------------------------------
-r854 | hanrot | 2000-12-14 12:08:44 +0000 (Thu, 14 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Replaced random by rand.
-
-------------------------------------------------------------------------
-r853 | zimmerma | 2000-12-13 14:55:24 +0000 (Wed, 13 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-fixed pb with mp_ptr vs mp_srcptr
-
-------------------------------------------------------------------------
-r852 | hanrot | 2000-12-13 14:50:26 +0000 (Wed, 13 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/tests/Makefile.in
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tsin_cos.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-Take into account Inf, Nans ; clear the flags of the return variable
-in most function calls. Tests updated accordingly
-
-------------------------------------------------------------------------
-r851 | hanrot | 2000-12-13 14:50:13 +0000 (Wed, 13 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/eq.c
- M /trunk/generic.c
- M /trunk/inp_str.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/set_d.c
- M /trunk/sub_ui.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
-
-Take into account Inf, Nans ; clear the flags of the return variable
-in most function calls.
-
-------------------------------------------------------------------------
-r850 | zimmerma | 2000-12-13 08:42:38 +0000 (Wed, 13 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-check that we can round the cosine too
-
-------------------------------------------------------------------------
-r849 | zimmerma | 2000-12-12 16:40:05 +0000 (Tue, 12 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/exp3.c
-
-removed TIMING stuff
-ensures prec_x >= 0
-
-------------------------------------------------------------------------
-r848 | zimmerma | 2000-12-12 16:38:47 +0000 (Tue, 12 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-we need m >= 2 in mpfr_exp2_aux2
-
-------------------------------------------------------------------------
-r847 | zimmerma | 2000-12-12 13:57:34 +0000 (Tue, 12 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sub_ui.c
-
-forgot TMP_MARK(marker)
-
-------------------------------------------------------------------------
-r846 | zimmerma | 2000-12-12 13:50:44 +0000 (Tue, 12 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
-
-forgot TMP_MARK(marker) or free'd in wrong order
-
-------------------------------------------------------------------------
-r845 | zimmerma | 2000-12-12 13:44:07 +0000 (Tue, 12 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/set_f.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
-
-forgot TMP_MARK(marker)
-
-------------------------------------------------------------------------
-r844 | zimmerma | 2000-12-12 11:49:13 +0000 (Tue, 12 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-fixed mpf_reldiff, mpf_urandomb and mpf_t
-
-------------------------------------------------------------------------
-r843 | zimmerma | 2000-12-12 11:41:28 +0000 (Tue, 12 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added stack-alloc.h when --disable-alloca
-
-------------------------------------------------------------------------
-r842 | vlefevre | 2000-12-11 12:47:11 +0000 (Mon, 11 Dec 2000) | 4 lines
-Changed paths:
- M /trunk/out_str.c
- M /trunk/set_d.c
-
-out_str.c: <string.h> included
-set_d.c: (0./0.) instead of sqrt(-1) for NaN (doesn't need <math.h>)
-set_d.c: () added for macros Infp and Infm
-
-------------------------------------------------------------------------
-r841 | zimmerma | 2000-12-07 13:11:32 +0000 (Thu, 07 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-shortened string in mpfr_set_str_raw which was greater than precision
-
-------------------------------------------------------------------------
-r840 | zimmerma | 2000-12-07 11:25:37 +0000 (Thu, 07 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/set_d.c
-
-replaced isnan/isinf/math.h (not portable, for example isinf does not exist
-on Sparc) by new macros from mpfr.h
-
-------------------------------------------------------------------------
-r839 | zimmerma | 2000-12-07 11:24:31 +0000 (Thu, 07 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/set_str_raw.c
-
-added an error message when the mantissa is larger than the precision
-(in mpfr_set_str_raw)
-
-------------------------------------------------------------------------
-r838 | zimmerma | 2000-12-07 11:23:24 +0000 (Thu, 07 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added macros to recognize doubles that are NaNs and infinities
-(isinf is not portable and requires math.h)
-
-------------------------------------------------------------------------
-r837 | zimmerma | 2000-12-07 11:22:04 +0000 (Thu, 07 Dec 2000) | 5 lines
-Changed paths:
- M /trunk/div.c
-
-in case the destination precision is less than that of the operands,
-and the 1st iteration fails, increase directly the precision to the maximum
-of that of the operands, otherwise divisions by 1.0 may need lots of
-iterations
-
-------------------------------------------------------------------------
-r836 | zimmerma | 2000-12-07 10:44:28 +0000 (Thu, 07 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-added 'return' after dealing with infinities
-
-------------------------------------------------------------------------
-r835 | zimmerma | 2000-12-07 10:37:08 +0000 (Thu, 07 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added wish from JC Fauge`re
-
-------------------------------------------------------------------------
-r834 | zimmerma | 2000-12-05 13:47:05 +0000 (Tue, 05 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/init.c
- M /trunk/mpfr.texi
-
-mpfr_init/mpfr_init2 initialize to 0 (compatibility with mpf)
-
-------------------------------------------------------------------------
-r833 | zimmerma | 2000-12-05 13:24:43 +0000 (Tue, 05 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed bug in mpfr_cmp2 when return value is k*BITS_PER_MP_LIMB-1
-
-------------------------------------------------------------------------
-r832 | zimmerma | 2000-12-05 13:23:58 +0000 (Tue, 05 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-added new test for mpfr_cmp2
-
-------------------------------------------------------------------------
-r831 | zimmerma | 2000-12-05 12:37:14 +0000 (Tue, 05 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-now ABSSIZE uses only 29 bits
-
-------------------------------------------------------------------------
-r830 | zimmerma | 2000-12-04 14:36:36 +0000 (Mon, 04 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added some explanations how to free the memory space allocated by mpfr_get_str
-
-------------------------------------------------------------------------
-r829 | zimmerma | 2000-12-04 13:45:14 +0000 (Mon, 04 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-fixed one bug found by N. Mueller (MPFR_ABSSIZE(u) was used instead of usize)
-
-------------------------------------------------------------------------
-r828 | zimmerma | 2000-12-04 13:44:24 +0000 (Mon, 04 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added one more test from N. Mueller
-
-------------------------------------------------------------------------
-r827 | zimmerma | 2000-12-01 17:30:41 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/exp3.c
- M /trunk/sin_cos.c
-
-cleaned calls to mpfr_extract
-
-------------------------------------------------------------------------
-r826 | zimmerma | 2000-12-01 17:29:33 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added new line
-
-------------------------------------------------------------------------
-r825 | zimmerma | 2000-12-01 17:29:05 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/init.c
-
-added error message when _mp_allocate_func returns 0
-
-------------------------------------------------------------------------
-r824 | zimmerma | 2000-12-01 17:28:22 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added header for mpfr_extract
-
-------------------------------------------------------------------------
-r823 | zimmerma | 2000-12-01 17:27:54 +0000 (Fri, 01 Dec 2000) | 4 lines
-Changed paths:
- M /trunk/extract.c
-
-- documented what function does
-- cleaned code
-- added header about license...
-
-------------------------------------------------------------------------
-r822 | zimmerma | 2000-12-01 16:25:53 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/get_str.c
- M /trunk/log2.c
- M /trunk/mpfr.h
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/sin_cos.c
-
-replaced log(2.0) by LOG2 [first step in getting rid of math.h]
-
-------------------------------------------------------------------------
-r821 | zimmerma | 2000-12-01 15:57:33 +0000 (Fri, 01 Dec 2000) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added extern "C" { ... } for inclusion in C++
-removed old KARATSUBA threshold for gmp 2.0.2
-
-------------------------------------------------------------------------
-r820 | zimmerma | 2000-12-01 14:58:32 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
- M /trunk/cmp.c
- M /trunk/tests/tcmp.c
-
-fixed bug in mpfr_cmp3 (when b=0, s not taken into account)
-
-------------------------------------------------------------------------
-r819 | zimmerma | 2000-12-01 14:30:41 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/tests/Makefile.am
-
-added swap/tswap
-
-------------------------------------------------------------------------
-r818 | zimmerma | 2000-12-01 14:29:36 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- A /trunk/tests/tswap.c
-
-test file for new function mpfr_swap
-
-------------------------------------------------------------------------
-r817 | zimmerma | 2000-12-01 14:29:28 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- A /trunk/swap.c
-
-added new function mpfr_swap
-
-------------------------------------------------------------------------
-r816 | zimmerma | 2000-12-01 13:59:45 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/add_ui.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/init.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpfi.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/reldiff.c
- M /trunk/rnd_mode.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_rnd.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sqrtrem.c
- M /trunk/sub.c
- M /trunk/sub_ui.c
- M /trunk/tests/Makefile.in
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/tdump.c
- M /trunk/tests/teq.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpi.c
- M /trunk/tests/trandom.c
- M /trunk/tests/tround.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/ttrunc.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
- M /trunk/tests/tzeta.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/zeta.c
-
-changed copyright to Free Software Foundation
-
-------------------------------------------------------------------------
-r815 | zimmerma | 2000-12-01 13:57:39 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added possible bug in mpfr_get_str
-
-------------------------------------------------------------------------
-r814 | zimmerma | 2000-12-01 13:55:36 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- D /trunk/init_set.h
-
-now all is in mpfr.h
-
-------------------------------------------------------------------------
-r813 | zimmerma | 2000-12-01 13:00:22 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-return value was wrong for input non-zero (should return 1 = inexact)
-
-------------------------------------------------------------------------
-r812 | zimmerma | 2000-12-01 12:59:15 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed/improved doc. of mpfr_sin_cos and mpfr_urandomb
-
-------------------------------------------------------------------------
-r811 | zimmerma | 2000-12-01 12:58:38 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-removed macro for mpfr_init_set_str_raw
-
-------------------------------------------------------------------------
-r810 | zimmerma | 2000-12-01 12:21:43 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpfr_sin_cos
-
-------------------------------------------------------------------------
-r809 | zimmerma | 2000-12-01 11:06:39 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-sign of result was not correctly (re)set
-
-------------------------------------------------------------------------
-r808 | zimmerma | 2000-12-01 11:05:29 +0000 (Fri, 01 Dec 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added test to check sign of square root
-
-------------------------------------------------------------------------
-r807 | zimmerma | 2000-11-29 16:36:15 +0000 (Wed, 29 Nov 2000) | 3 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-gained a factor of 2 in most cases (replaced initial constant factor=2
-for additional bits for cos(x) by log(n))
-
-------------------------------------------------------------------------
-r806 | zimmerma | 2000-11-29 16:34:14 +0000 (Wed, 29 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tsin_cos
-
-------------------------------------------------------------------------
-r805 | zimmerma | 2000-11-29 16:29:28 +0000 (Wed, 29 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed potential problem in mpfr_sub1 (k=0 and kc<0)
-
-------------------------------------------------------------------------
-r804 | zimmerma | 2000-11-29 16:28:21 +0000 (Wed, 29 Nov 2000) | 2 lines
-Changed paths:
- A /trunk/tests/tsin_cos.c
-
-test file for sin/cos
-
-------------------------------------------------------------------------
-r803 | zimmerma | 2000-11-28 10:42:05 +0000 (Tue, 28 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-forgot cast to int before comparison between imax (can be negative) and an
-
-------------------------------------------------------------------------
-r802 | zimmerma | 2000-11-28 10:41:12 +0000 (Tue, 28 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-returned value was one too small in case d=1
-
-------------------------------------------------------------------------
-r801 | zimmerma | 2000-11-28 10:40:33 +0000 (Tue, 28 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added new test from N. Mueller
-
-------------------------------------------------------------------------
-r800 | zimmerma | 2000-11-28 10:40:09 +0000 (Tue, 28 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-added return for case of infinities
-
-------------------------------------------------------------------------
-r799 | zimmerma | 2000-11-28 10:27:07 +0000 (Tue, 28 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added macro MPFR_RESET_INF
-
-------------------------------------------------------------------------
-r798 | zimmerma | 2000-11-28 10:25:04 +0000 (Tue, 28 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-don't forget to reset infinity flag if set!
-
-------------------------------------------------------------------------
-r797 | zimmerma | 2000-11-28 08:28:28 +0000 (Tue, 28 Nov 2000) | 3 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed bug in mpfr_cmp2: wrong limb considered after cp[cn--] when
- cp[cn] was not 111...111
-
-------------------------------------------------------------------------
-r796 | zimmerma | 2000-11-28 08:25:14 +0000 (Tue, 28 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed bug when imax>an
-
-------------------------------------------------------------------------
-r795 | zimmerma | 2000-11-27 17:39:00 +0000 (Mon, 27 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added macro MPFR_IS_ZERO
-
-------------------------------------------------------------------------
-r794 | hanrot | 2000-11-21 15:21:39 +0000 (Tue, 21 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
-
-Infinis, premiere tentative (tests)
-
-------------------------------------------------------------------------
-r793 | hanrot | 2000-11-21 15:21:33 +0000 (Tue, 21 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/configure
- M /trunk/div.c
- M /trunk/div_ui.c
- M /trunk/dump.c
- M /trunk/eq.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/extract.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/log.c
- M /trunk/mpfr.h
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/out_str.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/reldiff.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_str_raw.c
- M /trunk/sin_cos.c
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/zeta.c
-
-Infinis, premiere tentative.
-
-------------------------------------------------------------------------
-r792 | zimmerma | 2000-11-13 17:13:51 +0000 (Mon, 13 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added one remark from GH
-
-------------------------------------------------------------------------
-r791 | zimmerma | 2000-11-13 17:05:34 +0000 (Mon, 13 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-removed mpfr_cmp2
-
-------------------------------------------------------------------------
-r790 | hanrot | 2000-11-13 15:13:32 +0000 (Mon, 13 Nov 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/aclocal.m4
-
-Added support for Inf. Modified zeta.
-
-------------------------------------------------------------------------
-r789 | zimmerma | 2000-10-26 12:22:07 +0000 (Thu, 26 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-protection of macros done
-
-------------------------------------------------------------------------
-r788 | zimmerma | 2000-10-26 12:11:59 +0000 (Thu, 26 Oct 2000) | 2 lines
-Changed paths:
- A /trunk/replace_all
-
-shell-script to replace xxx by yyy in all source files
-
-------------------------------------------------------------------------
-r787 | zimmerma | 2000-10-26 12:11:11 +0000 (Thu, 26 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/teq.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/ttrunc.c
-
-protected macros: xxx -> MPFR_xxx
-
-------------------------------------------------------------------------
-r786 | zimmerma | 2000-10-26 11:59:59 +0000 (Thu, 26 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/add.c
- M /trunk/add_ui.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_ui.c
- M /trunk/eq.c
- M /trunk/exp.c
- M /trunk/exp2.c
- M /trunk/exp3.c
- M /trunk/extract.c
- M /trunk/generic.c
- M /trunk/get_str.c
- M /trunk/init.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpfi.c
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mpz_set_fr.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/print_raw.c
- M /trunk/random.c
- M /trunk/random2.c
- M /trunk/reldiff.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/set_q.c
- M /trunk/set_si.c
- M /trunk/set_str.c
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
- M /trunk/sin_cos.c
- M /trunk/sqrt.c
- M /trunk/sqrt_ui.c
- M /trunk/sub.c
- M /trunk/sub_ui.c
- M /trunk/trunc.c
- M /trunk/ui_div.c
- M /trunk/ui_sub.c
- M /trunk/urandomb.c
- M /trunk/zeta.c
-
-protected all macros: xxx -> MPFR_xxx
-
-------------------------------------------------------------------------
-r785 | zimmerma | 2000-10-24 11:59:35 +0000 (Tue, 24 Oct 2000) | 2 lines
-Changed paths:
- A /trunk/mpfi.h
-
-fichier d'include pour mpfi.c
-
-------------------------------------------------------------------------
-r784 | zimmerma | 2000-10-24 11:47:10 +0000 (Tue, 24 Oct 2000) | 2 lines
-Changed paths:
- A /trunk/mpfi.c
-
-interval arithmetic level (1st version)
-
-------------------------------------------------------------------------
-r783 | zimmerma | 2000-10-24 08:14:07 +0000 (Tue, 24 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added two suggestions from Ben Hinkle
-
-------------------------------------------------------------------------
-r782 | hanrot | 2000-10-19 12:54:17 +0000 (Thu, 19 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.in
-
-Bof.
-
-------------------------------------------------------------------------
-r781 | hanrot | 2000-10-19 12:53:54 +0000 (Thu, 19 Oct 2000) | 2 lines
-Changed paths:
- D /trunk/.pure
- D /trunk/mmpfr
- M /trunk/mpfr.h
-
-Suppression de vieilleries.
-
-------------------------------------------------------------------------
-r780 | hanrot | 2000-10-19 09:11:50 +0000 (Thu, 19 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-1 << 31 -> ((unsigned int)1) << 31.
-
-------------------------------------------------------------------------
-r779 | hanrot | 2000-10-19 08:56:24 +0000 (Thu, 19 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/dump.c
- M /trunk/log.c
- M /trunk/round.c
- M /trunk/set_d.c
- M /trunk/set_str.c
-
-Correction de prototypes faux dans le cas ou on n'est pas -D__STDC__.
-
-------------------------------------------------------------------------
-r778 | zimmerma | 2000-10-02 08:44:58 +0000 (Mon, 02 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/exp3.c
- M /trunk/extract.c
- M /trunk/generic.c
- M /trunk/print_raw.c
- M /trunk/set_str_raw.c
-
-malloc -> *_mp_allocate_func or TMP_ALLOC
-
-------------------------------------------------------------------------
-r777 | zimmerma | 2000-10-02 08:15:41 +0000 (Mon, 02 Oct 2000) | 2 lines
-Changed paths:
- M /trunk/exp2.c
- M /trunk/init.c
- M /trunk/mpfr.h
- M /trunk/round.c
- M /trunk/set_d.c
- M /trunk/set_prc_raw.c
- M /trunk/set_prec.c
- M /trunk/urandomb.c
-
-mpfr_t -> mpfr_ptr or mpfr_srcptr
-
-------------------------------------------------------------------------
-r776 | zimmerma | 2000-09-29 16:07:46 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- D /trunk/tests/texp2.c
-
-removed -> all is in texp.c
-
-------------------------------------------------------------------------
-r775 | zimmerma | 2000-09-29 16:06:55 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added comparison between exp2 and exp3
-
-------------------------------------------------------------------------
-r774 | zimmerma | 2000-09-29 16:04:47 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/exp3.c
-
-take also the target precision into account for the guard bits
-
-------------------------------------------------------------------------
-r773 | zimmerma | 2000-09-29 16:04:19 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/exp2.c
-
-new faster version with O(n^(1/3)*M(n)) algorithm
-
-------------------------------------------------------------------------
-r772 | zimmerma | 2000-09-29 16:03:51 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-adjusted exp2-exp3 threshold for new faster version of mpfr_exp2
-
-------------------------------------------------------------------------
-r771 | zimmerma | 2000-09-29 14:23:59 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added mpz_set_fr.c
-
-------------------------------------------------------------------------
-r770 | zimmerma | 2000-09-29 13:03:23 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-added tdump
-
-------------------------------------------------------------------------
-r769 | zimmerma | 2000-09-29 13:02:47 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed pb for op=0 (added \0 at the end of string)
-
-------------------------------------------------------------------------
-r768 | zimmerma | 2000-09-29 13:02:01 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/dump.c
-
-use strlen to determine memory to free
-
-------------------------------------------------------------------------
-r767 | zimmerma | 2000-09-29 13:01:17 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- A /trunk/tests/tdump.c
-
-test file for mpfr_dump
-
-------------------------------------------------------------------------
-r766 | zimmerma | 2000-09-29 12:30:55 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-removed karasqrt.c, added sqrtrem.c
-
-------------------------------------------------------------------------
-r765 | zimmerma | 2000-09-29 12:30:15 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-kara_sqrtrem -> mpn_sqrtrem_new
-
-------------------------------------------------------------------------
-r764 | zimmerma | 2000-09-29 12:29:56 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- D /trunk/karasqrt.c
-
-now replaced by new code in sqrtrem.c
-
-------------------------------------------------------------------------
-r763 | zimmerma | 2000-09-29 12:29:24 +0000 (Fri, 29 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-now uses new code mpn_sqrtrem_new
-
-------------------------------------------------------------------------
-r762 | zimmerma | 2000-09-29 12:29:02 +0000 (Fri, 29 Sep 2000) | 3 lines
-Changed paths:
- A /trunk/sqrtrem.c
-
-new version of fast MPN square root
-(should be integrated in a future release of GNU MP)
-
-------------------------------------------------------------------------
-r761 | zimmerma | 2000-09-28 14:06:55 +0000 (Thu, 28 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added another example from N. Mueller
-
-------------------------------------------------------------------------
-r760 | zimmerma | 2000-09-28 14:03:44 +0000 (Thu, 28 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed another ABW bug
-
-------------------------------------------------------------------------
-r759 | zimmerma | 2000-09-28 09:37:20 +0000 (Thu, 28 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed two Array Bound Writes
-
-------------------------------------------------------------------------
-r758 | zimmerma | 2000-09-28 09:36:56 +0000 (Thu, 28 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-fixed one Array Bound Read (to_nearest, bp=cp and k>=cn)
-
-------------------------------------------------------------------------
-r757 | zimmerma | 2000-09-28 09:35:54 +0000 (Thu, 28 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added 2 new tests from Norbert Mueller
-
-------------------------------------------------------------------------
-r756 | zimmerma | 2000-09-27 13:10:43 +0000 (Wed, 27 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added new test
-
-------------------------------------------------------------------------
-r755 | zimmerma | 2000-09-27 13:06:39 +0000 (Wed, 27 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed Array Bound Write
-
-------------------------------------------------------------------------
-r754 | zimmerma | 2000-09-20 11:31:42 +0000 (Wed, 20 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added some words about the inclusion of mpfr.h
-
-------------------------------------------------------------------------
-r753 | zimmerma | 2000-09-20 11:31:11 +0000 (Wed, 20 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-we need to better protect macros
-
-------------------------------------------------------------------------
-r752 | zimmerma | 2000-09-20 10:38:15 +0000 (Wed, 20 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-removed MPFR_OBJECTS (does not work)
-
-------------------------------------------------------------------------
-r751 | zimmerma | 2000-09-20 10:33:16 +0000 (Wed, 20 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added $(MPFR_OBJECTS) in libmpfr_a_LIBADD
-
-------------------------------------------------------------------------
-r750 | zimmerma | 2000-09-20 10:28:29 +0000 (Wed, 20 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-added $(MPFR_OBJECTS) in libmpfr_a_DEPENDENCIES
-
-------------------------------------------------------------------------
-r749 | zimmerma | 2000-09-20 10:08:07 +0000 (Wed, 20 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added contributions from Emmanuel Jeandel and Thom Mulders
-
-------------------------------------------------------------------------
-r748 | zimmerma | 2000-09-20 10:03:32 +0000 (Wed, 20 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-added Thom Mulders
-
-------------------------------------------------------------------------
-r747 | zimmerma | 2000-09-20 10:00:31 +0000 (Wed, 20 Sep 2000) | 3 lines
-Changed paths:
- A /trunk/shortmul.c
-
-routines for naive/fast short multiplication,
-contributed by Thom Mulders (ETH Zu"rich)
-
-------------------------------------------------------------------------
-r746 | zimmerma | 2000-09-19 14:06:06 +0000 (Tue, 19 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-added new test for overlapping x, y
-
-------------------------------------------------------------------------
-r745 | zimmerma | 2000-09-19 14:05:37 +0000 (Tue, 19 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-fixed problem when x=y
-
-------------------------------------------------------------------------
-r744 | zimmerma | 2000-09-14 12:35:42 +0000 (Thu, 14 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added pb from Norbert Muller
-
-------------------------------------------------------------------------
-r743 | zimmerma | 2000-09-14 12:35:16 +0000 (Thu, 14 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed SEGV (mpn_lshift doesn't seem to like src_size=0)
-
-------------------------------------------------------------------------
-r742 | zimmerma | 2000-09-14 12:32:38 +0000 (Thu, 14 Sep 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-now prints "failed" when test file doesn't return 0
-
-------------------------------------------------------------------------
-r741 | zimmerma | 2000-08-29 18:14:19 +0000 (Tue, 29 Aug 2000) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-replaced mpn_divrem by mpn_tdiv_qr for gmp 3 or later
-and avoid copy of one operand when possible
-
-------------------------------------------------------------------------
-r740 | zimmerma | 2000-08-29 12:38:57 +0000 (Tue, 29 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-updated (make check, make install)
-
-------------------------------------------------------------------------
-r739 | zimmerma | 2000-08-29 12:07:24 +0000 (Tue, 29 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/README
-
-described each file
-
-------------------------------------------------------------------------
-r738 | zimmerma | 2000-08-29 11:53:09 +0000 (Tue, 29 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/NEWS
-
-News for version 1.0
-
-------------------------------------------------------------------------
-r737 | zimmerma | 2000-08-25 17:04:05 +0000 (Fri, 25 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed bug for 0.9999999999...
-
-------------------------------------------------------------------------
-r736 | zimmerma | 2000-08-25 16:58:23 +0000 (Fri, 25 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-added test for 0.99999999999999999
-
-------------------------------------------------------------------------
-r735 | zimmerma | 2000-08-24 16:46:56 +0000 (Thu, 24 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added mpfr_swap
-
-------------------------------------------------------------------------
-r734 | zimmerma | 2000-08-24 09:13:21 +0000 (Thu, 24 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/log2.c
-
-now store last computed value together with last rounding mode
-
-------------------------------------------------------------------------
-r733 | zimmerma | 2000-08-23 16:29:19 +0000 (Wed, 23 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-target ps -> mpfr.ps
-
-------------------------------------------------------------------------
-r732 | zimmerma | 2000-08-23 09:56:15 +0000 (Wed, 23 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-added $(srcdir) to trunc.c for sub-directory compilation
-
-------------------------------------------------------------------------
-r731 | zimmerma | 2000-08-16 15:27:56 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/sin_cos.c
-
-removed some memory leaks
-
-------------------------------------------------------------------------
-r730 | zimmerma | 2000-08-16 14:50:40 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/generic.c
-
-solved memory leaks with T[i] and qtoj[i]
-
-------------------------------------------------------------------------
-r729 | zimmerma | 2000-08-16 14:47:22 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated (done autoconf, faster mpfr_exp, sin/cos)
-
-------------------------------------------------------------------------
-r728 | zimmerma | 2000-08-16 14:37:43 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-updated for version 1.0
-
-------------------------------------------------------------------------
-r727 | zimmerma | 2000-08-16 14:21:30 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-COPYING.LIB -> COPYING
-
-------------------------------------------------------------------------
-r726 | zimmerma | 2000-08-16 14:20:59 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- A /trunk/COPYING
-
-renamed back (wanted for "make dist")
-
-------------------------------------------------------------------------
-r725 | zimmerma | 2000-08-16 14:20:42 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- D /trunk/COPYING.LIB
-
-renamed back to COPYING (wanted for "make dist")
-
-------------------------------------------------------------------------
-r724 | zimmerma | 2000-08-16 14:18:57 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- A /trunk/COPYING.LIB
-
-GNU Library General Public License
-
-------------------------------------------------------------------------
-r723 | zimmerma | 2000-08-16 14:18:22 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- D /trunk/COPYING
-
-renamed to COPYING.LIB, according to mpfr.texi
-
-------------------------------------------------------------------------
-r722 | zimmerma | 2000-08-16 14:12:40 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/log2.c
-
-result was free'd twice when good=1
-
-------------------------------------------------------------------------
-r721 | zimmerma | 2000-08-16 14:10:10 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/AUTHORS
-
-put information about authors
-
-------------------------------------------------------------------------
-r720 | zimmerma | 2000-08-16 13:50:37 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/configure
-
-PACKAGE and VERSION are not defined any more
-
-------------------------------------------------------------------------
-r719 | zimmerma | 2000-08-16 13:48:39 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-gmp-mparam.h is required too
-
-------------------------------------------------------------------------
-r718 | zimmerma | 2000-08-16 13:33:49 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-IRIX make does not recognize $< (MISCFLAGS)
-
-------------------------------------------------------------------------
-r717 | zimmerma | 2000-08-16 13:00:20 +0000 (Wed, 16 Aug 2000) | 4 lines
-Changed paths:
- M /trunk/configure.in
-
-do not define PACKAGE and VERSION in AM_INIT_AUTOMAKE,
-this avoids conflicts with GMP 3.1 config.h
-[thanks to Kevin Ryde]
-
-------------------------------------------------------------------------
-r716 | zimmerma | 2000-08-16 12:59:04 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-updated for GMP 3.1
-
-------------------------------------------------------------------------
-r715 | zimmerma | 2000-08-16 12:56:06 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-MP_BASE_AS_DOUBLE already defined in gmp-impl.h
-
-------------------------------------------------------------------------
-r714 | zimmerma | 2000-08-16 11:26:15 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/exp3.c
-
-nb_terms[0] was not initialized
-
-------------------------------------------------------------------------
-r713 | zimmerma | 2000-08-16 10:55:11 +0000 (Wed, 16 Aug 2000) | 3 lines
-Changed paths:
- M /trunk/log2.c
-
-fixed some FNH (free not in heap) problems for binary splitting method
-(prec >= 30000)
-
-------------------------------------------------------------------------
-r712 | zimmerma | 2000-08-16 09:53:54 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-gmp.info -> mpfr.info
-
-------------------------------------------------------------------------
-r711 | zimmerma | 2000-08-16 09:46:59 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-set_dfl_rnd.* -> set_rnd.* (to avoid conflict with set_dfl_prec.* on DOS 8.3)
-
-------------------------------------------------------------------------
-r710 | zimmerma | 2000-08-16 09:42:43 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- D /trunk/tests/Makefile
-
-now automatically generated by configure
-
-------------------------------------------------------------------------
-r709 | zimmerma | 2000-08-16 09:40:47 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-added if (__GNU_MP_VERSION < 3) for mpn_divrem_1-bug patch
-
-------------------------------------------------------------------------
-r708 | zimmerma | 2000-08-16 09:26:18 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
-
-set_dfl_rnd -> set_rnd
-
-------------------------------------------------------------------------
-r707 | zimmerma | 2000-08-16 09:24:15 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- A /trunk/set_rnd.c
-
-new name of set_dfl_rnd.c (avoids clash with set_dfl_prec.c on DOS 8.3)
-
-------------------------------------------------------------------------
-r706 | zimmerma | 2000-08-16 09:23:43 +0000 (Wed, 16 Aug 2000) | 3 lines
-Changed paths:
- D /trunk/set_dfl_rnd.c
-
-renamed to set_rnd.c (otherwise truncates like set_dfl_prec.c on
-a DOS 8.3 filesystem)
-
-------------------------------------------------------------------------
-r705 | zimmerma | 2000-08-16 09:20:29 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-setfilename: gmp.info -> mpfr.info
-
-------------------------------------------------------------------------
-r704 | zimmerma | 2000-08-16 09:19:17 +0000 (Wed, 16 Aug 2000) | 4 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-replaced path for libmpfr.a by $(top_builddir)
-test files are now in check_PROGRAMS instead of bin_PROGRAMS (they don't need
- to be installed)
-
-------------------------------------------------------------------------
-r703 | zimmerma | 2000-08-16 09:14:44 +0000 (Wed, 16 Aug 2000) | 3 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tset_si.c
-
-replaced back BITS_PER_MP_LIMB by mp_bits_per_limb
-(not important in test files)
-
-------------------------------------------------------------------------
-r702 | zimmerma | 2000-08-16 09:09:03 +0000 (Wed, 16 Aug 2000) | 10 lines
-Changed paths:
- M /trunk/mpfr.h
-
-replaced macros for mpfr_init_set_si by "do { ... } while (0)" so
-they'll work in an if/else like
-
- if (foo)
- mpfr_init_set_si (f, -123, GMP_RNDN);
- else
- bar ();
-
-[thanks to Kevin Ryde]
-
-------------------------------------------------------------------------
-r701 | zimmerma | 2000-08-16 09:05:15 +0000 (Wed, 16 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div_ui.c
- M /trunk/exp2.c
- M /trunk/mpf2mpfr.h
- M /trunk/mul.c
- M /trunk/print_raw.c
- M /trunk/set_si.c
- M /trunk/sqrt.c
- M /trunk/sub.c
- M /trunk/tests/Makefile
- M /trunk/tests/tadd.c
- M /trunk/tests/tset_si.c
-
-replaced mp_bits_per_limb by BITS_PER_MP_LIMB (constant)
-
-------------------------------------------------------------------------
-r700 | zimmerma | 2000-08-14 14:25:50 +0000 (Mon, 14 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-added mpf2mpfr.h
-
-------------------------------------------------------------------------
-r699 | zimmerma | 2000-08-14 13:11:09 +0000 (Mon, 14 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-define check2 only with -DTEST
-
-------------------------------------------------------------------------
-r698 | zimmerma | 2000-08-14 12:39:38 +0000 (Mon, 14 Aug 2000) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-updated for new configure from Emmanuel Jeandel, to GMP 3.xxx
-and removed errors with texinfo
-
-------------------------------------------------------------------------
-r697 | zimmerma | 2000-08-14 12:12:49 +0000 (Mon, 14 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-solaris --> __sparc__
-
-------------------------------------------------------------------------
-r696 | zimmerma | 2000-08-14 11:53:15 +0000 (Mon, 14 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
- A /trunk/tests/Makefile
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
- M /trunk/tests/tsub_ui.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-ifdef IRIX64 -> ifdef __mips
-
-------------------------------------------------------------------------
-r695 | zimmerma | 2000-08-14 11:31:36 +0000 (Mon, 14 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
-
-IRIX/make does not understand $< : expanded to trunc.c
-
-------------------------------------------------------------------------
-r694 | zimmerma | 2000-08-14 11:20:29 +0000 (Mon, 14 Aug 2000) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-use standard macro for Alpha
-
-------------------------------------------------------------------------
-r693 | jeandel | 2000-07-13 12:40:25 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-autoconf options described
-
-------------------------------------------------------------------------
-r692 | jeandel | 2000-07-13 12:30:53 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.in
-
-timestamp modified
-
-------------------------------------------------------------------------
-r691 | jeandel | 2000-07-13 12:28:31 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/configure
-
-timestamp changed
-
-------------------------------------------------------------------------
-r690 | jeandel | 2000-07-13 12:27:04 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.am
-
-nothing to say
-
-------------------------------------------------------------------------
-r689 | jeandel | 2000-07-13 12:24:13 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/acinclude.m4
- M /trunk/aclocal.m4
-
-Timestamp
-
-------------------------------------------------------------------------
-r688 | jeandel | 2000-07-13 12:21:50 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.in
-
-Small bug fixed
-
-------------------------------------------------------------------------
-r687 | jeandel | 2000-07-13 12:15:36 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/configure
- M /trunk/configure.in
-
-Timestamp modified ?
-
-------------------------------------------------------------------------
-r686 | jeandel | 2000-07-13 12:13:18 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.in
-
-Timestamp modified
-
-------------------------------------------------------------------------
-r685 | jeandel | 2000-07-13 11:54:18 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/configure
- M /trunk/configure.in
-
-Nothing
-
-------------------------------------------------------------------------
-r684 | jeandel | 2000-07-13 11:43:45 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/Makefile.in
-
-New release
-
-------------------------------------------------------------------------
-r683 | jeandel | 2000-07-13 09:52:17 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.am
- M /trunk/tests/Makefile.in
-
-Bugs fixed
-
-------------------------------------------------------------------------
-r682 | jeandel | 2000-07-13 09:39:27 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.in
-
-Bug fixed
-
-------------------------------------------------------------------------
-r681 | jeandel | 2000-07-13 09:21:09 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-sin_cos added
-
-------------------------------------------------------------------------
-r680 | jeandel | 2000-07-13 08:54:06 +0000 (Thu, 13 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/log2.c
- M /trunk/pi.c
-
-New algorithm, new wrapper
-
-------------------------------------------------------------------------
-r679 | zimmerma | 2000-07-12 12:50:50 +0000 (Wed, 12 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tround.c
-
-replaced 0 by GMP_RNDN
-
-------------------------------------------------------------------------
-r678 | zimmerma | 2000-07-12 12:47:37 +0000 (Wed, 12 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-fixed (hopefully) bug for 1/1 in precision 32, 64, ...
-
-------------------------------------------------------------------------
-r677 | zimmerma | 2000-07-12 12:46:05 +0000 (Wed, 12 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added test for 1/1 in precision 32 or 64
-
-------------------------------------------------------------------------
-r676 | zimmerma | 2000-07-11 13:31:50 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-use mpfr_print_rnd_mode now
-
-------------------------------------------------------------------------
-r675 | jeandel | 2000-07-11 11:44:56 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
- M /trunk/Makefile.in
- M /trunk/configure
- M /trunk/configure.in
-
-Bug Fixed, and installation guide made
-
-------------------------------------------------------------------------
-r674 | jeandel | 2000-07-11 11:17:19 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/configure
- M /trunk/configure.in
-
-Fixed bug
-
-------------------------------------------------------------------------
-r673 | jeandel | 2000-07-11 11:06:59 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.am
- M /trunk/Makefile.in
-
-Bug Fixed with Solaris make
-
-------------------------------------------------------------------------
-r672 | jeandel | 2000-07-11 10:55:36 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/extract.c
-
-strings.h added
-
-------------------------------------------------------------------------
-r671 | jeandel | 2000-07-11 10:54:00 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Makefile.in
- M /trunk/tests/Makefile.in
-
-Deps included
-
-------------------------------------------------------------------------
-r670 | jeandel | 2000-07-11 09:55:31 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
- M /trunk/tests/Makefile.in
-
-Bug Fixed
-
-------------------------------------------------------------------------
-r669 | jeandel | 2000-07-11 09:52:32 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.in
-
-Bug fixed
-
-------------------------------------------------------------------------
-r668 | jeandel | 2000-07-11 09:52:17 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile.am
-
-Bug Fixed
-
-------------------------------------------------------------------------
-r667 | jeandel | 2000-07-11 09:47:24 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- A /trunk/Makefile.am
- A /trunk/Makefile.in
- A /trunk/acinclude.m4
- A /trunk/aclocal.m4
- A /trunk/configure
- A /trunk/configure.in
- A /trunk/install-sh
- A /trunk/missing
- A /trunk/mkinstalldirs
- A /trunk/tests/Makefile.am
- A /trunk/tests/Makefile.in
- A /trunk/texinfo.tex
-
-First Release
-
-------------------------------------------------------------------------
-r666 | jeandel | 2000-07-11 09:42:34 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- D /trunk/COPYING.LIB
- A /trunk/NEWS
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r665 | jeandel | 2000-07-11 09:41:38 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- A /trunk/COPYING
- A /trunk/ChangeLog
- A /trunk/README
-
-First Release
-
-------------------------------------------------------------------------
-r664 | jeandel | 2000-07-11 09:40:32 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- A /trunk/AUTHORS
-
-First release
-
-------------------------------------------------------------------------
-r663 | jeandel | 2000-07-11 09:37:43 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Added sin_cos
-
-------------------------------------------------------------------------
-r662 | jeandel | 2000-07-11 09:33:53 +0000 (Tue, 11 Jul 2000) | 2 lines
-Changed paths:
- A /trunk/generic.c
- A /trunk/sin_cos.c
-
-First Release
-
-------------------------------------------------------------------------
-r661 | jeandel | 2000-06-29 14:35:36 +0000 (Thu, 29 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/extract.c
-
-Memory problems fixed
-
-------------------------------------------------------------------------
-r660 | jeandel | 2000-06-29 14:35:19 +0000 (Thu, 29 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/exp3.c
-
-Memory Leaks Fixed
-
-------------------------------------------------------------------------
-r659 | zimmerma | 2000-06-29 13:22:57 +0000 (Thu, 29 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpfr_sub_ui
-
-------------------------------------------------------------------------
-r658 | zimmerma | 2000-06-29 13:22:34 +0000 (Thu, 29 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/init.c
-
-now use mpfr macros
-
-------------------------------------------------------------------------
-r657 | zimmerma | 2000-06-29 13:18:58 +0000 (Thu, 29 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-be careful not to call mpn_sub_n/mpn_sub_1 with a size 0
-
-------------------------------------------------------------------------
-r656 | zimmerma | 2000-06-29 13:16:45 +0000 (Thu, 29 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/clear.c
-
-fixed to free an entire number of limbs
-
-------------------------------------------------------------------------
-r655 | zimmerma | 2000-06-29 13:14:38 +0000 (Thu, 29 Jun 2000) | 2 lines
-Changed paths:
- A /trunk/tests/tsub_ui.c
-
-test file for sub_ui
-
-------------------------------------------------------------------------
-r654 | jeandel | 2000-06-28 08:35:07 +0000 (Wed, 28 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-mpfr_exp3 and mpfr_extract added to Makefile
-
-------------------------------------------------------------------------
-r653 | jeandel | 2000-06-28 08:33:06 +0000 (Wed, 28 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/exp2.c
- A /trunk/exp3.c
- A /trunk/extract.c
-
-First Release
-
-------------------------------------------------------------------------
-r652 | zimmerma | 2000-06-21 15:56:25 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt_ui.c
-
-distinguish between mpfr failure and difference with sqrt()
-
-------------------------------------------------------------------------
-r651 | zimmerma | 2000-06-21 15:55:35 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-ensures random numbers given to sqrt() are positive
-
-------------------------------------------------------------------------
-r650 | zimmerma | 2000-06-21 15:52:43 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-adapted for freebsd
-
-------------------------------------------------------------------------
-r649 | zimmerma | 2000-06-21 15:52:05 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-modified drand to avoid false NaNs (makes SEGV under FreeBSD)
-
-------------------------------------------------------------------------
-r648 | zimmerma | 2000-06-21 15:51:17 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added entry for FreeBSD, removed -pedantic option
-
-------------------------------------------------------------------------
-r647 | zimmerma | 2000-06-21 14:54:08 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-added one test
-
-------------------------------------------------------------------------
-r646 | zimmerma | 2000-06-21 14:47:02 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added new tests
-
-------------------------------------------------------------------------
-r645 | zimmerma | 2000-06-21 14:40:38 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpfr_set_prec_raw
-
-------------------------------------------------------------------------
-r644 | zimmerma | 2000-06-21 14:40:17 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed work done
-
-------------------------------------------------------------------------
-r643 | zimmerma | 2000-06-21 13:54:05 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed several bugs
-
-------------------------------------------------------------------------
-r642 | zimmerma | 2000-06-21 13:52:24 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-merged different roundings in case diff_exp<PREC(a), dif<=PREC(c)
-
-------------------------------------------------------------------------
-r641 | zimmerma | 2000-06-21 09:58:17 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-removed printf for argc=1
-
-------------------------------------------------------------------------
-r640 | zimmerma | 2000-06-21 09:54:31 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tui_sub.c
-
-added one test
-
-------------------------------------------------------------------------
-r639 | zimmerma | 2000-06-21 09:52:32 +0000 (Wed, 21 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-make ceil.o,floor.o,trunc.o depend on trunc.c
-
-------------------------------------------------------------------------
-r638 | hanrot | 2000-06-20 08:50:47 +0000 (Tue, 20 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/teq.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/trandom.c
- M /trunk/tests/ttrunc.c
-
-Various patches for leaks, UMR and (one) BUS.
-
-------------------------------------------------------------------------
-r637 | hanrot | 2000-06-19 16:20:54 +0000 (Mon, 19 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tset_str.c
-
-This patch suppresses a few mem leaks.
-
-------------------------------------------------------------------------
-r636 | hanrot | 2000-06-19 15:38:44 +0000 (Mon, 19 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tsqrt.c
-
-Suppressed memory leaks.
-
-------------------------------------------------------------------------
-r635 | hanrot | 2000-06-19 10:15:32 +0000 (Mon, 19 Jun 2000) | 3 lines
-Changed paths:
- M /trunk/div.c
- M /trunk/mul_ui.c
- M /trunk/sqrt.c
-
-Patch for 1 << (BITS_PER_MP_LIMB - x) when x is 0 (produces inexact results
-on PPCs).
-
-------------------------------------------------------------------------
-r634 | zimmerma | 2000-06-16 15:23:35 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-arguments of gmp_randinit were in wrong order
-
-------------------------------------------------------------------------
-r633 | hanrot | 2000-06-16 15:13:13 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/eq.c
-
-Patch in the case when n_bits is a multiple of 32.
-
-------------------------------------------------------------------------
-r632 | zimmerma | 2000-06-16 15:05:34 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
-
-added patch to get denorms on IRIX64
-
-------------------------------------------------------------------------
-r631 | zimmerma | 2000-06-16 15:02:04 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-put instruction to get denormalized numbers on IRIX64 out of #ifdef TEST
-
-------------------------------------------------------------------------
-r630 | zimmerma | 2000-06-16 14:37:23 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-fixed bug occurring on LinuxPPC (1 << 32)
-
-------------------------------------------------------------------------
-r629 | zimmerma | 2000-06-16 14:35:00 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added one test (bug on LinuxPPC)
-
-------------------------------------------------------------------------
-r628 | zimmerma | 2000-06-16 13:47:32 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added one test
-
-------------------------------------------------------------------------
-r627 | zimmerma | 2000-06-16 12:54:05 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/trunc.c
-
-fixed several problems
-
-------------------------------------------------------------------------
-r626 | zimmerma | 2000-06-16 12:53:22 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/ttrunc.c
-
-added more tests
-
-------------------------------------------------------------------------
-r625 | hanrot | 2000-06-16 10:02:43 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Patches for the case where the precision is a multiple of the word size.
-
-------------------------------------------------------------------------
-r624 | zimmerma | 2000-06-16 08:28:40 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed another bug
-
-------------------------------------------------------------------------
-r623 | zimmerma | 2000-06-16 08:26:45 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tui_sub.c
-
-added one test
-
-------------------------------------------------------------------------
-r622 | zimmerma | 2000-06-16 08:22:28 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpz_set_fr
-
-------------------------------------------------------------------------
-r621 | zimmerma | 2000-06-16 08:21:53 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-improved choice of initial precision
-
-------------------------------------------------------------------------
-r620 | zimmerma | 2000-06-16 08:21:03 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
- A /trunk/mpz_set_fr.c
-
-added mpz_set_fr (conversion from mpfr to mpz)
-
-------------------------------------------------------------------------
-r619 | zimmerma | 2000-06-16 08:16:49 +0000 (Fri, 16 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tround.c
-
-added return type 'int' for main
-
-------------------------------------------------------------------------
-r618 | hanrot | 2000-06-15 17:42:09 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Added TESTFLAGS to the main Makefile. Added ttrunc.
-
-------------------------------------------------------------------------
-r617 | hanrot | 2000-06-15 17:26:03 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/trunc.c
-
-Minor patch (put to 0 the nonsignificant bits).
-
-------------------------------------------------------------------------
-r616 | hanrot | 2000-06-15 17:16:02 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Added declaration of trunc, ceil, floor.
-
-------------------------------------------------------------------------
-r615 | hanrot | 2000-06-15 17:15:40 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- A /trunk/tests/ttrunc.c
-
-Tests for trunc, ceil, floor.
-
-------------------------------------------------------------------------
-r614 | hanrot | 2000-06-15 16:43:40 +0000 (Thu, 15 Jun 2000) | 3 lines
-Changed paths:
- M /trunk/Configure
-
-Added TESTFLAGS variable to the compile instruction, for use as
-make "TESTFLAGS=-DTEST"
-
-------------------------------------------------------------------------
-r613 | zimmerma | 2000-06-15 16:00:28 +0000 (Thu, 15 Jun 2000) | 3 lines
-Changed paths:
- M /trunk/tests/teq.c
-
-1 -> (mp_limb_t) 1 [pb on 64-bit machines]
-reduced number of tests to 1000
-
-------------------------------------------------------------------------
-r612 | hanrot | 2000-06-15 10:32:04 +0000 (Thu, 15 Jun 2000) | 3 lines
-Changed paths:
- M /trunk/tests/trandom.c
-
-Display of statistics is only toggled if a number of tests to be performed
-is given. Shameful hack, but is getopt really portable ?
-
-------------------------------------------------------------------------
-r611 | hanrot | 2000-06-15 10:25:51 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Added trandom, teq
-
-------------------------------------------------------------------------
-r610 | hanrot | 2000-06-15 10:25:20 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Added random2, urandomb
-
-------------------------------------------------------------------------
-r609 | hanrot | 2000-06-15 10:15:58 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-Added div_2exp to the (very rough) test.
-
-------------------------------------------------------------------------
-r608 | hanrot | 2000-06-15 10:13:37 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- A /trunk/tests/trandom.c
-
-Very basic statistical tests for random, random2, urandomb.
-
-------------------------------------------------------------------------
-r607 | hanrot | 2000-06-15 10:13:19 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Patch for random (libc's random() is on 31 bits only)
-
-------------------------------------------------------------------------
-r606 | hanrot | 2000-06-15 08:12:10 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- A /trunk/tests/teq.c
-
-Test for mpfr_eq.
-
-------------------------------------------------------------------------
-r605 | hanrot | 2000-06-15 08:11:54 +0000 (Thu, 15 Jun 2000) | 2 lines
-Changed paths:
- M /trunk/eq.c
-
-Patch a few incoherences of eq.c wrt the manual + adapt to mpfr usual semantics
-
-------------------------------------------------------------------------
-r604 | zimmerma | 2000-06-07 09:50:41 +0000 (Wed, 07 Jun 2000) | 2 lines
-Changed paths:
- A /trunk/cputime.h
-
-header file providing cputime() function
-
-------------------------------------------------------------------------
-r603 | zimmerma | 2000-06-07 09:45:23 +0000 (Wed, 07 Jun 2000) | 2 lines
-Changed paths:
- A /trunk/tests/texp2.c
-
-test file comparing mpfr_exp and mpfr_exp2
-
-------------------------------------------------------------------------
-r602 | zimmerma | 2000-06-07 09:44:40 +0000 (Wed, 07 Jun 2000) | 4 lines
-Changed paths:
- A /trunk/exp2.c
-
-O(n^(1/3)*log(n)) algorithm using Brent's method
-and Brent-Kung's O(sqrt(t)) algorithm to evaluate
-a power series of order t [exact rounding not yet finished]
-
-------------------------------------------------------------------------
-r601 | zimmerma | 2000-05-29 15:37:53 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-fixed bug in mpfr_round (wrong sign)
-
-------------------------------------------------------------------------
-r600 | zimmerma | 2000-05-29 15:09:51 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-fixed bug in mpfr_round: did not check allocated space was large enough
-
-------------------------------------------------------------------------
-r599 | zimmerma | 2000-05-29 14:02:08 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-main -> int main
-
-------------------------------------------------------------------------
-r598 | zimmerma | 2000-05-29 13:54:39 +0000 (Mon, 29 May 2000) | 3 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-added #ifdef TEST: if not defined (default), then function
-mpfr_set_machine_rnd_mode is not defined
-
-------------------------------------------------------------------------
-r597 | zimmerma | 2000-05-29 13:53:43 +0000 (Mon, 29 May 2000) | 3 lines
-Changed paths:
- M /trunk/tests/tabs.c
- M /trunk/tests/tadd_ui.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tset_q.c
- M /trunk/tests/tui_div.c
- M /trunk/tests/tui_sub.c
-
-added #ifdef TEST to disable comparison with machine arithmetic
-by default (i.e. calls to mpfr_set_machine_rnd_mode)
-
-------------------------------------------------------------------------
-r596 | zimmerma | 2000-05-29 13:46:24 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-removed longlong.h (not needed)
-
-------------------------------------------------------------------------
-r595 | zimmerma | 2000-05-29 13:45:51 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-now deals with NaN
-
-------------------------------------------------------------------------
-r594 | zimmerma | 2000-05-29 13:45:17 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-RND_MODE -> rnd_mode
-
-------------------------------------------------------------------------
-r593 | zimmerma | 2000-05-29 13:44:13 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-mpfr_init is now a function (no more a macro)
-
-------------------------------------------------------------------------
-r592 | zimmerma | 2000-05-29 13:43:39 +0000 (Mon, 29 May 2000) | 3 lines
-Changed paths:
- M /trunk/init.c
-
-printf -> fprintf
-added mpfr_init as function
-
-------------------------------------------------------------------------
-r591 | zimmerma | 2000-05-29 13:42:10 +0000 (Mon, 29 May 2000) | 3 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-changed (x) -> x
-fixed several typos
-
-------------------------------------------------------------------------
-r590 | zimmerma | 2000-05-29 11:28:48 +0000 (Mon, 29 May 2000) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-removed printf
-
-------------------------------------------------------------------------
-r589 | zimmerma | 2000-05-26 16:38:44 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-added ifdef TEST
-
-------------------------------------------------------------------------
-r588 | zimmerma | 2000-05-26 16:28:09 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-removed debug line
-
-------------------------------------------------------------------------
-r587 | zimmerma | 2000-05-26 16:25:37 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-added one test
-
-------------------------------------------------------------------------
-r586 | zimmerma | 2000-05-26 16:25:13 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added 2 new tests
-
-------------------------------------------------------------------------
-r585 | zimmerma | 2000-05-26 16:24:25 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-little change
-
-------------------------------------------------------------------------
-r584 | zimmerma | 2000-05-26 16:20:49 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-more changes
-
-------------------------------------------------------------------------
-r583 | zimmerma | 2000-05-26 15:44:03 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tsqrt_ui.c
-
-added ifdef TEST
-
-------------------------------------------------------------------------
-r582 | zimmerma | 2000-05-26 15:43:31 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-does not use machine rounding mode any more
-
-------------------------------------------------------------------------
-r581 | zimmerma | 2000-05-26 15:24:40 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added 7 new tests
-
-------------------------------------------------------------------------
-r580 | zimmerma | 2000-05-26 15:24:16 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-fixed typo in printf format
-
-------------------------------------------------------------------------
-r579 | zimmerma | 2000-05-26 15:22:37 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/sub.c
-
-fixed several rounding problems
-
-------------------------------------------------------------------------
-r578 | zimmerma | 2000-05-26 12:52:45 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-rewritten case dif<=0 and PREC(b)>PREC(a) (merged all roundings)
-
-------------------------------------------------------------------------
-r577 | zimmerma | 2000-05-26 10:11:04 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-removed DEBUG, VERBOSE ifdef's
-
-------------------------------------------------------------------------
-r576 | zimmerma | 2000-05-26 10:07:43 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed (hopefully) the case dif<=0, PREC(b)>PREC(a), directed rounding
-
-------------------------------------------------------------------------
-r575 | zimmerma | 2000-05-26 08:59:28 +0000 (Fri, 26 May 2000) | 3 lines
-Changed paths:
- M /trunk/sub.c
-
-replaced (mp_limb_t)1 by macro ONE
-fixed bug for GMP_RNDN with overlap=1
-
-------------------------------------------------------------------------
-r574 | zimmerma | 2000-05-26 08:58:32 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-removed misplaced comment
-
-------------------------------------------------------------------------
-r573 | zimmerma | 2000-05-26 08:20:16 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added one test
-
-------------------------------------------------------------------------
-r572 | zimmerma | 2000-05-26 08:16:19 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-does not use rnd_mode.c by default
-
-------------------------------------------------------------------------
-r571 | zimmerma | 2000-05-26 07:41:46 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-removed unused label
-
-------------------------------------------------------------------------
-r570 | zimmerma | 2000-05-26 07:40:31 +0000 (Fri, 26 May 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-fixed more tiny bugs
-
-------------------------------------------------------------------------
-r569 | zimmerma | 2000-05-25 17:00:04 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt_ui.c
-
-use mpfr_print_rnd_mode now
-
-------------------------------------------------------------------------
-r568 | zimmerma | 2000-05-25 16:59:43 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tui_sub.c
-
-added one test
-
-------------------------------------------------------------------------
-r567 | zimmerma | 2000-05-25 16:59:08 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tadd_ui.c
-
-added more tests
-
-------------------------------------------------------------------------
-r566 | zimmerma | 2000-05-25 16:55:19 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/add_ui.c
-
-removed TMP_ALLOC stuff
-
-------------------------------------------------------------------------
-r565 | zimmerma | 2000-05-25 16:54:29 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed new bug when a <- b - c with tiny c
-
-------------------------------------------------------------------------
-r564 | zimmerma | 2000-05-25 16:30:10 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed bug in a <- b-c when c very small but does not overlap with a
-
-------------------------------------------------------------------------
-r563 | zimmerma | 2000-05-25 15:45:33 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/random2.c
-
-removed 'inline' (does not compile on Alpha with gcc 2.8.1)
-
-------------------------------------------------------------------------
-r562 | zimmerma | 2000-05-25 15:35:48 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tout_str.c
-
-added include file unistd.h
-
-------------------------------------------------------------------------
-r561 | zimmerma | 2000-05-25 15:35:08 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-fixed warning with long arguments
-
-------------------------------------------------------------------------
-r560 | zimmerma | 2000-05-25 15:28:50 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- A /trunk/inp_str.c
- A /trunk/set_str.c
-
-initial version
-
-------------------------------------------------------------------------
-r559 | zimmerma | 2000-05-25 15:26:11 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added tests for mpfr_set_str
-
-------------------------------------------------------------------------
-r558 | zimmerma | 2000-05-25 15:25:13 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-now returns 0 if all works
-
-------------------------------------------------------------------------
-r557 | zimmerma | 2000-05-25 15:24:42 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-changed to return the error in ulps
-
-------------------------------------------------------------------------
-r556 | zimmerma | 2000-05-25 15:24:06 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added new functions mpfr_set_str and mpfr_inp_str
-
-------------------------------------------------------------------------
-r555 | zimmerma | 2000-05-25 14:58:04 +0000 (Thu, 25 May 2000) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototypes for set_str, inp_str
-changed return value for mpfr*pow*
-
-------------------------------------------------------------------------
-r554 | zimmerma | 2000-05-25 14:56:51 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-separated functions with/without rounding argument
-
-------------------------------------------------------------------------
-r553 | zimmerma | 2000-05-25 14:56:19 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added tabs
-
-------------------------------------------------------------------------
-r552 | zimmerma | 2000-05-25 14:22:08 +0000 (Thu, 25 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added set_str.o and inp_str.o
-
-------------------------------------------------------------------------
-r551 | zimmerma | 2000-05-24 17:01:52 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- A /trunk/sub_ui.c
-
-initial version
-
-------------------------------------------------------------------------
-r550 | zimmerma | 2000-05-24 17:01:01 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added rule for sub_ui.o
-
-------------------------------------------------------------------------
-r549 | zimmerma | 2000-05-24 16:51:55 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-use only one file (trunc.c) for ceil, floor, trunc
-
-------------------------------------------------------------------------
-r548 | zimmerma | 2000-05-24 16:51:22 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- D /trunk/ceil.c
- D /trunk/floor.c
-
-now use trunc.c for all 3 functions (ceil, floor, trunc)
-
-------------------------------------------------------------------------
-r547 | zimmerma | 2000-05-24 16:42:00 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/trunc.c
-
-added ifdef to avoid warning at compilation
-
-------------------------------------------------------------------------
-r546 | zimmerma | 2000-05-24 16:41:30 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/reldiff.c
-
-removed unused variable
-
-------------------------------------------------------------------------
-r545 | zimmerma | 2000-05-24 16:41:09 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-fixed output type for mpfr_ui_div
-
-------------------------------------------------------------------------
-r544 | zimmerma | 2000-05-24 16:37:13 +0000 (Wed, 24 May 2000) | 3 lines
-Changed paths:
- M /trunk/urandomb.c
-
-removed 3rd argument (use PREC(rop) instead)
-added include longlong.h
-
-------------------------------------------------------------------------
-r543 | zimmerma | 2000-05-24 16:35:23 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/set_prc_raw.c
-
-stupid typo: ABSSIZE -> ABSSIZE(x)
-
-------------------------------------------------------------------------
-r542 | zimmerma | 2000-05-24 16:32:06 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-change due to new semantics of mpfr_init_set* macros
-
-------------------------------------------------------------------------
-r541 | zimmerma | 2000-05-24 16:31:18 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/set_prc_raw.c
-
-now makes an error when precision too large wrt allocated space
-
-------------------------------------------------------------------------
-r540 | zimmerma | 2000-05-24 16:28:41 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added new implemented functions
-
-------------------------------------------------------------------------
-r539 | zimmerma | 2000-05-24 16:26:30 +0000 (Wed, 24 May 2000) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
-
-- added macro for mpfr_sgn
-- removed argument 'p' in mpfr_init_set* macros for compatibility with mpf
-
-------------------------------------------------------------------------
-r538 | zimmerma | 2000-05-24 16:25:20 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpf2mpfr.h
-
-updated wrt new functions
-
-------------------------------------------------------------------------
-r537 | zimmerma | 2000-05-24 16:24:57 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added sub_ui
-
-------------------------------------------------------------------------
-r536 | zimmerma | 2000-05-24 15:29:24 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added new test files
-
-------------------------------------------------------------------------
-r535 | zimmerma | 2000-05-24 15:28:52 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- A /trunk/tests/tadd_ui.c
- A /trunk/tests/tset_q.c
- A /trunk/tests/tsqrt_ui.c
- A /trunk/tests/tui_div.c
- A /trunk/tests/tui_sub.c
-
-new test files
-
-------------------------------------------------------------------------
-r534 | zimmerma | 2000-05-24 15:24:28 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added new tests
-
-------------------------------------------------------------------------
-r533 | zimmerma | 2000-05-24 15:23:54 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tabs.c
-
-improved tests
-
-------------------------------------------------------------------------
-r532 | zimmerma | 2000-05-24 15:22:08 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- A /trunk/add_ui.c
- A /trunk/reldiff.c
- A /trunk/sqrt_ui.c
- A /trunk/ui_div.c
- A /trunk/ui_sub.c
-
-new functions (compatibility with mpf)
-
-------------------------------------------------------------------------
-r531 | zimmerma | 2000-05-24 15:20:16 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-added 4th arg (was missing in non-stdc def)
-
-------------------------------------------------------------------------
-r530 | zimmerma | 2000-05-24 15:19:10 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added new functions (compatibility with mpf)
-
-------------------------------------------------------------------------
-r529 | zimmerma | 2000-05-24 15:18:37 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added several prototypes
-
-------------------------------------------------------------------------
-r528 | zimmerma | 2000-05-24 15:18:04 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-fixed remaining bug (case overlap=5, dif>0)
-
-------------------------------------------------------------------------
-r527 | zimmerma | 2000-05-24 15:16:52 +0000 (Wed, 24 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added add_ui, sqrt_ui, ui_div, ui_sub, reldiff
-
-------------------------------------------------------------------------
-r526 | hanrot | 2000-05-21 16:47:02 +0000 (Sun, 21 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
- A /trunk/ceil.c
- A /trunk/floor.c
- A /trunk/trunc.c
-
-Compatibility mpf/mpfr, second part. Ceil, floor, trunc. Yet untested.
-
-------------------------------------------------------------------------
-r525 | hanrot | 2000-05-21 16:38:07 +0000 (Sun, 21 May 2000) | 2 lines
-Changed paths:
- A /trunk/mpf2mpfr.h
-
-Include file for compatibility module mpf -> mpfr.
-
-------------------------------------------------------------------------
-r524 | hanrot | 2000-05-21 16:35:52 +0000 (Sun, 21 May 2000) | 3 lines
-Changed paths:
- M /trunk/Configure
- A /trunk/dump.c
- A /trunk/eq.c
- A /trunk/random2.c
- A /trunk/set_prc_raw.c
- A /trunk/urandomb.c
-
-Compatibility with mpf. WARNING: THESE FUNCTIONS ARE UNTESTED IN THEIR PRESENT
-FORM. THEY *DO* COMPILE HOWEVER.
-
-------------------------------------------------------------------------
-r523 | zimmerma | 2000-05-18 13:41:24 +0000 (Thu, 18 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-removed unused variables
-
-------------------------------------------------------------------------
-r522 | zimmerma | 2000-05-18 13:38:53 +0000 (Thu, 18 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-removed ';'
-
-------------------------------------------------------------------------
-r521 | zimmerma | 2000-05-18 13:29:55 +0000 (Thu, 18 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tround.c
-
-added return
-
-------------------------------------------------------------------------
-r520 | zimmerma | 2000-05-18 12:57:08 +0000 (Thu, 18 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-added calls to mpf[r]_clear, and rewrote to avoid memory leaks
-
-------------------------------------------------------------------------
-r519 | zimmerma | 2000-05-18 12:56:14 +0000 (Thu, 18 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added calls to free
-
-------------------------------------------------------------------------
-r518 | zimmerma | 2000-05-18 12:55:17 +0000 (Thu, 18 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-corrected comment about field mp_size
-
-------------------------------------------------------------------------
-r517 | zimmerma | 2000-05-12 08:07:56 +0000 (Fri, 12 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-added tests for negative numbers
-
-------------------------------------------------------------------------
-r516 | zimmerma | 2000-05-12 08:07:35 +0000 (Fri, 12 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added one test
-
-------------------------------------------------------------------------
-r515 | zimmerma | 2000-05-12 08:07:02 +0000 (Fri, 12 May 2000) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed pb with rounding of negative numbers
-
-------------------------------------------------------------------------
-r514 | zimmerma | 2000-05-11 15:39:48 +0000 (Thu, 11 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mpfr_abs
-
-------------------------------------------------------------------------
-r513 | zimmerma | 2000-05-11 15:38:12 +0000 (Thu, 11 May 2000) | 2 lines
-Changed paths:
- A /trunk/tests/tabs.c
-
-test file for mpfr_abs
-
-------------------------------------------------------------------------
-r512 | zimmerma | 2000-05-11 15:37:48 +0000 (Thu, 11 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added mpfr_abs (macro using mpfr_set4)
-
-------------------------------------------------------------------------
-r511 | zimmerma | 2000-05-11 10:08:54 +0000 (Thu, 11 May 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated wrt done/new tasks
-
-------------------------------------------------------------------------
-r510 | zimmerma | 2000-05-05 13:59:56 +0000 (Fri, 05 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added two tests
-
-------------------------------------------------------------------------
-r509 | zimmerma | 2000-05-05 13:59:25 +0000 (Fri, 05 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-split mpfr_init2 into mpfr_init and mpfr_set_prec
-
-------------------------------------------------------------------------
-r508 | zimmerma | 2000-05-05 13:57:33 +0000 (Fri, 05 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-removed karadiv.o
-
-------------------------------------------------------------------------
-r507 | zimmerma | 2000-05-05 13:57:08 +0000 (Fri, 05 May 2000) | 2 lines
-Changed paths:
- M /trunk/karasqrt.c
-
-replaced mpn_divrem_n by mpn_divrem (efficient in GMP 3.0)
-
-------------------------------------------------------------------------
-r506 | zimmerma | 2000-05-05 13:55:49 +0000 (Fri, 05 May 2000) | 2 lines
-Changed paths:
- D /trunk/karadiv.c
-
-not needed any more with GMP 3.0
-
-------------------------------------------------------------------------
-r505 | zimmerma | 2000-05-05 13:49:02 +0000 (Fri, 05 May 2000) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-removed mpn_divrem_n stuff, now that Burnikel/Ziegler algorithm is in GMP 3.0
-
-------------------------------------------------------------------------
-r504 | zimmerma | 2000-05-05 13:29:21 +0000 (Fri, 05 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
- M /trunk/tests/tout_str.c
-
-added one test
-
-------------------------------------------------------------------------
-r503 | zimmerma | 2000-05-04 15:18:31 +0000 (Thu, 04 May 2000) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-completely rewritten (changed semantics)
-
-------------------------------------------------------------------------
-r502 | zimmerma | 2000-05-04 15:17:07 +0000 (Thu, 04 May 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-initialized variable bh to avoid warning at compilation
-
-------------------------------------------------------------------------
-r501 | zimmerma | 2000-05-04 15:16:11 +0000 (Thu, 04 May 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpfr_set_default_rounding_mode
-
-------------------------------------------------------------------------
-r500 | zimmerma | 2000-05-04 15:05:34 +0000 (Thu, 04 May 2000) | 2 lines
-Changed paths:
- M /trunk/cmp_ui.c
-
-fixed pb in mpfr_cmp_ui_2exp for i=0
-
-------------------------------------------------------------------------
-r499 | zimmerma | 2000-05-04 13:40:09 +0000 (Thu, 04 May 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-updated according to meeting from May 4, 2000
-
-------------------------------------------------------------------------
-r498 | zimmerma | 2000-05-04 12:24:56 +0000 (Thu, 04 May 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-updated for AIX
-
-------------------------------------------------------------------------
-r497 | zimmerma | 2000-05-04 12:23:28 +0000 (Thu, 04 May 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
- M /trunk/rnd_mode.c
-
-updated for AIX (thanks to Gerardo Ballabio)
-
-------------------------------------------------------------------------
-r496 | zimmerma | 2000-05-02 16:38:27 +0000 (Tue, 02 May 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-added one test
-
-------------------------------------------------------------------------
-r495 | zimmerma | 2000-05-02 16:37:52 +0000 (Tue, 02 May 2000) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed bug found by G. Ballabio for b=0 and 0<c<1
-
-------------------------------------------------------------------------
-r494 | zimmerma | 2000-05-02 16:37:01 +0000 (Tue, 02 May 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added info for GMP2 vs GMP3
-
-------------------------------------------------------------------------
-r493 | zimmerma | 2000-04-19 19:20:27 +0000 (Wed, 19 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added -ffloat-store for Alpha/OSF
-
-------------------------------------------------------------------------
-r492 | zimmerma | 2000-04-19 18:31:13 +0000 (Wed, 19 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-added cast to mp_limb_t (bug on Alpha in tadd with -O2)
-
-------------------------------------------------------------------------
-r491 | zimmerma | 2000-04-19 18:30:19 +0000 (Wed, 19 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-added one test
-
-------------------------------------------------------------------------
-r490 | zimmerma | 2000-04-19 14:46:00 +0000 (Wed, 19 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/karasqrt.c
-
-removed #if 0
-
-------------------------------------------------------------------------
-r489 | zimmerma | 2000-04-19 14:45:27 +0000 (Wed, 19 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-swapped gmp-impl.h and longlong.h for GMP 3.0
-
-------------------------------------------------------------------------
-r488 | zimmerma | 2000-04-14 07:34:19 +0000 (Fri, 14 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-added more tests
-
-------------------------------------------------------------------------
-r487 | zimmerma | 2000-04-14 07:33:46 +0000 (Fri, 14 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-fixed pb when target precision is less than integer length
-
-------------------------------------------------------------------------
-r486 | zimmerma | 2000-04-14 07:32:36 +0000 (Fri, 14 Apr 2000) | 3 lines
-Changed paths:
- M /trunk/add.c
-
-fixed problem not solved so far, i.e. when adding round bit
-produces a change of exponent
-
-------------------------------------------------------------------------
-r485 | zimmerma | 2000-04-13 17:05:48 +0000 (Thu, 13 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-fixed computation of ulps
-
-------------------------------------------------------------------------
-r484 | zimmerma | 2000-04-13 17:03:32 +0000 (Thu, 13 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-removed variable xrw in mpfr_round_raw (not used)
-
-------------------------------------------------------------------------
-r483 | zimmerma | 2000-04-13 17:02:20 +0000 (Thu, 13 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-replaced 1st my by my+sh in mpfr_round_raw call
-
-------------------------------------------------------------------------
-r482 | zimmerma | 2000-04-13 17:00:16 +0000 (Thu, 13 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added 2 more tests
-
-------------------------------------------------------------------------
-r481 | hanrot | 2000-04-13 16:49:33 +0000 (Thu, 13 Apr 2000) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-Correction d'un bug quand le carry contient tous les bits significatifs.
-
-------------------------------------------------------------------------
-r480 | zimmerma | 2000-02-11 17:24:38 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-improved indentation
-mpfr_pi -> mpfr_const_pi
-
-------------------------------------------------------------------------
-r479 | zimmerma | 2000-02-11 17:23:36 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_z.c
-
-added one test
-
-------------------------------------------------------------------------
-r478 | zimmerma | 2000-02-11 17:23:09 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
- M /trunk/tests/tpi.c
-
-mpfr_pi -> mpfr_const_pi
-
-------------------------------------------------------------------------
-r477 | zimmerma | 2000-02-11 17:22:34 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-use mpfr_cmp_ui instead of SIGN
-
-------------------------------------------------------------------------
-r476 | zimmerma | 2000-02-11 17:22:03 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tlog2.c
-
-mpfr_log2 -> mpfr_const_log2
-
-------------------------------------------------------------------------
-r475 | zimmerma | 2000-02-11 17:20:57 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/Configure
-
-added -O2 compilation flag
-added set_q
-
-------------------------------------------------------------------------
-r474 | zimmerma | 2000-02-11 17:20:19 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- A /trunk/set_q.c
-
-convert rational (mpz_q) to floating-point (mpfr_t)
-
-------------------------------------------------------------------------
-r473 | zimmerma | 2000-02-11 17:19:15 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-removed things which were done
-
-------------------------------------------------------------------------
-r472 | zimmerma | 2000-02-11 17:18:40 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/agm.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/get_str.c
- M /trunk/log.c
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
-
-unsigned char -> mp_rnd_t
-SIGN -> MPFR_SIGN
-
-------------------------------------------------------------------------
-r471 | zimmerma | 2000-02-11 17:17:47 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/clear.c
-
-use PREC() macro instead of _mp_prec, and corrected size to free
-
-------------------------------------------------------------------------
-r470 | zimmerma | 2000-02-11 17:16:36 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
-
-SIGN -> MPFR_SIGN
-
-------------------------------------------------------------------------
-r469 | zimmerma | 2000-02-11 17:15:35 +0000 (Fri, 11 Feb 2000) | 4 lines
-Changed paths:
- M /trunk/div.c
-
-unsigned char -> mp_rnd_t
-SIGN -> MPFR_SIGN
-added non standard C header
-
-------------------------------------------------------------------------
-r468 | zimmerma | 2000-02-11 17:13:54 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/div_2exp.c
-
-unsigned char -> mp_rnd_t
-
-------------------------------------------------------------------------
-r467 | zimmerma | 2000-02-11 17:11:45 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/init.c
-
-unsigned long int -> mp_prec_t
-
-------------------------------------------------------------------------
-r466 | zimmerma | 2000-02-11 17:11:01 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/log2.c
-
-renamed to mpfr_const_log2
-unsigned char -> mp_rnd_t
-
-------------------------------------------------------------------------
-r465 | zimmerma | 2000-02-11 17:10:24 +0000 (Fri, 11 Feb 2000) | 4 lines
-Changed paths:
- M /trunk/mpfr.h
-
-unsigned char -> mp_rnd_t
-SIGN -> MPFR_SIGN
-unsigned long int -> mp_prec_t
-
-------------------------------------------------------------------------
-r464 | zimmerma | 2000-02-11 17:10:04 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-unsigned char -> mp_rnd_t
-unsigned long int -> mp_prec_t
-
-------------------------------------------------------------------------
-r463 | zimmerma | 2000-02-11 17:08:37 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/mul_2exp.c
- M /trunk/out_str.c
- M /trunk/print_rnd_mode.c
- M /trunk/rnd_mode.c
-
-unsigned char -> mp_rnd_t
-
-------------------------------------------------------------------------
-r462 | zimmerma | 2000-02-11 17:06:41 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/pi.c
-
-renamed to mpfr_const_pi
-unsigned char -> mp_rnd_t
-
-------------------------------------------------------------------------
-r461 | zimmerma | 2000-02-11 17:06:06 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/pow.c
-
-unsigned char -> mp_rnd_t
-added non standard C header
-
-------------------------------------------------------------------------
-r460 | zimmerma | 2000-02-11 17:04:40 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/print_raw.c
-
-SIGN -> MPFR_SIGN
-
-------------------------------------------------------------------------
-r459 | zimmerma | 2000-02-11 17:03:46 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-added non standard C header
-
-------------------------------------------------------------------------
-r458 | zimmerma | 2000-02-11 17:01:46 +0000 (Fri, 11 Feb 2000) | 4 lines
-Changed paths:
- M /trunk/round.c
-
-unsigned char -> mp_rnd_t
-SIGN -> MPFR_SIGN
-unsigned long int -> mp_prec_t
-
-------------------------------------------------------------------------
-r457 | zimmerma | 2000-02-11 17:01:15 +0000 (Fri, 11 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_si.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/sub.c
-
-unsigned char -> mp_rnd_t
-SIGN -> MPFR_SIGN
-
-------------------------------------------------------------------------
-r456 | zimmerma | 2000-02-11 17:00:21 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/set_dfl_prec.c
- M /trunk/set_prec.c
-
-unsigned long int -> mp_prec_t
-
-------------------------------------------------------------------------
-r455 | zimmerma | 2000-02-11 16:59:45 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/set_dfl_rnd.c
-
-har -> mp_rnd_t
-
-------------------------------------------------------------------------
-r454 | zimmerma | 2000-02-11 16:55:07 +0000 (Fri, 11 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-changed rounding mode to mp_rnd_t
-
-------------------------------------------------------------------------
-r453 | zimmerma | 2000-02-04 17:04:06 +0000 (Fri, 04 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-now distinguish between true mpfr errors and possible errors from libm.a
-
-------------------------------------------------------------------------
-r452 | zimmerma | 2000-02-04 17:03:21 +0000 (Fri, 04 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-now use print_rnd_mode
-
-------------------------------------------------------------------------
-r451 | zimmerma | 2000-02-04 17:02:42 +0000 (Fri, 04 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added suggestion from JP Merlet
-
-------------------------------------------------------------------------
-r450 | zimmerma | 2000-02-04 17:02:15 +0000 (Fri, 04 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added print_rnd_mode.c
-
-------------------------------------------------------------------------
-r449 | zimmerma | 2000-02-04 14:55:01 +0000 (Fri, 04 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-added more tests
-
-------------------------------------------------------------------------
-r448 | zimmerma | 2000-02-04 14:54:37 +0000 (Fri, 04 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/set_f.c
-
-fixed bug(s) found by Jean-Pierre Merlet
-
-------------------------------------------------------------------------
-r447 | zimmerma | 2000-02-04 14:45:43 +0000 (Fri, 04 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed prototype of mpfr_set_f (takes now only 3 arguments)
-
-------------------------------------------------------------------------
-r446 | zimmerma | 2000-02-03 08:59:19 +0000 (Thu, 03 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added karasqrt.o
-
-------------------------------------------------------------------------
-r445 | zimmerma | 2000-02-03 08:58:49 +0000 (Thu, 03 Feb 2000) | 4 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for kara_sqrtrem
-added redefinition of KARATSUBA_MUL_THRESHOLD (if not defined)
-removed definition of LOG_MP_BITS_PER_LIMB (was not used)
-
-------------------------------------------------------------------------
-r444 | zimmerma | 2000-02-03 08:57:40 +0000 (Thu, 03 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/karasqrt.c
-
-changed return type to mp_size_t and included mpfr.h
-
-------------------------------------------------------------------------
-r443 | zimmerma | 2000-02-03 08:56:58 +0000 (Thu, 03 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/karadiv.c
-
-moved definition of KARATSUBA_MUL_THRESHOLD (if not defined) to mpfr.h
-
-------------------------------------------------------------------------
-r442 | zimmerma | 2000-02-03 08:48:45 +0000 (Thu, 03 Feb 2000) | 2 lines
-Changed paths:
- A /trunk/karasqrt.c
-
-implements Katatsuba square root
-
-------------------------------------------------------------------------
-r441 | zimmerma | 2000-02-03 08:45:55 +0000 (Thu, 03 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-now use kara_sqrtrem instead of mpn_sqrtrem
-
-------------------------------------------------------------------------
-r440 | zimmerma | 2000-02-03 08:41:35 +0000 (Thu, 03 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-fixed bug when high limb of quotient is zero
-
-------------------------------------------------------------------------
-r439 | zimmerma | 2000-02-02 18:17:30 +0000 (Wed, 02 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added one test [did fail on alpha]
-
-------------------------------------------------------------------------
-r438 | zimmerma | 2000-02-02 18:01:29 +0000 (Wed, 02 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-added cast to mp_limb_t in front of 1<<sh
-
-------------------------------------------------------------------------
-r437 | zimmerma | 2000-02-02 17:57:24 +0000 (Wed, 02 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/karadiv.c
-
-modified to be compatible with gmp-2.0.2
-
-------------------------------------------------------------------------
-r436 | zimmerma | 2000-02-02 17:54:04 +0000 (Wed, 02 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added further sqrt pb on alpha
-
-------------------------------------------------------------------------
-r435 | zimmerma | 2000-02-02 17:53:12 +0000 (Wed, 02 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-swapped longlong.h and gmp-impl.h (pb on alpha)
-
-------------------------------------------------------------------------
-r434 | zimmerma | 2000-02-02 16:02:47 +0000 (Wed, 02 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added test for bug in sub.c found by JP Merlet on Solaris
-
-------------------------------------------------------------------------
-r433 | zimmerma | 2000-02-02 15:52:54 +0000 (Wed, 02 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed mpn_rshift which could have 0 as shift argument
-(caused bug in exp on Solaris found by JP Merlet)
-
-------------------------------------------------------------------------
-r432 | zimmerma | 2000-02-02 15:49:49 +0000 (Wed, 02 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-moved debug messages to stdout
-
-------------------------------------------------------------------------
-r431 | zimmerma | 2000-02-01 16:31:42 +0000 (Tue, 01 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpn_divrem_n (Burnikel-Ziegler algorithm)
-
-------------------------------------------------------------------------
-r430 | zimmerma | 2000-02-01 16:31:05 +0000 (Tue, 01 Feb 2000) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-use mpn_divrem_n (Burnikel-Ziegler algorithm) instead of mpn_divrem
-when rsize=rrsize
-
-------------------------------------------------------------------------
-r429 | zimmerma | 2000-02-01 16:30:17 +0000 (Tue, 01 Feb 2000) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added karadiv.c (to be removed when incorporated in GMP)
-
-------------------------------------------------------------------------
-r428 | zimmerma | 2000-02-01 16:29:32 +0000 (Tue, 01 Feb 2000) | 2 lines
-Changed paths:
- A /trunk/karadiv.c
-
-Burnikel-Ziegler division
-
-------------------------------------------------------------------------
-r427 | zimmerma | 2000-01-31 13:09:12 +0000 (Mon, 31 Jan 2000) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added further examples from V. Lefe`vre
-
-------------------------------------------------------------------------
-r426 | zimmerma | 1999-12-16 13:14:21 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added macri VERSION for target dist
-
-------------------------------------------------------------------------
-r425 | zimmerma | 1999-12-16 11:00:44 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added new tests from V. Lefe`vre
-
-------------------------------------------------------------------------
-r424 | zimmerma | 1999-12-16 11:00:14 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-improved interface: tdiv N for doing N random tests
-
-------------------------------------------------------------------------
-r423 | zimmerma | 1999-12-16 10:59:26 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-added one test
-
-------------------------------------------------------------------------
-r422 | zimmerma | 1999-12-16 10:58:50 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-DEBUG2 -> DEBUG
-
-------------------------------------------------------------------------
-r421 | zimmerma | 1999-12-16 10:58:21 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-added debug instructions
-
-------------------------------------------------------------------------
-r420 | zimmerma | 1999-12-16 10:57:44 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-fixed nasty bug in mpfr_cmp2 (case cc=1)
-
-------------------------------------------------------------------------
-r419 | zimmerma | 1999-12-16 10:54:57 +0000 (Thu, 16 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-replaced printf by fprintf for error
-
-------------------------------------------------------------------------
-r418 | zimmerma | 1999-12-10 20:32:36 +0000 (Fri, 10 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added new tests for large input
-
-------------------------------------------------------------------------
-r417 | zimmerma | 1999-12-10 20:32:07 +0000 (Fri, 10 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-fixed bug for large input
-
-------------------------------------------------------------------------
-r416 | zimmerma | 1999-12-10 13:29:54 +0000 (Fri, 10 Dec 1999) | 4 lines
-Changed paths:
- M /trunk/log.c
-
-rewritten the error analysis:
-- now analyzes the cancellation a posteriori
-- takes into account errors from rounding and initial approximation
-
-------------------------------------------------------------------------
-r415 | zimmerma | 1999-12-10 13:27:42 +0000 (Fri, 10 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added tests from Vincent Lefe`vre
-
-------------------------------------------------------------------------
-r414 | zimmerma | 1999-12-10 13:04:09 +0000 (Fri, 10 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-no warning any more for negative exponent (thanks to V. Lefe`vre)
-
-------------------------------------------------------------------------
-r413 | zimmerma | 1999-12-08 12:12:07 +0000 (Wed, 08 Dec 1999) | 3 lines
-Changed paths:
- M /trunk/exp.c
-
-fixed bug found by V. Lefe`vre (when n<0, we have to compute
-an upper bound of log(2) instead of a lower bound)
-
-------------------------------------------------------------------------
-r412 | zimmerma | 1999-12-08 12:10:29 +0000 (Wed, 08 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added new test (bug found by V. Lefe`vre)
-
-------------------------------------------------------------------------
-r411 | zimmerma | 1999-12-07 16:01:25 +0000 (Tue, 07 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added suggestion from V. Lefe`vre
-
-------------------------------------------------------------------------
-r410 | zimmerma | 1999-12-07 10:31:45 +0000 (Tue, 07 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/TODO
-
-added several remarks from Vincent Lefe`vre
-
-------------------------------------------------------------------------
-r409 | zimmerma | 1999-12-07 10:27:05 +0000 (Tue, 07 Dec 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-corrected many typos found by Vincent Lefe`vre
-
-------------------------------------------------------------------------
-r408 | zimmerma | 1999-11-27 08:10:56 +0000 (Sat, 27 Nov 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
- M /trunk/mul.c
-
-removed executable rights
-
-------------------------------------------------------------------------
-r407 | zimmerma | 1999-11-27 08:09:46 +0000 (Sat, 27 Nov 1999) | 3 lines
-Changed paths:
- M /trunk/INSTALL
-
-improved GMP link (thanks to Vincent Lefe`vre)
-added pointer to Alpha-Linux f-p problems
-
-------------------------------------------------------------------------
-r406 | zimmerma | 1999-11-27 08:08:35 +0000 (Sat, 27 Nov 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-removed executable right on file
-
-------------------------------------------------------------------------
-r405 | zimmerma | 1999-10-20 14:17:01 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-put back test for x=y
-
-------------------------------------------------------------------------
-r404 | zimmerma | 1999-10-20 14:11:34 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-modified to avoid y=-0.0
-
-------------------------------------------------------------------------
-r403 | zimmerma | 1999-10-20 13:31:20 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-modified test procedure to return 53 when x=y
-
-------------------------------------------------------------------------
-r402 | zimmerma | 1999-10-20 13:25:13 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-mpfr_cmp2(b,c) now returns PREC(b) if b=c, even if c=0
-
-------------------------------------------------------------------------
-r401 | zimmerma | 1999-10-20 13:06:11 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added one test
-
-------------------------------------------------------------------------
-r400 | zimmerma | 1999-10-20 13:05:43 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added test under Cygwin
-
-------------------------------------------------------------------------
-r399 | zimmerma | 1999-10-20 11:16:09 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-$make -> $MAKE
-
-------------------------------------------------------------------------
-r398 | zimmerma | 1999-10-20 10:21:22 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
- M /trunk/tests/texp.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_z.c
-
-removed *rand48 prototypes (pb under Cygwin)
-
-------------------------------------------------------------------------
-r397 | zimmerma | 1999-10-20 10:20:37 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-removed *rand48 prototypes
-
-------------------------------------------------------------------------
-r396 | zimmerma | 1999-10-20 10:20:12 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-removed lrand48 prototype (pb under Cygwin)
-
-------------------------------------------------------------------------
-r395 | zimmerma | 1999-10-20 10:19:30 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-added rounding instructions for Cygnus compiler under Windows
-
-------------------------------------------------------------------------
-r394 | zimmerma | 1999-10-20 10:18:14 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added dummy *rand48 functions for CYGWIN
-
-------------------------------------------------------------------------
-r393 | zimmerma | 1999-10-20 10:17:38 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added info about gmp-mparam.h
-
-------------------------------------------------------------------------
-r392 | zimmerma | 1999-10-20 10:16:28 +0000 (Wed, 20 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-incorporated data for CYGWIN
-
-------------------------------------------------------------------------
-r391 | zimmerma | 1999-10-15 09:51:16 +0000 (Fri, 15 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added one test
-
-------------------------------------------------------------------------
-r390 | zimmerma | 1999-10-15 09:41:12 +0000 (Fri, 15 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tsqrt.c
-
-added boundary cases from paper from Michael Parks
-
-------------------------------------------------------------------------
-r389 | zimmerma | 1999-10-14 13:32:09 +0000 (Thu, 14 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-now set sign correctly
-
-------------------------------------------------------------------------
-r388 | zimmerma | 1999-10-14 13:31:45 +0000 (Thu, 14 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added test to check sign is correctly set
-
-------------------------------------------------------------------------
-r387 | zimmerma | 1999-10-14 13:31:15 +0000 (Thu, 14 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added worst case for arg. reduction
-
-------------------------------------------------------------------------
-r386 | zimmerma | 1999-10-14 13:26:40 +0000 (Thu, 14 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-fixed bug when initial approx. floor(x/log(2)) is too large
-
-------------------------------------------------------------------------
-r385 | zimmerma | 1999-10-08 15:25:42 +0000 (Fri, 08 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-now use macros for Linux case, and added ifdef for _ISOC9X_SOURCE
-
-------------------------------------------------------------------------
-r384 | zimmerma | 1999-10-08 10:03:45 +0000 (Fri, 08 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-changed target dist to create archive in a directory
-
-------------------------------------------------------------------------
-r383 | zimmerma | 1999-10-07 15:12:09 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added targets doc and dist
-
-------------------------------------------------------------------------
-r382 | zimmerma | 1999-10-07 15:11:43 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/INSTALL
-
-added documentation and contact for problems
-
-------------------------------------------------------------------------
-r381 | zimmerma | 1999-10-07 14:54:54 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- A /trunk/INSTALL
-
-file for installation of mpfr
-
-------------------------------------------------------------------------
-r380 | zimmerma | 1999-10-07 14:09:58 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
- M /trunk/tests/tout_str.c
-
-added more tests
-
-------------------------------------------------------------------------
-r379 | zimmerma | 1999-10-07 14:06:17 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-now deal with 0 and fixed bug on 64-bit machine
-
-------------------------------------------------------------------------
-r378 | zimmerma | 1999-10-07 08:15:21 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- D /trunk/sqrt3.c
-
-moved to sqrt.c
-
-------------------------------------------------------------------------
-r377 | zimmerma | 1999-10-07 08:14:56 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-now use directly mpn_sqrtrem (previously sqrt3.c)
-
-------------------------------------------------------------------------
-r376 | zimmerma | 1999-10-07 08:14:13 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-updated prototypes of mpfr_div/mpfr_sqrt
-
-------------------------------------------------------------------------
-r375 | zimmerma | 1999-10-07 08:11:25 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
- M /trunk/mpfr.h
-
-removed div3 and sqrt3
-
-------------------------------------------------------------------------
-r374 | zimmerma | 1999-10-07 08:10:06 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-div3 -> div
-
-------------------------------------------------------------------------
-r373 | zimmerma | 1999-10-07 08:09:41 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- D /trunk/div3.c
-
-moved to div.c
-
-------------------------------------------------------------------------
-r372 | zimmerma | 1999-10-07 08:08:48 +0000 (Thu, 07 Oct 1999) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-replaced implementation using Goldschmidt's algorithm
-by that using directly mpn_divrem (previously div3.c)
-
-------------------------------------------------------------------------
-r371 | zimmerma | 1999-10-07 08:07:46 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-sqrt3 -> sqrt
-
-------------------------------------------------------------------------
-r370 | zimmerma | 1999-10-07 08:05:54 +0000 (Thu, 07 Oct 1999) | 2 lines
-Changed paths:
- A /trunk/COPYING.LIB
-
-GNU Library Public License
-
-------------------------------------------------------------------------
-r369 | zimmerma | 1999-08-31 08:56:55 +0000 (Tue, 31 Aug 1999) | 2 lines
-Changed paths:
- M /trunk/set_z.c
-
-removed printf statement
-
-------------------------------------------------------------------------
-r368 | zimmerma | 1999-08-31 08:46:21 +0000 (Tue, 31 Aug 1999) | 2 lines
-Changed paths:
- M /trunk/set_z.c
-
-added ABS for SIZ(z) when z<0
-
-------------------------------------------------------------------------
-r367 | zimmerma | 1999-08-31 08:45:45 +0000 (Tue, 31 Aug 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-removed special 'exact' stuff for n=0
-
-------------------------------------------------------------------------
-r366 | zimmerma | 1999-08-31 08:18:25 +0000 (Tue, 31 Aug 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-fixed prototype of random
-
-------------------------------------------------------------------------
-r365 | zimmerma | 1999-07-30 16:48:33 +0000 (Fri, 30 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-replaced GNU MPFR by MPFR (not yet the GNU label)
-
-------------------------------------------------------------------------
-r364 | zimmerma | 1999-07-30 16:47:40 +0000 (Fri, 30 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/clear.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/div3.c
- M /trunk/div_2exp.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/get_str.c
- M /trunk/init.c
- M /trunk/init_set.h
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpfr-impl.h
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/rnd_mode.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_dfl_prec.c
- M /trunk/set_dfl_rnd.c
- M /trunk/set_f.c
- M /trunk/set_prec.c
- M /trunk/set_si.c
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/sqrt3.c
- M /trunk/sub.c
- M /trunk/tests/tadd.c
- M /trunk/tests/tagm.c
- M /trunk/tests/tcan_round.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tcmp2.c
- M /trunk/tests/tcmp_ui.c
- M /trunk/tests/tdiv.c
- M /trunk/tests/tdiv_ui.c
- M /trunk/tests/texp.c
- M /trunk/tests/tget_str.c
- M /trunk/tests/tlog.c
- M /trunk/tests/tlog2.c
- M /trunk/tests/tmul.c
- M /trunk/tests/tmul_2exp.c
- M /trunk/tests/tmul_ui.c
- M /trunk/tests/tout_str.c
- M /trunk/tests/tpi.c
- M /trunk/tests/tround.c
- M /trunk/tests/tset_d.c
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
- M /trunk/tests/tset_z.c
- M /trunk/tests/tsqrt.c
- M /trunk/tests/tzeta.c
- M /trunk/zeta.c
-
-added copyright notice
-
-------------------------------------------------------------------------
-r363 | zimmerma | 1999-07-09 18:02:58 +0000 (Fri, 09 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_z.c
-
-added one test with prec=160
-
-------------------------------------------------------------------------
-r362 | zimmerma | 1999-07-09 18:02:08 +0000 (Fri, 09 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/pi.c
-
-error term is N+1 and not N
-
-------------------------------------------------------------------------
-r361 | zimmerma | 1999-07-09 18:00:39 +0000 (Fri, 09 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/set_z.c
-
-fixed bug in case sh=0
-
-------------------------------------------------------------------------
-r360 | zimmerma | 1999-07-08 16:28:56 +0000 (Thu, 08 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/round.c
-
-completely rewritten mpfr_can_round_raw, which costs now O(1)
---- or more probably O(log n) --- instead of O(n)
-
-------------------------------------------------------------------------
-r359 | zimmerma | 1999-07-07 16:47:31 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-changed mpfr_init2 to mpfr_set_prec
-
-------------------------------------------------------------------------
-r358 | zimmerma | 1999-07-07 16:44:53 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added one test
-
-------------------------------------------------------------------------
-r357 | zimmerma | 1999-07-07 16:08:19 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-added prototype for mpfr_add1
-
-------------------------------------------------------------------------
-r356 | zimmerma | 1999-07-07 16:04:13 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-added mpfr_clear
-
-------------------------------------------------------------------------
-r355 | hanrot | 1999-07-07 15:53:23 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt3.c
-
-sqrt3 now returns an exact / inexact flag.
-
-------------------------------------------------------------------------
-r354 | hanrot | 1999-07-07 15:52:58 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-sqrt3 now returns an exact/inexact flag.
-
-------------------------------------------------------------------------
-r353 | zimmerma | 1999-07-07 15:49:50 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-fix UMR (missing 0 terminating string)
-
-------------------------------------------------------------------------
-r352 | zimmerma | 1999-07-07 15:26:07 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/init.c
-
-put initialization of exponent back (avoids some UMRs)
-
-------------------------------------------------------------------------
-r351 | zimmerma | 1999-07-07 15:11:20 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed array bound write bug
-
-------------------------------------------------------------------------
-r350 | zimmerma | 1999-07-07 13:12:18 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added one test
-
-------------------------------------------------------------------------
-r349 | zimmerma | 1999-07-07 13:10:57 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-added several tests, and does not print on stdout when no argument
-
-------------------------------------------------------------------------
-r348 | zimmerma | 1999-07-07 13:09:37 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-fixed several bugs
-
-------------------------------------------------------------------------
-r347 | hanrot | 1999-07-07 11:37:10 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-Added an example which causes an ABW in mpz_get_str.
-
-------------------------------------------------------------------------
-r346 | zimmerma | 1999-07-07 11:35:17 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-moved drand to mpfr-impl.h and added test in large precision
-
-------------------------------------------------------------------------
-r345 | zimmerma | 1999-07-07 11:24:34 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added tout_str
-
-------------------------------------------------------------------------
-r344 | hanrot | 1999-07-07 10:12:23 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt3.c
-
-Problem with the exponents in the destructive case.
-
-------------------------------------------------------------------------
-r343 | zimmerma | 1999-07-07 10:04:22 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div3.c
-
-more changes from G. Hanrot
-
-------------------------------------------------------------------------
-r342 | zimmerma | 1999-07-07 10:00:45 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-use now drand48 instead of drand
-
-------------------------------------------------------------------------
-r341 | zimmerma | 1999-07-07 09:49:04 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-simply set to zero the non-significant bits, don't call mpfr_round_raw
-
-------------------------------------------------------------------------
-r340 | zimmerma | 1999-07-07 09:44:15 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div3.c
-
-upgrade from bug fixes from Guillaume Hanrot
-
-------------------------------------------------------------------------
-r339 | zimmerma | 1999-07-07 09:38:44 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/pi.c
-
-stores now last computed value together with its rounding mode
-
-------------------------------------------------------------------------
-r338 | zimmerma | 1999-07-07 09:23:24 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-checks now destructive version
-
-------------------------------------------------------------------------
-r337 | boldo | 1999-07-07 08:07:16 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
- M /trunk/tests/tlog.c
-
-changes on random
-
-------------------------------------------------------------------------
-r336 | boldo | 1999-07-07 08:00:29 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-using div3
-
-------------------------------------------------------------------------
-r335 | boldo | 1999-07-07 08:00:09 +0000 (Wed, 07 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-using sqrt3
-
-------------------------------------------------------------------------
-r334 | hanrot | 1999-07-06 16:56:56 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-HPUX support, 2nd try.
-
-------------------------------------------------------------------------
-r333 | hanrot | 1999-07-06 15:24:27 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div3.c
- M /trunk/sqrt3.c
-
-Patch for the (very seldom encountered) case of even rounding.
-
-------------------------------------------------------------------------
-r332 | zimmerma | 1999-07-06 15:09:07 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
- M /trunk/tests/tset_si.c
- M /trunk/tests/tset_str.c
-
-added def. for random/srandom, which do not exist under HPUX
-
-------------------------------------------------------------------------
-r331 | zimmerma | 1999-07-06 15:06:16 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/pi.c
-
-store now computed values
-
-------------------------------------------------------------------------
-r330 | zimmerma | 1999-07-06 15:05:42 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/log2.c
-
-_mpfr_log2_* -> __mpfr_log2_*
-
-------------------------------------------------------------------------
-r329 | zimmerma | 1999-07-06 14:48:33 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-merged machine rounding instructions for Sun and HP
-
-------------------------------------------------------------------------
-r328 | zimmerma | 1999-07-06 14:46:38 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-patch for HPUX (no random function)
-
-------------------------------------------------------------------------
-r327 | zimmerma | 1999-07-06 14:44:30 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added print_rnd_mode
-
-------------------------------------------------------------------------
-r326 | zimmerma | 1999-07-06 14:41:38 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-fixed prototype of mpfr_print_rnd_mode
-
-------------------------------------------------------------------------
-r325 | zimmerma | 1999-07-06 14:40:54 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-improved ulp to deal with case a=0.0
-
-------------------------------------------------------------------------
-r324 | zimmerma | 1999-07-06 14:40:13 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added return 0 to main
-
-------------------------------------------------------------------------
-r323 | hanrot | 1999-07-06 14:00:29 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div3.c
-
-Forgotten casts.
-
-------------------------------------------------------------------------
-r322 | hanrot | 1999-07-06 12:55:14 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Added sqrt3 + tentative support for Alpha linux.
-
-------------------------------------------------------------------------
-r321 | hanrot | 1999-07-06 12:40:17 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt3.c
-
-The word added when the exponent is odd was sometimes uninitialized.
-
-------------------------------------------------------------------------
-r320 | hanrot | 1999-07-06 09:39:42 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- A /trunk/sqrt3.c
-
-Initial version.
-
-------------------------------------------------------------------------
-r319 | hanrot | 1999-07-06 09:39:20 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Added mpfr_sqrt3.
-
-------------------------------------------------------------------------
-r318 | zimmerma | 1999-07-06 09:23:25 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added several functions, and updated others
-
-------------------------------------------------------------------------
-r317 | zimmerma | 1999-07-06 09:19:09 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed prototype of mpfr_log
-
-------------------------------------------------------------------------
-r316 | zimmerma | 1999-07-06 09:17:28 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-returns now an int instead of void
-
-------------------------------------------------------------------------
-r315 | zimmerma | 1999-07-06 09:16:41 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/init.c
-
-removed initialization of exponent
-
-------------------------------------------------------------------------
-r314 | zimmerma | 1999-07-06 09:16:03 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/exp.c
-
-special case for exp(0)
-
-------------------------------------------------------------------------
-r313 | zimmerma | 1999-07-06 09:15:40 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added test for exp(0)
-
-------------------------------------------------------------------------
-r312 | hanrot | 1999-07-06 08:31:45 +0000 (Tue, 06 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-config.in -> ./config.in
-
-------------------------------------------------------------------------
-r311 | boldo | 1999-07-05 18:55:08 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-new, quick & clean
-
-------------------------------------------------------------------------
-r310 | zimmerma | 1999-07-05 16:35:27 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added two tests and converted to double's
-
-------------------------------------------------------------------------
-r309 | boldo | 1999-07-05 16:27:31 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-more checking ways
-
-------------------------------------------------------------------------
-r308 | zimmerma | 1999-07-05 15:24:16 +0000 (Mon, 05 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-distinguishes now between true errors and differences with libm.a
-(which may fail too)
-
-------------------------------------------------------------------------
-r307 | zimmerma | 1999-07-05 14:55:12 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-removed mpf stuff in check
-
-------------------------------------------------------------------------
-r306 | zimmerma | 1999-07-05 14:49:59 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-added some mpfr_clear's
-
-------------------------------------------------------------------------
-r305 | zimmerma | 1999-07-05 14:45:58 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-changed defs of random/srandom to work on Alpha
-
-------------------------------------------------------------------------
-r304 | zimmerma | 1999-07-05 14:45:12 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-mpfr_init2 -> mpfr_set_prec in check64
-
-------------------------------------------------------------------------
-r303 | zimmerma | 1999-07-05 14:30:48 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-added function dbl
-
-------------------------------------------------------------------------
-r302 | zimmerma | 1999-07-05 14:30:19 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototypes for mpfr_cmp3 and mpfr_set4
-
-------------------------------------------------------------------------
-r301 | zimmerma | 1999-07-05 14:06:18 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/neg.c
-
-use mpfr_set4 now (no modification of const parameters any more)
-
-------------------------------------------------------------------------
-r300 | zimmerma | 1999-07-05 14:05:33 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-return 0 in mpfr_can_round_raw
-
-------------------------------------------------------------------------
-r299 | zimmerma | 1999-07-05 14:04:38 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-introduced auxiliary function mpfr_set4
-
-------------------------------------------------------------------------
-r298 | zimmerma | 1999-07-05 14:01:07 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-fixed possible bug (testing sign of unsigned long) in mpfr_mul_ui
-
-------------------------------------------------------------------------
-r297 | zimmerma | 1999-07-05 14:00:11 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div3.c
-
-replaced PREC(r) by prec (which was defined but not used)
-
-------------------------------------------------------------------------
-r296 | zimmerma | 1999-07-05 13:59:08 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-moved drand and ulp to mpfr-impl
-
-------------------------------------------------------------------------
-r295 | zimmerma | 1999-07-05 13:55:23 +0000 (Mon, 05 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-moved ulp to mpfr-impl.h
-and used input routine 'dbl' in some tests
-
-------------------------------------------------------------------------
-r294 | zimmerma | 1999-07-05 13:32:55 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-modified one test to avoid rounding from double input routines
-
-------------------------------------------------------------------------
-r293 | zimmerma | 1999-07-05 13:18:06 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-introduced auxiliary function mpfr_cmp3(x,y,sign) to compare x and sign*y
-
-------------------------------------------------------------------------
-r292 | zimmerma | 1999-07-05 13:16:55 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-moved drand and ulp to mpfr-impl.h
-
-------------------------------------------------------------------------
-r291 | zimmerma | 1999-07-05 13:15:48 +0000 (Mon, 05 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/sub.c
-
-mpfr_sub now calls directly mpfr_add1/mpfr_sub1 (no modification of
-const parameters any more)
-
-------------------------------------------------------------------------
-r290 | zimmerma | 1999-07-05 13:14:13 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp.c
-
-moved drand to mpfr-implh.h
-
-------------------------------------------------------------------------
-r289 | zimmerma | 1999-07-05 13:12:55 +0000 (Mon, 05 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/add.c
-
-use mpfr_cmp3 instead of mpfr_cmp (avoids warning due to modification of
-const parameters)
-
-------------------------------------------------------------------------
-r288 | zimmerma | 1999-07-05 13:11:42 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-moved drand to mpfr-impl.h and removed warnings
-
-------------------------------------------------------------------------
-r287 | zimmerma | 1999-07-05 12:34:27 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/zeta.c
-
-use the result of mpfr_can_round
-
-------------------------------------------------------------------------
-r286 | zimmerma | 1999-07-05 11:05:32 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-moved drand and ulp to mpfr-impl.h
-
-------------------------------------------------------------------------
-r285 | zimmerma | 1999-07-05 11:03:46 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-moved drand to mpfr-impl.h
-
-------------------------------------------------------------------------
-r284 | zimmerma | 1999-07-05 10:56:30 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-moved drand to mpfr-impl and removed warnings
-
-------------------------------------------------------------------------
-r283 | zimmerma | 1999-07-05 10:55:30 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr-impl.h
-
-added include of math.h
-
-------------------------------------------------------------------------
-r282 | zimmerma | 1999-07-05 10:52:07 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-moved drand and ulp to mpfr-impl.h
-
-------------------------------------------------------------------------
-r281 | zimmerma | 1999-07-05 10:51:37 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- A /trunk/mpfr-impl.h
-
-include file for mpfr developers only
-
-------------------------------------------------------------------------
-r280 | zimmerma | 1999-07-05 10:45:52 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-long -> int in drand
-
-------------------------------------------------------------------------
-r279 | zimmerma | 1999-07-05 10:43:11 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-adapted drand to sizeof(long)=64
-
-------------------------------------------------------------------------
-r278 | zimmerma | 1999-07-05 10:12:44 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-config.in -> ./config.in (otherwise don't work under IRIX)
-
-------------------------------------------------------------------------
-r277 | zimmerma | 1999-07-05 09:42:53 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv_ui.c
-
-removed warnings
-
-------------------------------------------------------------------------
-r276 | zimmerma | 1999-07-05 09:42:20 +0000 (Mon, 05 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-patch for GMP bug when UDIV_NEEDS_NORMALIZATION=1
-
-------------------------------------------------------------------------
-r275 | hanrot | 1999-07-02 17:51:54 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div3.c
-
-Correction of a typo.
-
-------------------------------------------------------------------------
-r274 | zimmerma | 1999-07-02 16:13:14 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div_ui.c
-
-fixed horrible hack yp[-1]
-
-------------------------------------------------------------------------
-r273 | hanrot | 1999-07-02 15:47:18 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Support of IRIX64 (n32/64 modes) plus cosmetic modifications.
-
-------------------------------------------------------------------------
-r272 | zimmerma | 1999-07-02 12:29:31 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added one test, and adapted to ANSI C
-
-------------------------------------------------------------------------
-r271 | hanrot | 1999-07-02 12:28:06 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Yet Another Backslash Forgotten...
-
-------------------------------------------------------------------------
-r270 | hanrot | 1999-07-02 12:26:33 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div3.c
-
-Bug le plus stupide de tous les temps corrige. Ca marchait sous Solaris...
-
-------------------------------------------------------------------------
-r269 | zimmerma | 1999-07-02 12:25:39 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-added one test and removed warnings
-
-------------------------------------------------------------------------
-r268 | hanrot | 1999-07-02 12:22:02 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Added mpfr_div3.
-
-------------------------------------------------------------------------
-r267 | hanrot | 1999-07-02 12:21:42 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Added div3.c
-
-------------------------------------------------------------------------
-r266 | zimmerma | 1999-07-02 12:19:59 +0000 (Fri, 02 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/add.c
-
-fixed bug when sizeof(long) <> sizeof(mp_limb_t)
-and removed DEBUG2 stuff
-
-------------------------------------------------------------------------
-r265 | zimmerma | 1999-07-02 12:19:03 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added one test, and removed warnings
-
-------------------------------------------------------------------------
-r264 | hanrot | 1999-07-02 12:18:47 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- A /trunk/div3.c
-
-Added div3.c, initial release.
-
-------------------------------------------------------------------------
-r263 | hanrot | 1999-07-02 11:45:22 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Patch of the patch :)
-
-------------------------------------------------------------------------
-r262 | hanrot | 1999-07-02 11:27:38 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Pattern matching rules in tests Makefile for non-GNU make (eg Solaris)
-
-------------------------------------------------------------------------
-r261 | zimmerma | 1999-07-02 11:24:09 +0000 (Fri, 02 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-adapted to enable denormalized numbers on IRIX64, added one test and
-removed warnings
-
-------------------------------------------------------------------------
-r260 | zimmerma | 1999-07-02 11:21:42 +0000 (Fri, 02 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/round.c
-
-changed type of 3rd arg. 'neg' of mpfr_can_round_raw from char to int
-(pb with signed char's on some machines, e.g. IRIX64)
-
-------------------------------------------------------------------------
-r259 | zimmerma | 1999-07-02 10:09:00 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-adapted to IRIX64 (enable denorm. numbers) and removed warnings
-
-------------------------------------------------------------------------
-r258 | zimmerma | 1999-07-02 10:06:05 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-adapted to IRIX64 (enable denormalized numbers) and removed warnings
-
-------------------------------------------------------------------------
-r257 | zimmerma | 1999-07-02 10:03:28 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-adapted to IRIX64 (no denormalized by default) and removed warnings
-
-------------------------------------------------------------------------
-r256 | zimmerma | 1999-07-02 09:55:41 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-unsigned long -> mp_limb_t
-
-------------------------------------------------------------------------
-r255 | boldo | 1999-07-02 09:51:06 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-unused variables
-
-------------------------------------------------------------------------
-r254 | boldo | 1999-07-02 09:50:16 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-unused variable
-
-------------------------------------------------------------------------
-r253 | zimmerma | 1999-07-02 09:43:38 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-added ifdef to avoid warning "unused variable" on 64-bit machine
-
-------------------------------------------------------------------------
-r252 | zimmerma | 1999-07-02 09:42:58 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/rnd_mode.c
-
-added def. of swapRM to avoid warning on IRIX64
-
-------------------------------------------------------------------------
-r251 | zimmerma | 1999-07-02 09:36:03 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/print_raw.c
- M /trunk/round.c
-
-1UL -> ((mp_limb_t) 1)
-
-------------------------------------------------------------------------
-r250 | zimmerma | 1999-07-02 09:32:47 +0000 (Fri, 02 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-changed type of mask to mp_limb_t in mpfr_round_raw2
-
-------------------------------------------------------------------------
-r249 | zimmerma | 1999-07-02 09:26:13 +0000 (Fri, 02 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/tests/tset_d.c
-
-adapted for denormalized on IRIX64
-now test NaNs too
-
-------------------------------------------------------------------------
-r248 | hanrot | 1999-07-01 17:20:43 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-Due to the representation of 0 it might have happened that 0 != 0.
-
-------------------------------------------------------------------------
-r247 | hanrot | 1999-07-01 17:09:00 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-Patch mpfr_set -> MPN_COPY
-
-------------------------------------------------------------------------
-r246 | hanrot | 1999-07-01 17:08:12 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Patch when prec < 32.
-
-------------------------------------------------------------------------
-r245 | zimmerma | 1999-07-01 17:00:58 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-fixed bugs for 64-bit machines
-
-------------------------------------------------------------------------
-r244 | zimmerma | 1999-07-01 16:59:36 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-added casts to mp_limb_t
-
-------------------------------------------------------------------------
-r243 | zimmerma | 1999-07-01 16:54:40 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-added cast to mp_limb_t for shifts
-
-------------------------------------------------------------------------
-r242 | boldo | 1999-07-01 14:35:42 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-prints nothing is everything is allright
-
-------------------------------------------------------------------------
-r241 | boldo | 1999-07-01 14:20:32 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-memory gestion
-
-------------------------------------------------------------------------
-r240 | boldo | 1999-07-01 14:19:36 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-one single bug
-
-------------------------------------------------------------------------
-r239 | boldo | 1999-07-01 14:19:12 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-more bad cases
-
-------------------------------------------------------------------------
-r238 | zimmerma | 1999-07-01 14:08:04 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added some certified tests
-
-------------------------------------------------------------------------
-r237 | zimmerma | 1999-07-01 12:47:55 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added one test to check that 1*y = y
-
-------------------------------------------------------------------------
-r236 | hanrot | 1999-07-01 12:19:09 +0000 (Thu, 01 Jul 1999) | 3 lines
-Changed paths:
- M /trunk/div.c
-
-Patch of an MLK due to multiple initialization of the same variables without
-freeing them in-between.
-
-------------------------------------------------------------------------
-r235 | hanrot | 1999-07-01 12:09:49 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-Same as in sqrt (allocation problem).
-
-------------------------------------------------------------------------
-r234 | zimmerma | 1999-07-01 11:58:48 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-fixed bug due to shift=0 in mpn_rshift
-
-------------------------------------------------------------------------
-r233 | hanrot | 1999-07-01 10:43:19 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-(Temporary) patch for memory gestion in sqrt.c
-
-------------------------------------------------------------------------
-r232 | zimmerma | 1999-07-01 09:40:55 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-mpfr_init -> mpfr_init2
-
-------------------------------------------------------------------------
-r231 | zimmerma | 1999-07-01 09:39:56 +0000 (Thu, 01 Jul 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-initialize temporary variables with current precision
-
-------------------------------------------------------------------------
-r230 | hanrot | 1999-06-30 15:47:13 +0000 (Wed, 30 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/clear.c
-
-Unbelievably stupid bug fixed.
-
-------------------------------------------------------------------------
-r229 | hanrot | 1999-06-30 15:14:47 +0000 (Wed, 30 Jun 1999) | 3 lines
-Changed paths:
- M /trunk/round.c
-
-Two patches : one for an UMR which actually had no effect, one for an FNH in
-old code..
-
-------------------------------------------------------------------------
-r228 | boldo | 1999-06-30 14:55:48 +0000 (Wed, 30 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-new bug
-
-------------------------------------------------------------------------
-r227 | boldo | 1999-06-30 13:30:46 +0000 (Wed, 30 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-there were some conflicts
-
-------------------------------------------------------------------------
-r226 | boldo | 1999-06-30 13:30:25 +0000 (Wed, 30 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-there were some conflicts
-
-------------------------------------------------------------------------
-r225 | boldo | 1999-06-30 13:29:47 +0000 (Wed, 30 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/log.c
-
-memory gestion
-
-------------------------------------------------------------------------
-r224 | zimmerma | 1999-06-29 17:53:45 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tzeta.c
-
-replaced outputs by direct comparison when no argument
-
-------------------------------------------------------------------------
-r223 | zimmerma | 1999-06-29 17:46:38 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-modified to do only certified test when no argument
-
-------------------------------------------------------------------------
-r222 | zimmerma | 1999-06-29 17:27:34 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-modified to do only tests with precomputed values when no argument
-
-------------------------------------------------------------------------
-r221 | zimmerma | 1999-06-29 16:13:33 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-does exact rounding only for n=0
-
-------------------------------------------------------------------------
-r220 | remy | 1999-06-29 15:59:22 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added zeta/tzeta
-
-------------------------------------------------------------------------
-r219 | remy | 1999-06-29 15:58:51 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototypes for mpfr_exp and mpfr_zeta
-
-------------------------------------------------------------------------
-r218 | remy | 1999-06-29 15:58:05 +0000 (Tue, 29 Jun 1999) | 3 lines
-Changed paths:
- A /trunk/zeta.c
-
-computes Riemann function Zeta(s)
-first version: only works for s=2 with PREC(result)=53 and rnd_mode=nearest
-
-------------------------------------------------------------------------
-r217 | remy | 1999-06-29 15:57:01 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tzeta.c
-
-test file for mpfr_zeta
-
-------------------------------------------------------------------------
-r216 | remy | 1999-06-29 15:49:15 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added prototype for mpfr_set_default_prec
-
-------------------------------------------------------------------------
-r215 | remy | 1999-06-29 15:40:28 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/zeta2.c
-
-file renamed zeta.c
-
-------------------------------------------------------------------------
-r214 | remy | 1999-06-29 15:26:33 +0000 (Tue, 29 Jun 1999) | 3 lines
-Changed paths:
- A /trunk/zeta2.c
-
-first version: computes Zeta(2) with fixed precision 53 bits and round
-to nearest
-
-------------------------------------------------------------------------
-r213 | hanrot | 1999-06-29 14:48:29 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Patch in the case when the number of bits is a multiple of the word size.
-
-------------------------------------------------------------------------
-r212 | hanrot | 1999-06-29 14:47:58 +0000 (Tue, 29 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-Patch in the case when the low words of the product are zero.
-
-------------------------------------------------------------------------
-r211 | zimmerma | 1999-06-28 13:51:15 +0000 (Mon, 28 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-changed arguments of mpfr_round_raw (continued)
-
-------------------------------------------------------------------------
-r210 | zimmerma | 1999-06-28 13:48:44 +0000 (Mon, 28 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
- M /trunk/mpfr.texi
- M /trunk/mul.c
- M /trunk/mul_ui.c
- M /trunk/random.c
- M /trunk/round.c
- M /trunk/set.c
-
-changed arguments of mpfr_round_raw (now uses precision instead of size)
-
-------------------------------------------------------------------------
-r209 | zimmerma | 1999-06-28 11:50:04 +0000 (Mon, 28 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tpi.c
-
-modified wrt warnings at compilation
-
-------------------------------------------------------------------------
-r208 | zimmerma | 1999-06-28 11:49:08 +0000 (Mon, 28 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-modified description of mpfr_get_str for n_digits=0
-
-------------------------------------------------------------------------
-r207 | zimmerma | 1999-06-28 11:48:15 +0000 (Mon, 28 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-now performs an exact output when n_digits=0
-
-------------------------------------------------------------------------
-r206 | hanrot | 1999-06-28 07:37:06 +0000 (Mon, 28 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-Yet another corrected prototype.
-
-------------------------------------------------------------------------
-r205 | hanrot | 1999-06-25 17:36:57 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/add_ulp.c
- M /trunk/agm.c
- M /trunk/cmp.c
- M /trunk/cmp_ui.c
- M /trunk/div.c
- M /trunk/div_2exp.c
- M /trunk/div_ui.c
- M /trunk/exp.c
- M /trunk/get_str.c
- M /trunk/log.c
- M /trunk/log2.c
- M /trunk/mpfr.h
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/out_str.c
- M /trunk/pi.c
- M /trunk/pow.c
- M /trunk/print_raw.c
- M /trunk/print_rnd_mode.c
- M /trunk/random.c
- M /trunk/rnd_mode.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_d.c
- M /trunk/set_f.c
- M /trunk/set_si.c
- M /trunk/set_str_raw.c
- M /trunk/set_z.c
- M /trunk/sqrt.c
- M /trunk/sub.c
-
-Prototypes et quelques causes de warnings corriges.
-
-------------------------------------------------------------------------
-r204 | hanrot | 1999-06-25 17:20:06 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Modifs cosmetiques.
-
-------------------------------------------------------------------------
-r203 | hanrot | 1999-06-25 17:19:55 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/set_str.c
-
-Fichier vide.
-
-------------------------------------------------------------------------
-r202 | zimmerma | 1999-06-25 16:30:07 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog2.c
-
-do not print anything when no argument
-
-------------------------------------------------------------------------
-r201 | zimmerma | 1999-06-25 16:20:11 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/out_str.c
-
-use GMP allocate/free functions instead of malloc/free
-
-------------------------------------------------------------------------
-r200 | zimmerma | 1999-06-25 16:08:32 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcan_round.c
-
-do not print anything on stdout
-
-------------------------------------------------------------------------
-r199 | zimmerma | 1999-06-25 16:07:34 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-put correctly sign with macro CHANGE_SIGN
-
-------------------------------------------------------------------------
-r198 | hanrot | 1999-06-25 16:00:38 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Ajoute la dépendance de libmpfr.a pour le Makefile des tests.
-
-------------------------------------------------------------------------
-r197 | zimmerma | 1999-06-25 15:54:04 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-correctly handle case sizer=1 in mpfr_set_d
-
-------------------------------------------------------------------------
-r196 | zimmerma | 1999-06-25 15:53:19 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-corrected allocated size in mpfr_round
-
-------------------------------------------------------------------------
-r195 | zimmerma | 1999-06-25 15:51:49 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-make clean does not remove config.in any more
-
-------------------------------------------------------------------------
-r194 | hanrot | 1999-06-25 15:16:10 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-Correction d'un UMR en inversant le while (sans incidence tres probablement).
-
-------------------------------------------------------------------------
-r193 | zimmerma | 1999-06-25 15:12:04 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added four tests
-
-------------------------------------------------------------------------
-r192 | zimmerma | 1999-06-25 15:07:31 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-adapted mpfr_set_d to case where allocated limbs > significant limbs
-
-------------------------------------------------------------------------
-r191 | zimmerma | 1999-06-25 15:05:10 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed bug for b=2^n and c very small
-
-------------------------------------------------------------------------
-r190 | hanrot | 1999-06-25 14:36:27 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Some limbs of the result where not set to zero as they should.
-
-------------------------------------------------------------------------
-r189 | zimmerma | 1999-06-25 13:32:39 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-added prototypes, and errors to stderr
-
-------------------------------------------------------------------------
-r188 | zimmerma | 1999-06-25 13:17:23 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/tests/tset_i
-
-binary file -> remove it
-
-------------------------------------------------------------------------
-r187 | zimmerma | 1999-06-25 13:16:04 +0000 (Fri, 25 Jun 1999) | 3 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-use PREC(x) instead of ABSSIZE(x) to get number of significant limbs
-adapted to different numbers of significant limbs for x and y
-
-------------------------------------------------------------------------
-r186 | zimmerma | 1999-06-25 13:05:45 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-fixed pbs with ABSSIZE(x) wrt PREC(x) in mpfr_round
-
-------------------------------------------------------------------------
-r185 | zimmerma | 1999-06-25 13:01:20 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-added pointer to exponent, removed test with sprintf
-
-------------------------------------------------------------------------
-r184 | zimmerma | 1999-06-25 13:00:05 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-removed DEBUG stuff
-
-------------------------------------------------------------------------
-r183 | zimmerma | 1999-06-25 12:57:10 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-use PREC(x) instead of ABSSIZE(x) to get the number of significant limbs
-
-------------------------------------------------------------------------
-r182 | zimmerma | 1999-06-25 12:56:22 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_si.c
-
-do 10^6 tests if no argument
-
-------------------------------------------------------------------------
-r181 | hanrot | 1999-06-25 12:30:43 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-J'avais oublie -g...
-
-------------------------------------------------------------------------
-r180 | hanrot | 1999-06-25 12:23:51 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Ajoute des flags de paranoiaque schizophrene.
-
-------------------------------------------------------------------------
-r179 | zimmerma | 1999-06-25 11:43:25 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-now prints nothing with no argument
-
-------------------------------------------------------------------------
-r178 | zimmerma | 1999-06-25 11:22:28 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added texp and tdiv_ui
-
-------------------------------------------------------------------------
-r177 | zimmerma | 1999-06-25 11:21:30 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tdiv_ui.c
-
-test file for div_ui, initial revision
-
-------------------------------------------------------------------------
-r176 | zimmerma | 1999-06-25 10:19:42 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-commented out "avant arrondi..."
-
-------------------------------------------------------------------------
-r175 | zimmerma | 1999-06-25 10:17:40 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-clear res1/res2
-
-------------------------------------------------------------------------
-r174 | hanrot | 1999-06-25 10:17:26 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Patches an ABR.
-
-------------------------------------------------------------------------
-r173 | hanrot | 1999-06-25 10:15:54 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-Patch of an ABR.
-
-------------------------------------------------------------------------
-r172 | hanrot | 1999-06-25 10:15:21 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/pow.c
-
-Patch in the case n = 0.
-
-------------------------------------------------------------------------
-r171 | hanrot | 1999-06-25 10:14:45 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-Patch for a memory leak.
-
-------------------------------------------------------------------------
-r170 | zimmerma | 1999-06-25 10:13:14 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added two tests for exact roots
-
-------------------------------------------------------------------------
-r169 | zimmerma | 1999-06-25 10:12:11 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-removed DEBUG stuff and fixed pb with exact root and GMP_RNDZ
-
-------------------------------------------------------------------------
-r168 | hanrot | 1999-06-25 09:42:53 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-Correction d'un ABR.
-
-------------------------------------------------------------------------
-r167 | zimmerma | 1999-06-25 09:38:52 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tpi.c
-
-added test for prec=53 bits, removed output for argc==1
-
-------------------------------------------------------------------------
-r166 | hanrot | 1999-06-25 09:28:43 +0000 (Fri, 25 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tcan_round.c
-
-Initial revision.
-
-------------------------------------------------------------------------
-r165 | hanrot | 1999-06-24 12:22:57 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/sub.c
-
-Patched an Array Bound Read.
-
-------------------------------------------------------------------------
-r164 | hanrot | 1999-06-24 12:10:00 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Corrected an Array Bound Read when all the bits are significative.
-
-------------------------------------------------------------------------
-r163 | zimmerma | 1999-06-24 12:00:31 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp_ui.c
-
-i -> s in tests on mpfr_cmp_si
-
-------------------------------------------------------------------------
-r162 | zimmerma | 1999-06-24 11:59:05 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/cmp_ui.c
-
-fixed pb in mpfr_cmp_si_2exp (case b=0 or i=0)
-
-------------------------------------------------------------------------
-r161 | zimmerma | 1999-06-24 11:55:25 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-& -> &&
-
-------------------------------------------------------------------------
-r160 | zimmerma | 1999-06-24 11:40:48 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tcmp.c
- M /trunk/tests/tset_str.c
-
-removed 3rd arg. of mpfr_set_prec
-
-------------------------------------------------------------------------
-r159 | zimmerma | 1999-06-24 11:37:54 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-treats case b=c in mpfr_sub(a,b,c)
-
-------------------------------------------------------------------------
-r158 | zimmerma | 1999-06-24 11:36:43 +0000 (Thu, 24 Jun 1999) | 3 lines
-Changed paths:
- M /trunk/set_prec.c
-
-removed 3rd argument in mpfr_set_prec
-reallocates only when more limbs are needed
-
-------------------------------------------------------------------------
-r157 | zimmerma | 1999-06-24 11:34:22 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/exp.c
- M /trunk/log2.c
-
-removed 3rd arg. of mpfr_set_prec
-
-------------------------------------------------------------------------
-r156 | zimmerma | 1999-06-24 11:32:11 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-added some mpfr_clear's that were missing
-
-------------------------------------------------------------------------
-r155 | zimmerma | 1999-06-24 10:16:54 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-removed 3rd argument from mpfr_set_prec
-
-------------------------------------------------------------------------
-r154 | zimmerma | 1999-06-24 10:12:43 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
- M /trunk/sqrt.c
-
-removed 3rd argument of mpfr_set_prec
-
-------------------------------------------------------------------------
-r153 | zimmerma | 1999-06-24 10:09:40 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed prototype of mpfr_set_prec (no rounding mode needed any more)
-
-------------------------------------------------------------------------
-r152 | zimmerma | 1999-06-24 07:57:30 +0000 (Thu, 24 Jun 1999) | 3 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-added test for case of missing exponent
-and if one argument, print it as a double
-
-------------------------------------------------------------------------
-r151 | zimmerma | 1999-06-24 07:56:19 +0000 (Thu, 24 Jun 1999) | 3 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-fixed bug when exponent was missing (wrong result when part before
-binary point is not zero)
-
-------------------------------------------------------------------------
-r150 | zimmerma | 1999-06-24 07:47:59 +0000 (Thu, 24 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added tests from JM Muller and V Lefevre
-
-------------------------------------------------------------------------
-r149 | zimmerma | 1999-06-23 16:37:03 +0000 (Wed, 23 Jun 1999) | 4 lines
-Changed paths:
- M /trunk/round.c
-
-corrected bad case in mpfr_can_round_raw where rnd1=GMP_RNDN
-and err is a multiple of BITS_PER_MP_LIMB (was modifying an
-extra limb perhaps not allocated)
-
-------------------------------------------------------------------------
-r148 | boldo | 1999-06-23 16:02:24 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-qq bugs d'arrondis
-
-------------------------------------------------------------------------
-r147 | zimmerma | 1999-06-23 15:57:14 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added exp and div_ui
-
-------------------------------------------------------------------------
-r146 | zimmerma | 1999-06-23 15:56:35 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/texp.c
-
-added test of exp(Pi*sqrt(163)/3)-640320 [texp 0.0 prec]
-
-------------------------------------------------------------------------
-r145 | zimmerma | 1999-06-23 15:44:33 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/texp.c
-
-test file for mpfr_exp, initial revision
-
-------------------------------------------------------------------------
-r144 | zimmerma | 1999-06-23 13:02:11 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-added two tests
-
-------------------------------------------------------------------------
-r143 | zimmerma | 1999-06-23 12:57:56 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_str.c
-
-removed printf's and added one test for leading '+'
-
-------------------------------------------------------------------------
-r142 | zimmerma | 1999-06-23 12:56:26 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_str_raw.c
-
-now allows leading '+'
-
-------------------------------------------------------------------------
-r141 | boldo | 1999-06-23 11:34:03 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-nettoye
-
-------------------------------------------------------------------------
-r140 | zimmerma | 1999-06-23 10:00:37 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tset_f.c
-
-removed printf
-
-------------------------------------------------------------------------
-r139 | zimmerma | 1999-06-23 10:00:05 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
- M /trunk/tests/tmul_ui.c
-
-removed printf's
-
-------------------------------------------------------------------------
-r138 | zimmerma | 1999-06-23 09:59:31 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-added tests for large precision (tlog x prec rnd)
-
-------------------------------------------------------------------------
-r137 | zimmerma | 1999-06-23 09:58:29 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added test for exact division
-
-------------------------------------------------------------------------
-r136 | zimmerma | 1999-06-23 09:57:57 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tcmp2.c
-
-mpfr_cmp -> mpfr_cmp2
-
-------------------------------------------------------------------------
-r135 | zimmerma | 1999-06-23 09:57:23 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-removed printf, added exit on error
-
-------------------------------------------------------------------------
-r134 | zimmerma | 1999-06-23 09:55:43 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/exp.c
-
-initial revision
-
-------------------------------------------------------------------------
-r133 | zimmerma | 1999-06-23 09:50:41 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-cleaned local variables
-
-------------------------------------------------------------------------
-r132 | zimmerma | 1999-06-23 09:49:07 +0000 (Wed, 23 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed prototype of mpfr_div (now returns int)
-
-------------------------------------------------------------------------
-r131 | zimmerma | 1999-06-23 09:47:12 +0000 (Wed, 23 Jun 1999) | 4 lines
-Changed paths:
- M /trunk/div.c
-
-now deals correctly with exact division
-removed DEBUG stuff
-returns 0/1 according to exact division
-
-------------------------------------------------------------------------
-r130 | zimmerma | 1999-06-22 17:12:20 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-fixed bug found by F. Rouillier: x * Z(2/x) -> 0 [carry from mpfr_round_raw]
-
-------------------------------------------------------------------------
-r129 | hanrot | 1999-06-22 13:33:35 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_prec.c
-
-Fill with 0 the part added in case of a larger reallocation.
-
-------------------------------------------------------------------------
-r128 | hanrot | 1999-06-22 12:39:01 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-Rajoute le bug report de Fabrice.
-
-------------------------------------------------------------------------
-r127 | zimmerma | 1999-06-22 12:18:25 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-fixed bug in mpfr_can_round when prec or err are multiples of BITS_PER_MP_LIMB
-
-------------------------------------------------------------------------
-r126 | zimmerma | 1999-06-22 12:16:28 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul.c
-
-added test to check sign of result
-
-------------------------------------------------------------------------
-r125 | zimmerma | 1999-06-22 12:14:44 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-fixed bug: wrong sign when SIGN(a)<0 at beginning
-
-------------------------------------------------------------------------
-r124 | boldo | 1999-06-22 09:51:16 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-avec plein de cas d'erreurs
-
-------------------------------------------------------------------------
-r123 | boldo | 1999-06-22 09:47:20 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/log.c
-
-marche bien
-
-------------------------------------------------------------------------
-r122 | boldo | 1999-06-22 09:47:04 +0000 (Tue, 22 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-Marche bien
-
-------------------------------------------------------------------------
-r121 | hanrot | 1999-06-21 16:00:30 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Corrected prototype of mpfr_can_round_raw.
-
-------------------------------------------------------------------------
-r120 | hanrot | 1999-06-21 16:00:11 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Various patches.
-
-------------------------------------------------------------------------
-r119 | hanrot | 1999-06-21 15:39:24 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Added prototype for mpfr_can_round_raw
-
-------------------------------------------------------------------------
-r118 | hanrot | 1999-06-21 15:34:57 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Added mpfr_can_round_raw ; mpfr_can_round just calls it.
-
-------------------------------------------------------------------------
-r117 | hanrot | 1999-06-21 15:26:56 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Declaration mpfr_print_rnd_mode.c
-
-------------------------------------------------------------------------
-r116 | hanrot | 1999-06-21 15:26:39 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/print_rnd_mode.c
-
-print_rnd_mode.c -> mpfr_print_rnd_mode.c
-
-------------------------------------------------------------------------
-r115 | hanrot | 1999-06-21 15:07:36 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/print_rnd_mode.c
-
-Print the rounding mode.
-
-------------------------------------------------------------------------
-r114 | hanrot | 1999-06-21 13:45:56 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_prec.c
-
-Changement de semantique (plus d'arrondi) et alloc + free -> realloc.
-
-------------------------------------------------------------------------
-r113 | zimmerma | 1999-06-21 11:28:36 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/div_ui.c
-
-initial revision
-
-------------------------------------------------------------------------
-r112 | zimmerma | 1999-06-21 11:27:29 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_ui.c
-
-added one test
-
-------------------------------------------------------------------------
-r111 | zimmerma | 1999-06-21 11:24:33 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set.c
-
-now deal with carry from mpfr_round_raw
-
-------------------------------------------------------------------------
-r110 | zimmerma | 1999-06-21 11:17:13 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-fixed problem with count_leading_zeros undefined for 0
-
-------------------------------------------------------------------------
-r109 | zimmerma | 1999-06-21 11:16:02 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/log2.c
-
-store computed value and try to reuse it for next calls
-
-------------------------------------------------------------------------
-r108 | zimmerma | 1999-06-21 11:14:46 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-added test cn>= in mpfr_cmp2
-
-------------------------------------------------------------------------
-r107 | zimmerma | 1999-06-21 11:12:33 +0000 (Mon, 21 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add_ulp.c
-
-added mpfr_sub_one_ulp
-
-------------------------------------------------------------------------
-r106 | boldo | 1999-06-18 11:53:03 +0000 (Fri, 18 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tagm.c
-
-tests par rapport aux doubles
-
-------------------------------------------------------------------------
-r105 | boldo | 1999-06-18 11:52:31 +0000 (Fri, 18 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tlog.c
-
-pour decouvrir les erreurs
-
-------------------------------------------------------------------------
-r104 | boldo | 1999-06-18 11:51:52 +0000 (Fri, 18 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/log.c
-
-version qui marche
-
-------------------------------------------------------------------------
-r103 | zimmerma | 1999-06-18 10:15:11 +0000 (Fri, 18 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mul.c
-
-special cases NaN and 0
-
-------------------------------------------------------------------------
-r102 | zimmerma | 1999-06-18 09:56:15 +0000 (Fri, 18 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-fixed a few errors
-
-------------------------------------------------------------------------
-r101 | zimmerma | 1999-06-17 14:26:21 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-added tests for n=0 and d=0
-
-------------------------------------------------------------------------
-r100 | zimmerma | 1999-06-17 14:25:49 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added test for 0.0/1.0
-
-------------------------------------------------------------------------
-r99 | zimmerma | 1999-06-17 12:48:38 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-SET_NAN(q) -> SET_NAN(Q)
-
-------------------------------------------------------------------------
-r98 | zimmerma | 1999-06-17 12:48:05 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added one exact root with rounding towards zero
-
-------------------------------------------------------------------------
-r97 | zimmerma | 1999-06-17 12:45:54 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tout_str.c
-
-added one test
-
-------------------------------------------------------------------------
-r96 | zimmerma | 1999-06-17 12:45:00 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added two tests
-
-------------------------------------------------------------------------
-r95 | zimmerma | 1999-06-17 12:36:52 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-patch to detect exact roots (otherwise problem with rounding to zero)
-
-------------------------------------------------------------------------
-r94 | zimmerma | 1999-06-17 10:14:11 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed way zero is represented : most sign. limb is zero
-
-------------------------------------------------------------------------
-r93 | zimmerma | 1999-06-17 09:56:49 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_si.c
-
-added special case for zero
-
-------------------------------------------------------------------------
-r92 | zimmerma | 1999-06-17 09:56:06 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/print_raw.c
-
-special case for zero
-
-------------------------------------------------------------------------
-r91 | zimmerma | 1999-06-17 09:55:24 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/out_str.c
-
-special cases for NaN and zero
-
-------------------------------------------------------------------------
-r90 | zimmerma | 1999-06-17 09:54:47 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-special case when one of the arguments is zero
-
-------------------------------------------------------------------------
-r89 | zimmerma | 1999-06-17 09:25:41 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added bug found by S. Boldo and fixed (pb in mpfr_round_raw2)
-
-------------------------------------------------------------------------
-r88 | zimmerma | 1999-06-17 09:24:51 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-fixed bug in mpfr_round_raw2 which was returning other values than 0 or 1
-
-------------------------------------------------------------------------
-r87 | hanrot | 1999-06-17 09:07:25 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
-
-Corrected a potential problem in add(a, a, a);
-
-------------------------------------------------------------------------
-r86 | hanrot | 1999-06-17 09:06:26 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-Corrected a potential problem in sub(a, a, a);
-
-------------------------------------------------------------------------
-r85 | zimmerma | 1999-06-17 08:56:14 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sqrt.c
-
-SET_NAN(x) -> SET_NAN(X)
-
-------------------------------------------------------------------------
-r84 | hanrot | 1999-06-17 08:49:43 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/cmp.c
-
-Patch in cmp2 for some dirty cases (2^a + 2^b <-> 2^a + z, z << 2^a, b << a)
-
-------------------------------------------------------------------------
-r83 | zimmerma | 1999-06-17 08:23:06 +0000 (Thu, 17 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added test to check bug found by JL Remy
-
-------------------------------------------------------------------------
-r82 | zimmerma | 1999-06-17 08:22:11 +0000 (Thu, 17 Jun 1999) | 3 lines
-Changed paths:
- M /trunk/sub.c
-
-added TMP_DECL/TMP_MARK/TMP_FREE in mpfr_sub1 to deal with case
-where destination=source
-
-------------------------------------------------------------------------
-r81 | hanrot | 1999-06-16 18:07:21 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-Bug dans set_d(0) ; la mantisse n'est pas initialisee a 0 correctement.
-
-------------------------------------------------------------------------
-r80 | hanrot | 1999-06-16 14:05:13 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/mul.c
-
-Gere differemment les problemes d'egalite entre destinations et arguments.
-
-------------------------------------------------------------------------
-r79 | hanrot | 1999-06-16 11:42:18 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Rajoute log.o et tlog
-
-------------------------------------------------------------------------
-r78 | hanrot | 1999-06-16 11:06:37 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/tests/mon_fichier
-
-Vire fichier inutile.
-
-------------------------------------------------------------------------
-r77 | zimmerma | 1999-06-16 10:56:24 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added new tests
-
-------------------------------------------------------------------------
-r76 | zimmerma | 1999-06-16 10:55:39 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-fixed bug for overlap=k*mp_bits_per_limb, k>=1
-
-------------------------------------------------------------------------
-r75 | hanrot | 1999-06-16 09:54:52 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/tests/Makefile
-
-Vire Makefile de CVS.
-
-------------------------------------------------------------------------
-r74 | hanrot | 1999-06-16 09:54:15 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/Makefile
- D /trunk/Makefile.exp
- D /trunk/Makefile.msb
-
-Vire les Makefile de CVS.
-
-------------------------------------------------------------------------
-r73 | zimmerma | 1999-06-16 09:48:59 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-added one test and random init.
-
-------------------------------------------------------------------------
-r72 | zimmerma | 1999-06-16 09:48:17 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tdiv.c
-
-added one test
-
-------------------------------------------------------------------------
-r71 | zimmerma | 1999-06-16 09:47:18 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tadd.c
-
-added tests for cases where destination = source
-
-------------------------------------------------------------------------
-r70 | zimmerma | 1999-06-16 09:46:10 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/sub.c
-
-cases NaN and destination=source
-
-------------------------------------------------------------------------
-r69 | zimmerma | 1999-06-16 09:45:22 +0000 (Wed, 16 Jun 1999) | 3 lines
-Changed paths:
- M /trunk/sqrt.c
-
-now iterates if one cannot round after 1st try,
-and deals with case destination = source
-
-------------------------------------------------------------------------
-r68 | zimmerma | 1999-06-16 09:43:32 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-mpfr_can_round again and again
-
-------------------------------------------------------------------------
-r67 | zimmerma | 1999-06-16 09:42:45 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/print_raw.c
-
-added case of NaN
-
-------------------------------------------------------------------------
-r66 | zimmerma | 1999-06-16 09:41:54 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added macro SET_ZERO
-
-------------------------------------------------------------------------
-r65 | zimmerma | 1999-06-16 09:40:52 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/div.c
-
-now allows destination = source
-
-------------------------------------------------------------------------
-r64 | hanrot | 1999-06-16 08:05:44 +0000 (Wed, 16 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/tests/tget_str
- D /trunk/tests/tmul
- D /trunk/tests/tmul_2exp
- D /trunk/tests/tmul_ui
- D /trunk/tests/tround
- D /trunk/tests/tset_d
- D /trunk/tests/tset_f
- D /trunk/tests/tset_str
- D /trunk/tests/tsqrt
-
-Vire les tests de cvs.
-
-------------------------------------------------------------------------
-r63 | zimmerma | 1999-06-15 16:44:19 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/div.c
-
-printf -> fprintf
-
-------------------------------------------------------------------------
-r62 | zimmerma | 1999-06-15 16:32:41 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/add.c
- M /trunk/div.c
-
-error message when destination equals source (case not yet treated)
-
-------------------------------------------------------------------------
-r61 | zimmerma | 1999-06-15 16:27:26 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-now uses the given rounding mode internally instead of always GMP_RNDZ
-
-------------------------------------------------------------------------
-r60 | zimmerma | 1999-06-15 16:26:06 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/pi.c
-
-now rounding to nearest should be correct
-
-------------------------------------------------------------------------
-r59 | hanrot | 1999-06-15 16:19:56 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Encore et toujours mpfr_can_round...
-
-------------------------------------------------------------------------
-r58 | hanrot | 1999-06-15 15:38:51 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- D /trunk/o.solaris
- D /trunk/tests/tadd
- D /trunk/tests/tagm
- D /trunk/tests/tcmp
- D /trunk/tests/tcmp2
- D /trunk/tests/tcmp_ui
- D /trunk/tests/tdiv
-
-Nettoyage.
-
-------------------------------------------------------------------------
-r57 | hanrot | 1999-06-15 14:43:14 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Patch pour mpfr_can_round.
-
-------------------------------------------------------------------------
-r56 | boldo | 1999-06-15 14:40:51 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-sans instructions de debuggage
-
-------------------------------------------------------------------------
-r55 | boldo | 1999-06-15 13:53:11 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Makefile
-
-rajout de log.o et tlog
-
-------------------------------------------------------------------------
-r54 | boldo | 1999-06-15 13:52:43 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile
-
-rajout de tlog
-
-------------------------------------------------------------------------
-r53 | boldo | 1999-06-15 13:41:24 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-ajout du log
-
-------------------------------------------------------------------------
-r52 | boldo | 1999-06-15 13:24:51 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tlog.c
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r51 | boldo | 1999-06-15 13:22:09 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/log.c
-
-premiere version du log
-
-------------------------------------------------------------------------
-r50 | zimmerma | 1999-06-15 13:11:10 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/div.c
-
-now recognizes division by exact power of 2
-
-------------------------------------------------------------------------
-r49 | zimmerma | 1999-06-15 13:10:21 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/cmp_ui.c
-
-added mpfr_cmp_[us]i_2exp
-
-------------------------------------------------------------------------
-r48 | zimmerma | 1999-06-15 12:53:07 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added mpfr_[us]i_2exp
-
-------------------------------------------------------------------------
-r47 | zimmerma | 1999-06-15 12:52:33 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added mpfr_cmp_[us]i_2exp
-
-------------------------------------------------------------------------
-r46 | hanrot | 1999-06-15 12:06:32 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/random.c
-
-Correction de bug (pas msb normalise).
-
-------------------------------------------------------------------------
-r45 | zimmerma | 1999-06-15 10:04:12 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/pi.c
-
-fixed mistake in error analysis (does not change code)
-
-------------------------------------------------------------------------
-r44 | hanrot | 1999-06-15 09:26:56 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-Ajout de random.o dans les objets.
-
-------------------------------------------------------------------------
-r43 | hanrot | 1999-06-15 09:26:26 +0000 (Tue, 15 Jun 1999) | 3 lines
-Changed paths:
- A /trunk/random.c
-
-random.c : engendre un mpfr_t dans [0, 1[. GH, 15/06
-TODO : un random qui engendre un mpfr_t avec exposant gaussien centre.
-
-------------------------------------------------------------------------
-r42 | remy | 1999-06-15 09:17:44 +0000 (Tue, 15 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/log2.c
- M /trunk/pi.c
-
-changed return value to void
-
-------------------------------------------------------------------------
-r41 | hanrot | 1999-06-14 16:35:25 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/round.c
-
-Ajoute les modes d'arrondi RNDN et RNDD.
-
-------------------------------------------------------------------------
-r40 | hanrot | 1999-06-14 13:14:43 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mul_ui.c
-
-Correction du prototype de mpfr_mul_ui
-
-------------------------------------------------------------------------
-r39 | hanrot | 1999-06-14 11:11:55 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-Correction du prototype de mpfr_mul_ui
-
-------------------------------------------------------------------------
-r38 | boldo | 1999-06-14 10:18:01 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r37 | zimmerma | 1999-06-14 07:51:59 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Configure
-
-added several files
-
-------------------------------------------------------------------------
-r36 | zimmerma | 1999-06-14 07:51:28 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added several prototypes
-
-------------------------------------------------------------------------
-r35 | zimmerma | 1999-06-14 07:50:36 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.texi
-
-added set_z, add_one_ulp
-
-------------------------------------------------------------------------
-r34 | zimmerma | 1999-06-14 07:49:06 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/set_d.c
-
-added mpfr_get_d2 which only considers the mantissa
-
-------------------------------------------------------------------------
-r33 | zimmerma | 1999-06-14 07:48:10 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-now uses mpfr_get_d2 (no side effect on arguments)
-
-------------------------------------------------------------------------
-r32 | zimmerma | 1999-06-14 07:46:10 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tlog2.c
-
-test file for mpfr_log2
-
-------------------------------------------------------------------------
-r31 | zimmerma | 1999-06-14 07:45:27 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tset_z.c
-
-test file for mpfr_set_z
-
-------------------------------------------------------------------------
-r30 | zimmerma | 1999-06-14 07:44:42 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tpi.c
-
-test file for mpfr_pi
-
-------------------------------------------------------------------------
-r29 | zimmerma | 1999-06-14 07:43:57 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/log2.c
-
-computes log(2)
-
-------------------------------------------------------------------------
-r28 | zimmerma | 1999-06-14 07:43:22 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/add_ulp.c
-
-add one ulp
-
-------------------------------------------------------------------------
-r27 | zimmerma | 1999-06-14 07:42:12 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/set_z.c
-
-set a mpfr from an integer
-
-------------------------------------------------------------------------
-r26 | zimmerma | 1999-06-14 07:41:33 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/pi.c
-
-computes Pi to n bits
-
-------------------------------------------------------------------------
-r25 | boldo | 1999-06-14 07:41:29 +0000 (Mon, 14 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r24 | zimmerma | 1999-06-11 08:08:35 +0000 (Fri, 11 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/mpfr.texi
-
-Initial revision of mpfr documentation
-
-------------------------------------------------------------------------
-r23 | hanrot | 1999-06-10 18:47:44 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tsqrt.c
-
-Patch d'un mpfr_set_d dans tsqrt.c ; GH, 100699
-
-------------------------------------------------------------------------
-r22 | hanrot | 1999-06-10 18:47:09 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tget_str.c
-
-Patch d'un mpfr_set_d dans get_str.c ; GH, 100699
-
-------------------------------------------------------------------------
-r21 | hanrot | 1999-06-10 18:46:03 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/Configure
-
-Tentative de configuration automatique, v. initiale. GH, 100699
-
-------------------------------------------------------------------------
-r20 | boldo | 1999-06-10 16:36:13 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/agm.c
- M /trunk/tests/tagm.c
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r19 | zimmerma | 1999-06-10 09:20:04 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Makefile
-
-added tout_str
-
-------------------------------------------------------------------------
-r18 | zimmerma | 1999-06-10 09:19:38 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/tests/tout_str.c
-
-Initial revision.
-
-------------------------------------------------------------------------
-r17 | zimmerma | 1999-06-10 09:13:55 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/Makefile
-
-added out_str.c and pow.c
-
-------------------------------------------------------------------------
-r16 | zimmerma | 1999-06-10 09:13:26 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added proto for mpfr_pow_ui and mpfr_ui_pow_ui
-
-------------------------------------------------------------------------
-r15 | zimmerma | 1999-06-10 09:09:09 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/pow.c
-
-Initial revision.
-
-------------------------------------------------------------------------
-r14 | zimmerma | 1999-06-10 09:05:05 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/clear.c
- M /trunk/div_2exp.c
- M /trunk/mul.c
- M /trunk/mul_2exp.c
- M /trunk/mul_ui.c
- M /trunk/neg.c
- M /trunk/round.c
- M /trunk/set.c
- M /trunk/set_f.c
- M /trunk/set_si.c
-
-added include <stdio.h> (needed for FILE in mpfr.h)
-
-------------------------------------------------------------------------
-r13 | zimmerma | 1999-06-10 08:59:38 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-added proto for mpfr_out_str
-
-------------------------------------------------------------------------
-r12 | zimmerma | 1999-06-10 08:58:23 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/out_str.c
-
-function to print a mpfr to a stream. Initial revision.
-
-------------------------------------------------------------------------
-r11 | zimmerma | 1999-06-10 08:56:27 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mpfr.h
-
-changed proto of mpfr_get_str: 2nd arg is mp_exp_t*, not char*
-
-------------------------------------------------------------------------
-r10 | zimmerma | 1999-06-10 08:53:22 +0000 (Thu, 10 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/get_str.c
-
-now conforms to the specification
-
-------------------------------------------------------------------------
-r9 | hanrot | 1999-06-09 18:37:25 +0000 (Wed, 09 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/Makefile
-
-tset_i -> tset_si dans le Makefile de tests.
-
-------------------------------------------------------------------------
-r8 | hanrot | 1999-06-09 18:36:50 +0000 (Wed, 09 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/mmpfr
-
-Version corrigee de mmpfr.
-
-------------------------------------------------------------------------
-r7 | hanrot | 1999-06-09 18:36:28 +0000 (Wed, 09 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/Makefile
-
-Makefile qui devrait fonctionner pour tous.
-
-------------------------------------------------------------------------
-r6 | hanrot | 1999-06-09 18:33:34 +0000 (Wed, 09 Jun 1999) | 2 lines
-Changed paths:
- M /trunk/tests/tmul_2exp.c
-
-Correction de warnings dans tmul_2exp.c
-
-------------------------------------------------------------------------
-r2 | hanrot | 1999-06-09 18:03:33 +0000 (Wed, 09 Jun 1999) | 2 lines
-Changed paths:
- A /trunk/.pure
- A /trunk/BUGS
- A /trunk/Makefile.exp
- A /trunk/Makefile.msb
- A /trunk/TODO
- A /trunk/add.c
- A /trunk/agm.c
- A /trunk/clear.c
- A /trunk/cmp.c
- A /trunk/cmp_ui.c
- A /trunk/div.c
- A /trunk/div_2exp.c
- A /trunk/from_Torbjorn
- A /trunk/get_str.c
- A /trunk/init.c
- A /trunk/init_set.h
- A /trunk/mmpfr
- A /trunk/mpfr.h
- A /trunk/mul.c
- A /trunk/mul_2exp.c
- A /trunk/mul_ui.c
- A /trunk/neg.c
- A /trunk/o.solaris
- A /trunk/o.solaris/.pure
- A /trunk/print_raw.c
- A /trunk/rnd_mode.c
- A /trunk/round.c
- A /trunk/set.c
- A /trunk/set_d.c
- A /trunk/set_dfl_prec.c
- A /trunk/set_dfl_rnd.c
- A /trunk/set_f.c
- A /trunk/set_prec.c
- A /trunk/set_si.c
- A /trunk/set_str.c
- A /trunk/set_str_raw.c
- A /trunk/sqrt.c
- A /trunk/sub.c
- A /trunk/tests
- A /trunk/tests/Makefile
- A /trunk/tests/mon_fichier
- A /trunk/tests/tadd
- A /trunk/tests/tadd.c
- A /trunk/tests/tagm
- A /trunk/tests/tagm.c
- A /trunk/tests/tcmp
- A /trunk/tests/tcmp.c
- A /trunk/tests/tcmp2
- A /trunk/tests/tcmp2.c
- A /trunk/tests/tcmp_ui
- A /trunk/tests/tcmp_ui.c
- A /trunk/tests/tdiv
- A /trunk/tests/tdiv.c
- A /trunk/tests/tget_str
- A /trunk/tests/tget_str.c
- A /trunk/tests/tmul
- A /trunk/tests/tmul.c
- A /trunk/tests/tmul_2exp
- A /trunk/tests/tmul_2exp.c
- A /trunk/tests/tmul_ui
- A /trunk/tests/tmul_ui.c
- A /trunk/tests/tround
- A /trunk/tests/tround.c
- A /trunk/tests/tset_d
- A /trunk/tests/tset_d.c
- A /trunk/tests/tset_f
- A /trunk/tests/tset_f.c
- A /trunk/tests/tset_i
- A /trunk/tests/tset_si.c
- A /trunk/tests/tset_str
- A /trunk/tests/tset_str.c
- A /trunk/tests/tsqrt
- A /trunk/tests/tsqrt.c
-
-Initial revision
-
-------------------------------------------------------------------------
-r1 | (no author) | 1999-06-09 18:03:33 +0000 (Wed, 09 Jun 1999) | 1 line
-Changed paths:
- A /branches
- A /tags
- A /trunk
-
-New repository initialized by cvs2svn.
-------------------------------------------------------------------------
diff --git a/Build/source/libs/mpfr/mpfr-src/INSTALL b/Build/source/libs/mpfr/mpfr-src/INSTALL
deleted file mode 100644
index f1b6a5cccec..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/INSTALL
+++ /dev/null
@@ -1,719 +0,0 @@
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-
- Installing GNU MPFR
- ===================
-
-Note: In case of problem, please read this INSTALL file carefully before
-reporting a bug, in particular Section "In case of problem" below. Some
-problems are due to bad configuration on the user side (not specific to
-MPFR).
-
-0. You first need to install GMP. See <https://gmplib.org/>.
- MPFR requires GMP version 5.0.0 or later.
-
-1. Extract the files from the archive.
-
-2. It is strongly advised to apply the latest patches if this has
- not been done yet and if patches are available. You can check
- on the release page:
-
- https://www.mpfr.org/mpfr-4.1.0/
-
- which may have additional information. The patches can be applied
- with commands like:
-
- wget https://www.mpfr.org/mpfr-4.1.0/allpatches
- patch -N -Z -p1 < allpatches
-
- or
-
- curl https://www.mpfr.org/mpfr-4.1.0/allpatches | patch -N -Z -p1
-
- (Those instructions are for the GNU patch command, for example
- /usr/bin/gpatch on Solaris.)
-
-3. In the MPFR directory, to detect your system, type:
- ./configure
- possibly with options (see below, in particular if this step or
- one of the following fails). You should also check whether WARNING
- lines have been output (such a problem may cause a failure in one
- of the following steps).
- Note: paths provided in configure options must always be absolute
- (relative paths are not supported).
-
-4. To build the library, type:
- make
-
- [optional] if you want to tune MPFR for your specific architecture, see
- the section "Tuning MPFR" below. Note that for most common architectures,
- MPFR includes some default tuning parameters which should be near from
- optimal.
-
-5. To check the built library (runs the test files), type:
- make check
-
- Note: If any test fails, information about this failure can be found in
- the tests/test-suite.log file; you should provide this file in your bug
- reports (in addition to other useful information, as mentioned later).
- If you want the contents of this file to be automatically output in case
- of failure, you can set the VERBOSE environment variable to 1 before
- running "make check", for instance by typing:
- VERBOSE=1 make check
-
-6. [Optional / experimental] Binary distributions may also want to run:
- make check-gmp-symbols
-
- This will check that MPFR does not use GMP internal symbols, which
- could yield failures in case of GMP upgrade without a MPFR rebuild.
- But note that this is a heuristic and might give false positives or
- false negatives. Please report any problem to the MPFR developers.
- End users may also be interested in this check, unless they have
- allowed GMP internals with configure options (see below).
-
-7. To install it (default "/usr/local" | see "--prefix" option), type:
- make install
-
-If you installed MPFR (header and library) in directories that are
-not searched by default by the compiler and/or linking tools, then,
-like with other libraries, you may need to set up some environment
-variables such as C_INCLUDE_PATH (to find the header mpfr.h),
-LIBRARY_PATH (to find the library), and if the shared library has
-been installed, LD_LIBRARY_PATH (before execution) or LD_RUN_PATH
-(before linking); this list is not exhaustive and some environment
-variables may be specific to your system. "make install" gives some
-instructions; please read them. You can also find more information
-in the manuals of your compiler and linker. The MPFR FAQ may also
-give some information.
-
-Remember that if you have several MPFR (or GMP) versions installed
-(e.g., one with the system, and one, newer, by you), you will not
-necessarily get a compilation/linking error if a wrong library is
-used (e.g., because LD_LIBRARY_PATH has not been set correctly).
-But unexpected results may occur.
-
-Under Mac OS X, if the shared library was not installed and you use
-Apple's linker (this is the default), you will also need to provide
-the -search_paths_first linker flag ("-Wl,-search_paths_first" when
-you link via gcc) to make sure that the right library is selected,
-as by default, Apple's linker selects a shared library preferably,
-even when it is farther in the library paths. We recall that if a
-wrong library is selected due to this behavior, unexpected results
-may occur.
-
-
-Building the documentation
-==========================
-
-To build the documentation in various formats, you may first need to
-install recent versions of some utilities such as texinfo.
-
-* Type "make info" to produce the documentation in the info format.
-
-* Type "make pdf" to produce the documentation in the PDF format.
-
-* Type "make dvi" to produce the documentation in the DVI format.
-
-* Type "make ps" to produce the documentation in the Postscript format.
-
-* Type "make html" to produce the documentation in the HTML format
- (in several pages); if you want only one output HTML file, then
- type "makeinfo --html --no-split mpfr.texi" from the doc directory
- instead.
-
-
-Building MPFR with internal GMP header files
-============================================
-
-MPFR built with internal GMP header files is a bit faster, so you may want
-to build it with them. Just do this in step 1:
-
- ./configure --with-gmp-build=GMPBUILD
-
-where GMPBUILD is the GMP build directory. The needed header files are:
-gmp-impl.h, longlong.h and all the necessary headers to use them, which
-may be located either in the GMP source directory or in the GMP build
-directory, in case they are different (MPFR takes care of that, as of
-MPFR 3.1.0).
-
-Warning: the library obtained in this way may use some internal GMP
-symbols, and thus dynamically linking your software with a different
-version of GMP might fail, even though it is declared as compatible
-by Libtool's versioning system.
-
-
-Tuning MPFR
-===========
-
-[For the current GMP version (6.1.0), a Unix-like OS is required.]
-
-For this, you need to build MPFR with a GMP build directory (see above).
-In the GMP build directory, you also need to go into the "tune" subdirectory
-and type "make speed". This will build the GMP speed library, which is used
-by the MPFR tuning mechanism.
-
-Then go back to the MPFR build directory, go into the "tune" subdirectory and
-type "make tune". This will build an optimized file "mparam.h" for your
-specific architecture.
-
-
-./configure options
-===================
-
---prefix=DIR installs MPFR headers and library in DIR/include and
- DIR/lib respectively (the default is "/usr/local").
-
---with-gmp-include=DIR assumes that DIR contains gmp.h
---with-gmp-lib=DIR assumes that DIR contains the GMP library
---with-gmp=DIR assumes that DIR is where you have installed GMP.
- same as --with-gmp-lib=DIR/lib
- and --with-gmp-include=DIR/include
- (use either --with-gmp alone or one or both of
- --with-gmp-lib/--with-gmp-include)
- Warning! Do not use these options if you have
- CPPFLAGS and/or LDFLAGS containing a -I or -L
- option with a directory that contains a GMP
- header or library file, as these options just
- add -I and -L options to CPPFLAGS and LDFLAGS
- *after* the ones that are currently declared,
- so that DIR will have a lower precedence. Also,
- this may not work if DIR is a system directory
- (typically /usr or /usr/local); see below.
-
---with-gmp-build=DIR assumes that DIR contains the GMP build directory,
- and enables the use of GMP internals (see above).
- Warning! This option and the group of options
- --with-gmp are mutually exclusive.
-
---enable-assert build MPFR with assertions.
-
---enable-thread-safe build MPFR as thread safe, using compiler-level
- Thread-Local Storage (TLS). Note: TLS support is
- roughly tested by configure. If configure detects
- that TLS does not work (because of the compiler,
- linker or system libraries), it will output an
- error message, telling you to build MPFR without
- thread safe. For instance, though Mac OS X uses
- GCC, it may not currently support GCC's __thread
- storage class.
-
---disable-thread-safe build MPFR without TLS. By default, TLS support
- is detected automatically, and MPFR is built as
- thread safe if supported. However this detection
- is only a heuristic: TLS can be detected as
- supported while its support is incomplete or
- buggy (MPFR tests may fail). In such a case,
- this option is useful.
-
---enable-decimal-float build conversion functions from/to decimal floats.
- Note that detection by the configure script is
- limited in case of cross-compilation.
- Accepted arguments:
- yes Decimal support is requested and the configure
- script fails if it detects that decimals do not
- work.
- The encoding (BID or DPD) will automatically be
- detected at configure time or at compile time if
- possible (if not, generic code will be used).
- no Decimal support is explicitly disabled.
- auto Decimal support is enabled if the configure script
- detects that it works. This is the default when
- --{enable,disable}-decimal-float is not given.
- bid Decimal support is requested and the encoding is
- assumed to be BID (some check may be done).
- dpd Decimal support is requested and the encoding is
- assumed to be DPD (some check may be done).
- generic Decimal support is requested and the generic code
- is used (mainly for developers).
-
---enable-gmp-internals allows the MPFR build to use GMP's undocumented
- functions (not from the public API). Note that
- library versioning is not guaranteed to work if
- this option is used. Thus it must not be used in
- binary distributions.
-
---with-sysroot=DIR Search for dependent libraries within DIR (which
- may be useful in cross-compilation). If you use
- this option, you need to have Libtool 2.4+ on
- the target system. See Libtool 2.4+'s NEWS file.
-
-Note: By default, the configure script tries to set CC / CFLAGS to GMP's
-ones from gmp.h (__GMP_CC / __GMP_CFLAGS) in order to ensure that MPFR is
-built with the same ABI as GMP. The reason is that when GMP is built, it
-may set CC / CFLAGS to select an ABI that is not the default one in order
-to have a better performance. The -pedantic option in GMP's CFLAGS, when
-present (which is the case by default), is removed, because the MPFR
-build system uses some C extensions (when this script detects that they
-are supported) and -pedantic yields too many useless warnings. However,
-this setting from GMP is not guaranteed to work as the configure script
-does some compiler tests earlier, and a conflict may arise. Also, the
-values obtained from GMP may be incorrect for the MPFR build if GMP has
-been built on a different machine; in such a case, the user may need to
-specify CC / CFLAGS, as explained below.
-
-Moreover, even without --with-gmp-build and --enable-gmp-internals,
-MPFR might use some GMP internals by mistake. This would be a bug,
-which should be reported to the MPFR developers.
-
-Run "./configure --help" to see the other options (default options
-from Autoconf and Automake).
-
-
-If 'gmp.h' and 'libgmp' do not match
-====================================
-
-Under some circumstances, the configure script may output a message
-saying:
-
- 'gmp.h' and 'libgmp' seem to have different versions or
- we cannot run a program linked with GMP (if you cannot
- see the version numbers above). [...]
-
-Even though the configure script does not fail in such a case, this
-message most often indicates a real error, which needs to be avoided.
-Possible causes are:
-
-* The wanted GMP library does not have the same ABI as the one chosen
- to build MPFR. The consequences may be:
-
- - A different GMP library (with the correct ABI) has been found,
- but does not have the same version as 'gmp.h'.
-
- - No other GMP libraries have been found (in this case, no version
- numbers should be printed above the warning message).
-
- This is incorrect and one of the following steps (make, make check)
- will probably fail. GMP (actually gmp.h) now provides CC and CFLAGS
- information to select the correct ABI, so that this problem should
- no longer occur; but if GMP was provided by a binary package, such
- information may not be valid. See the
-
- checking for CC and CFLAGS in gmp.h...
-
- line in the configure output (about the 11th line) and the following
- few ones for more information. You may need to reinstall GMP or to
- provide your own CC and/or CFLAGS. See also the remaining of this
- INSTALL file.
-
-* A configure option like --with-gmp or --with-gmp-include was used
- with a system include directory, e.g. one of the following:
-
- --with-gmp=/usr
- --with-gmp=/usr/local
- --with-gmp-include=/usr/include
- --with-gmp-include=/usr/local/include
-
- GCC (and possibly other compilers) will ignore such a directive for
- include directories (but this rule is not applied for the library
- itself!). This means that the library search paths will be reordered
- as declared, but the specified include directory will still be near
- the end of the include search paths (thus with a low precedence).
- This is not a problem if only one GMP version is installed, but
- otherwise, a wrong gmp.h may be chosen, so that the versions of
- gmp.h and libgmp may not match. The suggestions are the following:
-
- - If you want to use the GMP version under /usr, then you should
- uninstall all the other GMP versions (header and library files)
- that may be seen in the search paths, in particular those under
- /usr/local.
-
- - If you want to use the GMP version under /usr/local, then you
- should uninstall all the other GMP versions (header and library
- files) that may be seen in the search paths, but *NOT* the one
- under /usr (the version under /usr is provided by the OS vendor,
- and changing/removing anything related to it may break your
- system, and /usr should have a lower precedence than /usr/local
- anyway).
-
- To find where GMP versions have been installed:
-
- $ locate libgmp (if you have a locate database)
-
- and if the compiler is GCC:
-
- $ gcc -print-file-name=libgmp.so (under most systems)
- $ gcc -print-file-name=libgmp.dylib (under Mac OS X)
-
- and if this does not work, you may try:
-
- $ gcc -print-search-dirs
-
-* An official GCC version was used under Debian GNU/Linux. Problems
- may come from the fact that Debian chose a different convention
- for library search paths concerning 32-bit and 64-bit libraries.
- A possible problem can be, for instance:
-
- [Debian's GCC, correct library path]
- $ gcc -print-file-name=libgmp.so
- /home/vlefevre/gmp/athlon64/lib/../lib/libgmp.so
-
- [Official GCC, incorrect library path]
- $ gcc-4.3.1 -print-file-name=libgmp.so
- /usr/lib/../lib64/libgmp.so
-
- The solution: use a GCC provided by Debian or add symbolic links
- such as lib64 -> lib (on 64-bit machines) for your library paths.
-
-* The problem may also be temporary and only due to the fact that
- libtool could not be used at this time. This is unlikely, though.
-
-
-In case of problem
-==================
-
-First, look for any warning message in the configure output.
-
-Several documents may help you to solve the problem:
- * this INSTALL file, in particular information given below;
- * the FAQ (either the FAQ.html file distributed with MPFR, or the
- on-line version <https://www.mpfr.org/faq.html>, which may be more
- up-to-date);
- * the MPFR web page for this version <https://www.mpfr.org/mpfr-4.1.0/>,
- which lists bugs found in this version and provides some patches.
-
-If the "configure" fails, please check that the C compiler and its
-options are the same as those for the GMP build (specially the ABI).
-You can see the latter with the following command:
-
- grep "^CC\|^CFLAGS" GMPBUILD/Makefile
-
-if the GMP build directory is available. Then type:
-
- ./configure <configure options> CC=<C compiler> CFLAGS="<compiler options>"
-
-(quotes are needed when there are spaces or other special characters
-in the CC/CFLAGS value) and continue the install. On some platforms,
-you should provide further options to match those used by GMP, or set
-some environment variables. For instance, see the "Notes on AIX/PowerPC"
-section below.
-
-Warning! Do NOT use optimization options that can change the semantics
-of math operations, such as GCC's -ffast-math or Sun CC's -fast.
-Otherwise conversions from/to double's may be incorrect on infinities,
-NaN's and signed zeros. Since native FP arithmetic is used in a few
-places only, such options would not make MPFR faster anyway.
-
-If some "make check" tests fail, you can try the --disable-thread-safe
-configure option (see the configure options above): it has been reported
-that some platforms have buggy TLS support. Before trying this option,
-you may want to check in the configure output whether MPFR was built
-with TLS support; if yes, you will have a line:
- checking for TLS support... yes
-Alternatively "grep MPFR_USE_THREAD_SAFE config.log" will show that
-MPFR_USE_THREAD_SAFE is defined to 1. If it is "no" (or the variable
-is not defined), the --disable-thread-safe option would be useless.
-
-Some tests failure may be due to other compiler bugs, in particular
-in optimization code. You can try to build MPFR without compiler
-optimizations by giving -O0 (letter O, digit 0) in CFLAGS. If the
-MPFR tests no longer fail, this was probably due to a compiler bug,
-though we cannot exclude a bug in MPFR. You may want to contact us
-(see below), possibly after looking at:
- https://members.loria.fr/PZimmermann/software/compilerbugs.html
-
-On some platforms, try with "gmake" (GNU make) instead of "make".
-Problems have been reported with the Tru64 make.
-
-If the configure script reports that gmp.h version and libgmp version
-are different, or if the build was OK, but the tests failed to link
-with GMP or gave an error like
-
- undefined reference to `__gmp_get_memory_functions'
-
-meaning that the GMP library was not found or a wrong GMP library was
-selected by the linker, then your library search paths are probably
-not correctly set (some paths are missing or they are specified in an
-incorrect order).
-
-Such problems commonly occur under some GNU/Linux machines, where the
-default header and library search paths may be inconsistent: GCC is
-configured to search /usr/local/include and /usr/local/lib by default,
-while the dynamic linker ignores /usr/local/lib. If you have a GMP
-version installed in /usr (provided by the OS vendor) and a new one
-installed in /usr/local, then the header of the new GMP version and
-the library of the old GMP version will be used! The best solution
-is to make sure that the dynamic linker configuration is consistent
-with GCC's behavior, for instance by having /usr/local/lib in
-/etc/ld.so.conf or in some file from /etc/ld.so.conf.d (as Debian
-did: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=395177). See
-also https://gcc.gnu.org/legacy-ml/gcc-help/2010-01/msg00171.html for
-more information. Alternatively you can use:
- * environment variables. This may sometimes be necessary. If DIR
- is the installation directory of GMP, add DIR/include to your
- CPATH or C_INCLUDE_PATH (for compilers other than GCC, please
- check the manual of your compiler), and add DIR/lib to your
- LIBRARY_PATH and LD_LIBRARY_PATH (and/or LD_RUN_PATH);
- * --with-gmp* configure options (described above), e.g.
- --with-gmp=/opt/local (to use /opt/local/include for headers and
- /opt/local/lib for libraries), but other software that uses GMP
- and/or MPFR will need correct paths too, and environment variables
- allow one to set such search paths in a global way.
- Note about "--with-gmp=/usr/local". This option may appear to
- solve the above inconsistency problem, but does not work as you
- expect. Indeed it affects the library search path, in particular,
- the one used by the dynamic linker (thus adding the missing
- /usr/local/lib directory as wanted), but since /usr/local/include
- is a "standard system include directory" for GCC, the include
- search patch is not changed; this is often not a problem in this
- particular case because usually, /usr/local/include is already
- last in the include search patch, but this may fail under some
- occasions and may trigger obscure errors.
-
-For instance, under Unix, where paths are separated by a colon:
-
- * With POSIX sh-compatible shells (e.g. sh, ksh, bash, zsh):
- export C_INCLUDE_PATH="/usr/local/include:/other/path/include"
- export LIBRARY_PATH="/usr/local/lib:/other/path/lib"
- export LD_LIBRARY_PATH="$LIBRARY_PATH"
-
- * With csh or tcsh:
- setenv C_INCLUDE_PATH "/usr/local/include:/other/path/include"
- setenv LIBRARY_PATH "/usr/local/lib:/other/path/lib"
- setenv LD_LIBRARY_PATH "$LIBRARY_PATH"
-
-If almost all the tests fail and the messages in the test-suite.log file
-(or in the output, when running individual tests from the command line)
-start with a line of the form:
-
- Incorrect MPFR version! (xxx header vs yyy library)
-
-then this means that an installed MPFR version is tested instead of the
-one that has just been built. This is probably not a bug in MPFR, but a
-problem caused by the user or system configuration (particular options,
-environment variables, etc.) or a bug in the toolchain. In particular,
-if LD_LIBRARY_PATH overrides the run path (set up by libtool) and an
-installed ABI-compatible version of MPFR is in a directory listed in
-the LD_LIBRARY_PATH search path, then this will break. An example with
-GNU ld:
-
- https://sourceware.org/bugzilla/show_bug.cgi?id=21476
-
-If you can't solve your problem, you should contact us via the MPFR
-mailing-list <mpfr@inria.fr>, indicating the machine and operating system
-used (uname -a), the compiler and version used (gcc -v if you use gcc),
-the configure options used if any (including variables such as CC and
-CFLAGS), the version of GMP and MPFR used, and a description of the
-problem encountered, in particular the tests/test-suite.log file if
-"make check" failed. Please send us also the log of the "configure"
-(config.log).
-
-
-Notes about ABI
-===============
-
-On 64-bit computers, it may happen that the default ABI (Application Binary
-Interface) chosen by MPFR does not correspond to the default one chosen by
-the compiler.
-
-In particular, this kind of message may indicate the problem:
-/usr/bin/ld: skipping incompatible mpfr/src/.libs/libmpfr.a when searching for -lmpfr
-
-In fact, since MPFR relies on GMP, it uses the same ABI as GMP.
-To be sure that your program compiles and links correctly, use the same
-compiler flags as MPFR does (look for CFLAGS in config.log).
-
-You might also recompile GMP with a different ABI, with for example
-./configure ABI=32.
-
-
-Notes on Mac OS X
-=================
-
-If you get an error of the form
-
- ld: pointer in read-only segment not allowed in slidable image...
-
-this can mean that the link is done against a static (GMP) library.
-In such a case, you should configure MPFR with --disable-shared to
-disable the build of the shared library.
-
-
-Notes on FreeBSD 4.3
-====================
-
-FreeBSD 4.3 is provided with an incorrect <float.h> header file, and
-MPFR tests related to long double's may fail. If you cannot upgrade
-the system, you can still use MPFR with FreeBSD 4.3, but you should
-not use conversions with the long double type.
-
-
-Notes on AIX/PowerPC
-====================
-
-The following has been tested on AIX 7.1.3 (gcc111.fsffrance.org)
-with gcc 4.8.1 and GMP 6.1.0.
-
-If GMP was built with the 64-bit ABI, before building and testing MPFR,
-you should set the OBJECT_MODE environment variable to 64, e.g., with:
-
- export OBJECT_MODE=64
-
-(in a sh-compatible shell). Alternatively add the following to the configure
-line: AR="ar -X64" NM="nm -B -X64".
-
-
-Notes on Solaris
-================
-
-Do not put a -R<dir> option in the LD_OPTIONS environment variable, at least
-if the directory <dir> can contain an MPFR library. Otherwise this MPFR
-library may be chosen for the tests (make check) instead of the one that has
-just been built, in which case, either you will get errors due to unmatched
-versions or this problem may remain undetected. The reason is that this
-option will appear before the -R options added by libtool, such as the one
-to the src/.libs directory containing the MPFR library that has just been
-built, and will have the precedence.
-
-
-MPFR for use with Windows Applications
-======================================
-
-There are several ways of building MPFR on Windows, the most appropriate
-approach depending on how you intend to use the resulting libraries.
-
-a. Using MinGW
-==============
-
-1 - We advise to use MinGW (http://www.mingw.org/ for 32-bit, and
- https://sourceforge.net/projects/mingw-w64/ for 32- and 64-bit),
- which is simpler and less demanding than Cygwin. Contrary to Cygwin,
- it also provides native Windows code.
-
- If you also use MSYS, you should use "make" for MSYS instead of
- the "make" utility from MinGW-W64 or from GCC, which causes the
- following error:
-
- libtool: warning: libobj name 'extract.Tpo -c -o extract.lo extract.lo'
- may not contain shell special characters.
- rm: unknown option -- c
-
- References about this issue and solution:
- https://sourceforge.net/p/msys2/tickets/223/
- https://sympa.inria.fr/sympa/arc/mpfr/2016-07/msg00009.html
-
-2 - If you just want to make a binary with gcc, there is nothing to do:
- GMP, MPFR and the program compile exactly as under Linux. (It is
- recommended to pass --build=xxx-yyy-mingw64 to the GMP configure command,
- or --build=xxx with xxx containing mingw.)
-
-3 - To avoid using the Microsoft runtime (which might not be conform to ISO C),
- you can use the MinGW runtime package (which is an integral part of MinGW).
-
- With old MinGW versions, you can get an ISO-compliant printf()
- if you compile your application with either '-ansi', '-posix' or
- '-D__USE_MINGW_ANSI_STDIO'. But note that this latter option,
- which was useful in the past (see below) should no longer be used.
-
- The following applies to old MinGW versions, and may be discouraged
- with recent MinGW versions.
-
- In order to have the MPFR formatted output functions based on an
- ISO-compliant printf(), you need to compile GMP (not MPFR) with
- CC="gcc -D__USE_MINGW_ANSI_STDIO" (since the standard printf modifiers
- %e, %Ld and %td are passed to GMP).
-
- To avoid failures of some of the printf-related tests, MPFR needs to
- be compiled with the same __USE_MINGW_ANSI_STDIO as with GMP, i.e.
- this macro should be defined for both or undefined for both; this
- should be the case by default, unless CC or CFLAGS has been redefined.
- For instance, if __USE_MINGW_ANSI_STDIO is defined in GMP but not in
- MPFR, the following error may occur:
-
- Error in mpfr_vsprintf (s, "%e", ...);
- expected: "-1.250000e+000"
- got: "-1.250000e+00"
- FAIL tsprintf.exe (exit status: 1)
-
- and in the opposite case:
-
- Error in mpfr_vsprintf (s, "%e", ...);
- expected: "-1.250000e+00"
- got: "-1.250000e+000"
- FAIL tsprintf.exe (exit status: 1)
-
- Note with old GMP versions: Other issues could arise due to the fact
- that the C functions vsnprintf and vsprintf both used internally in
- old GMP versions do not produce the same output:
-
- https://sympa.inria.fr/sympa/arc/mpfr/2016-03/msg00045.html
- https://sympa.inria.fr/sympa/arc/mpfr/2016-03/msg00051.html
- https://sympa.inria.fr/sympa/arc/mpfr/2016-03/msg00053.html
-
- If __USE_MINGW_ANSI_STDIO has not been defined when building GMP,
- then the length modifiers j, L and t are not supported with the GMP
- formatted output functions, and as a consequence, also with MPFR.
- This is automatically detected by the configure script, except when
- cross-compiling (e.g. under Linux), in which case some macros need
- to be defined explicitly, e.g. with
-
- "CPPFLAGS=-DNPRINTF_J -DNPRINTF_L -DNPRINTF_T"
-
- in order to avoid potential issues with the MPFR library and failures
- in the test suite (the corresponding tests are disabled explicitly).
-
-b. Using Cygwin
-===============
-
-This build should be similar to that for MinGW except that the resulting
-library depends on the Cygwin DLL and cannot therefore be used with
-Visual Studio as with MinGW. Indeed, the binaries compiled with Cygwin
-require a dynamic library (cygwin.dll) to work; there is a Cygwin option
--mno-cygwin to build native code, but it may require some non-portable tricks.
-
-In case of failure, you may need to pass LDFLAGS='-shared-libgcc' at the
-end of the configure line due to a bug in GCC. Otherwise, if threading
-support is not needed, you can configure MPFR with --disable-thread-safe.
-
-c. Using Microsoft Visual C++ and Intel C++ Compilers
-=====================================================
-
-Static and dynamic MPFR libraries for the 32- and 64-bit versions of
-Windows can be built with Microsoft Visual Studio 2015 using the
-Microsoft Visual C++ compiler, see:
-
- https://visualstudio.microsoft.com/
-
-The Intel C++ compiler provided as a part of Intel Parallel Studio XE
-can also be used:
-
- https://software.intel.com/en-us/parallel-studio-xe
-
-The relevant build projects are available here:
-
- https://github.com/BrianGladman
-
-d. Using the CompCert compiler
-==============================
-
-[this was tested with CompCert 3.7 and MPFR revision 13851 on x86_64-linux]
-
-CompCert (http://compcert.inria.fr/) is a formally verified compiler.
-To compile MPFR with CompCert:
-
-$ ./configure CC=ccomp CFLAGS="-fbitfields -flongdouble -fstruct-passing" --disable-shared
-
-You also need to unset LD_LIBRARY_PATH, and/or you might need to change
-wl="" into wl="-Wl," in the libtool file.
-
-All tests (make check) should pass (tget_set_d64, tget_set_d128 and
-tset_float128 are skipped, since CompCert does not support _Decimal64,
-_Decimal128 nor _Float128).
diff --git a/Build/source/libs/mpfr/mpfr-src/Makefile.am b/Build/source/libs/mpfr/mpfr-src/Makefile.am
deleted file mode 100644
index 89242c6a725..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/Makefile.am
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2000-2020 Free Software Foundation, Inc.
-# This Makefile.am is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-# Since we do not require GNU "make", let's select the POSIX behavior to
-# uniformize the behavior a bit more with various "make" implementations
-# and ease maintenance. This target should be removed only if one day,
-# we need to require GNU "make".
-.POSIX:
-
-AUTOMAKE_OPTIONS = gnu
-
-# ACLOCAL_AMFLAGS will be fully deprecated in Automake 2.0;
-# AC_CONFIG_MACRO_DIRS (introduced in Automake 1.13) is now used instead,
-# but we still set ACLOCAL_AMFLAGS to avoid a warning message from
-# libtoolize and in case some developer needs to switch back to an
-# old Automake version.
-ACLOCAL_AMFLAGS = -I m4
-
-SUBDIRS = doc src tests tune tools/bench
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = mpfr.pc
-
-nobase_dist_doc_DATA = AUTHORS BUGS COPYING COPYING.LESSER NEWS TODO \
- examples/ReadMe examples/can_round.c examples/divworst.c \
- examples/rndo-add.c examples/sample.c examples/threads.c \
- examples/version.c
-
-EXTRA_DIST = PATCHES VERSION doc/README.dev doc/check-typography doc/mini-gmp \
- tools/check_mparam.c tools/ck-clz_tab tools/ck-copyright-notice \
- tools/ck-mparam tools/ck-news tools/ck-version-info tools/get_patches.sh \
- $(DATAFILES)
-
-bench:
- cd tools/bench && $(MAKE) $(AM_MAKEFLAGS) bench
-
-# Various checks for "make dist" / "make distcheck".
-# Warning! With "make distcheck", neither the top-level directory nor
-# the tools directory is writable.
-# * Check consistency concerning -version-info. Moreover if the VERSION
-# file doesn't end with "-dev", check that the -version-info value is
-# up-to-date. Note: this is a heuristic, to detect some mistakes.
-# * Check that copyright notices exist and appear to be correct.
-# * Check the NEWS file.
-# * Check the __clz_tab sizes.
-# * Check the mparam.h files.
-# * Check typography in mpfr.texi (Texinfo rules).
-dist-hook:
- cd $(srcdir) && tools/ck-version-info
- cd $(srcdir) && tools/ck-copyright-notice
- cd $(srcdir) && tools/ck-news
- cd $(srcdir) && tools/ck-clz_tab
- $(srcdir)/tools/ck-mparam
- cd $(srcdir)/doc && ./check-typography
-
-# Check that MPFR does not use GMP internal symbols. Of course, do not run
-# this rule if you use --with-gmp-build or --enable-gmp-internals.
-# This test does nothing if no libmpfr.so is generated.
-check-gmp-symbols:
- cd src && $(MAKE) check-gmp-symbols
-
-# Check that MPFR does not define symbols with a GMP reserved prefix.
-# This test does nothing if no libmpfr.so is generated.
-check-exported-symbols:
- cd src && $(MAKE) check-exported-symbols
-
-.PHONY: check-gmp-symbols check-exported-symbols
diff --git a/Build/source/libs/mpfr/mpfr-src/NEWS b/Build/source/libs/mpfr/mpfr-src/NEWS
deleted file mode 100644
index b3060ce47f1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/NEWS
+++ /dev/null
@@ -1,452 +0,0 @@
-Copyright 2000-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-##############################################################################
-
-Changes from versions 4.0.* to version 4.1.0:
-- The "épinards à la crème" release.
-- Binary compatible with MPFR 4.0.*, though some minor changes in the
- behavior of the formatted output functions may be visible, regarded
- as underspecified behavior or bug fixes (see below).
-- New --enable-formally-proven-code configure option, to use (when available)
- formally proven code.
-- Improved __GMP_CC and __GMP_CFLAGS retrieval (in particular for MS Windows).
-- Option -pedantic is now always removed from __GMP_CFLAGS (see INSTALL).
-- Changed __float128 to the type _Float128 specified in ISO/IEC TS 18661.
- __float128 is used as a fallback if _Float128 is not supported.
-- New function mpfr_get_str_ndigits about conversion to a string of digits.
-- New function mpfr_dot for the dot product (incomplete, experimental).
-- New functions mpfr_get_decimal128 and mpfr_set_decimal128 (available only
- when MPFR has been built with decimal float support).
-- New function mpfr_cmpabs_ui.
-- New function mpfr_total_order_p for the IEEE 754 totalOrder predicate.
-- The mpfr_out_str function now accepts bases from -2 to -36, in order to
- follow mpfr_get_str and GMP's mpf_out_str functions (these cases gave an
- assertion failure, as with other invalid bases).
-- Shared caches: cleanup; really detect lock failures (abort in this case).
-- The behavior of the formatted output functions (mpfr_printf, etc.) with
- an empty precision field has improved: trailing zeros are kept in a way
- similar to the formatted output functions from C.
-- Improved mpfr_add and mpfr_sub when all operands have a precision equal to
- twice the number of bits per word, e.g., 128 bits on a 64-bit platform.
-- Optimized the tuning parameters for various architectures.
-- Improved test coverage to 98.6% of code for x86_64.
-- Bug fixes.
-- MPFR manual: corrected/completed the mpfr_get_str description in order to
- follow the historical behavior and GMP's mpf_get_str function.
-- New: optional "make check-exported-symbols", mainly for the MPFR developers
- and binary distributions, to check that MPFR does not define symbols with a
- GMP reserved prefix (experimental).
-- Mini-gmp support: replaced --enable-mini-gmp configure option by
- --with-mini-gmp (still experimental, read doc/mini-gmp).
-- A GCC bug on Sparc (present at least in old GCC 4.5.3 and 5.5.0 versions),
- which made several tests fail when TLS was enabled, is now avoided in the
- tests. The MPFR library itself was not affected and normal code using the
- MPFR library should not be affected either. Users and distributions that
- disabled TLS just because of the test failures can safely re-enable it.
-
-Changes from versions 3.1.* to version 4.0.0:
-- The "dinde aux marrons" release.
-- MPFR now depends on GMP 5.0+ instead of 4.1+.
-- API change:
- Applications that call GMP's mp_set_memory_functions function to change
- the allocators must first call the new function mpfr_mp_memory_cleanup
- in all threads where MPFR is potentially used; this new function is
- currently equivalent to mpfr_free_cache.
- The reason is that the way memory allocation is done by MPFR has changed
- (again), so that the current GMP allocators are used (since for some
- applications, the old allocators may become invalid).
- Note: Freeing the caches like this might have a performance impact on some
- particular applications; if this is an issue, this could be handled for a
- future MPFR version.
-- Mini-gmp support via the --enable-mini-gmp configure option (experimental).
-- The minimum precision MPFR_PREC_MIN is now 1, with rounding defined as
- in the errata of IEEE 754-2008 and in the following IEEE 754 revision
- (ties rounded away from zero).
-- Shared caches for multithreaded applications.
- New function mpfr_free_cache2.
-- Partial support of MPFR_RNDF (faithful rounding).
-- New functions: mpfr_fpif_export and mpfr_fpif_import to export and import
- numbers in a floating-point interchange format, independent both on the
- number of bits per word and on the endianness.
-- New function mpfr_fmodquo to return the low bits of the quotient
- corresponding to mpfr_fmod.
-- New functions mpfr_flags_clear, mpfr_flags_set, mpfr_flags_test,
- mpfr_flags_save and mpfr_flags_restore to operate on groups of flags.
-- New functions mpfr_set_float128 and mpfr_get_float128 to convert from/to
- the __float128 type (requires --enable-float128 and compiler support).
-- New functions mpfr_buildopt_float128_p and mpfr_buildopt_sharedcache_p.
-- New functions mpfr_rint_roundeven and mpfr_roundeven, completing the
- other similar round-to-integer functions for rounding to nearest with
- the even-rounding rule.
-- New macro mpfr_round_nearest_away to add partial emulation of the
- rounding to nearest-away (as defined in IEEE 754-2008).
-- New functions mpfr_nrandom and mpfr_erandom to generate random numbers
- following normal and exponential distributions respectively.
-- New functions mpfr_fmma and mpfr_fmms to compute a*b+c*d and a*b-c*d.
-- New function mpfr_rootn_ui, similar to mpfr_root, but agreeing with the
- rootn function of the IEEE 754-2008 standard.
-- New functions mpfr_log_ui to compute the logarithm of an integer,
- mpfr_gamma_inc for the incomplete Gamma function.
-- New function mpfr_beta for the Beta function (incomplete, experimental).
-- New function mpfr_get_q to convert a floating-point number into rational.
-- The mpfr_dump function is now described in the manual; its output format
- has slightly changed.
-- The mpfr_eint function now returns the value of the E1/eint1 function
- for negative argument.
-- The behavior of the mpfr_set_exp function changed, as it could easily
- yield undefined behavior in some cases (this modifies both the API and
- the ABI).
-- In function mpfr_urandom, the next random state no longer depends on the
- current exponent range and the rounding mode. The exceptions due to the
- rounding of the random number are now correctly generated, following the
- uniform distribution.
-- Functions mpfr_grandom and mpfr_root are deprecated and will be removed
- in a future release.
-- Complete rewrite of function mpfr_sum, which now works in all cases (the
- old one could take all the memory and/or crash with inputs of different
- magnitudes in case of huge cancellation or table maker's dilemma). The
- sign of an exact zero result is now specified, and the return value is
- now the usual ternary value. Note that the position of "const" in the
- mpfr_sum prototype has been fixed (the manual was correct); user code
- should not be affected.
-- Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed.
- The mpfr_next* functions should be used instead.
-- Internally, improved caching: a minimum of 10% increase of the precision
- is guaranteed to avoid too many recomputations.
-- Added internal small-precision mpz_t pool, which aims to avoid the
- overhead of memory allocation, in particular.
- New function mpfr_free_pool.
-- Added configure option --enable-assert=none to avoid checking any assertion.
-- The --enable-decimal-float configure option no longer requires
- --with-gmp-build, and support for decimal floats is now automatically
- detected by default (similarly for support for __float128).
-- Updated tuning parameters.
-- Better support for Automake 1.13+ (now used to generate the tarball).
-- Dropped K&R C compatibility.
-- Improved MPFR manual.
-- New MPFRbench program (see the tools/bench directory).
-- Major speedup in mpfr_add, mpfr_sub, mpfr_mul, mpfr_div and mpfr_sqrt when
- all operands have the same precision and this precision is less than twice
- the number of bits per word, e.g., less than 128 on a 64-bit computer.
-- Speedup by a factor of almost 2 in the double <--> mpfr conversions
- (mpfr_set_d and mpfr_get_d).
-- Speedup in mpfr_log1p and mpfr_atanh for small arguments.
-- Speedup in the mpfr_const_euler function (contributed by Fredrik Johansson),
- in the computation of Bernoulli numbers (used in mpfr_gamma, mpfr_li2,
- mpfr_digamma, mpfr_lngamma and mpfr_lgamma), in mpfr_div, in mpfr_fma
- and mpfr_fms.
-- Test coverage: 96.3% lines of code.
-- Bug fixes. In particular: a speed improvement when the --enable-assert
- or --enable-assert=full configure option is used with GCC; mpfr_get_str
- now sets the NaN flag on NaN input and the inexact flag when the conversion
- is inexact. For a full list, see https://www.mpfr.org/mpfr-3.1.6/#fixed
- and the same section for any previous 3.1.x version (follow the links
- in the "Changes..." sections).
-- Microsoft Windows: Added support for thread-safe DLL (shared library).
- Tested with MinGW, ICC and MSVC.
-- Limited pkg-config support.
-- Autotools: Under Linux, make sure that the old dtags (when supported)
- are used if LD_LIBRARY_PATH is defined; otherwise "make check" would
- check an installed, compatible MPFR library found in LD_LIBRARY_PATH
- instead of the one that has been built with "make".
-- New: optional "make check-gmp-symbols", mainly for binary distributions,
- to check that MPFR does not use GMP internal symbols (experimental).
-
-Changes from versions 3.0.* to version 3.1.0:
-- The "canard à l'orange" release.
-- The MPFR source has been reorganized.
-- Dropped ansi2knr support.
-- TLS support is now detected automatically. If TLS is supported, MPFR is
- built as thread safe by default. To disable TLS explicitly, configure
- MPFR with --disable-thread-safe.
-- New --enable-gmp-internals configure option to use GMP's undocumented
- functions (not from the public API). Note that library versioning is
- not guaranteed to work if this option is used.
-- The mpfr_urandom and mpfr_urandomb functions now return identical values
- on processors with different word size (assuming the same random seed, and
- since the GMP random generator does not depend itself on the word size,
- cf https://gmplib.org/list-archives/gmp-devel/2010-September/001642.html).
-- The mpfr_add_one_ulp and mpfr_sub_one_ulp macros (which are obsolete and
- no more documented) will be removed in a future release.
-- Speed improvement for the mpfr_sqr and mpfr_div functions using Mulders'
- algorithm. As a consequence, other functions using those routines are
- also faster.
-- Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
-- The --with-gmp-build configure option can now be used when the GMP
- source directory and the GMP build directory are different (without
- having to copy header files manually as before).
-- New functions mpfr_buildopt_gmpinternals_p, mpfr_buildopt_tune_case,
- mpfr_frexp, mpfr_grandom and mpfr_z_sub.
-- New divide-by-zero exception (flag) and associated functions.
-- The mpfr.h header can be included several times, while still supporting
- optional functions (see Section "Headers and Libraries" in the manual).
-- Updated tuning parameters.
-- Improved MPFR manual.
-- MPFR tests: libtool no longer generates wrapper scripts with "make check"
- (so that running the tests under valgrind or gdb is easier).
-- Internal change: the logging mechanism has been improved.
-- Test coverage: 95.2% lines of code.
-- Bug fixes, in particular a huge inefficiency in mpfr_exp (when the
- target precision is less than MPFR_EXP_THRESHOLD) on hard-to-round
- cases, which can take several minutes.
- Note: The mpfr_subnormalize implementation up to MPFR 3.0.0 did not change
- the flags. In particular, it did not follow the generic rule concerning
- the inexact flag (and no special behavior was specified). The case of the
- underflow flag was more a lack of specification.
-
-Changes from versions 2.4.* to version 3.0.0:
-- The "boudin aux pommes" release.
-- MPFR 3.0.0 is binary incompatible with previous versions but (almost)
- API compatible. More precisely the obsolete functions mpfr_random
- and mpfr_random2 have been removed, the meaning of the return type
- of the function mpfr_get_f has changed, and the return type of the
- function mpfr_get_z is now int instead of void. In practice, this
- should not break any existing code.
-- MPFR is now distributed under the GNU Lesser General Public License
- version 3 or later (LGPL v3+).
-- Rounding modes GMP_RNDx are now MPFR_RNDx (GMP_RNDx kept for
- compatibility).
-- A new rounding mode (MPFR_RNDA) is available to round away from zero.
-- The rounding mode type is now mpfr_rnd_t (as in previous versions,
- both mpfr_rnd_t and mp_rnd_t are accepted, but mp_rnd_t may be
- removed in the future).
-- The precision type is now mpfr_prec_t (as in previous versions, both
- mpfr_prec_t and mp_prec_t are accepted, but mp_prec_t may be removed
- in the future) and it is now signed (it was unsigned in MPFR 2.*, but
- this was not documented). In practice, this change should not affect
- existing code that assumed nothing on the precision type.
-- MPFR now has its own exponent type mpfr_exp_t, which is currently
- the same as GMP's mp_exp_t.
-- Functions mpfr_random and mpfr_random2 have been removed.
-- mpfr_get_f and mpfr_get_z now return a ternary value.
-- mpfr_strtofr now accepts bases from 37 to 62.
-- mpfr_custom_get_mantissa was renamed to mpfr_custom_get_significand
- (mpfr_custom_get_mantissa is still available via a #define).
-- Functions mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj,
- mpfr_get_z and mpfr_get_z_2exp no longer have cases with undefined
- behavior; in these cases, the behavior is now specified, and in
- particular, the erange flag is set.
-- New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p giving
- information about options used at MPFR build time.
-- New function mpfr_regular_p.
-- New function mpfr_set_zero.
-- New function mpfr_digamma.
-- New function mpfr_ai (incomplete, experimental).
-- New functions mpfr_set_flt and mpfr_get_flt to convert from/to the
- float type.
-- New function mpfr_urandom.
-- New function mpfr_set_z_2exp (companion to mpfr_get_z_2exp, which
- was renamed from mpfr_get_z_exp in previous versions).
-- New function mpfr_min_prec.
-- Speed improvement for large precisions in the trigonometric functions
- (mpfr_sin, mpfr_cos, mpfr_tan, mpfr_sin_cos): speedup of about 2.5
- for 10^5 digits, of about 5 for 10^6 digits.
-- Speed improvement for large precisions of the inverse trigonometric
- functions (arcsin, arccos, arctan): about 2 for 10^3 digits, up to
- 2.7 for 10^6 digits.
-- Some documentation files are installed in $docdir.
-- The detection of a GMP build directory (more precisely, the internal
- header files of GMP) was previously done separately from the use of
- the --with-gmp-build configure option. This was not consistent with
- the documentation and with other parts of the configure script. So,
- as of MPFR 3.0.0, the internal header files of GMP are now used if
- and only if the --with-gmp-build configure option is given.
-- The configure script recognizes some extra "long double" formats
- (double big endian, double little endian, double-double big endian).
-- MPFR manual: added "API Compatibility" section.
-- Test coverage: 97.1% lines of code.
-- Bug fixes.
-
-Changes from versions 2.3.* to version 2.4.0:
-- The "andouillette sauce moutarde" release.
-- MPFR is now a GNU package.
-- Changes in the behavior of mpfr_strtofr and in its documentation
- concerning particular cases where the code and the documentation
- did not match; this change is also present in MPFR 2.3.1.
-- Behavior of mpfr_check_range changed: if the value is an inexact
- infinity, the overflow flag is set (in case it was lost); this
- change is also present in MPFR 2.3.2.
-- Function mpfr_init_gmp_rand (only defined when building MPFR without
- the --with-gmp-build configure option) is no longer defined at all.
- This function was private and not documented, and was used only in
- the MPFR test suite. User code that calls it is regarded as broken
- and may fail as a consequence. Running the old test suite against
- MPFR 2.4.0 may also fail.
-- New functions:
- * between a MPFR number and a double: mpfr_add_d, mpfr_sub_d,
- mpfr_d_sub, mpfr_mul_d, mpfr_div_d, mpfr_d_div,
- * formatted input/output:
- mpfr_printf, mpfr_fprintf, mpfr_vprintf, mpfr_vfprintf,
- mpfr_sprintf, mpfr_snprintf, mpfr_vsprintf, mpfr_vsnprintf,
- mpfr_asprintf, mpfr_vasprintf.
- * mpfr_sinh_cosh, mpfr_li2, mpfr_modf, mpfr_fmod, mpfr_rec_sqrt.
-- Configure test for TLS support.
-- Get default $CC and $CFLAGS from gmp.h (__GMP_CC / __GMP_CFLAGS,
- which are available as of GMP 4.2.3).
-- Documented the fact that mpfr_random and mpfr_random2 will be
- suppressed in the next release, and that the specification of
- mpfr_eq may change in the next release (for compatibility with
- the mpf layer of GMP).
-- Test coverage: 96.7% lines of code.
-- Bug fixes.
-
-Changes from versions 2.2.* to version 2.3.0:
-- The mpfr.info file is now installed in the share subdirectory
- (as required by the Filesystem Hierarchy Standard); see output
- of "./configure --help".
-- The shared library is now enabled by default. If the MPFR build
- fails on your platform, try the --disable-shared configure option
- to disable the shared library.
-- Thread-safe support with Microsoft Visual compiler.
-- New functions mpfr_j0, mpfr_j1, mpfr_jn, mpfr_y0, mpfr_y1, mpfr_yn,
- mpfr_lgamma, mpfr_remainder, mpfr_remquo, mpfr_fms, mpfr_signbit,
- mpfr_setsign, mpfr_copysign, mpfr_get_patches.
-- Functions mpfr_sin, mpfr_cos and mpfr_sin_cos improved (argument
- reduction).
-- More detailed MPFR manual.
-- Improved tests (make check).
-- Bug fixes.
-
-Changes from versions 2.1.* to version 2.2.0:
-- Bug fixes.
-- new functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_inexflag,
- mpfr_set_erangeflag, mpfr_set_nanflag, mpfr_erfc, mpfr_atan2, mpfr_pow_z,
- mpfr_subnormalize, mpfr_const_catalan, mpfr_sec, mpfr_csc, mpfr_cot,
- mpfr_root, mpfr_eint, mpfr_get_f, mpfr_sech, mpfr_csch, mpfr_coth,
- mpfr_lngamma.
-- new macro: MPFR_VERSION_STRING
-- Remove the exported MPFR variables from mpfr.h to mpfr-impl.h.
- (They were undocumented, so programs which respect the API still work).
-- Grep CC and CFLAGS from GMP Makefile if possible.
-- Math functions are faster (both average and worst cases).
-- Better support for long double.
-- Shared library of MPFR.
-- Binary compatible with previous versions if you do not use undocumented
- features.
-- Thread safe (if built with --enable-thread-safe).
-- Logging facility.
-- Change in the semantics of mpfr_out_str/mpfr_get_str when n_digits=0.
-- Better locale support.
-
-Changes from version 2.1.0 to version 2.1.1:
-- Better way to detect the GMP library.
-- Bug fixes.
-
-Changes from version 2.0.3 to version 2.1.0:
-- Bug fixes.
-- new functions mpfr_strtofr, mpfr_set_uj, mpfr_set_sj, mpfr_set_ui_2exp,
- mpfr_set_si_2exp, mpfr_set_sj_2exp, mpfr_set_uj_2exp, mpfr_get_uj,
- mpfr_get_sj, mpfr_get_z, mpfr_free_str, mpfr_si_sub, mpfr_sub_si,
- mpfr_mul_si, mpfr_si_div, mpfr_div_si, mpfr_sqr, mpfr_cmp_z, mpfr_cmp_q,
- mpfr_zero_p, mpfr_free_cache, mpfr_sum, mpfr_get_version,
- mpfr_get_default_rounding_mode, mpfr_get_emin_min, mpfr_get_emin_max,
- mpfr_get_emax_min, mpfr_get_emax_max, mpfr_inits, mpfr_inits2, mpfr_clears,
- mpfr_fits_intmax_p, mpfr_fits_uintmax_p, mpfr_clear_erangeflag,
- mpfr_erangeflag_p, mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil,
- mpfr_rint_floor.
-- new macros MPFR_DECL_INIT, MPFR_VERSION, MPFR_VERSION_NUM,
- MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR, MPFR_VERSION_PATCHLEVEL.
-- improved documentation.
-- improved configure.
-- improved portability (library and test suite).
-- It handles correctly non IEEE-754 double.
-- GMP internal files are not needed to install MPFR.
-- It is faster with low-precision floating point.
-- New global flag: ERANGE_FLAG.
-- Binary incompatible with previous versions, but API compatible.
-- mpfr_set_str doesn't allow anymore "@NAN@garbagechar" and "@INF@garbagechar",
- allows base 0 (detection of the base), prefix (0x, 0b), leading whitespace.
-
-Changes from version 2.0.2 to version 2.0.3:
-- Bug fixes.
-- Support GMP as a shared library (not fully tested).
-
-Changes from version 2.0.1 to version 2.0.2:
-- many bug fixes and other improvements.
-- new functions mpfr_prec_round (replaces mpfr_round_prec), mpfr_get_exp,
- mpfr_set_exp, mpfr_get_ld, mpfr_set_ld, mpfr_get_d_2exp, mpfr_get_si,
- mpfr_get_ui, mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward, mpfr_frac,
- mpfr_fits_*, mpfr_cmp_d, mpfr_cmpabs, mpfr_erf, mpfr_gamma, mpfr_zeta,
- mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p, mpfr_lessequal_p,
- mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
-- removed functions: mpfr_print_binary, mpfr_round_prec (replaced by
- mpfr_prec_round), mpfr_set_str_raw, mpfr_set_machine_rnd_mode.
-- function mpfr_isinteger renamed mpfr_integer_p.
-- return type of some functions changed from void to int, for consistency.
-- return type of mpfr_set_prec changed from int to void.
-- new values for exponent range.
-- rename internal variables.
-
-Changes from version 2001 to version 2.0.1:
-- new mathematical functions: acos, acosh, asin, asinh, atan, atanh, cosh,
- base-2 exponential and logarithm, base-10 logarithm, expm1, factorial,
- pow, pow_si, pow_ui, sinh, tan, tanh, ui_pow, ui_pow_ui
-- other new functions: mpfr_const_euler, mpfr_dim, mpfr_fma, mpfr_hypot,
- mpfr_min, mpfr_max, mpfr_rint, mpfr_set_inf, mpfr_set_nan
-- new operations with MPZ or MPQ: mpfr_{add,sub,mul,div}_[zq]
-- new predicates: mpfr_inf_p, mpfr_nan_p, mpfr_number_p, mpfr_isinteger,
-- add mechanism to set/check exponent range (overflow, underflow), partially
- implemented in the mpfr functions.
-- efficiency: mpfr_div is now faster when the divisor has a few limbs
-- rounding: now mpfr_pow implements exact rounding, and most functions return a
- ternary value indicating the position of the returned value wrt the exact one
- (thus the return value is now 'int' instead of 'void')
-- complete rewrite of the configuration files
-- mpfr_get_d, mpfr_{add,sub}_one_ulp now get a rounding mode as 2nd argument
-- some function names did change: mpz_set_fr is now mpfr_get_z_exp,
- mpfr_print_raw is now mpfr_print_binary.
-
-Changes from version 1.0 to version 2001:
-- the default installation does not provide any more access to machine
- rounding mode, and as a consequence does not compare MPFR results with
- precision=53 to machine results. Add option -DTEST if you want to have
- access to machine rounding mode, and to check MPFR results against.
-- the MPFR files do not need <math.h> any more
-- the header file <mpfr.h> was split into <mpfr.h> for exported functions
- and <mpfr-impl.h> for internal functions. The user should not use functions
- or macros from <mpfr-impl.h>, since those may change in further releases.
-- <mpfr.h> was modified in order to make easy a C++ interface
-- MPFR now deals with infinities (+infinity and -infinity) and NaN
-- the missing function mpfr_swap is now available
-- mpfr_zeta was removed (was incomplete)
-- mpfr_init and mpfr_init2 now initialize the corresponding variable to 0
- (like in other initialization functions from GNU MP)
-- in case memory allocation fails, an error message is output
-- several bugs of version 1.0 were fixed
-
-Changes from version 0.4 to version 1.0:
-
-- Version 1.0 now uses a standard configure/make installation.
-- Version 1.0 implements all functions that are available in the MPF class
- from GMP 3.1 (except mpf_swap) and a header file mpf2mpfr.h is included in
- the distribution for easy change from MPF to MPFR.
-- Version 1.0 implements new elementary functions: mpfr_sincos
-- Some functions and macros have been renamed: mpfr_log2 is now
- mpfr_const_log2, mpfr_pi is now mpfr_const_pi, SIGN is now MPFR_SIGN.
-- Version 1.0 uses faster algorithms for mpfr_exp, mpfr_const_pi,
- mpfr_const_log2. Compare the timings from version 1.0 and version 0.4.
-- Version 1.0 corrects some bugs of version 0.4.
-- The precision of MPFR variables is now named mpfr_prec, which makes it
- easier to change it, to say unsigned long long. Same for the rounding mode
- which is called mp_rnd_t.
-
-You'll find other news concerning the GNU MPFR library on the web
-page <https://www.mpfr.org/>.
diff --git a/Build/source/libs/mpfr/mpfr-src/PATCHES b/Build/source/libs/mpfr/mpfr-src/PATCHES
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/PATCHES
+++ /dev/null
diff --git a/Build/source/libs/mpfr/mpfr-src/README b/Build/source/libs/mpfr/mpfr-src/README
deleted file mode 100644
index 689e3c69d31..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/README
+++ /dev/null
@@ -1,100 +0,0 @@
-Copyright 2000-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-##############################################################################
-
-The GNU MPFR distribution contains the following files:
-(This does not apply to code retrieved by Subversion.)
-
-AUTHORS - the authors of the library
-BUGS - bugs in MPFR - please read this file!
-COPYING - the GNU General Public License, version 3
-COPYING.LESSER - the GNU Lesser General Public License, version 3
-ChangeLog - the log of changes
-INSTALL - how to install MPFR (see also mpfr.texi)
-Makefile* - files for building the library
-NEWS - new features with respect to previous versions
-PATCHES - empty file (until patches are applied)
-README - this file
-TODO - what remains to do (any help is welcome!)
-VERSION - version of MPFR (next release version if taken by Subversion)
-ac*.m4 - automatic configuration files
-ar-lib - auxiliary installation file
-compile - auxiliary installation file
-config.* - auxiliary installation files
-configure* - configuration files
-depcomp - auxiliary installation file
-doc/ - directory containing documentation (manual, FAQ, etc.)
-examples/ - directory containing examples
-install-sh - installation file
-ltmain.sh - auxiliary installation file
-m4/ - directory containing additional configuration files
-missing - auxiliary installation file
-mpfr.pc.in - auxiliary pkg-config file
-src/ - directory containing the MPFR source
-test-driver - auxiliary installation file
-tests/ - directory containing the testsuite (for "make check")
-tools/ - directory containing various tools
-tune/ - directory containing files for tuning MPFR
-
-According to the special exception to the GNU General Public License,
-the autotools files compile, config.sub, config.guess, ltmain.sh,
-m4/libtool.m4 and missing are distributed under the same licence of
-GNU MPFR.
-
-For any copyright year range specified as YYYY-ZZZZ in this package,
-note that the range specifies every single year in that closed interval.
-
-
-Official GNU MPFR website:
-
- https://www.mpfr.org/
-
-
-NOTE: At the time of the release 4.1.0, the MPFR repository is hosted at
-InriaForge, but it will need to migrate since InriaForge will shut down in
-December 2020. Please go to https://www.mpfr.org/ for the current status.
-What follows remains valid until the migration is done.
-
-You can get the latest source code by Subversion at InriaForge:
-
- svn checkout svn://scm.gforge.inria.fr/svn/mpfr/trunk mpfr
-
-or
-
- svn checkout https://scm.gforge.inria.fr/svn/mpfr/trunk mpfr
-
-(the last argument can be any directory name). You can use
-
- svn ls svn://scm.gforge.inria.fr/svn/mpfr/branches
- svn ls svn://scm.gforge.inria.fr/svn/mpfr/tags
-
-to get the list of branches or tags (releases), then checkout a
-particular branch or tag instead of the trunk. Alternatively, you
-can now use the "https:" scheme (a.k.a. DAV) instead of "svn:".
-For more information about Subversion, please see:
-
- * http://svnbook.red-bean.com/ (the official Subversion book);
- * https://gcc.gnu.org/wiki/SvnHelp (written for GCC developers,
- but interesting general information can be found there);
- * http://subversion.apache.org/faq.html (the Subversion FAQ).
-
-Subversion users should read the file "doc/README.dev" (in the
-source tree).
diff --git a/Build/source/libs/mpfr/mpfr-src/TODO b/Build/source/libs/mpfr/mpfr-src/TODO
deleted file mode 100644
index 684a442533d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/TODO
+++ /dev/null
@@ -1,725 +0,0 @@
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-Table of contents:
-1. Documentation
-2. Compiler/library detection
-3. Changes in existing functions
-4. New functions to implement
-5. Efficiency
-6. Miscellaneous
-7. Portability
-
-##############################################################################
-1. Documentation
-##############################################################################
-
-- add a description of the algorithms used and a proof of correctness
-
-##############################################################################
-2. Compiler/library detection
-##############################################################################
-
-- update ICC detection.
- * Use only __INTEL_COMPILER instead of the obsolete macro __ICC?
-
-##############################################################################
-3. Changes in existing functions
-##############################################################################
-
-- export mpfr_overflow and mpfr_underflow as public functions
-
-- many functions currently taking into account the precision of the *input*
- variable to set the initial working precision (acosh, asinh, cosh, ...).
- This is nonsense since the "average" working precision should only depend
- on the precision of the *output* variable (and maybe on the *value* of
- the input in case of cancellation).
- -> remove those dependencies from the input precision.
-
-- mpfr_can_round:
- change the meaning of the 2nd argument (err). Currently the error is
- at most 2^(MPFR_EXP(b)-err), i.e. err is the relative shift wrt the
- most significant bit of the approximation. I propose that the error
- is now at most 2^err ulps of the approximation, i.e.
- 2^(MPFR_EXP(b)-MPFR_PREC(b)+err).
-
-- mpfr_set_q first tries to convert the numerator and the denominator
- to mpfr_t. But this conversion may fail even if the correctly rounded
- result is representable. New way to implement:
- Function q = a/b. nq = PREC(q) na = PREC(a) nb = PREC(b)
- If na < nb
- a <- a*2^(nb-na)
- n <- na-nb+ (HIGH(a,nb) >= b)
- if (n >= nq)
- bb <- b*2^(n-nq)
- a = q*bb+r --> q has exactly n bits.
- else
- aa <- a*2^(nq-n)
- aa = q*b+r --> q has exactly n bits.
- If RNDN, takes nq+1 bits. (See also the new division function).
-
-- revisit the conversion functions between a MPFR number and a native
- floating-point value.
- * Consequences if some exception is trapped?
- * Specify under which conditions (current rounding direction and
- precision of the FPU, whether a format has been recognized...),
- correct rounding is guaranteed. Fix the code if need be. Do not
- forget subnormals.
- * Provide mpfr_buildopt_* functions to tell whether the format of a
- native type (float / double / long double) has been recognized and
- which format it is?
- * For functions that return a native floating-point value (mpfr_get_flt,
- mpfr_get_d, mpfr_get_ld, mpfr_get_decimal64), in case of underflow or
- overflow, follow the convention used for the functions in <math.h>?
- See §7.12.1 "Treatment of error conditions" of ISO C11, which provides
- two ways of handling error conditions, depending on math_errhandling:
- errno (to be set to ERANGE here) and floating-point exceptions.
- If floating-point exceptions need to be generated, do not use
- feraiseexcept(), as this function may require the math library (-lm);
- use a floating-point expression instead, such as DBL_MIN * DBL_MIN
- (underflow) or DBL_MAX * DBL_MAX (overflow), which are probably safe
- as used in the GNU libc implementation.
- * For testing the lack of subnormal support:
- see the -mfpu GCC option for ARM and
- https://en.wikipedia.org/wiki/Denormal_number#Disabling_denormal_floats_at_the_code_level
-
-
-##############################################################################
-4. New functions to implement
-##############################################################################
-
-- a function to compute the hash of a floating-point number
- (suggested by Patrick Pelissier)
-- implement new functions from the C++17 standard:
- http://en.cppreference.com/w/cpp/numeric/special_math
- assoc_laguerre, assoc_legendre, comp_ellint_1, comp_ellint_2, comp_ellint_3,
- cyl_bessel_i, cyl_bessel_j, cyl_bessel_k, cyl_neumann, ellint_1, ellint_2,
- ellint_3, hermite, legendre, laguerre, sph_bessel, sph_legendre,
- sph_neumann.
- Already in mpfr4: beta and riemann_zeta.
- See also https://isocpp.org/files/papers/P0226R1.pdf and §29.9.5 in the
- C++17 draft:
- https://github.com/cplusplus/draft/blob/master/source/numerics.tex
-- implement mpfr_q_sub, mpfr_z_div, mpfr_q_div?
-- implement mpfr_pow_q and variants with two integers (native or mpz)
- instead of a rational? See IEEE P1788.
-- implement functions for random distributions, see for example
- https://sympa.inria.fr/sympa/arc/mpfr/2010-01/msg00034.html
- (suggested by Charles Karney <ckarney@Sarnoff.com>, 18 Jan 2010):
- * a Bernoulli distribution with prob p/q (exact)
- * a general discrete distribution (i with prob w[i]/sum(w[i]) (Walker
- algorithm, but make it exact)
- * a uniform distribution in (a,b)
- * exponential distribution (mean lambda) (von Neumann's method?)
- * normal distribution (mean m, s.d. sigma) (ratio method?)
-- wanted for Magma [John Cannon <john@maths.usyd.edu.au>, Tue, 19 Apr 2005]:
- HypergeometricU(a,b,s) = 1/gamma(a)*int(exp(-su)*u^(a-1)*(1+u)^(b-a-1),
- u=0..infinity)
- JacobiThetaNullK
- PolylogP, PolylogD, PolylogDold: see http://arxiv.org/abs/math.CA/0702243
- and the references herein.
- JBessel(n, x) = BesselJ(n+1/2, x)
- KBessel, KBessel2 [2nd kind]
- JacobiTheta
- (see http://www.ams.org/journals/mcom/0000-000-00/S0025-5718-2017-03245-2/home.html)
- LogIntegral
- ExponentialIntegralEn (formula 5.1.4 of Abramowitz and Stegun)
- DawsonIntegral
- GammaD(x) = Gamma(x+1/2)
-- new functions of IEEE 754-2008, and more generally functions of the
- C binding draft TS 18661-4:
- http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1946.pdf
- Some propositions about rootn: mpfr_rootn_si, mpfr_rootn_sj, mpfr_rootn_z,
- and versions with an unsigned integer: mpfr_rootn_ui (now implemented, as
- similar to mpfr_root) and mpfr_rootn_uj.
-- functions defined in the LIA-2 standard
- + minimum and maximum (5.2.2): max, min, max_seq, min_seq, mmax_seq
- and mmin_seq (mpfr_min and mpfr_max correspond to mmin and mmax);
- + rounding_rest, floor_rest, ceiling_rest (5.2.4);
- + remr (5.2.5): x - round(x/y) y;
- + error functions from 5.2.7 (if useful in MPFR);
- + power1pm1 (5.3.6.7): (1 + x)^y - 1;
- + logbase (5.3.6.12): \log_x(y);
- + logbase1p1p (5.3.6.13): \log_{1+x}(1+y);
- + rad (5.3.9.1): x - round(x / (2 pi)) 2 pi = remr(x, 2 pi);
- + axis_rad (5.3.9.1) if useful in MPFR;
- + cycle (5.3.10.1): rad(2 pi x / u) u / (2 pi) = remr(x, u);
- + axis_cycle (5.3.10.1) if useful in MPFR;
- + sinu, cosu, tanu, cotu, secu, cscu, cossinu, arcsinu, arccosu,
- arctanu, arccotu, arcsecu, arccscu (5.3.10.{2..14}):
- sin(x 2 pi / u), etc.;
- [from which sinpi(x) = sin(Pi*x), ... are trivial to implement, with u=2.]
- + arcu (5.3.10.15): arctan2(y,x) u / (2 pi);
- + rad_to_cycle, cycle_to_rad, cycle_to_cycle (5.3.11.{1..3}).
-- From GSL, missing special functions (if useful in MPFR):
- (cf https://www.gnu.org/software/gsl/manual/gsl-ref.html#Special-Functions)
- + The Airy functions Ai(x) and Bi(x) defined by the integral representations:
- * Ai(x) = (1/\pi) \int_0^\infty \cos((1/3) t^3 + xt) dt
- * Bi(x) = (1/\pi) \int_0^\infty (e^(-(1/3) t^3) + \sin((1/3) t^3 + xt)) dt
- * Derivatives of Airy Functions
- + The Bessel functions for n integer and n fractional:
- * Regular Modified Cylindrical Bessel Functions I_n
- * Irregular Modified Cylindrical Bessel Functions K_n
- * Regular Spherical Bessel Functions j_n: j_0(x) = \sin(x)/x,
- j_1(x)= (\sin(x)/x-\cos(x))/x & j_2(x)= ((3/x^2-1)\sin(x)-3\cos(x)/x)/x
- Note: the "spherical" Bessel functions are solutions of
- x^2 y'' + 2 x y' + [x^2 - n (n+1)] y = 0 and satisfy
- j_n(x) = sqrt(Pi/(2x)) J_{n+1/2}(x). They should not be mixed with the
- classical Bessel Functions, also noted j0, j1, jn, y0, y1, yn in C99
- and mpfr.
- Cf https://en.wikipedia.org/wiki/Bessel_function#Spherical_Bessel_functions
- *Irregular Spherical Bessel Functions y_n: y_0(x) = -\cos(x)/x,
- y_1(x)= -(\cos(x)/x+\sin(x))/x &
- y_2(x)= (-3/x^3+1/x)\cos(x)-(3/x^2)\sin(x)
- * Regular Modified Spherical Bessel Functions i_n:
- i_l(x) = \sqrt{\pi/(2x)} I_{l+1/2}(x)
- * Irregular Modified Spherical Bessel Functions:
- k_l(x) = \sqrt{\pi/(2x)} K_{l+1/2}(x).
- + Clausen Function:
- Cl_2(x) = - \int_0^x dt \log(2 \sin(t/2))
- Cl_2(\theta) = \Im Li_2(\exp(i \theta)) (dilogarithm).
- + Dawson Function: \exp(-x^2) \int_0^x dt \exp(t^2).
- + Debye Functions: D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1))
- + Elliptic Integrals:
- * Definition of Legendre Forms:
- F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t)))
- E(\phi,k) = \int_0^\phi dt \sqrt((1 - k^2 \sin^2(t)))
- P(\phi,k,n) = \int_0^\phi dt 1/((1 + n \sin^2(t))\sqrt(1 - k^2 \sin^2(t)))
- * Complete Legendre forms are denoted by
- K(k) = F(\pi/2, k)
- E(k) = E(\pi/2, k)
- * Definition of Carlson Forms
- RC(x,y) = 1/2 \int_0^\infty dt (t+x)^(-1/2) (t+y)^(-1)
- RD(x,y,z) = 3/2 \int_0^\infty dt (t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-3/2)
- RF(x,y,z) = 1/2 \int_0^\infty dt (t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-1/2)
- RJ(x,y,z,p) = 3/2 \int_0^\infty dt
- (t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-1/2) (t+p)^(-1)
- + Elliptic Functions (Jacobi)
- + N-relative exponential:
- exprel_N(x) = N!/x^N (\exp(x) - \sum_{k=0}^{N-1} x^k/k!)
- + exponential integral:
- E_2(x) := \Re \int_1^\infty dt \exp(-xt)/t^2.
- Ei_3(x) = \int_0^x dt \exp(-t^3) for x >= 0.
- Ei(x) := - PV(\int_{-x}^\infty dt \exp(-t)/t)
- + Hyperbolic/Trigonometric Integrals
- Shi(x) = \int_0^x dt \sinh(t)/t
- Chi(x) := Re[ \gamma_E + \log(x) + \int_0^x dt (\cosh[t]-1)/t]
- Si(x) = \int_0^x dt \sin(t)/t
- Ci(x) = -\int_x^\infty dt \cos(t)/t for x > 0
- AtanInt(x) = \int_0^x dt \arctan(t)/t
- [ \gamma_E is the Euler constant ]
- + Fermi-Dirac Function:
- F_j(x) := (1/r\Gamma(j+1)) \int_0^\infty dt (t^j / (\exp(t-x) + 1))
- + Pochhammer symbol (a)_x := \Gamma(a + x)/\Gamma(a) : see [Smith01] in
- algorithms.bib
- logarithm of the Pochhammer symbol
- + Gegenbauer Functions
- + Laguerre Functions
- + Eta Function: \eta(s) = (1-2^{1-s}) \zeta(s)
- Hurwitz zeta function: \zeta(s,q) = \sum_0^\infty (k+q)^{-s}.
- + Lambert W Functions, W(x) are defined to be solutions of the equation:
- W(x) \exp(W(x)) = x.
- This function has multiple branches for x < 0 (2 funcs W0(x) and Wm1(x))
- From Fredrik Johansson:
- See https://cs.uwaterloo.ca/research/tr/1993/03/W.pdf, in particular
- formulas 5.2 and 5.3 for the error bound: one first computes an
- approximation w, and then evaluates the residual w e^w - x. There is an
- expression for the error in terms of the residual and the derivative W'(t),
- where the derivative can be bounded by piecewise simple functions,
- something like min(1, 1/t) when t >= 0.
- See https://arxiv.org/abs/1705.03266 for rigorous error bounds.
- + Trigamma Function psi'(x).
- and Polygamma Function: psi^{(m)}(x) for m >= 0, x > 0.
-- functions from ISO/IEC 24747:2009 (Extensions to the C Library,
- to Support Mathematical Special Functions).
- Standard: http://www.iso.org/iso/catalogue_detail.htm?csnumber=38857
- Draft: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1292.pdf
- Rationale: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1244.pdf
- See also: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3060.pdf
- (similar, for C++).
- Also check whether the functions that are already implemented in MPFR
- match this standard.
-
-- from gnumeric (www.gnome.org/projects/gnumeric/doc/function-reference.html):
- - incomplete beta function, see message from Martin Maechler
- <maechler@stat.math.ethz.ch> on 18 Jan 2016, and Section 6.6 in
- Abramowitz & Stegun
- - betaln
- - degrees
- - radians
- - sqrtpi
-
-- mpfr_inp_raw, mpfr_out_raw (cf mail "Serialization of mpfr_t" from Alexey
- and answer from Granlund on mpfr list, May 2007)
-- [maybe useful for SAGE] implement companion frac_* functions to the rint_*
- functions. For example mpfr_frac_floor(x) = x - floor(x). (The current
- mpfr_frac function corresponds to mpfr_rint_trunc.)
-- scaled erfc (https://sympa.inria.fr/sympa/arc/mpfr/2009-05/msg00054.html)
-- asec, acsc, acot, asech, acsch and acoth (mail from Björn Terelius on mpfr
- list, 18 June 2009)
-
-- function to reduce the precision of a variable, with a ternary value in
- input, i.e. taking care of double rounding. Two possible forms: like
- mpfr_set (i.e. with input and output) or like mpfr_prec_round (i.e. with
- a single variable). mpfr_subnormalize and mpfr_round_nearest_away_end
- could use it.
-
-- UBF functions for +, -, *, fmma, /, sqrt.
- Support UBF in mpfr_check_range or add mpfr_ubf_check_range?
- Make this available in the API, e.g. for MPC.
-
-- mpfr_cmp_uj and mpfr_cmp_sj. They would be useful to test MPFR with
- _MPFR_EXP_FORMAT=4.
-
-- base conversion with the round-trip property using a minimal precision,
- such as the to_chars functions from the C++ standard:
-
- The functions [...] ensure that the string representation consists
- of the smallest number of characters such that there is at least
- one digit before the radix point (if present) and parsing the
- representation using the corresponding from_chars function
- recovers value exactly. [Note: This guarantee applies only if
- to_chars and from_chars are executed on the same implementation.
- — end note] If there are several such representations, the
- representation with the smallest difference from the
- floating-point argument value is chosen, resolving any remaining
- ties using rounding according to round_to_nearest.
-
- Text from: https://www.zsh.org/mla/workers/2019/msg01138.html
-
-- Serialization / Deserialization. Suggested by Frédéric Pétrot:
- https://sympa.inria.fr/sympa/arc/mpfr/2020-02/msg00006.html
- like mpfr_fpif_{import,export}, but with memory instead of file.
-
- Idea of implementation to reuse most of the code and change very little:
-
- Instead of passing a FILE *fh, pass a struct ext_data *h, and instead of
- using fread and fwrite, use
- h->read (h, buffer, size)
- h->write (h, buffer, size)
- respectively.
-
- The struct ext_data structure could contain the following fields:
- * read: pointer to a wrapper function for the read method.
- * write: pointer to a wrapper function for the write method.
- * FILE *fh: to be used for operations with files.
- * unsigned char *arena: to be used for operations with memory.
-
- The wrapper functions for the read method could be:
-
- static int
- read_from_file (struct ext_data *h, unsigned char *buffer, size_t size)
- {
- return fread (buffer, size, 1, h->fh) != 1;
- }
-
- static int
- read_from_memory (struct ext_data *h, unsigned char *buffer, size_t size)
- {
- if (h->arena == NULL)
- return 1;
- memcpy (buffer, h->arena, size);
- h->arena += size;
- return 0;
- }
-
- So I expect very few changes in the existing code:
- * Write a few wrapper functions.
- * Rename mpfr_fpif_export to mpfr_fpif_export_aux and
- mpfr_fpif_import to mpfr_fpif_import_aux.
- * In the existing functions, replace FILE *fh, and fread/fwrite
- calls as mentioned above.
- * Add new mpfr_fpif_export, mpfr_fpif_import, mpfr_fpif_export_mem,
- mpfr_fpif_import_mem.
-
-##############################################################################
-5. Efficiency
-##############################################################################
-
-- Fredrik Johansson reports that mpfr_ai is slow for large arguments: an
- asymptotic expansion should be used (once done, remove REDUCE_EMAX from
- tests/tai.c and update the description in mpfr.texi).
-- for exp(x), Fredrik Johansson reports a 20% speed improvement starting from
- 4000 bits, and up to a 75% memory improvement in his Arb implementation, by
- using recursive instead of iterative binary splitting:
- https://github.com/fredrik-johansson/arb/blob/master/elefun/exp_sum_bs_powtab.c
-- improve mpfr_grandom using the algorithm in http://arxiv.org/abs/1303.6257
-- implement a mpfr_sqrthigh algorithm based on Mulders' algorithm, with a
- basecase variant
-- use mpn_div_q to speed up mpfr_div. However mpn_div_q, which is new in
- GMP 5, is not documented in the GMP manual, thus we are not sure it
- guarantees to return the same quotient as mpn_tdiv_qr.
- Also mpfr_div uses the remainder computed by mpn_divrem. A workaround would
- be to first try with mpn_div_q, and if we cannot (easily) compute the
- rounding, then use the current code with mpn_divrem.
-- improve atanh(x) for small x by using atanh(x) = log1p(2x/(1-x)),
- and log1p should also be improved for small arguments.
-- compute exp by using the series for cosh or sinh, which has half the terms
- (see Exercise 4.11 from Modern Computer Arithmetic, version 0.3)
- The same method can be used for log, using the series for atanh, i.e.,
- atanh(x) = 1/2*log((1+x)/(1-x)).
-- improve mpfr_gamma (see https://code.google.com/p/fastfunlib/). A possible
- idea is to implement a fast algorithm for the argument reconstruction
- gamma(x+k): instead of performing k products by x+i, we could precompute
- x^2, ..., x^m for m ~ sqrt(k), and perform only sqrt(k) products.
- One could also use the series for 1/gamma(x), see for example
- http://dlmf.nist.gov/5/7/ or formula (36) from
- http://mathworld.wolfram.com/GammaFunction.html
-- improve the computation of Bernoulli numbers: instead of computing just one
- B[2n] at a time in mpfr_bernoulli_internal, we could compute several at a
- time, sharing the expensive computation of the 1/p^(2n) series.
-- fix regression with mpfr_mpz_root (from Keith Briggs, 5 July 2006), for
- example on 3Ghz P4 with gmp-4.2, x=12.345:
- prec=50000 k=2 k=3 k=10 k=100
- mpz_root 0.036 0.072 0.476 7.628
- mpfr_mpz_root 0.004 0.004 0.036 12.20
- See also mail from Carl Witty on mpfr list, 09 Oct 2007.
-- for sparse input (say x=1 with 2 bits), mpfr_exp is not faster than for
- full precision when precision <= MPFR_EXP_THRESHOLD. The reason is
- that argument reduction kills sparsity. Maybe avoid argument reduction
- for sparse input?
-- speed up mpfr_atan for large arguments (to speed up mpc_log) see FR #6198
-- improve mpfr_sin on values like ~pi (do not compute sin from cos, because
- of the cancellation). For instance, reduce the input modulo pi/2 in
- [-pi/4,pi/4], and define auxiliary functions for which the argument is
- assumed to be already reduced (so that the sin function can avoid
- unnecessary computations by calling the auxiliary cos function instead of
- the full cos function). This will require a native code for sin, for
- example using the reduction sin(3x)=3sin(x)-4sin(x)^3.
- See https://sympa.inria.fr/sympa/arc/mpfr/2007-08/msg00001.html and
- the following messages.
-- improve generic.c to work for number of terms <> 2^k
-- rewrite mpfr_greater_p... as native code.
-
-- mpf_t uses a scheme where the number of limbs actually present can
- be less than the selected precision, thereby allowing low precision
- values (for instance small integers) to be stored and manipulated in
- an mpf_t efficiently.
-
- Perhaps mpfr should get something similar, especially if looking to
- replace mpf with mpfr, though it'd be a major change. Alternately
- perhaps those mpfr routines like mpfr_mul where optimizations are
- possible through stripping low zero bits or limbs could check for
- that (this would be less efficient but easier).
-
-- try the idea of the paper "Reduced Cancellation in the Evaluation of Entire
- Functions and Applications to the Error Function" by W. Gawronski, J. Mueller
- and M. Reinhard, to be published in SIAM Journal on Numerical Analysis: to
- avoid cancellation in say erfc(x) for x large, they compute the Taylor
- expansion of erfc(x)*exp(x^2/2) instead (which has less cancellation),
- and then divide by exp(x^2/2) (which is simpler to compute).
-
-- replace the *_THRESHOLD macros by global (TLS) variables that can be
- changed at run time (via a function, like other variables)? One benefit
- is that users could use a single MPFR binary on several machines (e.g.,
- a library provided by binary packages or shared via NFS) with different
- thresholds. On the default values, this would be a bit less efficient
- than the current code, but this isn't probably noticeable (this should
- be tested). Something like:
- long *mpfr_tune_get(void) to get the current values (the first value
- is the size of the array).
- int mpfr_tune_set(long *array) to set the tune values.
- int mpfr_tune_run(long level) to find the best values (the support
- for this feature is optional, this can also be done with an
- external function).
-
-- better distinguish different processors (for example Opteron and Core 2)
- and use corresponding default tuning parameters (as in GMP). This could be
- done in configure.ac to avoid hacking config.guess, for example define
- MPFR_HAVE_CORE2.
- Note (VL): the effect on cross-compilation (that can be a processor
- with the same architecture, e.g. compilation on a Core 2 for an
- Opteron) is not clear. The choice should be consistent with the
- build target (e.g. -march or -mtune value with gcc).
- Also choose better default values. For instance, the default value of
- MPFR_MUL_THRESHOLD is 40, while the best values that have been found
- are between 11 and 19 for 32 bits and between 4 and 10 for 64 bits!
-
-- during the Many Digits competition, we noticed that (our implantation of)
- Mulders short product was slower than a full product for large sizes.
- This should be precisely analyzed and fixed if needed.
-
-- for various functions, check the timings as a function of the magnitude
- of the input (and the input and/or output precisions?), and use better
- thresholds for asymptotic expansions.
-
-- improve the special case of mpfr_{add,sub} (x, x, y, ...) when |x| > |y|
- to do the addition in-place and have a complexity of O(prec(y)) in most
- cases. The mpfr_{add,sub}_{d,ui} functions should automatically benefit
- from this change.
-
-- in gmp_op.c, for functions with mpz_srcptr, check whether mpz_fits_slong_p
- is really useful in all cases (see TODO in this file).
-
-- optimize code that uses a test based on the fact that x >> s is
- undefined in C for s == width of x but the result is expected to
- be 0. ARM and PowerPC could benefit from such an optimization,
- but not x86. This needs support from the compiler.
- For PowerPC: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79233
-
-- deal with MPFR_RNDF in mpfr_round_near_x (replaced by MPFR_RNDZ).
-
-- instead of a fixed mparam.h, optionally use function multiversioning
- (FMV), currently only available with the GNU C++ front end:
- https://gcc.gnu.org/wiki/FunctionMultiVersioning
- According to https://lwn.net/Articles/691932/ the dispatch resolution
- is now done by the dynamic loader, so that this should be fast enough
- (the cost would be the reading of a static variable, initialized at
- load time, instead of a constant).
- In particular, binary package distributions would benefit from FMV as
- only one binary is generated for different processor families.
-
-
-##############################################################################
-6. Miscellaneous
-##############################################################################
-
-- [suggested by Tobias Burnus <burnus(at)net-b.de> and
- Asher Langton <langton(at)gcc.gnu.org>, Wed, 01 Aug 2007]
- support quiet and signaling NaNs in mpfr:
- * functions to set/test a quiet/signaling NaN: mpfr_set_snan, mpfr_snan_p,
- mpfr_set_qnan, mpfr_qnan_p
- * correctly convert to/from double (if encoding of s/qNaN is fixed in 754R)
- Note: Signaling NaNs are not specified by the ISO C standard and may
- not be supported by the implementation. GCC needs the -fsignaling-nans
- option (but this does not affect the C library, which may or may not
- accept signaling NaNs).
-
-- check the constants mpfr_set_emin (-16382-63) and mpfr_set_emax (16383) in
- get_ld.c and the other constants, and provide a testcase for large and
- small numbers.
-
-- from Kevin Ryde <user42@zip.com.au>:
- Also for pi.c, a pre-calculated compiled-in pi to a few thousand
- digits would be good value I think. After all, say 10000 bits using
- 1250 bytes would still be small compared to the code size!
- Store pi in round to zero mode (to recover other modes).
-
-- add other prototypes for round to nearest-away (mpfr_round_nearest_away
- only deals with the prototypes of say mpfr_sin) or implement it as a native
- rounding mode
-- add a new roundind mode: round to odd. If the result is not exactly
- representable, then round to the odd mantissa. This rounding
- has the nice property that for k > 1, if:
- y = round(x, p+k, TO_ODD)
- z = round(y, p, TO_NEAREST_EVEN), then
- z = round(x, p, TO_NEAREST_EVEN)
- so it avoids the double-rounding problem.
- VL: I prefer the (original?) term "sticky rounding", as used in
- J Strother Moore, Tom Lynch, Matt Kaufmann. A Mechanically Checked
- Proof of the Correctness of the Kernel of the AMD5K86 Floating-Point
- Division Algorithm. IEEE Transactions on Computers, 1996.
- and
- http://www.russinoff.com/libman/text/node26.html
-
-- new rounding mode MPFR_RNDE when the result is known to be exact?
- * In normal mode, this would allow MPFR to optimize using
- this information.
- * In debug mode, MPFR would check that the result is exact
- (i.e. that the ternary value is 0).
-
-- add tests of the ternary value for constants
-
-- When doing Extensive Check (--enable-assert=full), since all the
- functions use a similar use of MACROS (ZivLoop, ROUND_P), it should
- be possible to do such a scheme:
- For the first call to ROUND_P when we can round.
- Mark it as such and save the approximated rounding value in
- a temporary variable.
- Then after, if the mark is set, check if:
- - we still can round.
- - The rounded value is the same.
- It should be a complement to tgeneric tests.
-
-- in div.c, try to find a case for which cy != 0 after the line
- cy = mpn_sub_1 (sp + k, sp + k, qsize, cy);
- (which should be added to the tests), e.g. by having {vp, k} = 0, or
- prove that this cannot happen.
-
-- add a configure test for --enable-logging to ignore the option if
- it cannot be supported. Modify the "configure --help" description
- to say "on systems that support it".
-
-- add generic bad cases for functions that don't have an inverse
- function that is implemented (use a single Newton iteration).
-
-- add bad cases for the internal error bound (by using a dichotomy
- between a bad case for the correct rounding and some input value
- with fewer Ziv iterations?).
-
-- add an option to use a 32-bit exponent type (int) on LP64 machines,
- mainly for developers, in order to be able to test the case where the
- extended exponent range is the same as the default exponent range, on
- such platforms.
- Tests can be done with the exp-int branch (added on 2010-12-17, and
- many tests fail at this time).
-
-- test underflow/overflow detection of various functions (in particular
- mpfr_exp) in reduced exponent ranges, including ranges that do not
- contain 0.
-
-- add an internal macro that does the equivalent of the following?
- MPFR_IS_ZERO(x) || MPFR_GET_EXP(x) <= value
-
-- check whether __gmpfr_emin and __gmpfr_emax could be replaced by
- a constant (see README.dev). Also check the use of MPFR_EMIN_MIN
- and MPFR_EMAX_MAX.
-
-- add a test checking that no mpfr.h macros depend on mpfr-impl.h
- (the current tests cannot check that since mpfr-impl.h is always
- included).
-
-- move some macro definitions from acinclude.m4 to the m4 directory
- as suggested by the Automake manual? The reason is that the
- acinclude.m4 file is big and a bit difficult to read.
-
-- use symbol versioning.
-
-- check whether mpz_t caching (pool) is necessary. Timings with -static
- with details about the C / C library implementation should be put
- somewhere as a comment in the source or in the doc. Using -static
- is important because otherwise the cache saves the dynamic call to
- mpz_init and mpz_clear; so, what we're measuring is not clear.
- See thread:
- https://gmplib.org/list-archives/gmp-devel/2015-September/004147.html
- Summary: It will not be integrated in GMP because 1) This yields
- problems with threading (in MPFR, we have TLS variables, but this is
- not the case of GMP). 2) The gain (if confirmed with -static) would
- be due to a poor malloc implementation (timings would depend on the
- platform). 3) Applications would use more RAM.
- Additional notes [VL]: the major differences in the timings given
- by Patrick in 2014-01 under Linux were:
- Before:
- arccos(x) took 0.054689 ms (32767 eval in 1792 ms)
- arctan(x) took 0.042116 ms (32767 eval in 1380 ms)
- After:
- arccos(x) took 0.043580 ms (32767 eval in 1428 ms)
- arctan(x) took 0.035401 ms (32767 eval in 1160 ms)
- mpfr_acos doesn't use mpz, but calls mpfr_atan, so that the issue comes
- from mpfr_atan, which uses mpz a lot. The problem mainly comes from the
- reallocations in GMP because mpz_init is used instead of mpz_init2 with
- the estimated maximum size. Other places in the code that uses mpz_init
- may be concerned.
- Issues with mpz_t caching:
- * The pool can take much memory, which may no longer be useful.
- For instance:
- mpfr_init2 (x, 10000000);
- mpfr_log_ui (x, 17, MPFR_RNDN);
- /* ... */
- mpfr_clear (x);
- /* followed by code using only small precision */
- while contrary to real caches, they contain no data. This is not
- valuable memory: freeing/allocating a large block of memory is
- much faster than the actual computations, so that mpz_t caching
- has no impact on the performance in such cases. A pool with large
- blocks also potentially destroys the data locality.
- * It assumes that the real GMP functions are __gmpz_init and
- __gmpz_clear, which are not part of the official GMP API, thus
- is based on GMP internals, which may change in the future or
- may be different in forks / compatible libraries / etc. This
- can be solved if MPFR code calls mpfr_mpz_init / mpfr_mpz_clear
- directly, avoiding the #define's.
- Questions that need to be answered:
- * What about the comparisons with other memory allocators?
- * Shouldn't the pool be part of the memory allocator?
- For the default memory allocator (malloc): RFE?
- If it is decided to keep some form of mpz_t caching, a possible solution
- for both issues: define mpfr_mpz_init2 and mpfr_mpz_clear2, which both
- take 2 arguments like mpz_init2, where mpfr_mpz_init2 behaves in a way
- similar to mpz_init2, and mpfr_mpz_clear2 behaves in a way similar to
- mpz_clear but where the size argument is a hint for the pool; if it is
- too large, then the mpz_t should not be pushed back to the pool. The
- size argument of mpfr_mpz_init2 could also be a hint to decide which
- element to pull from the pool.
-
-- in tsum, add testcases for mpfr_sum triggering the bug fixed in r9722,
- that is, with a large error during the computation of the secondary term
- (when the TMD occurs).
-
-- use the keyword "static" in array indices of parameter declarations with
- C99 compilers (6.7.5.3p7) when the pointer is expected not to be null?
- For instance, if mpfr.h is changed to have:
- __MPFR_DECLSPEC void mpfr_dump (const __mpfr_struct [static 1]);
- and one calls
- mpfr_dump (NULL);
- one gets a warning with Clang. This is just an example; this needs to be
- done in a clean way.
- See:
- http://stackoverflow.com/a/3430353/3782797
- https://hamberg.no/erlend/posts/2013-02-18-static-array-indices.html
-
-- change most mpfr_urandomb occurrences to mpfr_urandom in the tests?
- (The one done in r10573 allowed us to find a bug even without
- assertion checking.)
-
-- tzeta has been much slower since r9848 (which increases the precision
- of the input for the low output precisions), at least with the x86
- 32-bit ABI. This seems to come from the fact that the working precision
- in the mpfr_zeta implementation depends on the precision of the input.
- Once mpfr_zeta has improved, change the last argument of test_generic
- in tzeta.c back to 5 (as it was before r10667).
-
-- check the small-precision tables in the tests?
- This may require to export some pointer to the tables, but this could
- be done only if some debug macro is defined.
-
-- optionally use malloc() for the caches? See mpfr_mp_memory_cleanup.
- Note: This can be implemented by adding a TLS flag saying whether we
- are under cache generation or not, and by making the MPFR allocation
- functions consider this flag. Moreover, this can only work for mpfr_t
- caching (floating-point constants), not for mpz_t caching (Bernoulli
- constants) because we do not have the control of memory allocation for
- mpz_init.
-
-- use GCC's nonnull attribute (available since GCC 4.0) where applicable.
-
-- avoid the use of MPFR_MANT(x) as an lvalue; use other (more high level)
- internal macros if possible, such as MPFR_TMP_INIT1, MPFR_TMP_INIT and
- MPFR_ALIAS.
-
-
-##############################################################################
-7. Portability
-##############################################################################
-
-- add a web page with results of builds on different architectures
-
-- [Kevin about texp.c long strings]
- For strings longer than c99 guarantees, it might be cleaner to
- introduce a "tests_strdupcat" or something to concatenate literal
- strings into newly allocated memory. I thought I'd done that in a
- couple of places already. Arrays of chars are not much fun.
-
-- use https://gcc.gnu.org/viewcvs/gcc/trunk/config/stdint.m4 for mpfr-gmp.h
-
-- By default, GNU Automake adds -I options to local directories, with
- the side effect that these directories have the precedence to search
- for system headers (#include <...>). This may make the build fail if
- a C implementation includes a file that has the same name as one used
- in such a directory.
- For instance, if one adds an empty file "src/bits/types.h", then the
- MPFR build fails under Linux because /usr/include/stdio.h has
- #include <bits/types.h>
- Possible workaround:
- * disable the default -I options with nostdinc as documented in
- the Automake manual;
- * have a rule that copies the needed files ("mpfr.h" or they should
- be prefixed with "mpfr-") to $(top_builddir)/include;
- * use "-I$(top_builddir)/include".
diff --git a/Build/source/libs/mpfr/mpfr-src/VERSION b/Build/source/libs/mpfr/mpfr-src/VERSION
deleted file mode 100644
index ee74734aa22..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-4.1.0
diff --git a/Build/source/libs/mpfr/mpfr-src/acinclude.m4 b/Build/source/libs/mpfr/mpfr-src/acinclude.m4
deleted file mode 100644
index 5e58d476cd0..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/acinclude.m4
+++ /dev/null
@@ -1,1789 +0,0 @@
-dnl MPFR specific autoconf macros
-
-dnl Copyright 2000, 2002-2020 Free Software Foundation, Inc.
-dnl Contributed by the AriC and Caramba projects, INRIA.
-dnl
-dnl This file is part of the GNU MPFR Library.
-dnl
-dnl The GNU MPFR Library is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU Lesser General Public License as published
-dnl by the Free Software Foundation; either version 3 of the License, or (at
-dnl your option) any later version.
-dnl
-dnl The GNU MPFR Library is distributed in the hope that it will be useful, but
-dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-dnl License for more details.
-dnl
-dnl You should have received a copy of the GNU Lesser General Public License
-dnl along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-dnl https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-dnl 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-dnl autoconf 2.60 is necessary because of the use of AC_PROG_SED.
-dnl The following line allows the autoconf wrapper (when installed)
-dnl to work as expected.
-dnl If you change the required version, please update README.dev too!
-AC_PREREQ(2.60)
-
-dnl ------------------------------------------------------------
-dnl You must put in MPFR_CONFIGS everything that configures MPFR except:
-dnl - Everything dealing with CC and CFLAGS in particular the ABI
-dnl but the IEEE-754 specific flags must be set here.
-dnl - Tests that depend on gmp.h (see MPFR_CHECK_DBL2INT_BUG as an example:
-dnl a function needs to be defined and called in configure.ac).
-dnl - GMP's linkage.
-dnl - Libtool stuff.
-dnl - Handling of special arguments of MPFR's configure.
-AC_DEFUN([MPFR_CONFIGS],
-[
-AC_REQUIRE([AC_OBJEXT])
-AC_REQUIRE([MPFR_CHECK_LIBM])
-AC_REQUIRE([MPFR_CHECK_LIBQUADMATH])
-AC_REQUIRE([AC_HEADER_TIME])
-AC_REQUIRE([AC_CANONICAL_HOST])
-
-dnl Features for the MPFR shared cache. This needs to be done
-dnl quite early since this may change CC, CFLAGS and LIBS, which
-dnl may affect the other tests.
-
-if test "$enable_shared_cache" = yes; then
-
-dnl Prefer ISO C11 threads (as in mpfr-thread.h).
- MPFR_CHECK_C11_THREAD()
-
- if test "$mpfr_c11_thread_ok" != yes; then
-dnl Check for POSIX threads. Since the AX_PTHREAD macro is not standard
-dnl (it is provided by autoconf-archive), we need to detect whether it
-dnl is left unexpanded, otherwise the configure script won't fail and
-dnl "make distcheck" won't give any error, yielding buggy tarballs!
-dnl The \b is necessary to avoid an error with recent ax_pthread.m4
-dnl (such as with Debian's autoconf-archive 20160320-1), which contains
-dnl AX_PTHREAD_ZOS_MISSING, etc. It is not documented, but see:
-dnl https://lists.gnu.org/archive/html/autoconf/2015-03/msg00011.html
-dnl
-dnl Note: each time a change is done in m4_pattern_forbid, autogen.sh
-dnl should be tested with and without ax_pthread.m4 availability (in
-dnl the latter case, there should be an error).
- m4_pattern_forbid([AX_PTHREAD\b])
- AX_PTHREAD([])
- if test "$ax_pthread_ok" = yes; then
- CC="$PTHREAD_CC"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- LIBS="$LIBS $PTHREAD_LIBS"
-dnl Do a compilation test, as this is currently not done by AX_PTHREAD.
-dnl Moreover, MPFR needs pthread_rwlock_t, which is conditionally defined
-dnl in glibc's bits/pthreadtypes.h (via <pthread.h>), not sure why...
- AC_MSG_CHECKING([for pthread_rwlock_t])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <pthread.h>
-]], [[
-pthread_rwlock_t lock; (void) lock;
-]])],
- [AC_MSG_RESULT([yes])
- mpfr_pthread_ok=yes],
- [AC_MSG_RESULT([no])
- mpfr_pthread_ok=no])
- else
- mpfr_pthread_ok=no
- fi
- fi
-
- AC_MSG_CHECKING(if shared cache can be supported)
- if test "$mpfr_c11_thread_ok" = yes; then
- AC_MSG_RESULT([yes, with ISO C11 threads])
- elif test "$mpfr_pthread_ok" = yes; then
- AC_MSG_RESULT([yes, with pthread])
- else
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([shared cache needs C11 threads or pthread support])
- fi
-
-fi
-
-dnl End of features for the MPFR shared cache.
-
-AC_CHECK_HEADER([limits.h],, AC_MSG_ERROR([limits.h not found]))
-AC_CHECK_HEADER([float.h],, AC_MSG_ERROR([float.h not found]))
-AC_CHECK_HEADER([string.h],, AC_MSG_ERROR([string.h not found]))
-
-dnl Check for locales
-AC_CHECK_HEADERS([locale.h])
-
-dnl Check for wide characters (wchar_t and wint_t)
-AC_CHECK_HEADERS([wchar.h])
-
-dnl Check for stdargs
-AC_CHECK_HEADER([stdarg.h],[AC_DEFINE([HAVE_STDARG],1,[Define if stdarg])],
- [AC_CHECK_HEADER([varargs.h],,
- AC_MSG_ERROR([stdarg.h or varargs.h not found]))])
-
-dnl sys/fpu.h - MIPS specific
-AC_CHECK_HEADERS([sys/time.h sys/fpu.h])
-
-dnl Android has a <locale.h>, but not the following members.
-AC_CHECK_MEMBERS([struct lconv.decimal_point, struct lconv.thousands_sep],,,
- [#include <locale.h>])
-
-dnl Check how to get `alloca'
-AC_FUNC_ALLOCA
-
-dnl Define uintptr_t if not available.
-AC_TYPE_UINTPTR_T
-
-dnl va_copy macro
-AC_MSG_CHECKING([how to copy va_list])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdarg.h>
-]], [[
- va_list ap1, ap2;
- va_copy(ap1, ap2);
-]])], [
- AC_MSG_RESULT([va_copy])
- AC_DEFINE(HAVE_VA_COPY)
-], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdarg.h>
-]], [[
- va_list ap1, ap2;
- __va_copy(ap1, ap2);
-]])], [AC_DEFINE([HAVE___VA_COPY]) AC_MSG_RESULT([__va_copy])],
- [AC_MSG_RESULT([memcpy])])])
-
-dnl Options like -Werror can yield a failure as AC_CHECK_FUNCS uses some
-dnl fixed prototype for function detection, generally incompatible with
-dnl the standard one. For instance, with GCC, if the function is defined
-dnl as a builtin, one can get a "conflicting types for built-in function"
-dnl error [-Werror=builtin-declaration-mismatch], even though the header
-dnl is not included; when these functions were tested, this occurred with
-dnl memmove and memset. Even though no failures are known with the tested
-dnl functions at this time, let's remove options starting with "-Werror"
-dnl since failures may still be possible.
-dnl
-dnl The gettimeofday function is not defined with MinGW.
-saved_CFLAGS="$CFLAGS"
-CFLAGS=`[echo " $CFLAGS" | $SED 's/ -Werror[^ ]*//g']`
-AC_CHECK_FUNCS([setlocale gettimeofday signal])
-CFLAGS="$saved_CFLAGS"
-
-dnl We cannot use AC_CHECK_FUNCS on sigaction, because while this
-dnl function may be provided by the C library, its prototype and
-dnl associated structure may not be available, e.g. when compiling
-dnl with "gcc -std=c99".
-AC_MSG_CHECKING(for sigaction and its associated structure)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <signal.h>
-static int f (int (*func)(int, const struct sigaction *, struct sigaction *))
-{ return 0; }
-]], [[
- return f(sigaction);
-]])], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SIGACTION, 1,
- [Define if you have a working sigaction function.])
-],[AC_MSG_RESULT(no)])
-
-dnl check for long long
-AC_CHECK_TYPE([long long int],
- AC_DEFINE(HAVE_LONG_LONG, 1, [Define if compiler supports long long]),,)
-
-dnl intmax_t is C99
-AC_CHECK_TYPES([intmax_t])
-if test "$ac_cv_type_intmax_t" = yes; then
- AC_CACHE_CHECK([for working INTMAX_MAX], mpfr_cv_have_intmax_max, [
- saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I$srcdir/src -DMPFR_NEED_INTMAX_H"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
- [[#include "mpfr-intmax.h"]],
- [[intmax_t x = INTMAX_MAX; (void) x;]]
- )],
- mpfr_cv_have_intmax_max=yes, mpfr_cv_have_intmax_max=no)
- CPPFLAGS="$saved_CPPFLAGS"
- ])
- if test "$mpfr_cv_have_intmax_max" = "yes"; then
- AC_DEFINE(MPFR_HAVE_INTMAX_MAX,1,[Define if you have a working INTMAX_MAX.])
- fi
-fi
-
-AC_CHECK_TYPE( [union fpc_csr],
- AC_DEFINE(HAVE_FPC_CSR,1,[Define if union fpc_csr is available]), ,
-[
-#if HAVE_SYS_FPU_H
-# include <sys/fpu.h>
-#endif
-])
-
-dnl Check for _Noreturn function specifier (ISO C11)
-AC_CACHE_CHECK([for _Noreturn], mpfr_cv_have_noreturn, [
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([[_Noreturn void foo(int);]])],
- mpfr_cv_have_noreturn=yes, mpfr_cv_have_noreturn=no)
-])
-if test "$mpfr_cv_have_noreturn" = "yes"; then
- AC_DEFINE(MPFR_HAVE_NORETURN,1,[Define if the _Noreturn function specifier is supported.])
-fi
-
-dnl Check for __builtin_unreachable
-AC_CACHE_CHECK([for __builtin_unreachable], mpfr_cv_have_builtin_unreachable,
-[
- AC_LINK_IFELSE([AC_LANG_PROGRAM(
- [[int x;]],
- [[if (x) __builtin_unreachable(); ]]
- )],
- mpfr_cv_have_builtin_unreachable=yes,
- mpfr_cv_have_builtin_unreachable=no)
-])
-if test "$mpfr_cv_have_builtin_unreachable" = "yes"; then
- AC_DEFINE(MPFR_HAVE_BUILTIN_UNREACHABLE, 1,
- [Define if the __builtin_unreachable GCC built-in is supported.])
-fi
-
-dnl Check for attribute constructor and destructor
-MPFR_CHECK_CONSTRUCTOR_ATTR()
-
-dnl Check for fesetround
-AC_CACHE_CHECK([for fesetround], mpfr_cv_have_fesetround, [
-saved_LIBS="$LIBS"
-LIBS="$LIBS $MPFR_LIBM"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <fenv.h>]], [[fesetround(FE_TONEAREST);]])],
- mpfr_cv_have_fesetround=yes, mpfr_cv_have_fesetround=no)
-LIBS="$saved_LIBS"
-])
-if test "$mpfr_cv_have_fesetround" = "yes"; then
- AC_DEFINE(MPFR_HAVE_FESETROUND,1,[Define if you have the `fesetround' function via the <fenv.h> header file.])
-fi
-
-dnl Check for gcc float-conversion bug; if need be, -ffloat-store is used to
-dnl force the conversion to the destination type when a value is stored to
-dnl a variable (see ISO C99 standard 5.1.2.3#13, 6.3.1.5#2, 6.3.1.8#2). This
-dnl is important concerning the exponent range. Note that this doesn't solve
-dnl the double-rounding problem.
-if test -n "$GCC"; then
- AC_CACHE_CHECK([for gcc float-conversion bug], mpfr_cv_gcc_floatconv_bug, [
- saved_LIBS="$LIBS"
- LIBS="$LIBS $MPFR_LIBM"
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <float.h>
-#ifdef MPFR_HAVE_FESETROUND
-#include <fenv.h>
-#endif
-static double get_max (void);
-int main (void) {
- double x = 0.5;
- double y;
- int i;
- for (i = 1; i <= 11; i++)
- x *= x;
- if (x != 0)
- return 1;
-#ifdef MPFR_HAVE_FESETROUND
- /* Useful test for the G4 PowerPC */
- fesetround(FE_TOWARDZERO);
- x = y = get_max ();
- x *= 2.0;
- if (x != y)
- return 1;
-#endif
- return 0;
-}
-static double get_max (void) { static volatile double d = DBL_MAX; return d; }
- ]])],
- [mpfr_cv_gcc_floatconv_bug="no"],
- [mpfr_cv_gcc_floatconv_bug="yes, use -ffloat-store"],
- [mpfr_cv_gcc_floatconv_bug="cannot test, use -ffloat-store"])
- LIBS="$saved_LIBS"
- ])
- if test "$mpfr_cv_gcc_floatconv_bug" != "no"; then
- CFLAGS="$CFLAGS -ffloat-store"
- fi
-fi
-
-dnl Check if subnormal numbers are supported.
-dnl for the binary64 format, the smallest normal number is 2^(-1022)
-dnl for the binary32 format, the smallest normal number is 2^(-126)
-dnl Note: One could double-check with the value of the macros
-dnl DBL_HAS_SUBNORM and FLT_HAS_SUBNORM, when defined (C2x), but
-dnl neither tests would be reliable on implementations with partial
-dnl subnormal support. Anyway, this check is useful only for the
-dnl tests. Thus in doubt, assume that subnormals are not supported,
-dnl in order to disable the corresponding tests (which could fail).
-AC_CACHE_CHECK([for subnormal double-precision numbers],
-mpfr_cv_have_subnorm_dbl, [
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-int main (void) {
- double x = 2.22507385850720138309e-308;
- fprintf (stderr, "%e\n", x / 2.0);
- return 2.0 * (double) (x / 2.0) != x;
-}
-]])],
- [mpfr_cv_have_subnorm_dbl="yes"],
- [mpfr_cv_have_subnorm_dbl="no"],
- [mpfr_cv_have_subnorm_dbl="cannot test, assume no"])
-])
-if test "$mpfr_cv_have_subnorm_dbl" = "yes"; then
- AC_DEFINE(HAVE_SUBNORM_DBL, 1,
- [Define if the double type fully supports subnormals.])
-fi
-AC_CACHE_CHECK([for subnormal single-precision numbers],
-mpfr_cv_have_subnorm_flt, [
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-int main (void) {
- float x = 1.17549435082229e-38;
- fprintf (stderr, "%e\n", x / 2.0);
- return 2.0 * (float) (x / 2.0) != x;
-}
-]])],
- [mpfr_cv_have_subnorm_flt="yes"],
- [mpfr_cv_have_subnorm_flt="no"],
- [mpfr_cv_have_subnorm_flt="cannot test, assume no"])
-])
-if test "$mpfr_cv_have_subnorm_flt" = "yes"; then
- AC_DEFINE(HAVE_SUBNORM_FLT, 1,
- [Define if the float type fully supports subnormals.])
-fi
-
-dnl Check if signed zeros are supported. Note: the test will fail
-dnl if the division by 0 generates a trap.
-AC_CACHE_CHECK([for signed zeros], mpfr_cv_have_signedz, [
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-int main (void) {
- return 1.0 / 0.0 == 1.0 / -0.0;
-}
-]])],
- [mpfr_cv_have_signedz="yes"],
- [mpfr_cv_have_signedz="no"],
- [mpfr_cv_have_signedz="cannot test, assume no"])
-])
-if test "$mpfr_cv_have_signedz" = "yes"; then
- AC_DEFINE(HAVE_SIGNEDZ,1,[Define if signed zeros are supported.])
-fi
-
-dnl Check the FP division by 0 fails (e.g. on a non-IEEE-754 platform).
-dnl In such a case, MPFR_ERRDIVZERO is defined to disable the tests
-dnl involving a FP division by 0.
-dnl For the developers: to check whether all these tests are disabled,
-dnl configure MPFR with "-DMPFR_TESTS_FPE_DIV -DMPFR_ERRDIVZERO".
-AC_CACHE_CHECK([if the FP division by 0 fails], mpfr_cv_errdivzero, [
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-int main (void) {
- volatile double d = 0.0, x;
- x = 0.0 / d;
- x = 1.0 / d;
- (void) x;
- return 0;
-}
-]])],
- [mpfr_cv_errdivzero="no"],
- [mpfr_cv_errdivzero="yes"],
- [mpfr_cv_errdivzero="cannot test, assume no"])
-])
-if test "$mpfr_cv_errdivzero" = "yes"; then
- AC_DEFINE(MPFR_ERRDIVZERO,1,[Define if the FP division by 0 fails.])
- AC_MSG_WARN([The floating-point division by 0 fails instead of])
- AC_MSG_WARN([returning a special value: NaN or infinity. Tests])
- AC_MSG_WARN([involving a FP division by 0 will be disabled.])
-fi
-
-dnl Check whether NAN != NAN (as required by the IEEE-754 standard,
-dnl but not by the ISO C standard). For instance, this is false with
-dnl MIPSpro 7.3.1.3m under IRIX64. By default, assume this is true.
-AC_CACHE_CHECK([if NAN == NAN], mpfr_cv_nanisnan, [
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-#include <math.h>
-#ifndef NAN
-# define NAN (0.0/0.0)
-#endif
-int main (void) {
- double d;
- d = NAN;
- return d != d;
-}
-]])],
- [mpfr_cv_nanisnan="yes"],
- [mpfr_cv_nanisnan="no"],
- [mpfr_cv_nanisnan="cannot test, assume no"])
-])
-if test "$mpfr_cv_nanisnan" = "yes"; then
- AC_DEFINE(MPFR_NANISNAN,1,[Define if NAN == NAN.])
- AC_MSG_WARN([The test NAN != NAN is false. The probable reason is that])
- AC_MSG_WARN([your compiler optimizes floating-point expressions in an])
- AC_MSG_WARN([unsafe way because some option, such as -ffast-math or])
- AC_MSG_WARN([-fast (depending on the compiler), has been used. You])
- AC_MSG_WARN([should NOT use such an option, otherwise MPFR functions])
- AC_MSG_WARN([such as mpfr_get_d and mpfr_set_d may return incorrect])
- AC_MSG_WARN([results on special FP numbers (e.g. NaN or signed zeros).])
- AC_MSG_WARN([If you did not use such an option, please send us a bug])
- AC_MSG_WARN([report so that we can try to find a workaround for your])
- AC_MSG_WARN([platform and/or document the behavior.])
-fi
-
-dnl Check if the chars '0' to '9', 'a' to 'z', and 'A' to 'Z' are
-dnl consecutive values.
-dnl The const is necessary with GCC's "-Wwrite-strings -Werror".
-AC_MSG_CHECKING([if charset has consecutive values])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-const char *number = "0123456789";
-const char *lower = "abcdefghijklmnopqrstuvwxyz";
-const char *upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-]],[[
- int i;
- unsigned char *p;
- for (p = (unsigned char*) number, i = 0; i < 9; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) lower, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) upper, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
-]])], [AC_MSG_RESULT(yes)],[
- AC_MSG_RESULT(no)
- AC_DEFINE(MPFR_NO_CONSECUTIVE_CHARSET,1,[Charset is not consecutive])
-], [AC_MSG_RESULT(cannot test)])
-
-dnl Must be checked with the LIBM
-dnl but we don't want to add the LIBM to MPFR dependency.
-dnl Can't use AC_CHECK_FUNCS since the function may be in LIBM but
-dnl not exported in math.h
-saved_LIBS="$LIBS"
-LIBS="$LIBS $MPFR_LIBM"
-dnl AC_CHECK_FUNCS([round trunc floor ceil nearbyint])
-AC_MSG_CHECKING(for math/round)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <math.h>
-static int f (double (*func)(double)) { return 0; }
-]], [[
- return f(round);
-]])], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_ROUND, 1,[Have ISO C99 round function])
-],[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for math/trunc)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <math.h>
-static int f (double (*func)(double)) { return 0; }
-]], [[
- return f(trunc);
-]])], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_TRUNC, 1,[Have ISO C99 trunc function])
-],[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for math/floor)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <math.h>
-static int f (double (*func)(double)) { return 0; }
-]], [[
- return f(floor);
-]])], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_FLOOR, 1,[Have ISO C99 floor function])
-],[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for math/ceil)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <math.h>
-static int f (double (*func)(double)) { return 0; }
-]], [[
- return f(ceil);
-]])], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_CEIL, 1,[Have ISO C99 ceil function])
-],[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for math/nearbyint)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <math.h>
-static int f (double (*func)(double)) { return 0; }
-]], [[
- return f(nearbyint);
-]])], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_NEARBYINT, 1,[Have ISO C99 nearbyint function])
-],[AC_MSG_RESULT(no)])
-
-dnl Check if _mulx_u64 is provided
-dnl Note: This intrinsic is not standard. We need a run because
-dnl it may be provided but not working as expected (with ICC 15,
-dnl one gets an "Illegal instruction").
-AC_MSG_CHECKING([for _mulx_u64])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <immintrin.h>
-]], [[
- unsigned long long h1, h2;
- _mulx_u64(17, 42, &h1);
- _mulx_u64(-1, -1, &h2);
- return h1 == 0 && h2 == -2 ? 0 : 1;
-]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_MULX_U64, 1,[Have a working _mulx_u64 function])
- ],
- [AC_MSG_RESULT(no)
- ],
- [AC_MSG_RESULT([cannot test, assume no])
- ])
-
-LIBS="$saved_LIBS"
-
-dnl Try to determine the format of double
-MPFR_C_REALFP_FORMAT(double,)
-case $mpfr_cv_c_double_format in
- "IEEE double, big endian"*)
- AC_DEFINE(HAVE_DOUBLE_IEEE_BIG_ENDIAN, 1)
- ;;
- "IEEE double, little endian"*)
- AC_DEFINE(HAVE_DOUBLE_IEEE_LITTLE_ENDIAN, 1)
- ;;
- unknown*)
- ;;
- *)
- AC_MSG_WARN([format of `double' unsupported or not recognized: $mpfr_cv_c_double_format])
- ;;
-esac
-
-dnl Now try to determine the format of long double
-MPFR_C_REALFP_FORMAT(long double,L)
-case $mpfr_cv_c_long_double_format in
- "IEEE double, big endian"*)
- AC_DEFINE(HAVE_LDOUBLE_IS_DOUBLE, 1)
- ;;
- "IEEE double, little endian"*)
- AC_DEFINE(HAVE_LDOUBLE_IS_DOUBLE, 1)
- ;;
- "IEEE extended, little endian"*)
- AC_DEFINE(HAVE_LDOUBLE_IEEE_EXT_LITTLE, 1)
- ;;
- "IEEE extended, big endian"*)
- AC_DEFINE(HAVE_LDOUBLE_IEEE_EXT_BIG, 1)
- ;;
- "IEEE quad, big endian"*)
- AC_DEFINE(HAVE_LDOUBLE_IEEE_QUAD_BIG, 1)
- ;;
- "IEEE quad, little endian"*)
- AC_DEFINE(HAVE_LDOUBLE_IEEE_QUAD_LITTLE, 1)
- ;;
- "possibly double-double, big endian"*)
- AC_MSG_WARN([This format is known on GCC/PowerPC platforms,])
- AC_MSG_WARN([but due to GCC PR26374, we can't test further.])
- AC_MSG_WARN([You can safely ignore this warning, though.])
- AC_DEFINE(HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE, 1)
- ;;
- "possibly double-double, little endian"*)
- AC_MSG_WARN([This format is known on GCC/PowerPC platforms,])
- AC_MSG_WARN([but due to GCC PR26374, we can't test further.])
- AC_MSG_WARN([You can safely ignore this warning, though.])
- AC_DEFINE(HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE, 1)
- ;;
- unknown*)
- ;;
- *)
- AC_MSG_WARN([format of `long double' unsupported or not recognized: $mpfr_cv_c_long_double_format])
- ;;
-esac
-
-dnl Check if thread-local variables are supported.
-dnl At least two problems can occur in practice:
-dnl 1. The compilation fails, e.g. because the compiler doesn't know
-dnl about the __thread keyword.
-dnl 2. The compilation succeeds, but the system doesn't support TLS or
-dnl there is some ld configuration problem. One of the effects can
-dnl be that thread-local variables always evaluate to 0. So, it is
-dnl important to run the test below.
-if test "$enable_thread_safe" != no; then
-AC_MSG_CHECKING(for TLS support using C11)
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS -I$srcdir/src"
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#define MPFR_USE_THREAD_SAFE 1
-#define MPFR_USE_C11_THREAD_SAFE 1
-#include "mpfr-thread.h"
-MPFR_THREAD_ATTR int x = 17;
-int main (void) {
- return x != 17;
-}
- ]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE([MPFR_USE_THREAD_SAFE],1,[Build MPFR as thread safe])
- AC_DEFINE([MPFR_USE_C11_THREAD_SAFE],1,[Build MPFR as thread safe using C11])
- tls_c11_support=yes
- enable_thread_safe=yes
- ],
- [AC_MSG_RESULT(no)
- ],
- [AC_MSG_RESULT([cannot test, assume no])
- ])
-CPPFLAGS="$saved_CPPFLAGS"
-
-if test "$tls_c11_support" != "yes"
-then
-
- AC_MSG_CHECKING(for TLS support)
- saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I$srcdir/src"
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #define MPFR_USE_THREAD_SAFE 1
- #include "mpfr-thread.h"
- MPFR_THREAD_ATTR int x = 17;
- int main (void) {
- return x != 17;
- }
- ]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE([MPFR_USE_THREAD_SAFE],1,[Build MPFR as thread safe])
- enable_thread_safe=yes
- ],
- [AC_MSG_RESULT(no)
- if test "$enable_thread_safe" = yes; then
- AC_MSG_ERROR([please configure with --disable-thread-safe])
- fi
- ],
- [if test "$enable_thread_safe" = yes; then
- AC_MSG_RESULT([cannot test, assume yes])
- AC_DEFINE([MPFR_USE_THREAD_SAFE],1,[Build MPFR as thread safe])
- else
- AC_MSG_RESULT([cannot test, assume no])
- fi
- ])
- CPPFLAGS="$saved_CPPFLAGS"
- fi
-fi
-
-if test "$enable_decimal_float" != no; then
-
-dnl Check if decimal floats are available.
-dnl For the different cases, we try to use values that will not be returned
-dnl by build tools. For instance, 1 must not be used as it can be returned
-dnl by gcc or by ld in case of link failure.
-dnl Note: We currently reread the 64-bit data memory as a double and compare
-dnl it with constants. However, if there is any issue with double, such as
-dnl the use of an extended precision, this may fail. Possible solutions:
-dnl 1. Use the hex format for the double constants (this format should be
-dnl supported if _Decimal64 is).
-dnl 2. Use more precision in the double constants (more decimal digits),
-dnl just in case.
-dnl 3. Use uint64_t (or unsigned long long, though this type might not be
-dnl on 64 bits) instead of or in addition to the test on double.
-dnl 4. Use an array of 8 unsigned char's instead of or in addition to the
-dnl test on double, considering the 2 practical cases of endianness.
- AC_MSG_CHECKING(if compiler knows _Decimal64)
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[_Decimal64 x;]])],
- [AC_MSG_RESULT(yes)
- AC_MSG_CHECKING(decimal float format)
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdlib.h>
-]], [[
-volatile _Decimal64 x = 1;
-union { double d; _Decimal64 d64; } y;
-if (x != x) return 83;
-y.d64 = 1234567890123456.0dd;
-return y.d == 0.14894469406741037E-123 ? 80 :
- y.d == 0.59075095508629822E-68 ? 81 : 82;
-]])], [AC_MSG_RESULT(internal error)
- AC_MSG_FAILURE(unexpected exit status 0)],
- [d64_exit_status=$?
- case "$d64_exit_status" in
- 80) AC_MSG_RESULT(DPD)
- if test "$enable_decimal_float" = bid; then
- AC_MSG_ERROR([encoding mismatch (BID requested).])
- fi
- if test "$enable_decimal_float" != generic; then
- enable_decimal_float=dpd
- fi ;;
- 81) AC_MSG_RESULT(BID)
- if test "$enable_decimal_float" = dpd; then
- AC_MSG_ERROR([encoding mismatch (DPD requested).])
- fi
- if test "$enable_decimal_float" != generic; then
- enable_decimal_float=bid
- fi ;;
- 82) AC_MSG_RESULT(neither DPD nor BID)
- if test "$enable_decimal_float" = dpd; then
- AC_MSG_ERROR([encoding mismatch (DPD requested).])
- fi
- if test "$enable_decimal_float" = bid; then
- AC_MSG_ERROR([encoding mismatch (BID requested).])
- fi
- enable_decimal_float=generic
- AC_MSG_WARN([The _Decimal64 encoding is non-standard or there was an])
- AC_MSG_WARN([issue with its detection. The generic code will be used.])
- AC_MSG_WARN([Please do not forget to test with `make check'.])
- AC_MSG_WARN([In case of failure of a decimal test, you should rebuild])
- AC_MSG_WARN([MPFR without --enable-decimal-float.]) ;;
- *) AC_MSG_RESULT(error (exit status $d64_exit_status))
- case "$enable_decimal_float" in
- yes|bid|dpd|generic) AC_MSG_FAILURE([internal or link error.
-Please build MPFR without --enable-decimal-float.]) ;;
- *) enable_decimal_float=no ;;
- esac ;;
- esac],
- [AC_MSG_RESULT(cannot test)
- dnl Since the _Decimal64 type exists, we assume that it is correctly
- dnl supported. The detection of the encoding may still be done at
- dnl compile time. We do not add a configure test for it so that this
- dnl can be done on platforms where configure cannot be used.
- enable_decimal_float=compile-time])
- ],
- [AC_MSG_RESULT(no)
- case "$enable_decimal_float" in
- yes|bid|dpd|generic)
- AC_MSG_FAILURE([compiler doesn't know _Decimal64 (ISO/IEC TR 24732).
-Please use another compiler or build MPFR without --enable-decimal-float.]) ;;
- *) enable_decimal_float=no ;;
- esac])
- if test "$enable_decimal_float" != no; then
- AC_DEFINE([MPFR_WANT_DECIMAL_FLOATS],1,
- [Build decimal float functions])
- case "$enable_decimal_float" in
- dpd) AC_DEFINE([DECIMAL_DPD_FORMAT],1,[]) ;;
- bid) AC_DEFINE([DECIMAL_BID_FORMAT],1,[]) ;;
- generic) AC_DEFINE([DECIMAL_GENERIC_CODE],1,[]) ;;
- compile-time) ;;
- *) AC_MSG_ERROR(internal error) ;;
- esac
- fi
-
-dnl Check the bit-field ordering for _Decimal128.
-dnl Little endian: sig=0 comb=49400 t0=0 t1=0 t2=0 t3=10
-dnl Big endian: sig=0 comb=8 t0=0 t1=0 t2=0 t3=570933248
-dnl Note: If the compilation fails, the compiler should exit with
-dnl an exit status less than 80.
- AC_MSG_CHECKING(bit-field ordering for _Decimal128)
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[
- ]], [[
- union ieee_decimal128
- {
- struct
- {
- unsigned int t3:32;
- unsigned int t2:32;
- unsigned int t1:32;
- unsigned int t0:14;
- unsigned int comb:17;
- unsigned int sig:1;
- } s;
- _Decimal128 d128;
- } x;
-
- x.d128 = 1.0dl;
- if (x.s.sig == 0 && x.s.comb == 49400 &&
- x.s.t0 == 0 && x.s.t1 == 0 && x.s.t2 == 0 && x.s.t3 == 10)
- return 80; /* little endian */
- else if (x.s.sig == 0 && x.s.comb == 8 &&
- x.s.t0 == 0 && x.s.t1 == 0 && x.s.t2 == 0 && x.s.t3 == 570933248)
- return 81; /* big endian */
- else
- return 82; /* unknown encoding */
- ]])], [AC_MSG_RESULT(internal error)],
- [d128_exit_status=$?
- case "$d128_exit_status" in
- 80) AC_MSG_RESULT(little endian)
- AC_DEFINE([HAVE_DECIMAL128_IEEE_LITTLE_ENDIAN],1) ;;
- 81) AC_MSG_RESULT(big endian)
- AC_DEFINE([HAVE_DECIMAL128_IEEE_BIG_ENDIAN],1) ;;
- *) AC_MSG_RESULT(unavailable or unknown) ;;
- esac],
- [AC_MSG_RESULT(cannot test)])
-
-fi
-# End of decimal float checks
-
-dnl Check if _Float128 or __float128 is available. We also require the
-dnl compiler to support hex constants with the f128 or q suffix (this
-dnl prevents the _Float128 support with GCC's -std=c90, but who cares?).
-dnl Note: We use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE since an
-dnl error may occur only at link time, such as under NetBSD:
-dnl https://mail-index.netbsd.org/pkgsrc-users/2018/02/02/msg026220.html
-dnl https://mail-index.netbsd.org/pkgsrc-users/2018/02/05/msg026238.html
-dnl By using volatile and making the exit code depend on the value of
-dnl this variable, we also make sure that optimization doesn't make
-dnl the "undefined reference" error disappear.
-if test "$enable_float128" != no; then
- AC_MSG_CHECKING(if _Float128 with hex constants is supported)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
-volatile _Float128 x = 0x1.fp+16383f128;
-return x == 0;
-]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE([MPFR_WANT_FLOAT128],1,[Build float128 functions])],
- [AC_MSG_RESULT(no)
- AC_MSG_CHECKING(if __float128 can be used as a fallback)
-dnl Use the q suffix in this case.
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#define _Float128 __float128
-]], [[
-volatile _Float128 x = 0x1.fp+16383q;
-return x == 0;
-]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE([MPFR_WANT_FLOAT128],2,
- [Build float128 functions with float128 fallback])
- AC_DEFINE([_Float128],[__float128],[__float128 fallback])],
- [AC_MSG_RESULT(no)
- if test "$enable_float128" = yes; then
- AC_MSG_ERROR(
-[compiler doesn't know _Float128 or __float128 with hex constants.
-Please use another compiler or build MPFR without --enable-float128.])
- fi])
- ])
-fi
-
-dnl Check if Static Assertions are supported.
-AC_MSG_CHECKING(for Static Assertion support)
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS -I$srcdir/src"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-#define MPFR_USE_STATIC_ASSERT 1
-#include "mpfr-sassert.h"
-
-/* Test if Static Assertions work */
-
-int main (void) {
- int x;
- (void) (x = 1); /* cast to void: avoid a warning, at least with GCC */
- /* Test of the macro after a declaraction and a statement. */
- MPFR_STAT_STATIC_ASSERT(sizeof(short) <= sizeof(int));
- return 0;
-}
- ]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE([MPFR_USE_STATIC_ASSERT],1,[Build MPFR with Static Assertions])
- ],
- [AC_MSG_RESULT(no)
- ])
-CPPFLAGS="$saved_CPPFLAGS"
-
-if test "$enable_lto" = "yes" ; then
- MPFR_LTO
-fi
-
-dnl Logging support needs nested functions and the 'cleanup' attribute.
-dnl This is checked at the end because the change of CC and/or CFLAGS that
-dnl could occur before may have an influence on this test. The tested code
-dnl is very similar to what is used in MPFR (mpfr-impl.h).
-if test "$enable_logging" = yes; then
-AC_MSG_CHECKING(for nested functions and 'cleanup' attribute)
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-int main (void) {
- auto void f_cleanup (int *p);
- void f_cleanup (int *p) { int v = *p; (void) v; }
- int v __attribute__ ((cleanup (f_cleanup)));
- v = 0;
- return 0;
-}
- ]])],
- [AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)
- AC_MSG_ERROR([logging support needs nested functions and the 'cleanup' attribute])
- ])
-fi
-
-])
-dnl end of MPFR_CONFIGS
-
-
-dnl MPFR_CHECK_GMP
-dnl --------------
-dnl Check GMP library vs header. Useful if the user provides --with-gmp
-dnl with a directory containing a GMP version that doesn't have the
-dnl correct ABI: the previous tests won't trigger the error if the same
-dnl GMP version with the right ABI is installed on the system, as this
-dnl library is automatically selected by the linker, while the header
-dnl (which depends on the ABI) of the --with-gmp include directory is
-dnl used.
-dnl Note: if the error is changed to a warning due to that fact that
-dnl libtool is not used, then the same thing should be done for the
-dnl other tests based on GMP.
-AC_DEFUN([MPFR_CHECK_GMP], [
-AC_REQUIRE([MPFR_CONFIGS])dnl
-AC_CACHE_CHECK([for GMP library vs header correctness], mpfr_cv_check_gmp, [
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <limits.h>
-#include <gmp.h>
-]], [[
- fprintf (stderr, "GMP_NAIL_BITS = %d\n", (int) GMP_NAIL_BITS);
- fprintf (stderr, "GMP_NUMB_BITS = %d\n", (int) GMP_NUMB_BITS);
- fprintf (stderr, "mp_bits_per_limb = %d\n", (int) mp_bits_per_limb);
- fprintf (stderr, "sizeof(mp_limb_t) = %d\n", (int) sizeof(mp_limb_t));
- if (GMP_NAIL_BITS != 0)
- {
- fprintf (stderr, "GMP_NAIL_BITS != 0\n");
- return 81;
- }
- if (GMP_NUMB_BITS != mp_bits_per_limb)
- {
- fprintf (stderr, "GMP_NUMB_BITS != mp_bits_per_limb\n");
- return 82;
- }
- if (GMP_NUMB_BITS != sizeof(mp_limb_t) * CHAR_BIT)
- {
- fprintf (stderr, "GMP_NUMB_BITS != sizeof(mp_limb_t) * CHAR_BIT\n");
- return 83;
- }
- return 0;
-]])], [mpfr_cv_check_gmp="yes"],
- [mpfr_cv_check_gmp="no (exit status is $?)"],
- [mpfr_cv_check_gmp="cannot test, assume yes"])
-])
-case $mpfr_cv_check_gmp in
-no*)
- AC_MSG_ERROR([bad GMP library or header - ABI problem?
-See 'config.log' for details.]) ;;
-esac
-])
-
-
-dnl MPFR_CHECK_DBL2INT_BUG
-dnl ----------------------
-dnl Check for double-to-integer conversion bug
-dnl https://gforge.inria.fr/tracker/index.php?func=detail&aid=14435
-dnl The following problem has been seen under Solaris in config.log,
-dnl i.e. the failure to link with libgmp wasn't detected in the first
-dnl test:
-dnl configure: checking if gmp.h version and libgmp version are the same
-dnl configure: gcc -o conftest -Wall -Wmissing-prototypes [...]
-dnl configure: $? = 0
-dnl configure: ./conftest
-dnl ld.so.1: conftest: fatal: libgmp.so.10: open failed: No such file [...]
-dnl configure: $? = 0
-dnl configure: result: yes
-dnl configure: checking for double-to-integer conversion bug
-dnl configure: gcc -o conftest -Wall -Wmissing-prototypes [...]
-dnl configure: $? = 0
-dnl configure: ./conftest
-dnl ld.so.1: conftest: fatal: libgmp.so.10: open failed: No such file [...]
-dnl ./configure[1680]: eval: line 1: 1971: Killed
-dnl configure: $? = 9
-dnl configure: program exited with status 9
-AC_DEFUN([MPFR_CHECK_DBL2INT_BUG], [
-AC_REQUIRE([MPFR_CONFIGS])dnl
-AC_CACHE_CHECK([for double-to-integer conversion bug], mpfr_cv_dbl_int_bug, [
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <gmp.h>
-]], [[
- double d;
- mp_limb_t u;
- int i;
-
- d = 1.0;
- for (i = 0; i < GMP_NUMB_BITS - 1; i++)
- d = d + d;
- u = (mp_limb_t) d;
- for (; i > 0; i--)
- {
- if (u & 1)
- break;
- u = u >> 1;
- }
- if (i == 0 && u == 1UL)
- return 0;
- fprintf (stderr, "Failure: i = %d, (unsigned long) u = %lu\n",
- i, (unsigned long) u);
- return 1;
-]])], [mpfr_cv_dbl_int_bug="no"],
- [mpfr_cv_dbl_int_bug="yes or failed to exec (exit status is $?)"],
- [mpfr_cv_dbl_int_bug="cannot test, assume not present"])
-])
-case $mpfr_cv_dbl_int_bug in
-yes*)
- AC_MSG_ERROR([double-to-integer conversion is incorrect.
-You need to use another compiler (or lower the optimization level).]) ;;
-esac
-])
-
-dnl MPFR_CHECK_MP_LIMB_T_VS_LONG
-dnl ----------------------------
-dnl Check whether a long fits in mp_limb_t.
-dnl If static assertions are not supported, one gets "no" even though a long
-dnl fits in mp_limb_t. Therefore, code without MPFR_LONG_WITHIN_LIMB defined
-dnl needs to be portable.
-dnl According to the GMP developers, a limb is always as large as a long,
-dnl except when __GMP_SHORT_LIMB is defined. It is currently never defined:
-dnl https://gmplib.org/list-archives/gmp-discuss/2018-February/006190.html
-dnl but it is not clear whether this could change in the future.
-AC_DEFUN([MPFR_CHECK_MP_LIMB_T_VS_LONG], [
-AC_REQUIRE([MPFR_CONFIGS])
-AC_CACHE_CHECK([for long to fit in mp_limb_t], mpfr_cv_long_within_limb, [
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS -I$srcdir/src"
-dnl AC_LINK_IFELSE is safer than AC_COMPILE_IFELSE, as it will detect
-dnl undefined function-like macros (which otherwise may be regarded
-dnl as valid function calls with AC_COMPILE_IFELSE since prototypes
-dnl are not required by the C standard).
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <gmp.h>
-/* Make sure that a static assertion is used (not MPFR_ASSERTN). */
-#undef MPFR_USE_STATIC_ASSERT
-#define MPFR_USE_STATIC_ASSERT 1
-#include "mpfr-sassert.h"
-]], [[
- MPFR_STAT_STATIC_ASSERT ((mp_limb_t) -1 >= (unsigned long) -1);
- return 0;
-]])], [mpfr_cv_long_within_limb="yes"],
- [mpfr_cv_long_within_limb="no"])
-])
-case $mpfr_cv_long_within_limb in
-yes*)
- AC_DEFINE([MPFR_LONG_WITHIN_LIMB],1,[long can be stored in mp_limb_t]) ;;
-esac
-CPPFLAGS="$saved_CPPFLAGS"
-])
-
-dnl MPFR_CHECK_MP_LIMB_T_VS_INTMAX
-dnl ------------------------------
-dnl Check that an intmax_t can fit in a mp_limb_t.
-AC_DEFUN([MPFR_CHECK_MP_LIMB_T_VS_INTMAX], [
-AC_REQUIRE([MPFR_CONFIGS])
-if test "$ac_cv_type_intmax_t" = yes; then
-AC_CACHE_CHECK([for intmax_t to fit in mp_limb_t], mpfr_cv_intmax_within_limb, [
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS -I$srcdir/src -DMPFR_NEED_INTMAX_H"
-dnl AC_LINK_IFELSE is safer than AC_COMPILE_IFELSE, as it will detect
-dnl undefined function-like macros (which otherwise may be regarded
-dnl as valid function calls with AC_COMPILE_IFELSE since prototypes
-dnl are not required by the C standard).
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <gmp.h>
-/* Make sure that a static assertion is used (not MPFR_ASSERTN). */
-#undef MPFR_USE_STATIC_ASSERT
-#define MPFR_USE_STATIC_ASSERT 1
-#include "mpfr-sassert.h"
-#include "mpfr-intmax.h"
-]], [[
- MPFR_STAT_STATIC_ASSERT ((mp_limb_t) -1 >= (uintmax_t) -1);
- return 0;
-]])], [mpfr_cv_intmax_within_limb="yes"],
- [mpfr_cv_intmax_within_limb="no"])
-])
-case $mpfr_cv_intmax_within_limb in
-yes*)
- AC_DEFINE([MPFR_INTMAX_WITHIN_LIMB],1,[intmax_t can be stored in mp_limb_t]) ;;
-esac
-CPPFLAGS="$saved_CPPFLAGS"
-fi
-])
-
-dnl MPFR_PARSE_DIRECTORY
-dnl Input: $1 = a string to a relative or absolute directory
-dnl Output: $2 = the variable to set with the absolute directory
-AC_DEFUN([MPFR_PARSE_DIRECTORY],
-[
- dnl Check if argument is a directory
- if test -d $1 ; then
- dnl Get the absolute path of the directory in case of relative directory
- dnl with the realpath command. If the output is empty, the cause may be
- dnl that this command has not been found, and we do an alternate test,
- dnl the same as what autoconf does for the generated configure script to
- dnl determine whether a pathname is absolute or relative.
- local_tmp=`realpath $1 2>/dev/null`
- if test "$local_tmp" != "" ; then
- if test -d "$local_tmp" ; then
- $2="$local_tmp"
- else
- $2=$1
- fi
- else
- dnl The quadrigraphs @<:@, @:>@ and @:}@ produce [, ] and )
- dnl respectively (see Autoconf manual). We cannot use quoting here
- dnl as the result depends on the context in which this macro is
- dnl invoked! To detect that, one needs to look at every instance
- dnl of the macro expansion in the generated configure script.
- case $1 in
- @<:@\\/@:>@* | ?:@<:@\\/@:>@* @:}@ $2=$1 ;;
- *@:}@ $2="$PWD"/$1 ;;
- esac
- fi
- dnl Check for space in the directory
- if test `echo $1|cut -d' ' -f1` != $1 ; then
- AC_MSG_ERROR($1 directory shall not contain any space.)
- fi
- else
- AC_MSG_ERROR($1 shall be a valid directory)
- fi
-])
-
-
-dnl MPFR_C_REALFP_FORMAT
-dnl --------------------
-dnl Determine the format of a real floating type (first argument),
-dnl actually either double or long double. The second argument is
-dnl the printf length modifier.
-dnl
-dnl The object file is grepped, so as to work when cross-compiling.
-dnl Start and end sequences are included to avoid false matches, and
-dnl allowance is made for the desired data crossing an "od -b" line
-dnl boundary. The test number is a small integer so it should appear
-dnl exactly, without rounding or truncation, etc.
-dnl
-dnl "od -b" is supported even by Unix V7, and the awk script used doesn't
-dnl have functions or anything, so even an "old" awk should suffice.
-dnl
-dnl Concerning long double: The 10-byte IEEE extended format is generally
-dnl padded with null bytes to either 12 or 16 bytes for alignment purposes.
-dnl The SVR4 i386 ABI is 12 bytes, or i386 gcc -m128bit-long-double selects
-dnl 16 bytes. IA-64 is 16 bytes in LP64 mode, or 12 bytes in ILP32 mode.
-dnl The relevant part in all cases (big and little endian) consists of the
-dnl first 10 bytes.
-dnl
-dnl We compile and link (with "-o conftest$EXEEXT") instead of just
-dnl compiling (with "-c"), so that this test works with GCC's and
-dnl clang's LTO (-flto). If we just compile with LTO, the generated
-dnl object file does not contain the structure as is. This new test
-dnl is inspired by the one used by GMP for the double type:
-dnl https://gmplib.org/repo/gmp/rev/33eb0998a052
-dnl https://gmplib.org/repo/gmp/rev/cbc6dbf95a10
-dnl "$EXEEXT" had to be added, otherwise the test was failing on
-dnl MS-Windows (see Autoconf manual).
-
-AC_DEFUN([MPFR_C_REALFP_FORMAT],
-[AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AC_PROG_AWK])
-AC_REQUIRE([AC_OBJEXT])
-AS_VAR_PUSHDEF([my_Type_var], [mpfr_cv_c_$1_format])dnl
-AC_CACHE_CHECK([format of floating-point type `$1'],
- my_Type_var,
-[my_Type_var=unknown
- cat >conftest.c <<\EOF
-[
-#include <stdio.h>
-/* "before" is 16 bytes to ensure there's no padding between it and "x".
- We're not expecting any type bigger than 16 bytes or with
- alignment requirements stricter than 16 bytes. */
-typedef struct {
- char before[16];
- $1 x;
- char after[8];
-} foo_t;
-
-foo_t foo = {
- { '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
- '\001', '\043', '\105', '\147', '\211', '\253', '\315', '\357' },
- -123456789.0,
- { '\376', '\334', '\272', '\230', '\166', '\124', '\062', '\020' }
-};
-
-int main (void) {
- int i;
- for (i = 0; i < 8; i++)
- printf ("%d %$2f\n", foo.before[i] + foo.after[i], foo.x);
- return 0;
-}
-]
-EOF
- mpfr_compile="$CC $CFLAGS $CPPFLAGS $LDFLAGS conftest.c -o conftest$EXEEXT >&AS_MESSAGE_LOG_FD 2>&1"
- if AC_TRY_EVAL(mpfr_compile); then
- cat >conftest.awk <<\EOF
-[
-BEGIN {
- found = 0
-}
-
-# got[] holds a sliding window of bytes read the input. got[0] is the most
-# recent byte read, and got[31] the oldest byte read, so when looking to
-# match some data the indices are "reversed".
-#
-{
- for (f = 2; f <= NF; f++)
- {
- # new byte, shift others up
- for (i = 31; i >= 0; i--)
- got[i+1] = got[i];
- got[0] = $f;
-
- # end sequence
- if (got[7] != "376") continue
- if (got[6] != "334") continue
- if (got[5] != "272") continue
- if (got[4] != "230") continue
- if (got[3] != "166") continue
- if (got[2] != "124") continue
- if (got[1] != "062") continue
- if (got[0] != "020") continue
-
- # start sequence, with 8-byte body
- if (got[23] == "001" && \
- got[22] == "043" && \
- got[21] == "105" && \
- got[20] == "147" && \
- got[19] == "211" && \
- got[18] == "253" && \
- got[17] == "315" && \
- got[16] == "357")
- {
- saw = " (" got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[15] == "301" && \
- got[14] == "235" && \
- got[13] == "157" && \
- got[12] == "064" && \
- got[11] == "124" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- print "IEEE double, big endian"
- found = 1
- exit
- }
-
- if (got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "124" && \
- got[11] == "064" && \
- got[10] == "157" && \
- got[9] == "235" && \
- got[8] == "301")
- {
- print "IEEE double, little endian"
- found = 1
- exit
- }
- }
-
- # start sequence, with 12-byte body
- if (got[27] == "001" && \
- got[26] == "043" && \
- got[25] == "105" && \
- got[24] == "147" && \
- got[23] == "211" && \
- got[22] == "253" && \
- got[21] == "315" && \
- got[20] == "357")
- {
- saw = " (" got[19] \
- " " got[18] \
- " " got[17] \
- " " got[16] \
- " " got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[19] == "000" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "240" && \
- got[14] == "242" && \
- got[13] == "171" && \
- got[12] == "353" && \
- got[11] == "031" && \
- got[10] == "300")
- {
- print "IEEE extended, little endian (12 bytes)"
- found = 1
- exit
- }
-
- if (got[19] == "300" && \
- got[18] == "031" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "353" && \
- got[14] == "171" && \
- got[13] == "242" && \
- got[12] == "240" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[09] == "000" && \
- got[08] == "000")
- {
- # format found on m68k
- print "IEEE extended, big endian (12 bytes)"
- found = 1
- exit
- }
- }
-
- # start sequence, with 16-byte body
- if (got[31] == "001" && \
- got[30] == "043" && \
- got[29] == "105" && \
- got[28] == "147" && \
- got[27] == "211" && \
- got[26] == "253" && \
- got[25] == "315" && \
- got[24] == "357")
- {
- saw = " (" got[23] \
- " " got[22] \
- " " got[21] \
- " " got[20] \
- " " got[19] \
- " " got[18] \
- " " got[17] \
- " " got[16] \
- " " got[15] \
- " " got[14] \
- " " got[13] \
- " " got[12] \
- " " got[11] \
- " " got[10] \
- " " got[9] \
- " " got[8] ")"
-
- if (got[23] == "000" && \
- got[22] == "000" && \
- got[21] == "000" && \
- got[20] == "000" && \
- got[19] == "240" && \
- got[18] == "242" && \
- got[17] == "171" && \
- got[16] == "353" && \
- got[15] == "031" && \
- got[14] == "300")
- {
- print "IEEE extended, little endian (16 bytes)"
- found = 1
- exit
- }
-
- if (got[23] == "300" && \
- got[22] == "031" && \
- got[21] == "326" && \
- got[20] == "363" && \
- got[19] == "105" && \
- got[18] == "100" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "000" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- # format used on HP 9000/785 under HP-UX
- print "IEEE quad, big endian"
- found = 1
- exit
- }
-
- if (got[23] == "000" && \
- got[22] == "000" && \
- got[21] == "000" && \
- got[20] == "000" && \
- got[19] == "000" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "100" && \
- got[12] == "105" && \
- got[11] == "363" && \
- got[10] == "326" && \
- got[9] == "031" && \
- got[8] == "300")
- {
- print "IEEE quad, little endian"
- found = 1
- exit
- }
-
- if (got[23] == "301" && \
- got[22] == "235" && \
- got[21] == "157" && \
- got[20] == "064" && \
- got[19] == "124" && \
- got[18] == "000" && \
- got[17] == "000" && \
- got[16] == "000" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "000" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- # format used on 32-bit PowerPC (Mac OS X and Debian GNU/Linux)
- print "possibly double-double, big endian"
- found = 1
- exit
- }
-
- if (got[23] == "000" && \
- got[22] == "000" && \
- got[21] == "000" && \
- got[20] == "124" && \
- got[19] == "064" && \
- got[18] == "157" && \
- got[17] == "235" && \
- got[16] == "301" && \
- got[15] == "000" && \
- got[14] == "000" && \
- got[13] == "000" && \
- got[12] == "000" && \
- got[11] == "000" && \
- got[10] == "000" && \
- got[9] == "000" && \
- got[8] == "000")
- {
- # format used on ppc64le
- print "possibly double-double, little endian"
- found = 1
- exit
- }
- }
- }
-}
-
-END {
- if (! found)
- print "unknown", saw
-}
-]
-EOF
- my_Type_var=`od -b conftest$EXEEXT | $AWK -f conftest.awk`
- case $my_Type_var in
- unknown*)
- echo "cannot match anything, conftest$EXEEXT contains" >&AS_MESSAGE_LOG_FD
- od -b conftest$EXEEXT >&AS_MESSAGE_LOG_FD
- ;;
- esac
- else
- AC_MSG_WARN([oops, cannot compile test program])
- fi
- rm -f conftest*
-])])
-
-dnl MPFR_CHECK_LIBM
-dnl ---------------
-dnl Determine a math library -lm to use.
-
-AC_DEFUN([MPFR_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_SUBST(MPFR_LIBM,'')
-case $host in
- *-*-beos* | *-*-cygwin* | *-*-pw32*)
- # According to libtool AC CHECK LIBM, these systems don't have libm
- ;;
- *-*-solaris*)
- # On Solaris the math functions new in C99 are in -lm9x.
- # FIXME: Do we need -lm9x as well as -lm, or just instead of?
- AC_CHECK_LIB(m9x, main, MPFR_LIBM="-lm9x")
- AC_CHECK_LIB(m, main, MPFR_LIBM="$MPFR_LIBM -lm")
- ;;
- *-ncr-sysv4.3*)
- # FIXME: What does -lmw mean? Libtool AC CHECK LIBM does it this way.
- AC_CHECK_LIB(mw, _mwvalidcheckl, MPFR_LIBM="-lmw")
- AC_CHECK_LIB(m, main, MPFR_LIBM="$MPFR_LIBM -lm")
- ;;
- *)
- AC_CHECK_LIB(m, main, MPFR_LIBM="-lm")
- ;;
-esac
-])
-
-dnl MPFR_CHECK_LIBQUADMATH
-dnl ---------------
-dnl Determine a math library -lquadmath to use.
-AC_DEFUN([MPFR_CHECK_LIBQUADMATH],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_SUBST(MPFR_LIBQUADMATH,'')
-case $host in
- *)
- AC_CHECK_LIB(quadmath, main, MPFR_LIBQUADMATH="-lquadmath")
- ;;
-esac
-])
-
-dnl MPFR_LD_SEARCH_PATHS_FIRST
-dnl --------------------------
-
-AC_DEFUN([MPFR_LD_SEARCH_PATHS_FIRST],
-[case "$LD $LDFLAGS" in
- *-Wl,-search_paths_first*) ;;
- *) AC_MSG_CHECKING([if the compiler understands -Wl,-search_paths_first])
- saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
- [AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)]
- LDFLAGS="$saved_LDFLAGS")
- ;;
- esac
-])
-
-
-dnl GMP_C_ATTRIBUTE_MODE
-dnl --------------------
-dnl Introduced in gcc 2.2, but perhaps not in all Apple derived versions.
-dnl Needed for mpfr-longlong.h; this is currently necessary for s390.
-dnl
-dnl TODO: Replace this with a cleaner type size detection, as this
-dnl solution only works with gcc and assumes CHAR_BIT == 8. Probably use
-dnl <stdint.h>, and <https://gcc.gnu.org/viewcvs/gcc/trunk/config/stdint.m4>
-dnl as a fallback.
-
-AC_DEFUN([GMP_C_ATTRIBUTE_MODE],
-[AC_CACHE_CHECK([whether gcc __attribute__ ((mode (XX))) works],
- gmp_cv_c_attribute_mode,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[typedef int SItype __attribute__ ((mode (SI)));]], [[]])],
- gmp_cv_c_attribute_mode=yes, gmp_cv_c_attribute_mode=no)
-])
-if test $gmp_cv_c_attribute_mode = yes; then
- AC_DEFINE(HAVE_ATTRIBUTE_MODE, 1,
- [Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX)))])
-fi
-])
-
-
-dnl MPFR_FUNC_GMP_PRINTF_SPEC
-dnl ------------------------------------
-dnl MPFR_FUNC_GMP_PRINTF_SPEC(spec, type, [includes], [if-true], [if-false])
-dnl Check if sprintf and gmp_sprintf support the conversion specifier 'spec'
-dnl with type 'type'.
-dnl Expand 'if-true' if printf supports 'spec', 'if-false' otherwise.
-
-AC_DEFUN([MPFR_FUNC_GMP_PRINTF_SPEC],[
-AC_MSG_CHECKING(if gmp_printf supports "%$1")
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <string.h>
-$3
-#include <gmp.h>
-]], [[
- char s[256];
- $2 a = 17;
-
- /* Contrary to the gmp_sprintf test, do not use the 0 flag with the
- precision, as -Werror=format yields an error, even though this
- flag is allowed by the ISO C standard (it is just ignored).
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70813 */
- if (sprintf (s, "(%.0$1)(%d)", a, 42) != 8 ||
- strcmp (s, "(17)(42)") != 0)
- return 1;
-
- if (gmp_sprintf (s, "(%0.0$1)(%d)", a, 42) == -1 ||
- strcmp (s, "(17)(42)") != 0)
- return 1;
-
- return 0;
-]])],
- [AC_MSG_RESULT(yes)
- $4],
- [AC_MSG_RESULT(no)
- $5],
- [AC_MSG_RESULT(cross-compiling, assuming yes)
- $4])
-])
-
-
-dnl MPFR_CHECK_PRINTF_SPEC
-dnl ----------------------
-dnl Check if gmp_printf supports some optional length modifiers.
-dnl Defined symbols are negative to shorten the gcc command line.
-
-AC_DEFUN([MPFR_CHECK_PRINTF_SPEC], [
-AC_REQUIRE([MPFR_CONFIGS])dnl
-if test "$ac_cv_type_intmax_t" = yes; then
- MPFR_FUNC_GMP_PRINTF_SPEC([jd], [intmax_t], [
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
- ],,
- [AC_DEFINE([NPRINTF_J], 1, [printf/gmp_printf cannot read intmax_t])])
-fi
-
-MPFR_FUNC_GMP_PRINTF_SPEC([hhd], [char], [
-#include <gmp.h>
- ],,
- [AC_DEFINE([NPRINTF_HH], 1, [printf/gmp_printf cannot use `hh' length modifier])])
-
-MPFR_FUNC_GMP_PRINTF_SPEC([lld], [long long int], [
-#include <gmp.h>
- ],,
- [AC_DEFINE([NPRINTF_LL], 1, [printf/gmp_printf cannot read long long int])])
-
-MPFR_FUNC_GMP_PRINTF_SPEC([Lf], [long double], [
-#include <gmp.h>
- ],
- [AC_DEFINE([PRINTF_L], 1, [printf/gmp_printf can read long double])],
- [AC_DEFINE([NPRINTF_L], 1, [printf/gmp_printf cannot read long double])])
-
-MPFR_FUNC_GMP_PRINTF_SPEC([td], [ptrdiff_t], [
-#if defined (__cplusplus)
-#include <cstddef>
-#else
-#include <stddef.h>
-#endif
-#include <gmp.h>
- ],
- [AC_DEFINE([PRINTF_T], 1, [printf/gmp_printf can read ptrdiff_t])],
- [AC_DEFINE([NPRINTF_T], 1, [printf/gmp_printf cannot read ptrdiff_t])])
-])
-
-dnl MPFR_CHECK_PRINTF_GROUPFLAG
-dnl ---------------------------
-dnl Check the support of the group flag for native integers, which is
-dnl a Single UNIX Specification extension.
-dnl This will be used to enable some tests, as the implementation of
-dnl the P length modifier for mpfr_*printf relies on this support.
-
-AC_DEFUN([MPFR_CHECK_PRINTF_GROUPFLAG], [
-AC_MSG_CHECKING(if gmp_printf supports the ' group flag)
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <string.h>
-#include <gmp.h>
-]], [[
- char s[256];
-
- if (gmp_sprintf (s, "%'d", 17) == -1) return 1;
- return (strcmp (s, "17") != 0);
-]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE([PRINTF_GROUPFLAG], 1, [Define if gmp_printf supports the ' group flag])],
- [AC_MSG_RESULT(no)],
- [AC_MSG_RESULT(cannot test, assume no)])
-])
-])
-
-dnl MPFR_LTO
-dnl --------
-dnl To be representative, we need:
-dnl * to compile a source,
-dnl * to generate a library archive,
-dnl * to generate a program with this archive.
-AC_DEFUN([MPFR_LTO],[
-dnl Check for -flto support
-CFLAGS="$CFLAGS -flto"
-
-AC_MSG_CHECKING([if Link Time Optimisation flag '-flto' is supported...])
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-int main(void) { return 0; }
- ]])],
- [AC_MSG_RESULT(yes)
- ],
- [AC_MSG_RESULT(no)
- AC_MSG_ERROR([Link Time Optimisation flag '-flto' is not supported.])
- ])
-
-dnl Check if it works...
-mpfr_compile_and_link()
-{
- echo "int f(int); int f(int n) { return n; }" > conftest-f.c
- echo "int f(int); int main() { return f(0); }" > conftest-m.c
- echo "$CC $CFLAGS -c -o conftest-f.o conftest-f.c" >&2
- $CC $CFLAGS -c -o conftest-f.o conftest-f.c || return 1
- echo "$AR cru conftest-lib.a conftest-f.o" >&2
- $AR cru conftest-lib.a conftest-f.o || return 1
- echo "$RANLIB conftest-lib.a" >&2
- $RANLIB conftest-lib.a || return 1
- echo "$CC $CFLAGS conftest-m.c conftest-lib.a" >&2
- $CC $CFLAGS conftest-m.c conftest-lib.a || return 1
- return 0
-}
- AC_MSG_CHECKING([if Link Time Optimisation works with AR=$AR])
- if mpfr_compile_and_link 2> conftest-log1.txt ; then
- cat conftest-log1.txt >&AS_MESSAGE_LOG_FD
- AC_MSG_RESULT(yes)
- else
- cat conftest-log1.txt >&AS_MESSAGE_LOG_FD
- AC_MSG_RESULT(no)
- AR=gcc-ar
- RANLIB=gcc-ranlib
- AC_MSG_CHECKING([if Link Time Optimisation works with AR=$AR])
- if mpfr_compile_and_link 2> conftest-log2.txt; then
- cat conftest-log2.txt >&AS_MESSAGE_LOG_FD
- AC_MSG_RESULT(yes)
- else
- cat conftest-log2.txt >&AS_MESSAGE_LOG_FD
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([Link Time Optimisation is not supported (see config.log for details).])
- fi
- fi
-rm -f conftest*
-])
-
-dnl MPFR_CHECK_CONSTRUCTOR_ATTR
-dnl ---------------------------
-dnl Check for constructor/destructor attributes to function.
-dnl Output: Define
-dnl * MPFR_HAVE_CONSTRUCTOR_ATTR C define
-dnl * mpfr_have_constructor_destructor_attributes shell variable to yes
-dnl if supported.
-AC_DEFUN([MPFR_CHECK_CONSTRUCTOR_ATTR], [
-AC_MSG_CHECKING([for constructor and destructor attributes])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdlib.h>
-int x = 0;
-__attribute__((constructor)) static void
-call_f(void) { x = 1742; }
-__attribute__((destructor)) static void
-call_g(void) { x = 1448; }
-]], [[
- return (x == 1742) ? 0 : 1;
-]])], [AC_MSG_RESULT(yes)
- mpfr_have_constructor_destructor_attributes=yes ],
- [AC_MSG_RESULT(no)]
-)
-
-if test "$mpfr_have_constructor_destructor_attributes" = "yes"; then
- AC_DEFINE(MPFR_HAVE_CONSTRUCTOR_ATTR, 1,
- [Define if the constructor/destructor GCC attributes are supported.])
-fi
-])
-
-dnl MPFR_CHECK_C11_THREAD
-dnl ---------------------
-dnl Check for C11 thread support
-dnl Output: Define
-dnl * MPFR_HAVE_C11_LOCK C define
-dnl * mpfr_c11_thread_ok shell variable to yes
-dnl if supported.
-dnl We don't check for __STDC_NO_THREADS__ define variable but rather try to mimic our usage.
-AC_DEFUN([MPFR_CHECK_C11_THREAD], [
-AC_MSG_CHECKING([for ISO C11 thread support])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <assert.h>
-#include <threads.h>
- mtx_t lock;
- once_flag once = ONCE_FLAG_INIT;
- thrd_t thd_idx;
- int x = 0;
- void once_call (void) { x = 1; }
-]], [[
- int err;
- err = mtx_init(&lock, mtx_plain);
- assert(err == thrd_success);
- err = mtx_lock(&lock);
- assert(err == thrd_success);
- err = mtx_unlock(&lock);
- assert(err == thrd_success);
- mtx_destroy(&lock);
- once_call(&once, once_call);
- return x == 1 ? 0 : -1;
-]])], [AC_MSG_RESULT(yes)
- mpfr_c11_thread_ok=yes ],
- [AC_MSG_RESULT(no)]
-)
-
-if test "$mpfr_c11_thread_ok" = "yes"; then
- AC_DEFINE(MPFR_HAVE_C11_LOCK, 1,
- [Define if the ISO C11 Thread is supported.])
-fi
-])
-
-
diff --git a/Build/source/libs/mpfr/mpfr-src/configure.ac b/Build/source/libs/mpfr/mpfr-src/configure.ac
deleted file mode 100644
index ea92c1f9716..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/configure.ac
+++ /dev/null
@@ -1,846 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-dnl WARNING! C code starting with # (preprocessor directives) must not
-dnl be indented!
-
-AC_COPYRIGHT([
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published
-by the Free Software Foundation; either version 3 of the License, or (at
-your option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-dnl Add check-news when it checks for more than 15 lines
-AC_INIT([MPFR],[4.1.0])
-
-dnl Older Automake versions than 1.13 may still be supported, but no longer
-dnl tested, and many things have changed in 1.13. Moreover the INSTALL file
-dnl and MPFR manual assume that MPFR has been built using Automake 1.13+
-dnl (due to parallel tests, introduced by default in Automake 1.13).
-dnl The subdir-objects option is needed due to configuration related to
-dnl mini-gmp, which has sources in an external directory.
-AM_INIT_AUTOMAKE([1.13 no-define dist-bzip2 dist-xz dist-zip subdir-objects])
-AM_MAINTAINER_MODE(enable)
-
-AC_CONFIG_MACRO_DIR([m4])
-
-dnl Some AC_RUN_IFELSE programs need to be able to return several values
-dnl (e.g., in a format detection, one for each possible format). But the
-dnl Autoconf manual says: "This exit status might be that of a failed
-dnl compilation, or it might be that of a failed program execution."
-dnl Unfortunately, we cannot know whether a non-zero exit status comes
-dnl from a failed compilation, so that the detection may be incorrect.
-dnl Since failures generally occur with a small exit status, the value 77
-dnl is reserved for skipped tests by Autoconf, and values larger than 125
-dnl have special meanings in POSIX[*], good candidates for success are 0
-dnl and values from 80 to 125.
-dnl https://tldp.org/LDP/abs/html/exitcodes.html suggests the range 64-113
-dnl but note that /usr/include/sysexits.h now allocates previously unused
-dnl exit codes from 64 - 78 (for various kinds of errors).
-dnl
-dnl Alternatively, the test program could output the result to a file and
-dnl return with the 0 exit status if it could do that successfully.
-dnl
-dnl [*] 2.8.2 Exit Status for Commands
-dnl https://pubs.opengroup.org/onlinepubs/9699919799//utilities/V3_chap02.html#tag_18_08_02
-
-test_CFLAGS=${CFLAGS+set}
-
-dnl Check if user request its CC and CFLAGS
-if test -n "$CFLAGS" || test -n "$CC" ; then
- user_redefine_cc=yes
-fi
-
-dnl Basic Autoconf macros. At this point, they must not make Autoconf
-dnl choose a compiler because of the CC and CFLAGS setup from gmp.h!
-
-AC_CANONICAL_HOST
-
-AC_PROG_EGREP
-AC_PROG_SED
-
-dnl To use a separate config header.
-dnl There is still some problem with GMP's HAVE_CONFIG
-dnl AC_CONFIG_HEADERS([mpfrconf.h:mpfrconf.in])
-
-unset gmp_lib_path GMP_CFLAGS GMP_CC
-
-dnl ********************************************************************
-dnl Extra arguments to configure (AC_ARG_WITH and AC_ARG_ENABLE)
-
-AC_ARG_WITH(gmp_include,
- [ --with-gmp-include=DIR GMP include directory ],
- MPFR_PARSE_DIRECTORY(["$withval"],[withval])
- CPPFLAGS="$CPPFLAGS -I$withval")
-
-AC_ARG_WITH(gmp_lib,
- [ --with-gmp-lib=DIR GMP lib directory ], [
- MPFR_PARSE_DIRECTORY(["$withval"],[withval])
- LDFLAGS="$LDFLAGS -L$withval"
- gmp_lib_path="$withval"
- ])
-
-AC_ARG_WITH(gmp,
- [ --with-gmp=DIR GMP install directory ], [
- MPFR_PARSE_DIRECTORY(["$withval"],[withval])
- if test -z "$with_gmp_lib" && test -z "$with_gmp_include" ; then
- CPPFLAGS="$CPPFLAGS -I$withval/include"
- LDFLAGS="$LDFLAGS -L$withval/lib"
- gmp_lib_path="$withval/lib"
- else
- AC_MSG_FAILURE([Do not use --with-gmp and --with-gmp-include/--with-gmp-lib options simultaneously.])
- fi
- ])
-
-AC_ARG_WITH(gmp_build,
- [ --with-gmp-build=DIR GMP build directory (please read INSTALL file)],
- [
- MPFR_PARSE_DIRECTORY(["$withval"],[withval])
- if test -z "$gmp_lib_path" && test -z "$with_gmp_include" ; then
- CPPFLAGS="$CPPFLAGS -I$withval -I$withval/tune"
- LDFLAGS="$LDFLAGS -L$withval -L$withval/.libs -L$withval/tune"
- gmp_lib_path="$withval$PATH_SEPARATOR$withval/.libs$PATH_SEPARATOR$withval/tune"
- if test -r $withval/Makefile ; then
- GMP_CFLAGS=`$SED -n 's/^CFLAGS = //p' $withval/Makefile`
- GMP_CC=`$SED -n 's/^CC = //p' $withval/Makefile`
- GMP_SOURCE=`$SED -n 's/^srcdir = *//p' $withval/Makefile`
- case "$GMP_SOURCE" in
- .) GMP_SOURCE="" ;;
- /*) ;;
- ?*) GMP_SOURCE="$withval/$GMP_SOURCE" ;;
- esac
- if test -d "$GMP_SOURCE" ; then
- CPPFLAGS="$CPPFLAGS -I$GMP_SOURCE -I$GMP_SOURCE/tune"
- fi
- fi
- use_gmp_build=yes
- else
- AC_MSG_FAILURE([Do not use --with-gmp-build and other --with-gmp options simultaneously.])
- fi
- ])
-
-AC_ARG_WITH(mini_gmp,
- [ --with-mini-gmp=DIR use mini-gmp (sources in DIR) instead of GMP
- (experimental, please read doc/mini-gmp file)],
- [
- MPFR_PARSE_DIRECTORY(["$withval"],[withval])
- if test -z "$gmp_lib_path" && test -z "$with_gmp_include" && \
- test -z "$use_gmp_build"; then
- if test -f "$withval/mini-gmp.c" && test -f "$withval/mini-gmp.h"; then
- AC_DEFINE([MPFR_USE_MINI_GMP],1,[Use mini-gmp])
- mini_gmp_path="$withval"
- AC_SUBST(mini_gmp_path)
- else
- AC_MSG_FAILURE([mini-gmp.{c,h} not found in $withval])
- fi
- else
- AC_MSG_FAILURE([Do not use --with-mini-gmp and other --with-gmp options simultaneously.])
- fi
- ])
-
-AC_ARG_WITH(mulhigh_size,
- [ --with-mulhigh-size=NUM internal threshold table for mulhigh],
- AC_DEFINE_UNQUOTED([MPFR_MULHIGH_SIZE],$withval, [Mulhigh size]))
-
-AC_ARG_ENABLE(gmp-internals,
- [ --enable-gmp-internals enable use of GMP undocumented functions [[default=no]]],
- [ case $enableval in
- yes) AC_DEFINE([WANT_GMP_INTERNALS],1,[Want GMP internals]) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-gmp-internals: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(assert,
- [ --enable-assert enable ASSERT checking [[default=no]]],
- [ case $enableval in
- yes) AC_DEFINE([MPFR_WANT_ASSERT],1,[Want all simple assertions]) ;;
- none) AC_DEFINE([MPFR_WANT_ASSERT],-1,[Do no want any assertion]) ;;
- no) ;;
- full) AC_DEFINE([MPFR_WANT_ASSERT],2,[Want full assertions]) ;;
- *) AC_MSG_ERROR([bad value for --enable-assert: yes, no, none or full]) ;;
- esac])
-
-AC_ARG_ENABLE(logging,
- [ --enable-logging enable MPFR logging (needs nested functions
- and the 'cleanup' attribute) [[default=no]]],
- [ case $enableval in
- yes) AC_DEFINE([MPFR_USE_LOGGING],1,[Enable MPFR logging support]) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-logging: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(thread-safe,
- [ --disable-thread-safe explicitly disable TLS support
- --enable-thread-safe build MPFR as thread safe, i.e. with TLS support
- (the system must support it) [[default=autodetect]]],
- [ case $enableval in
- yes) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-thread-safe: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(shared-cache,
- [ --enable-shared-cache enable use of caches shared by all threads,
- for all MPFR constants. It usually makes MPFR
- dependent on PTHREAD [[default=no]]],
- [ case $enableval in
- yes)
- AC_DEFINE([MPFR_WANT_SHARED_CACHE],1,[Want shared cache]) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-shared-cache: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(warnings,
- [ --enable-warnings allow MPFR to output warnings to stderr [[default=no]]],
- [ case $enableval in
- yes) AC_DEFINE([MPFR_USE_WARNINGS],1,[Allow MPFR to output warnings to stderr]) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-warnings: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(tests-timeout,
- [ --enable-tests-timeout=NUM
- [[for developers]] enable timeout for test programs
- (NUM seconds, <= 9999) [[default=no]]; if this is
- enabled, the environment variable $MPFR_TESTS_TIMEOUT
- overrides NUM (0: no timeout)],
- [ case $enableval in
- no) ;;
- yes) AC_DEFINE([MPFR_TESTS_TIMEOUT], 0, [timeout limit]) ;;
- [[0-9]]|[[0-9]][[0-9]]|[[0-9]][[0-9]][[0-9]]|[[0-9]][[0-9]][[0-9]][[0-9]])
- AC_DEFINE_UNQUOTED([MPFR_TESTS_TIMEOUT], $enableval, [timeout limit]) ;;
- *) AC_MSG_ERROR([bad value for --enable-tests-timeout]) ;;
- esac])
-
-AC_ARG_ENABLE(tune-for-coverage,
- [ --enable-tune-for-coverage
- [[for developers]] tune MPFR for coverage tests],
- [ case $enableval in
- no) ;;
- yes) AC_DEFINE([MPFR_TUNE_COVERAGE], 1, [tune for coverage]) ;;
- *) AC_MSG_ERROR([bad value for --enable-tune-for-coverage]) ;;
- esac])
-
-dnl Support for _Decimal64 and _Decimal128 (ISO/IEC TS 18661).
-dnl See acinclude.m4 for more information and tests.
-dnl FIXME: differentiate the support of _Decimal64 and _Decimal128, e.g.
-dnl --enable-decimal64 for _Decimal64
-dnl --enable-decimal128 for _Decimal128
-dnl --enable-decimal-float would explicitly enable both (or fail).
-dnl --disable-decimal-float would explicitly disable both.
-AC_ARG_ENABLE(decimal-float,
- [ --disable-decimal-float explicitly disable decimal floats support
- --enable-decimal-float build conversion functions from/to decimal floats
- (see INSTALL file for details) [[default=auto]]],
- [ case $enableval in
- yes|no|auto|bid|dpd|generic) ;;
- *) AC_MSG_ERROR([bad value for --enable-decimal-float]) ;;
- esac])
-
-dnl Warning! Not to be confused with _Decimal128. Thus it is better
-dnl to say binary128 in the description. It can correspond to either
-dnl _Float128 (ISO/IEC TS 18661) or __float128 (old type name).
-AC_ARG_ENABLE(float128,
- [ --disable-float128 explicitly disable binary128 support
- --enable-float128 build conversion functions from/to binary128
- (_Float128 or __float128) [[default=autodetect]]],
- [ case $enableval in
- yes) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-float128: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(debug-prediction,
- [ --enable-debug-prediction
- [[for developers]] enable debug of branch prediction
- (for x86 and x86-64 with GCC, static libs)],
- [ case $enableval in
- yes) if test "$enable_shared" != no; then
- AC_MSG_ERROR([--enable-debug-prediction can only work in static mode (--disable-shared)])
- fi
- AC_DEFINE([MPFR_DEBUG_PREDICTION],1,
- [Enable debug of branch prediction]) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-debug-prediction: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(lto,
- [ --enable-lto build MPFR with link-time-optimization
- (experimental) [[default: no]]],
- [ case $enableval in
- yes) if test "$enable_shared" != "no"; then
- AC_MSG_ERROR([--enable-lto can only work in static mode (--disable-shared)])
- fi
- enable_lto=yes
- ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-lto: yes or no]) ;;
- esac])
-
-AC_ARG_ENABLE(formally-proven-code,
- [ --enable-formally-proven-code
- use formally proven code when available
- (needs a C99 compiler) [[default=no]]],
- [ case $enableval in
- yes) AC_DEFINE([MPFR_WANT_PROVEN_CODE],1,[Want formally proven code]) ;;
- no) ;;
- *) AC_MSG_ERROR([bad value for --enable-formally-proven-code: yes or no]) ;;
- esac])
-
-dnl Makefile.am files can use "if MINI_GMP" / ... / "endif".
-AM_CONDITIONAL([MINI_GMP], [test -n "$mini_gmp_path"])
-
-dnl First, detect incompatibilities between the above configure options.
-AC_MSG_CHECKING([whether configure options are compatible])
-if test "$enable_logging" = yes; then
- if test "$enable_thread_safe" = yes; then
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([enable either logging or thread-safe, not both])
- fi
-dnl The following test is done only to output a specific error message,
-dnl as there would otherwise be an error due to enable_thread_safe=no.
- if test "$enable_shared_cache" = yes; then
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([shared cache does not work with logging support])
- fi
- enable_thread_safe=no
-fi
-if test "$enable_shared_cache" = yes; then
- if test "$enable_thread_safe" = no; then
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([shared cache needs thread-safe support])
- fi
- enable_thread_safe=yes
-fi
-AC_MSG_RESULT([yes])
-
-
-dnl
-dnl Setup CC and CFLAGS
-dnl
-
-dnl ********************************************************************
-dnl Check for CC and CFLAGS in gmp.h
-
-dnl Warning! The following tests must be done before Autoconf selects
-dnl a compiler. This means that some macros such as AC_PROG_CC and
-dnl AM_PROG_AR must be put after the following code.
-
-dnl We do not do this check if mini-gmp is used.
-
-if test -z "$user_redefine_cc" && \
- test "$cross_compiling" != yes && \
- test "${with_mini_gmp+set}" != set ; then
-
-dnl We need to guess the C preprocessor instead of using AC_PROG_CPP,
-dnl since AC_PROG_CPP implies AC_PROG_CC, which chooses a compiler
-dnl (before we have the chance to get it from gmp.h) and does some
-dnl checking related to this compiler (such as dependency tracking
-dnl options); if the compiler changes due to __GMP_CC in gmp.h, one
-dnl would have incorrect settings.
-if test -z "$GMP_CC$GMP_CFLAGS" ; then
- AC_MSG_CHECKING(for CC and CFLAGS in gmp.h)
- GMP_CC=__GMP_CC
- GMP_CFLAGS=__GMP_CFLAGS
- # /lib/cpp under Solaris doesn't support some environment variables
- # used by GCC, such as C_INCLUDE_PATH. If the user has set up such
- # environment variables, he probably wants to use them. So, let us
- # prefer cpp and gcc to /lib/cpp. However, note that this won't
- # work if GCC has been installed with versioned names only (e.g.
- # with cpp-5 and gcc-5).
- for cpp in "cpp -P" "cpp" "gcc -P -E" "gcc -E" "/lib/cpp -P" "/lib/cpp" "cc -P -E" "cc -E" "c99 -P -E" "c99 -E" "clang -E" "cl -E" "icl -E"
- do
- # Get CC
- echo "#include \"gmp.h\"" > conftest.c
- echo "MPFR_OPTION __GMP_CC" >> conftest.c
- $cpp $CPPFLAGS conftest.c 2> /dev/null > conftest.txt
- test $? -ne 0 && continue
- GMP_CC=`$EGREP MPFR_OPTION conftest.txt | $SED -e 's/MPFR_OPTION //g;s/ *" *//g'`
- # Get CFLAGS
- echo "#include \"gmp.h\"" > conftest.c
- echo "MPFR_OPTION __GMP_CFLAGS" >> conftest.c
- $cpp $CPPFLAGS conftest.c 2> /dev/null > conftest.txt
- test $? -ne 0 && continue
- [GMP_CFLAGS=`$EGREP MPFR_OPTION conftest.txt | $SED -e 's/[ "]-pedantic[ "]/ /g;s/MPFR_OPTION //g;s/ *" *//g'`]
- break
- done
- rm -f conftest*
- if test "x$GMP_CC" = "x__GMP_CC" || test "x$GMP_CFLAGS" = "x__GMP_CFLAGS" ; then
- AC_MSG_RESULT(failed)
- GMP_CFLAGS=
- GMP_CC=
- else
- AC_MSG_RESULT([CC=$GMP_CC CFLAGS=$GMP_CFLAGS])
- fi
-fi
-
-dnl But these variables may be invalid, so we must check them first.
-dnl Note: we do not use AC_RUN_IFELSE, as it implies AC_PROG_CC.
-if test -n "$GMP_CC$GMP_CFLAGS" ; then
- AC_MSG_CHECKING(for CC=$GMP_CC and CFLAGS=$GMP_CFLAGS)
- echo "int main (void) { return 0; }" > conftest.c
- if $GMP_CC $GMP_CFLAGS -o conftest conftest.c 2> /dev/null ; then
- AC_MSG_RESULT(yes)
- CFLAGS=$GMP_CFLAGS
- CC=$GMP_CC
- else
- AC_MSG_RESULT(no)
- fi
- rm -f conftest*
-fi
-
-fi
-
-dnl ********************************************************************
-
-AC_PROG_CC
-AC_PROG_CPP
-AC_LANG(C)
-
-dnl AM_PROG_AR is needed so that ar-lib (wrapper for Microsoft lib.exe)
-dnl gets installed by "automake -i" (if absent, "automake --warnings=all"
-dnl gives a warning).
-AM_PROG_AR
-
-dnl This must done before MPFR_CONFIGS.
-LT_INIT(win32-dll)
-
-dnl Warning: This test is *only* for CFLAGS settings.
-dnl If the compiler is ICC, add some specific flags, except on MS-Windows.
-dnl Don't add warnings flags (Otherwise you'll get more than 20000 warnings).
-dnl Add -long_double flags? Don't use -pc64 !
-dnl Notes (VL):
-dnl * With icc 10.1 20080212 on itanium, the __ICC macro is not defined,
-dnl even when the -icc option is used (contrary to what is documented
-dnl on the icc man page).
-dnl * When ICC is correctly detected (__ICC macro defined), unsetting
-dnl the GCC variable confuses libtool. See:
-dnl https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485421
-dnl * If need be, the gcc predefined macros __GNUC_* can be disabled
-dnl thanks to the -no-gcc option.
-dnl * Now use -mieee-fp instead of -mp (ICC 13 says: option '-mp' is
-dnl deprecated and will be removed in a future release.). According
-dnl to "icc -help", both options are equivalent; it also suggests
-dnl to use -fp-model <arg> instead of -mp, but what is <arg>? Anyway
-dnl -mieee-fp solves the tset_d failure due to a negative zero. This
-dnl option has been introduced in ICC 9.0 for Linux (2005-06):
-dnl http://www.ncsa.illinois.edu/UserInfo/Resources/Software/Intel/Compilers/9.0/C_ReleaseNotes.htm
-AC_MSG_CHECKING(for non-MS-Windows ICC)
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#if (!defined(__ICC) && !defined(__INTEL_COMPILER)) || defined(_WIN32)
-# error "Not a non-MS-Windows ICC"
-error
-#endif
-]], [[]])],[
- AC_MSG_RESULT(yes)
- CFLAGS="-fp_port -mieee-fp -wd1572 -wd265 -wd186 -wd239 $CFLAGS"
-],[AC_MSG_RESULT(no)])
-
-dnl If CFLAGS has not been set explicitly and the compiler is GCC, then
-dnl use some specific flags. But don't touch user other flags.
-dnl Note: This is done even when CFLAGS has been set from GMP's CFLAGS
-dnl (__GMP_CFLAGS macro in gmp.h) above. The consequence is that this
-dnl might yield a compilation failure if the -Werror option appears in
-dnl __GMP_CFLAGS. But in this case, since -Werror is not used by default,
-dnl one may expect that the user would also set CFLAGS for MPFR.
-dnl Note: When the compiler is GCC not in C++ mode, -Wc++-compat may be
-dnl interesting, but it has been introduced in GCC 4.1 only.
-if test "$test_CFLAGS" != set && test -n "$GCC"; then
- CFLAGS="-Wpointer-arith $CFLAGS"
- AC_MSG_CHECKING(whether the selected language is C++)
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#if defined (__cplusplus)
-# error "C++"
-error
-#endif
- ]], [[]])],[
- AC_MSG_RESULT(no)
- CFLAGS="-Wmissing-prototypes $CFLAGS"
- ],[
- AC_MSG_RESULT(yes)
- CFLAGS="-Wmissing-declarations -Wno-sign-compare $CFLAGS"
- ])
- CFLAGS="-Wall $CFLAGS"
-fi
-
-AM_PROG_CC_C_O
-
-case $host in
- *-apple-darwin*)
-dnl This allows to take the first GMP library in the library paths,
-dnl whether it is dynamic or static. This behavior is more sensible,
-dnl in particular because it is the only way to link with a version
-dnl only available in static form when another version is available
-dnl in dynamic, and also for consistency, because the compiler will
-dnl take the first gmp.h found in the include paths (so, we need to
-dnl take a library that corresponds to this header file). This is a
-dnl common problem with darwin.
- MPFR_LD_SEARCH_PATHS_FIRST ;;
-esac
-
-AC_C_CONST
-AC_C_VOLATILE
-dnl Determine the endianness of integer. But since MPFR doesn't use
-dnl AC_CONFIG_HEADERS, configure cannot provide such information for
-dnl universal binaries containing variants with different endianness
-dnl (i.e. generic code must be used).
-AC_C_BIGENDIAN([AC_DEFINE(HAVE_BIG_ENDIAN)],[AC_DEFINE(HAVE_LITTLE_ENDIAN)],
-[true],[true])
-
-# (Based on GMP 5.1)
-# clock_gettime is in librt on *-*-osf5.1 and on glibc < 2.17, so add -lrt to
-# TUNE_LIBS if needed (e.g. if clock_gettime is not already in the C library).
-# On linux (tested on x86_32, 2.6.26), clock_getres reports ns accuracy,
-# while in a quick test on osf, clock_getres said only 1 millisecond.
-old_LIBS="$LIBS"
-AC_SEARCH_LIBS(clock_gettime, rt, [
- AC_DEFINE([HAVE_CLOCK_GETTIME],1,[Define to 1 if you have the `clock_gettime' function])])
-TUNE_LIBS="$LIBS"
-LIBS="$old_LIBS"
-AC_SUBST(TUNE_LIBS)
-
-dnl Under Linux, make sure that the old dtags are used if LD_LIBRARY_PATH
-dnl is defined. The issue is that with the new dtags, LD_LIBRARY_PATH has
-dnl the precedence over the run path, so that if a compatible MPFR library
-dnl is installed in some directory from $LD_LIBRARY_PATH, then the tested
-dnl MPFR library will be this library instead of the MPFR library from the
-dnl build tree. Other OS with the same issue might be added later.
-dnl
-dnl References:
-dnl https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
-dnl http://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
-dnl
-dnl We need to check whether --disable-new-dtags is supported as alternate
-dnl linkers may be used (e.g., with tcc: CC=tcc LD=tcc).
-dnl
-case $host in
- *-*-linux*)
- if test -n "$LD_LIBRARY_PATH"; then
- saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,--disable-new-dtags"
- AC_MSG_CHECKING(whether --disable-new-dtags is supported by the linker)
- AC_LINK_IFELSE([AC_LANG_SOURCE([[
-int main (void) { return 0; }
- ]])],
- [AC_MSG_RESULT(yes (use it since LD_LIBRARY_PATH is set))],
- [AC_MSG_RESULT(no)
- LDFLAGS="$saved_LDFLAGS"
- ])
- fi
- ;;
-esac
-
-dnl MPFR_CONFIGS uses LDFLAGS, thus must be invoked after LDFLAGS has
-dnl been determined completely.
-MPFR_CONFIGS
-
-dnl
-dnl For mpfr-longlong.h - TODO: should be replaced (see acinclude.m4).
-dnl
-
-GMP_C_ATTRIBUTE_MODE
-
-
-dnl
-dnl Setup related to GMP / mini-gmp
-dnl
-
-if test -z "$mini_gmp_path" ; then
-
-dnl Setup for GMP
-
-dnl Check GMP Header
-AC_MSG_CHECKING(for gmp.h)
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-#include "gmp.h"
-]])],[AC_MSG_RESULT(yes)],[
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([gmp.h can't be found, or is unusable.])
-])
-
-dnl Configs for Windows DLLs.
-dnl libtool requires "-no-undefined" for win32 dll
-dnl
-dnl "-Wl,output-def" is used to get a .def file for use by MS lib to make
-dnl a .lib import library, described in the manual.
-dnl
-dnl Incidentally, libtool does generate an import library libmpfr.dll.a,
-dnl but it's "ar" format and cannot be used by the MS linker. There
-dnl doesn't seem to be any GNU tool for generating or converting to .lib.
-dnl
-dnl The DLL version (the number in libmpfr-*.dll.def below) must be the
-dnl version of the oldest supported interface (i.e. CURRENT - AGE in
-dnl src/Makefile.am).
-AC_SUBST(MPFR_LDFLAGS)
-AC_SUBST(LIBMPFR_LDFLAGS)
-case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- AC_MSG_CHECKING(for DLL/static GMP)
- if test "$enable_shared" = yes; then
- MPFR_LDFLAGS="$MPFR_LDFLAGS -no-undefined"
- LIBMPFR_LDFLAGS="$LIBMPFR_LDFLAGS -Wl,--output-def,.libs/libmpfr-6.dll.def"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include "gmp.h"
-#if !__GMP_LIBGMP_DLL
-# error "Dead man"
-error
-#endif
- ]], [[]])],[AC_MSG_RESULT(DLL)],[
- AC_MSG_RESULT(static)
- AC_MSG_ERROR([libgmp isn't provided as a DLL: use --enable-static --disable-shared]) ])
- else
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include "gmp.h"
-#if __GMP_LIBGMP_DLL
-# error "Dead man"
-error
-#endif
- ]], [[]])],[AC_MSG_RESULT(static)],[
- AC_MSG_RESULT(DLL)
- AC_MSG_ERROR([libgmp is provided as a DLL: use --disable-static --enable-shared]) ])
- fi
- ;;
-esac
-
-dnl Check minimal GMP version
-dnl We only guarantee that with a *functional* and recent enough GMP version,
-dnl MPFR will compile; we do not guarantee that GMP will compile.
-dnl In particular fat builds are broken in GMP 4.3.2 and GMP 5.0.0
-dnl (at least on 64-bit Core 2 under Linux),
-dnl see <https://gmplib.org/list-archives/gmp-bugs/2011-August/002345.html>.
-AC_MSG_CHECKING(for recent GMP)
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-#include "gmp.h"
-#if (__GNU_MP_VERSION*100+__GNU_MP_VERSION_MINOR*10 < 500)
-# error "GMP 5.0.0 or newer is required"
-error
-#endif
- ]])],[AC_MSG_RESULT(yes)],[
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([GMP 5.0.0 or newer is required])
-])
-
-dnl Check if gmp.h is usable at link time; this may detect errors such as
-dnl with GMP 4.1, which uses "extern __inline__" unconditionally with all
-dnl GCC versions, which breaks by default with GCC 5 (this problem with
-dnl GMP 4.1 is no longer possible as we now require GMP 5.0.0 or newer,
-dnl but the same kind of problem may occur in the future).
-dnl Note: No linking is done against the GMP library at this time, as we
-dnl do not use any GMP symbol. The goal of this test is to avoid obscure
-dnl errors with the following gmp.h tests.
-AC_MSG_CHECKING(usable gmp.h at link time)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include "gmp.h"
-]],[[]])],[AC_MSG_RESULT(yes)],[
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([there is an incompatibility between gmp.h and the compiler.
-See 'config.log' for details.])
-])
-
-dnl Check if we can use internal header files of GMP (only --with-gmp-build)
-if test "$use_gmp_build" = yes ; then
- AC_MSG_CHECKING(for gmp internal files)
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
- #include "gmp.h"
- #include "gmp-impl.h"
- #include "longlong.h"
- ]])],[
- AC_MSG_RESULT(yes)
- AC_DEFINE([MPFR_HAVE_GMP_IMPL],1,[Use GMP Internal Files])
- ],[
- AC_MSG_ERROR([header files gmp-impl.h and longlong.h not found])
- ])
-fi
-
-dnl Check for GMP_NUMB_BITS and sizeof(mp_limb_t) consistency.
-dnl Problems may occur if gmp.h was generated with some ABI
-dnl and is used with another ABI (or if nails are used).
-dnl This test doesn't need to link with libgmp (at least it shouldn't).
-AC_MSG_CHECKING(for GMP_NUMB_BITS and sizeof(mp_limb_t) consistency)
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <limits.h>
-#include "gmp.h"
-]], [[
- if (GMP_NUMB_BITS == sizeof(mp_limb_t) * CHAR_BIT)
- return 0;
- fprintf (stderr, "GMP_NUMB_BITS = %ld\n", (long) GMP_NUMB_BITS);
- fprintf (stderr, "sizeof(mp_limb_t) = %ld\n", (long) sizeof(mp_limb_t));
- fprintf (stderr, "sizeof(mp_limb_t) * CHAR_BIT = %ld != GMP_NUMB_BITS\n",
- (long) (sizeof(mp_limb_t) * CHAR_BIT));
- return 1;
-]])], [AC_MSG_RESULT(yes)], [
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([GMP_NUMB_BITS and sizeof(mp_limb_t) are not consistent.
-You probably need to change some of the GMP or MPFR compile options.
-See 'config.log' for details (search for GMP_NUMB_BITS).])],
- [AC_MSG_RESULT([cannot test])])
-
-dnl Check if we can link with GMP
-AC_CHECK_LIB(gmp, __gmpz_init, [LIBS="-lgmp $LIBS"],
- [AC_MSG_ERROR([libgmp not found or uses a different ABI (including static vs shared).
-Please read the INSTALL file -- see "In case of problem".])])
-
-dnl Check for corresponding 'gmp.h' and libgmp
-AC_MSG_CHECKING(if gmp.h version and libgmp version are the same)
-dnl We do not set LD_LIBRARY_PATH, as it is not possible to set it just
-dnl before the test program is run, and we do not want to affect other
-dnl programs (such as the compiler), because the behavior could be
-dnl incorrect and even have security implications.
-dnl WARNING! LD_RUN_PATH is not taken into account by the GNU gold ld,
-dnl e.g. from binutils-gold 2.22-5 under Debian; see
-dnl https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=660813
-saved_LD_RUN_PATH="$LD_RUN_PATH"
-LD_RUN_PATH="${LD_RUN_PATH:+$LD_RUN_PATH$PATH_SEPARATOR}$gmp_lib_path"
-export LD_RUN_PATH
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <string.h>
-#include "gmp.h"
- ]], [[
- char buffer[100];
- sprintf (buffer, "%d.%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR,
- __GNU_MP_VERSION_PATCHLEVEL);
- printf ("(%s/%s) ", buffer, gmp_version);
- fflush (stdout);
- /* Also put information in config.log (stderr) */
- fprintf (stderr, "gmp.h: %s / libgmp: %s\n", buffer, gmp_version);
- if (strcmp (buffer, gmp_version) == 0)
- return 0;
- if (__GNU_MP_VERSION_PATCHLEVEL != 0)
- return 1;
- sprintf (buffer, "%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR);
- return (strcmp (buffer, gmp_version) != 0) ? 1 : 0;
- ]])],
- [AC_MSG_RESULT(yes)
- MPFR_CHECK_GMP
- MPFR_CHECK_DBL2INT_BUG
- MPFR_CHECK_PRINTF_SPEC
- MPFR_CHECK_PRINTF_GROUPFLAG],
- [AC_MSG_RESULT(no)
- AC_MSG_WARN([==========================================================])
- AC_MSG_WARN(['gmp.h' and 'libgmp' seem to have different versions or])
- AC_MSG_WARN([we cannot run a program linked with GMP (if you cannot])
- AC_MSG_WARN([see the version numbers above). A cause may be different])
- AC_MSG_WARN([GMP versions with different ABI's or the use of --with-gmp])
- AC_MSG_WARN([or --with-gmp-include with a system include directory])
- AC_MSG_WARN([(such as /usr/include or /usr/local/include). Another])
- AC_MSG_WARN([cause may be that LD_RUN_PATH is not honored (problem])
- AC_MSG_WARN([seen under OpenBSD 6.6).])
- AC_MSG_WARN([However since we can't use 'libtool' inside the configure,])
- AC_MSG_WARN([we can't be sure. See 'config.log' for details.])
- AC_MSG_WARN([CC="$CC"])
- AC_MSG_WARN([CFLAGS="$CFLAGS"])
- AC_MSG_WARN([CPPFLAGS="$CPPFLAGS"])
- AC_MSG_WARN([LDFLAGS="$LDFLAGS"])
- AC_MSG_WARN([LIBS="$LIBS"])
- AC_MSG_WARN([Temporary LD_RUN_PATH was "$LD_RUN_PATH".])
- AC_MSG_WARN([==========================================================])
- ],AC_MSG_RESULT([cannot test])
- )
-LD_RUN_PATH="$saved_LD_RUN_PATH"
-
-dnl __gmpn_sbpi1_divappr_q is an internal GMP symbol; thus its behavior
-dnl may change or this symbol may be removed in the future (without being
-dnl handled by the library versioning system, which is even worse, as this
-dnl can mean undetected incompatibilities in case of GMP library upgrade,
-dnl without rebuilding MPFR). So, this symbol must not be used, unless
-dnl WANT_GMP_INTERNALS is defined. Only the GMP public API should be used
-dnl by default, in particular by binary distributions. Moreover the check
-dnl below may yield an incorrect result as libtool isn't used in configure
-dnl (see above).
-AC_CHECK_FUNCS([__gmpn_sbpi1_divappr_q])
-dnl same for other GMP internal functions
-AC_CHECK_FUNCS([__gmpn_invert_limb])
-dnl mpn_rsblsh1_n(rp, up, vp, n) does {rp, n} <- 2 * {vp, n} - {up, n}
-AC_CHECK_FUNCS([__gmpn_rsblsh1_n])
-
-MPFR_CHECK_MP_LIMB_T_VS_LONG
-MPFR_CHECK_MP_LIMB_T_VS_INTMAX
-
-else
-
-dnl Setup for mini-gmp
-
-dnl Let us make the configure script clean up the mini-gmp.* files
-dnl and add the symbolic links to mini-gmp.{c,h} instead of relying
-dnl on timestamp-based make rules, which may not work when testing
-dnl several mini-gmp versions (whose source can go back in time).
-mpfr_build_src="${ac_top_build_prefix}src"
-mkdir -p "$mpfr_build_src"
-rm -f -- "$mpfr_build_src"/mini-gmp.*
-for i in c h
-do
- ln -s -- "$mini_gmp_path/mini-gmp.$i" "$mpfr_build_src/mini-gmp.$i"
-done
-
-dnl First check whether mini-gmp defines GMP_NUMB_BITS. If it doesn't,
-dnl then guess the value from the size of mp_limb_t.
-AC_MSG_CHECKING(for GMP_NUMB_BITS)
-how="from mini-gmp.h"
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS -I$mpfr_build_src"
-AC_COMPUTE_INT(mini_gmp_numb_bits, [(GMP_NUMB_BITS)],
- [#include <mini-gmp.h>],
- [how="not in mini-gmp.h; guessed"
- AC_COMPUTE_INT(mini_gmp_numb_bits, [(sizeof(mp_limb_t) * CHAR_BIT)],
- [#include <limits.h>
- #include <mini-gmp.h>],
- [AC_MSG_FAILURE([cannot define GMP_NUMB_BITS])])
- AC_DEFINE_UNQUOTED([GMP_NUMB_BITS], $mini_gmp_numb_bits, [number of bits in a limb])
- ])
-CPPFLAGS="$saved_CPPFLAGS"
-AC_MSG_RESULT([$mini_gmp_numb_bits bits ($how)])
-
-dnl We need to check the availability of lrand48 (used by random_limb)
-dnl and srand48 (used by gmp_randseed_ui), in particular because these
-dnl functions are not part of the ISO C standard.
-AC_CHECK_FUNC(lrand48,,AC_MSG_FAILURE([MPFR + mini-gmp requires lrand48]))
-AC_CHECK_FUNC(srand48,,AC_MSG_FAILURE([MPFR + mini-gmp requires srand48]))
-
-fi
-
-dnl End of setup related to GMP / mini-gmp
-
-dnl The getrusage function is needed for MPFR bench (cf tools/bench)
-AC_CHECK_FUNCS([getrusage])
-
-dnl Remove also many macros (AC_DEFINE), which are unused by MPFR and
-dnl pollute (and slow down because libtool has to parse them) the build.
-if test -f confdefs.h; then
- for i in PACKAGE_ HAVE_STRING HAVE_DLFCN_H HAVE_MEM STDC_HEADERS \
- HAVE_STDLIB_H HAVE_UNISTD_H HAVE_STDC_HEADERS \
- HAVE_SYS_STAT_H HAVE_SYS_TYPES_H PROTOTYPES __PROTOTYPES
- do
- $SED "/#define $i/d" < confdefs.h > confdefs.tmp
- mv confdefs.tmp confdefs.h
- done
-fi
-
-if $EGREP -q -e '-dev$' $srcdir/VERSION; then
- AC_SUBST([DATAFILES])dnl
- DATAFILES=`echo \`$SED -n \
- 's/^ *data_check *("\(data\/[[^"]]*\)".*/tests\/\1/p' \
- $srcdir/tests/*.c\``
-fi
-
-dnl Output
-AC_CONFIG_FILES([Makefile mpfr.pc doc/Makefile src/Makefile tests/Makefile tune/Makefile src/mparam.h:src/mparam_h.in tools/bench/Makefile])
-AC_OUTPUT
-
-dnl NEWS README AUTHORS Changelog
diff --git a/Build/source/libs/mpfr/mpfr-src/mpfr.pc.in b/Build/source/libs/mpfr/mpfr-src/mpfr.pc.in
deleted file mode 100644
index cc9373b688f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/mpfr.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: mpfr
-URL: https://www.mpfr.org/
-Description: C library for multiple-precision floating-point computations
-Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lmpfr -lgmp
-Cflags: -I${includedir}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/Makefile.am b/Build/source/libs/mpfr/mpfr-src/src/Makefile.am
deleted file mode 100644
index 4ef1380345f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/Makefile.am
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 2000-2020 Free Software Foundation, Inc.
-# This Makefile.am is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-# Since we do not require GNU "make", let's select the POSIX behavior to
-# uniformize the behavior a bit more with various "make" implementations
-# and ease maintenance. This target should be removed only if one day,
-# we need to require GNU "make".
-.POSIX:
-
-EXTRA_DIST = round_raw_generic.c jyn_asympt.c \
- add1sp1_extracted.c mul_1_extracted.c sub1sp1_extracted.c \
- amd/mparam.h arm/mparam.h \
- generic/coverage/mparam.h generic/mparam.h \
- mips/mparam.h powerpc64/mparam.h sparc64/mparam.h \
- x86/mparam.h x86_64/core2/mparam.h x86_64/mparam.h
-
-include_HEADERS = mpfr.h mpf2mpfr.h
-nodist_include_HEADERS =
-
-BUILT_SOURCES = get_patches.c mparam.h
-
-lib_LTLIBRARIES = libmpfr.la
-
-libmpfr_la_SOURCES = mpfr.h mpf2mpfr.h mpfr-cvers.h mpfr-gmp.h \
-mpfr-impl.h mpfr-intmax.h mpfr-longlong.h mpfr-sassert.h mpfr-thread.h \
-exceptions.c extract.c uceil_exp2.c \
-uceil_log2.c ufloor_log2.c add.c add1.c add_ui.c agm.c clear.c cmp.c \
-cmpabs.c cmp_si.c cmp_ui.c comparisons.c div_2exp.c div_2si.c \
-div_2ui.c div.c div_ui.c dot.c dump.c eq.c exp10.c exp2.c exp3.c exp.c \
-frac.c frexp.c get_d.c get_exp.c get_str.c init.c inp_str.c isinteger.c \
-isinf.c isnan.c isnum.c const_log2.c log.c modf.c mul_2exp.c mul_2si.c \
-mul_2ui.c mul.c mul_ui.c neg.c next.c out_str.c printf.c vasprintf.c \
-const_pi.c pow.c pow_si.c pow_ui.c print_raw.c print_rnd_mode.c \
-reldiff.c round_prec.c set.c setmax.c setmin.c set_d.c set_dfl_prec.c \
-set_exp.c set_rnd.c set_f.c set_prc_raw.c set_prec.c set_q.c set_si.c \
-set_str.c set_str_raw.c set_ui.c set_z.c sqrt.c sqrt_ui.c sub.c sub1.c \
-sub_ui.c rint.c ui_div.c ui_sub.c urandom.c urandomb.c get_z_exp.c \
-swap.c factorial.c cosh.c sinh.c tanh.c sinh_cosh.c acosh.c asinh.c \
-atanh.c atan.c cmp2.c exp_2.c asin.c const_euler.c cos.c sin.c tan.c \
-fma.c fms.c hypot.c log1p.c expm1.c log2.c log10.c ui_pow.c \
-ui_pow_ui.c minmax.c dim.c signbit.c copysign.c setsign.c gmp_op.c \
-init2.c acos.c sin_cos.c set_nan.c set_inf.c set_zero.c powerof2.c \
-gamma.c set_ld.c get_ld.c cbrt.c volatile.c fits_s.h fits_sshort.c \
-fits_sint.c fits_slong.c fits_u.h fits_ushort.c fits_uint.c \
-fits_ulong.c fits_uintmax.c fits_intmax.c get_si.c get_ui.c zeta.c \
-cmp_d.c erf.c inits.c inits2.c clears.c sgn.c check.c sub1sp.c \
-version.c mpn_exp.c mpfr-gmp.c mp_clz_tab.c sum.c add1sp.c \
-free_cache.c si_op.c cmp_ld.c set_ui_2exp.c set_si_2exp.c set_uj.c \
-set_sj.c get_sj.c get_uj.c get_z.c iszero.c cache.c sqr.c \
-int_ceil_log2.c isqrt.c strtofr.c pow_z.c logging.c mulders.c get_f.c \
-round_p.c erfc.c atan2.c subnormal.c const_catalan.c root.c \
-gen_inverse.h sec.c csc.c cot.c eint.c sech.c csch.c coth.c \
-round_near_x.c constant.c abort_prec_max.c stack_interface.c lngamma.c \
-zeta_ui.c set_d64.c get_d64.c jn.c yn.c rem1.c add_d.c \
-sub_d.c d_sub.c mul_d.c div_d.c d_div.c li2.c rec_sqrt.c min_prec.c \
-buildopt.c digamma.c bernoulli.c isregular.c set_flt.c get_flt.c \
-scale2.c set_z_exp.c ai.c gammaonethird.c ieee_floats.h \
-grandom.c fpif.c set_float128.c get_float128.c rndna.c nrandom.c \
-random_deviate.h random_deviate.c erandom.c mpfr-mini-gmp.c \
-mpfr-mini-gmp.h fmma.c log_ui.c gamma_inc.c ubf.c invert_limb.h \
-invsqrt_limb.h beta.c odd_p.c get_q.c pool.c total_order.c set_d128.c \
-get_d128.c nbits_ulong.c cmpabs_ui.c
-
-nodist_libmpfr_la_SOURCES = $(BUILT_SOURCES)
-
-libmpfr_la_LIBADD = @LIBOBJS@
-
-# Libtool -version-info CURRENT[:REVISION[:AGE]] for libmpfr.la
-#
-# 1. No interfaces changed, only implementations (good):
-# ==> Increment REVISION.
-# 2. Interfaces added, none removed (good):
-# ==> Increment CURRENT, increment AGE, set REVISION to 0.
-# 3. Interfaces removed or changed (BAD, breaks upward compatibility):
-# ==> Increment CURRENT, set AGE and REVISION to 0.
-#
-# For each new MPFR major-minor version, add a new line below with the
-# corresponding -version-info CURRENT and AGE. This will be checked by
-# the tools/ck-version-info script.
-#
-# MPFR -version-info
-# 2.1.x -
-# 2.2.x 1:x:0
-# 2.3.x 2:x:1
-# 2.4.x 3:x:2
-# 3.0.x 4:x:0
-# 3.1.x 5:x:1
-# 4.0.x 6:x:0
-# 4.1.x 7:x:1
-libmpfr_la_LDFLAGS = $(MPFR_LDFLAGS) $(LIBMPFR_LDFLAGS) -version-info 7:0:1
-
-GET_PATCHES_SH = $(top_srcdir)/tools/get_patches.sh
-PATCHES = $(top_srcdir)/PATCHES
-get_patches.c: $(GET_PATCHES_SH) $(PATCHES)
- $(GET_PATCHES_SH) $(PATCHES) > $@ || { rm -f $@; exit 1; }
-
-if MINI_GMP
-
-# The mini-gmp.{c,h} files are external files, not part of MPFR, thus they
-# must not be put in the tarballs by "make dist". Hence the use of nodist_
-# on the corresponding sources (this is needed even when --with-mini-gmp
-# has not been used).
-nodist_include_HEADERS += mini-gmp.h
-
-# The noinst_ below seems OK as libminigmp should be included in libmpfr,
-# and this is confirmed by ldd (replacing noinst_ by lib_ does not seem to
-# do this and makes linking of the test programs fail).
-noinst_LTLIBRARIES = libminigmp.la
-nodist_libminigmp_la_SOURCES = mini-gmp.h mini-gmp.c
-libmpfr_la_LIBADD += libminigmp.la
-
-DISTCLEANFILES = $(nodist_libminigmp_la_SOURCES)
-
-endif
-
-# For check-gmp-symbols
-GMPC = $(top_builddir)/src/gmp.c
-GMPI = $(top_builddir)/src/gmp.i
-
-# For check-gmp-symbols and check-exported-symbols (if the library does
-# not have this name, e.g. on some platforms or when the shared library
-# is disabled, these rules do nothing).
-LIBMPFRSO = $(top_builddir)/src/.libs/libmpfr.so
-
-# Check that MPFR does not use GMP internal symbols. Of course, do not run
-# this rule if you use --with-gmp-build or --enable-gmp-internals. This
-# test does nothing if --disable-shared has been used.
-# Note: we use a temporary file $(GMPC) instead of "| $(COMPILE) -E -"
-# because the latter is not supported by all compilers (at least under
-# MS Windows).
-check-gmp-symbols: $(LTLIBRARIES)
- if [ -f "$(LIBMPFRSO)" ]; then \
- printf "#include <%s.h>\n" stdarg stdio gmp > $(GMPC) && \
- $(COMPILE) -E $(GMPC) > $(GMPI) || exit 1; \
- internals=`$(NM) -u "$(LIBMPFRSO)" | \
- $(SED) -n 's/^ *U \(__gmp.*\)/\1/p' | \
- while read s; \
- do \
- $(GREP) -q "$$s[ (;]" $(GMPI) || echo "$$s"; \
- done`; \
- if [ -n "$$internals" ]; then \
- echo "Internal GMP symbols:" $$internals; \
- exit 1; \
- fi; \
- rm $(GMPC) $(GMPI); \
- fi
-
-# Check that MPFR does not define symbols with a GMP reserved prefix.
-# For instance, with r11968, and
-# ./configure --with-gmp-build=... CC=tcc
-# the symbol __gmpn_clz_tab is defined, which is wrong.
-# Note: the "$(GREP) -v '@plt$$'" below is for tcc.
-check-exported-symbols: $(LTLIBRARIES)
- if [ -f "$(LIBMPFRSO)" ]; then \
- gsymbols=`$(NM) -gP "$(LIBMPFRSO)" | perl -ne \
- '/^(__gmp[a-z]?_[_0-9A-Za-z]*) +[A-TV-Z]/ and print " $$1"' | \
- { $(GREP) -v '@plt$$' || true ; }`; \
- if [ -n "$$gsymbols" ]; then \
- echo "MPFR defines symbols with a GMP reserved prefix:$$gsymbols"; \
- exit 1; \
- fi; \
- fi
-
-CLEANFILES = get_patches.c $(GMPC) $(GMPI)
-
-.PHONY: check-gmp-symbols check-exported-symbols
diff --git a/Build/source/libs/mpfr/mpfr-src/src/abort_prec_max.c b/Build/source/libs/mpfr/mpfr-src/src/abort_prec_max.c
deleted file mode 100644
index 27685b485b1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/abort_prec_max.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* mpfr_abort_prec_max -- Abort due to maximal precision overflow.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_COLD_FUNCTION_ATTR MPFR_NORETURN void
-mpfr_abort_prec_max (void)
-{
- fprintf (stderr, "MPFR: Maximal precision overflow\n");
- abort ();
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/acos.c b/Build/source/libs/mpfr/mpfr-src/src/acos.c
deleted file mode 100644
index fb737354266..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/acos.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* mpfr_acos -- arc-cosinus of a floating-point number
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_acos (mpfr_ptr acos, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t xp, arcc, tmp;
- mpfr_exp_t supplement;
- mpfr_prec_t prec;
- int sign, compared, inexact;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("acos[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(acos), mpfr_log_prec, acos, inexact));
-
- /* Singular cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x) || MPFR_IS_INF (x))
- {
- MPFR_SET_NAN (acos);
- MPFR_RET_NAN;
- }
- else /* necessarily x=0 */
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(x));
- /* acos(0)=Pi/2 */
- MPFR_SAVE_EXPO_MARK (expo);
- inexact = mpfr_const_pi (acos, rnd_mode);
- mpfr_div_2ui (acos, acos, 1, rnd_mode); /* exact */
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (acos, inexact, rnd_mode);
- }
- }
-
- /* Set x_p=|x| */
- sign = MPFR_SIGN (x);
- mpfr_init2 (xp, MPFR_PREC (x));
- mpfr_abs (xp, x, MPFR_RNDN); /* Exact */
-
- compared = mpfr_cmp_ui (xp, 1);
-
- if (MPFR_UNLIKELY (compared >= 0))
- {
- mpfr_clear (xp);
- if (compared > 0) /* acos(x) = NaN for x > 1 */
- {
- MPFR_SET_NAN(acos);
- MPFR_RET_NAN;
- }
- else
- {
- if (MPFR_IS_POS_SIGN (sign)) /* acos(+1) = +0 */
- return mpfr_set_ui (acos, 0, rnd_mode);
- else /* acos(-1) = Pi */
- return mpfr_const_pi (acos, rnd_mode);
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Compute the supplement */
- mpfr_ui_sub (xp, 1, xp, MPFR_RNDD);
- if (MPFR_IS_POS_SIGN (sign))
- supplement = 2 - 2 * MPFR_GET_EXP (xp);
- else
- supplement = 2 - MPFR_GET_EXP (xp);
- mpfr_clear (xp);
-
- prec = MPFR_PREC (acos);
- prec += MPFR_INT_CEIL_LOG2(prec) + 10 + supplement;
-
- /* VL: The following change concerning prec comes from r3145
- "Optimize mpfr_acos by choosing a better initial precision."
- but it doesn't seem to be correct and leads to problems (assertion
- failure or very important inefficiency) with tiny arguments.
- Therefore, I've disabled it. */
- /* If x ~ 2^-N, acos(x) ~ PI/2 - x - x^3/6
- If Prec < 2*N, we can't round since x^3/6 won't be counted. */
-#if 0
- if (MPFR_PREC (acos) >= MPFR_PREC (x) && MPFR_GET_EXP (x) < 0)
- {
- mpfr_uexp_t pmin = (mpfr_uexp_t) (-2 * MPFR_GET_EXP (x)) + 5;
- MPFR_ASSERTN (pmin <= MPFR_PREC_MAX);
- if (prec < pmin)
- prec = pmin;
- }
-#endif
-
- mpfr_init2 (tmp, prec);
- mpfr_init2 (arcc, prec);
-
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- /* acos(x) = Pi/2 - asin(x) = Pi/2 - atan(x/sqrt(1-x^2)) */
- mpfr_sqr (tmp, x, MPFR_RNDN);
- mpfr_ui_sub (tmp, 1, tmp, MPFR_RNDN);
- mpfr_sqrt (tmp, tmp, MPFR_RNDN);
- mpfr_div (tmp, x, tmp, MPFR_RNDN);
- mpfr_atan (arcc, tmp, MPFR_RNDN);
- mpfr_const_pi (tmp, MPFR_RNDN);
- mpfr_div_2ui (tmp, tmp, 1, MPFR_RNDN);
- mpfr_sub (arcc, tmp, arcc, MPFR_RNDN);
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (arcc, prec - supplement,
- MPFR_PREC (acos), rnd_mode)))
- break;
- MPFR_ZIV_NEXT (loop, prec);
- mpfr_set_prec (tmp, prec);
- mpfr_set_prec (arcc, prec);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (acos, arcc, rnd_mode);
- mpfr_clear (tmp);
- mpfr_clear (arcc);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (acos, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/acosh.c b/Build/source/libs/mpfr/mpfr-src/src/acosh.c
deleted file mode 100644
index 61e805110c7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/acosh.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* mpfr_acosh -- inverse hyperbolic cosine
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The computation of acosh is done by *
- * acosh= ln(x + sqrt(x^2-1)) */
-
-int
-mpfr_acosh (mpfr_ptr y, mpfr_srcptr x , mpfr_rnd_t rnd_mode)
-{
- MPFR_SAVE_EXPO_DECL (expo);
- int inexact;
- int comp;
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- /* Deal with special cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- /* Nan, or zero or -Inf */
- if (MPFR_IS_INF (x) && MPFR_IS_POS (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_RET (0);
- }
- else /* Nan, or zero or -Inf */
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- }
- comp = mpfr_cmp_ui (x, 1);
- if (MPFR_UNLIKELY (comp < 0))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_UNLIKELY (comp == 0))
- {
- MPFR_SET_ZERO (y); /* acosh(1) = +0 */
- MPFR_SET_POS (y);
- MPFR_RET (0);
- }
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* General case */
- {
- /* Declaration of the intermediary variables */
- mpfr_t t;
- /* Declaration of the size variables */
- mpfr_prec_t Ny = MPFR_PREC(y); /* Precision of output variable */
- mpfr_prec_t Nt; /* Precision of the intermediary variable */
- mpfr_exp_t err, exp_te, d; /* Precision of error */
- MPFR_ZIV_DECL (loop);
-
- /* compute the precision of intermediary variable */
- /* the optimal number of bits : see algorithms.tex */
- Nt = Ny + 4 + MPFR_INT_CEIL_LOG2 (Ny);
-
- /* initialization of intermediary variables */
- mpfr_init2 (t, Nt);
-
- /* First computation of acosh */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- /* compute acosh */
- MPFR_BLOCK (flags, mpfr_sqr (t, x, MPFR_RNDD)); /* x^2 */
- if (MPFR_OVERFLOW (flags))
- {
- mpfr_t ln2;
- mpfr_prec_t pln2;
-
- /* As x is very large and the precision is not too large, we
- assume that we obtain the same result by evaluating ln(2x).
- We need to compute ln(x) + ln(2) as 2x can overflow. TODO:
- write a proof and add an MPFR_ASSERTN. */
- mpfr_log (t, x, MPFR_RNDN); /* err(log) < 1/2 ulp(t) */
- pln2 = Nt - MPFR_PREC_MIN < MPFR_GET_EXP (t) ?
- MPFR_PREC_MIN : Nt - MPFR_GET_EXP (t);
- mpfr_init2 (ln2, pln2);
- mpfr_const_log2 (ln2, MPFR_RNDN); /* err(ln2) < 1/2 ulp(t) */
- mpfr_add (t, t, ln2, MPFR_RNDN); /* err <= 3/2 ulp(t) */
- mpfr_clear (ln2);
- err = 1;
- }
- else
- {
- exp_te = MPFR_GET_EXP (t);
- mpfr_sub_ui (t, t, 1, MPFR_RNDD); /* x^2-1 */
- if (MPFR_UNLIKELY (MPFR_IS_ZERO (t)))
- {
- /* This means that x is very close to 1: x = 1 + t with
- t < 2^(-Nt). We have: acosh(x) = sqrt(2t) (1 - eps(t))
- with 0 < eps(t) < t / 12. */
- mpfr_sub_ui (t, x, 1, MPFR_RNDD); /* t = x - 1 */
- mpfr_mul_2ui (t, t, 1, MPFR_RNDN); /* 2t */
- mpfr_sqrt (t, t, MPFR_RNDN); /* sqrt(2t) */
- err = 1;
- }
- else
- {
- d = exp_te - MPFR_GET_EXP (t);
- mpfr_sqrt (t, t, MPFR_RNDN); /* sqrt(x^2-1) */
- mpfr_add (t, t, x, MPFR_RNDN); /* sqrt(x^2-1)+x */
- mpfr_log (t, t, MPFR_RNDN); /* ln(sqrt(x^2-1)+x) */
-
- /* error estimate -- see algorithms.tex */
- err = 3 + MAX (1, d) - MPFR_GET_EXP (t);
- /* error is bounded by 1/2 + 2^err <= 2^(max(0,1+err)) */
- err = MAX (0, 1 + err);
- }
- }
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, Nt - err, Ny, rnd_mode)))
- break;
-
- /* reactualisation of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (y, t, rnd_mode);
-
- mpfr_clear (t);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/add.c b/Build/source/libs/mpfr/mpfr-src/src/add.c
deleted file mode 100644
index 6026922a97f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/add.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* mpfr_add -- add two floating-point numbers
-
-Copyright 1999-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_add (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- MPFR_LOG_FUNC
- (("b[%Pu]=%.*Rg c[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (b), mpfr_log_prec, b,
- mpfr_get_prec (c), mpfr_log_prec, c, rnd_mode),
- ("a[%Pu]=%.*Rg", mpfr_get_prec (a), mpfr_log_prec, a));
-
- if (MPFR_ARE_SINGULAR_OR_UBF (b, c))
- {
- if (MPFR_IS_NAN(b) || MPFR_IS_NAN(c))
- {
- MPFR_SET_NAN(a);
- MPFR_RET_NAN;
- }
- /* neither b nor c is NaN here */
- else if (MPFR_IS_INF(b))
- {
- if (!MPFR_IS_INF(c) || MPFR_SIGN(b) == MPFR_SIGN(c))
- {
- MPFR_SET_INF(a);
- MPFR_SET_SAME_SIGN(a, b);
- MPFR_RET(0); /* exact */
- }
- else
- {
- MPFR_SET_NAN(a);
- MPFR_RET_NAN;
- }
- }
- else if (MPFR_IS_INF(c))
- {
- MPFR_SET_INF(a);
- MPFR_SET_SAME_SIGN(a, c);
- MPFR_RET(0); /* exact */
- }
- /* now both b and c are finite numbers */
- else if (MPFR_IS_ZERO(b))
- {
- if (MPFR_IS_ZERO(c))
- {
- /* for round away, we take the same convention for 0 + 0
- as for round to zero or to nearest: it always gives +0,
- except (-0) + (-0) = -0. */
- MPFR_SET_SIGN(a,
- (rnd_mode != MPFR_RNDD ?
- (MPFR_IS_NEG(b) && MPFR_IS_NEG(c) ?
- MPFR_SIGN_NEG : MPFR_SIGN_POS) :
- (MPFR_IS_POS(b) && MPFR_IS_POS(c) ?
- MPFR_SIGN_POS : MPFR_SIGN_NEG)));
- MPFR_SET_ZERO(a);
- MPFR_RET(0); /* 0 + 0 is exact */
- }
- return mpfr_set (a, c, rnd_mode);
- }
- else if (MPFR_IS_ZERO(c))
- {
- return mpfr_set (a, b, rnd_mode);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (b));
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (c));
- /* mpfr_sub1sp and mpfr_add1sp are not intended to support UBF,
- for which optimization is less important. */
- if (MPFR_SIGN(b) != MPFR_SIGN(c))
- return mpfr_sub1 (a, b, c, rnd_mode);
- else if (MPFR_UBF_EXP_LESS_P (b, c))
- return mpfr_add1 (a, c, b, rnd_mode);
- else
- return mpfr_add1 (a, b, c, rnd_mode);
- }
- }
-
- MPFR_ASSERTD (MPFR_IS_PURE_FP (b));
- MPFR_ASSERTD (MPFR_IS_PURE_FP (c));
-
- if (MPFR_UNLIKELY(MPFR_SIGN(b) != MPFR_SIGN(c)))
- { /* signs differ, it is a subtraction */
- if (MPFR_LIKELY(MPFR_PREC(a) == MPFR_PREC(b)
- && MPFR_PREC(b) == MPFR_PREC(c)))
- return mpfr_sub1sp(a, b, c, rnd_mode);
- else
- return mpfr_sub1(a, b, c, rnd_mode);
- }
- else
- { /* signs are equal, it's an addition */
- if (MPFR_LIKELY(MPFR_PREC(a) == MPFR_PREC(b)
- && MPFR_PREC(b) == MPFR_PREC(c)))
- return mpfr_add1sp(a, b, c, rnd_mode);
- else
- if (MPFR_GET_EXP(b) < MPFR_GET_EXP(c))
- return mpfr_add1(a, c, b, rnd_mode);
- else
- return mpfr_add1(a, b, c, rnd_mode);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/add1.c b/Build/source/libs/mpfr/mpfr-src/src/add1.c
deleted file mode 100644
index 6e0a33fc3ec..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/add1.c
+++ /dev/null
@@ -1,580 +0,0 @@
-/* mpfr_add1 -- internal function to perform a "real" addition
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* compute sign(b) * (|b| + |c|), assuming that b and c
- are not NaN, Inf, nor zero. Assumes EXP(b) >= EXP(c).
-*/
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_add1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mp_limb_t *ap, *bp, *cp;
- mpfr_prec_t aq, bq, cq, aq2;
- mp_size_t an, bn, cn;
- mpfr_exp_t difw, exp, diff_exp;
- int sh, rb, fb, inex;
- MPFR_TMP_DECL(marker);
-
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (b));
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (c));
- MPFR_ASSERTD (! MPFR_UBF_EXP_LESS_P (b, c));
-
- if (MPFR_UNLIKELY (MPFR_IS_UBF (b)))
- {
- exp = MPFR_UBF_GET_EXP (b);
- if (exp > __gmpfr_emax)
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN (b));;
- }
- else
- exp = MPFR_GET_EXP (b);
-
- MPFR_ASSERTD (exp <= __gmpfr_emax);
-
- MPFR_TMP_MARK(marker);
-
- aq = MPFR_GET_PREC (a);
- bq = MPFR_GET_PREC (b);
- cq = MPFR_GET_PREC (c);
-
- an = MPFR_PREC2LIMBS (aq); /* number of limbs of a */
- aq2 = (mpfr_prec_t) an * GMP_NUMB_BITS;
- sh = aq2 - aq; /* non-significant bits in low limb */
-
- bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */
- cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */
-
- ap = MPFR_MANT(a);
- bp = MPFR_MANT(b);
- cp = MPFR_MANT(c);
-
- if (MPFR_UNLIKELY(ap == bp))
- {
- bp = MPFR_TMP_LIMBS_ALLOC (bn);
- MPN_COPY (bp, ap, bn);
- if (ap == cp)
- { cp = bp; }
- }
- else if (ap == cp)
- {
- cp = MPFR_TMP_LIMBS_ALLOC (cn);
- MPN_COPY(cp, ap, cn);
- }
-
- MPFR_SET_SAME_SIGN(a, b);
- MPFR_UPDATE2_RND_MODE (rnd_mode, MPFR_SIGN (b));
- /* now rnd_mode is either MPFR_RNDN, MPFR_RNDZ, MPFR_RNDA or MPFR_RNDF. */
- if (MPFR_UNLIKELY (MPFR_IS_UBF (c)))
- {
- MPFR_STAT_STATIC_ASSERT (MPFR_EXP_MAX > MPFR_PREC_MAX);
- diff_exp = mpfr_ubf_diff_exp (b, c);
- }
- else
- diff_exp = exp - MPFR_GET_EXP (c);
-
- MPFR_ASSERTD (diff_exp >= 0);
-
- /*
- * 1. Compute the significant part A', the non-significant bits of A
- * are taken into account.
- *
- * 2. Perform the rounding. At each iteration, we remember:
- * _ r = rounding bit
- * _ f = following bits (same value)
- * where the result has the form: [number A]rfff...fff + a remaining
- * value in the interval [0,2) ulp. We consider the most significant
- * bits of the remaining value to update the result; a possible carry
- * is immediately taken into account and A is updated accordingly. As
- * soon as the bits f don't have the same value, A can be rounded.
- * Variables:
- * _ rb = rounding bit (0 or 1).
- * _ fb = following bits (0 or 1), then sticky bit.
- * If fb == 0, the only thing that can change is the sticky bit.
- */
-
- rb = fb = -1; /* means: not initialized */
-
- if (MPFR_UNLIKELY (MPFR_UEXP (aq2) <= diff_exp))
- { /* c does not overlap with a' */
- if (MPFR_UNLIKELY(an > bn))
- { /* a has more limbs than b */
- /* copy b to the most significant limbs of a */
- MPN_COPY(ap + (an - bn), bp, bn);
- /* zero the least significant limbs of a */
- MPN_ZERO(ap, an - bn);
- }
- else /* an <= bn */
- {
- /* copy the most significant limbs of b to a */
- MPN_COPY(ap, bp + (bn - an), an);
- }
- }
- else /* aq2 > diff_exp */
- { /* c overlaps with a' */
- mp_limb_t *a2p;
- mp_limb_t cc;
- mpfr_prec_t dif;
- mp_size_t difn, k;
- int shift;
-
- /* copy c (shifted) into a */
-
- dif = aq2 - diff_exp;
- /* dif is the number of bits of c which overlap with a' */
-
- difn = MPFR_PREC2LIMBS (dif);
- /* only the highest difn limbs from c have to be considered */
- if (MPFR_UNLIKELY(difn > cn))
- {
- /* c doesn't have enough limbs; take into account the virtual
- zero limbs now by zeroing the least significant limbs of a' */
- MPFR_ASSERTD(difn - cn <= an);
- MPN_ZERO(ap, difn - cn);
- difn = cn;
- }
- k = diff_exp / GMP_NUMB_BITS;
-
- /* zero the most significant k limbs of a */
- a2p = ap + (an - k);
- MPN_ZERO(a2p, k);
-
- shift = diff_exp % GMP_NUMB_BITS;
-
- if (MPFR_LIKELY(shift))
- {
- MPFR_ASSERTD(a2p - difn >= ap);
- cc = mpn_rshift(a2p - difn, cp + (cn - difn), difn, shift);
- if (MPFR_UNLIKELY(a2p - difn > ap))
- *(a2p - difn - 1) = cc;
- }
- else
- MPN_COPY(a2p - difn, cp + (cn - difn), difn);
-
- /* add b to a */
- cc = an > bn
- ? mpn_add_n(ap + (an - bn), ap + (an - bn), bp, bn)
- : mpn_add_n(ap, ap, bp + (bn - an), an);
-
- if (MPFR_UNLIKELY(cc)) /* carry */
- {
- if (MPFR_UNLIKELY(exp == __gmpfr_emax))
- {
- inex = mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- goto end_of_add;
- }
- exp++;
- rb = (ap[0] >> sh) & 1; /* LSB(a) --> rounding bit after the shift */
- if (MPFR_LIKELY(sh))
- {
- mp_limb_t mask, bb;
-
- mask = MPFR_LIMB_MASK (sh);
- bb = ap[0] & mask;
- ap[0] &= MPFR_LIMB_LSHIFT (~mask, 1);
- if (bb == 0)
- fb = 0;
- else if (bb == mask)
- fb = 1;
- }
- mpn_rshift(ap, ap, an, 1);
- ap[an-1] += MPFR_LIMB_HIGHBIT;
- if (sh && fb < 0)
- goto rounding;
- } /* cc */
- } /* aq2 > diff_exp */
-
- /* zero the non-significant bits of a */
- if (MPFR_LIKELY(rb < 0 && sh))
- {
- mp_limb_t mask, bb;
-
- mask = MPFR_LIMB_MASK (sh);
- bb = ap[0] & mask;
- ap[0] &= ~mask;
- rb = bb >> (sh - 1);
- if (MPFR_LIKELY(sh > 1))
- {
- mask >>= 1;
- bb &= mask;
- if (bb == 0)
- fb = 0;
- else if (bb == mask)
- fb = 1;
- else
- goto rounding;
- }
- }
-
- /* Determine rounding and sticky bits (and possible carry).
- In faithful rounding, we may stop two bits after ulp(a):
- the approximation is regarded as the number formed by a,
- the rounding bit rb and an additional bit fb; and the
- corresponding error is < 1/2 ulp of the unrounded result. */
-
- difw = (mpfr_exp_t) an - (mpfr_exp_t) (diff_exp / GMP_NUMB_BITS);
- /* difw is the number of limbs from b (regarded as having an infinite
- precision) that have already been combined with c; -n if the next
- n limbs from b won't be combined with c. */
-
- if (MPFR_UNLIKELY(bn > an))
- { /* there are still limbs from b that haven't been taken into account */
- mp_size_t bk;
-
- if (fb == 0 && difw <= 0)
- {
- fb = 1; /* c hasn't been taken into account ==> sticky bit != 0 */
- goto rounding;
- }
-
- bk = bn - an; /* index of lowest considered limb from b, > 0 */
- while (difw < 0)
- { /* ulp(next limb from b) > msb(c) */
- mp_limb_t bb;
-
- bb = bp[--bk];
-
- MPFR_ASSERTD(fb != 0);
- if (fb > 0)
- {
- /* Note: Here, we can round to nearest, but the loop may still
- be necessary to determine whether there is a carry from c,
- which will have an effect on the ternary value. However, in
- faithful rounding, we do not have to determine the ternary
- value, so that we can end the loop here. */
- if (bb != MPFR_LIMB_MAX || rnd_mode == MPFR_RNDF)
- goto rounding;
- }
- else /* fb not initialized yet */
- {
- if (rb < 0) /* rb not initialized yet */
- {
- rb = bb >> (GMP_NUMB_BITS - 1);
- bb |= MPFR_LIMB_HIGHBIT;
- }
- fb = 1;
- if (bb != MPFR_LIMB_MAX)
- goto rounding;
- }
-
- if (bk == 0)
- { /* b has entirely been read */
- fb = 1; /* c hasn't been taken into account
- ==> sticky bit != 0 */
- goto rounding;
- }
-
- difw++;
- } /* while */
- MPFR_ASSERTD(bk > 0 && difw >= 0);
-
- if (difw <= cn)
- {
- mp_size_t ck;
- mp_limb_t cprev;
- int difs;
-
- ck = cn - difw;
- difs = diff_exp % GMP_NUMB_BITS;
-
- if (difs == 0 && ck == 0)
- goto c_read;
-
- cprev = ck == cn ? 0 : cp[ck];
-
- if (fb < 0)
- {
- mp_limb_t bb, cc;
-
- if (difs)
- {
- cc = cprev << (GMP_NUMB_BITS - difs);
- if (--ck >= 0)
- {
- cprev = cp[ck];
- cc += cprev >> difs;
- }
- }
- else
- cc = cp[--ck];
-
- bb = bp[--bk] + cc;
-
- if (bb < cc /* carry */
- && (rb < 0 || (rb ^= 1) == 0)
- && mpn_add_1(ap, ap, an, MPFR_LIMB_ONE << sh))
- {
- if (exp == __gmpfr_emax)
- {
- inex = mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- goto end_of_add;
- }
- exp++;
- ap[an-1] = MPFR_LIMB_HIGHBIT;
- rb = 0;
- }
-
- if (rb < 0) /* rb not initialized yet */
- {
- rb = bb >> (GMP_NUMB_BITS - 1);
- bb <<= 1;
- bb |= bb >> (GMP_NUMB_BITS - 1);
- }
-
- fb = bb != 0;
- if (fb && bb != MPFR_LIMB_MAX)
- goto rounding;
- } /* fb < 0 */
-
- /* At least two bits after ulp(a) have been read, which is
- sufficient for faithful rounding, as we do not need to
- determine on which side of a breakpoint the result is. */
- if (rnd_mode == MPFR_RNDF)
- goto rounding;
-
- while (bk > 0)
- {
- mp_limb_t bb, cc;
-
- if (difs)
- {
- if (ck < 0)
- goto c_read;
- cc = cprev << (GMP_NUMB_BITS - difs);
- if (--ck >= 0)
- {
- cprev = cp[ck];
- cc += cprev >> difs;
- }
- }
- else
- {
- if (ck == 0)
- goto c_read;
- cc = cp[--ck];
- }
-
- bb = bp[--bk] + cc;
- if (bb < cc) /* carry */
- {
- fb ^= 1;
- if (fb)
- goto rounding;
- rb ^= 1;
- if (rb == 0 && mpn_add_1 (ap, ap, an, MPFR_LIMB_ONE << sh))
- {
- if (MPFR_UNLIKELY(exp == __gmpfr_emax))
- {
- inex = mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- goto end_of_add;
- }
- exp++;
- ap[an-1] = MPFR_LIMB_HIGHBIT;
- }
- } /* bb < cc */
-
- if (!fb && bb != 0)
- {
- fb = 1;
- goto rounding;
- }
- if (fb && bb != MPFR_LIMB_MAX)
- goto rounding;
- } /* while */
-
- /* b has entirely been read */
-
- if (fb || ck < 0)
- goto rounding;
- if (difs && MPFR_LIMB_LSHIFT(cprev, GMP_NUMB_BITS - difs) != 0)
- {
- fb = 1;
- goto rounding;
- }
- while (ck)
- {
- if (cp[--ck])
- {
- fb = 1;
- goto rounding;
- }
- } /* while */
- } /* difw <= cn */
- else
- { /* c has entirely been read */
- c_read:
- if (fb < 0) /* fb not initialized yet */
- {
- mp_limb_t bb;
-
- MPFR_ASSERTD(bk > 0);
- bb = bp[--bk];
- if (rb < 0) /* rb not initialized yet */
- {
- rb = bb >> (GMP_NUMB_BITS - 1);
- bb &= ~MPFR_LIMB_HIGHBIT;
- }
- fb = bb != 0;
- } /* fb < 0 */
- if (fb || rnd_mode == MPFR_RNDF)
- goto rounding;
- while (bk)
- {
- if (bp[--bk])
- {
- fb = 1;
- goto rounding;
- }
- } /* while */
- } /* difw > cn */
- } /* bn > an */
- else if (fb != 1) /* if fb == 1, the sticky bit is 1 (no possible carry) */
- { /* b has entirely been read */
- if (difw > cn)
- { /* c has entirely been read */
- if (rb < 0)
- rb = 0;
- fb = 0;
- }
- else if (diff_exp > MPFR_UEXP (aq2))
- { /* b is followed by at least a zero bit, then by c */
- if (rb < 0)
- rb = 0;
- fb = 1;
- }
- else
- {
- mp_size_t ck;
- int difs;
-
- MPFR_ASSERTD(difw >= 0 && cn >= difw);
- ck = cn - difw;
- difs = diff_exp % GMP_NUMB_BITS;
-
- if (difs == 0 && ck == 0)
- { /* c has entirely been read */
- if (rb < 0)
- rb = 0;
- fb = 0;
- }
- else
- {
- mp_limb_t cc;
-
- cc = difs ? (MPFR_ASSERTD(ck < cn),
- cp[ck] << (GMP_NUMB_BITS - difs)) : cp[--ck];
- if (rb < 0)
- {
- rb = cc >> (GMP_NUMB_BITS - 1);
- cc &= ~MPFR_LIMB_HIGHBIT;
- }
- if (cc == 0 && rnd_mode == MPFR_RNDF)
- {
- fb = 0;
- goto rounding;
- }
- while (cc == 0)
- {
- if (ck == 0)
- {
- fb = 0;
- goto rounding;
- }
- cc = cp[--ck];
- } /* while */
- fb = 1;
- }
- }
- } /* fb != 1 */
-
- rounding:
- /* rnd_mode should be one of MPFR_RNDN, MPFR_RNDF, MPFR_RNDZ or MPFR_RNDA */
- if (MPFR_LIKELY(rnd_mode == MPFR_RNDN || rnd_mode == MPFR_RNDF))
- {
- if (fb == 0)
- {
- if (rb == 0)
- {
- inex = 0;
- goto set_exponent;
- }
- /* round to even */
- if (ap[0] & (MPFR_LIMB_ONE << sh))
- goto rndn_away;
- else
- goto rndn_zero;
- }
- if (rb == 0)
- {
- rndn_zero:
- inex = MPFR_IS_NEG(a) ? 1 : -1;
- goto set_exponent;
- }
- else
- {
- rndn_away:
- inex = MPFR_IS_POS(a) ? 1 : -1;
- goto add_one_ulp;
- }
- }
- else if (rnd_mode == MPFR_RNDZ)
- {
- inex = rb || fb ? (MPFR_IS_NEG(a) ? 1 : -1) : 0;
- goto set_exponent;
- }
- else
- {
- MPFR_ASSERTN (rnd_mode == MPFR_RNDA);
- inex = rb || fb ? (MPFR_IS_POS(a) ? 1 : -1) : 0;
- if (inex)
- goto add_one_ulp;
- else
- goto set_exponent;
- }
-
- add_one_ulp: /* add one unit in last place to a */
- if (MPFR_UNLIKELY(mpn_add_1 (ap, ap, an, MPFR_LIMB_ONE << sh)))
- {
- if (MPFR_UNLIKELY(exp == __gmpfr_emax))
- {
- inex = mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- goto end_of_add;
- }
- exp++;
- ap[an-1] = MPFR_LIMB_HIGHBIT;
- }
-
- set_exponent:
- if (MPFR_UNLIKELY (exp < __gmpfr_emin)) /* possible if b and c are UBF's */
- {
- if (rnd_mode == MPFR_RNDN &&
- (exp < __gmpfr_emin - 1 ||
- (inex >= 0 && mpfr_powerof2_raw (a))))
- rnd_mode = MPFR_RNDZ;
- inex = mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- goto end_of_add;
- }
- MPFR_SET_EXP (a, exp);
-
- end_of_add:
- MPFR_TMP_FREE(marker);
- MPFR_RET (inex);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/add1sp.c b/Build/source/libs/mpfr/mpfr-src/src/add1sp.c
deleted file mode 100644
index ad13e3ecb6b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/add1sp.c
+++ /dev/null
@@ -1,1096 +0,0 @@
-/* mpfr_add1sp -- internal function to perform a "real" addition
- All the op must have the same precision
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#if MPFR_WANT_ASSERT >= 2
-/* Check the result of mpfr_add1sp with mpfr_add1.
-
- Note: mpfr_add1sp itself has two algorithms: one always valid and one
- faster for small precisions (up to 3 limbs). The latter one is disabled
- if MPFR_GENERIC_ABI is defined. When MPFR_WANT_ASSERT >= 2, it could be
- interesting to compare the results of these different algorithms. For
- the time being, this is currently done by running the same code on the
- same data with and without MPFR_GENERIC_ABI defined, where we have the
- following comparisons in small precisions:
- mpfr_add1sp slow <-> mpfr_add1 when MPFR_GENERIC_ABI is defined;
- mpfr_add1sp fast <-> mpfr_add1 when MPFR_GENERIC_ABI is not defined.
- By transitivity, the absence of failures implies that the 3 results are
- the same.
-*/
-
-int mpfr_add1sp_ref (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-int mpfr_add1sp (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_t tmpa, tmpb, tmpc, tmpd;
- mpfr_flags_t old_flags, flags, flags2;
- int inexb, inexc, inexact, inexact2;
-
- if (rnd_mode == MPFR_RNDF)
- return mpfr_add1sp_ref (a, b, c, rnd_mode);
-
- old_flags = __gmpfr_flags;
-
- mpfr_init2 (tmpa, MPFR_PREC (a));
- mpfr_init2 (tmpb, MPFR_PREC (b));
- mpfr_init2 (tmpc, MPFR_PREC (c));
-
- inexb = mpfr_set (tmpb, b, MPFR_RNDN);
- MPFR_ASSERTN (inexb == 0);
-
- inexc = mpfr_set (tmpc, c, MPFR_RNDN);
- MPFR_ASSERTN (inexc == 0);
-
- MPFR_ASSERTN (__gmpfr_flags == old_flags);
-
- if (MPFR_GET_EXP (tmpb) < MPFR_GET_EXP (tmpc))
- {
- /* The sign for the result will be taken from the second argument
- (= first input value, which is tmpb). */
- MPFR_ALIAS (tmpd, tmpc, MPFR_SIGN (tmpb), MPFR_EXP (tmpc));
- inexact2 = mpfr_add1 (tmpa, tmpd, tmpb, rnd_mode);
- }
- else
- {
- inexact2 = mpfr_add1 (tmpa, tmpb, tmpc, rnd_mode);
- }
- flags2 = __gmpfr_flags;
-
- __gmpfr_flags = old_flags;
- inexact = mpfr_add1sp_ref (a, b, c, rnd_mode);
- flags = __gmpfr_flags;
-
- /* Convert the ternary values to (-1,0,1). */
- inexact2 = VSIGN (inexact2);
- inexact = VSIGN (inexact);
-
- if (! mpfr_equal_p (tmpa, a) || inexact != inexact2 || flags != flags2)
- {
- fprintf (stderr, "add1 & add1sp return different values for %s\n"
- "Prec_a = %lu, Prec_b = %lu, Prec_c = %lu\nB = ",
- mpfr_print_rnd_mode (rnd_mode),
- (unsigned long) MPFR_PREC (a),
- (unsigned long) MPFR_PREC (b),
- (unsigned long) MPFR_PREC (c));
- mpfr_fdump (stderr, tmpb);
- fprintf (stderr, "C = ");
- mpfr_fdump (stderr, tmpc);
- fprintf (stderr, "\nadd1 : ");
- mpfr_fdump (stderr, tmpa);
- fprintf (stderr, "add1sp: ");
- mpfr_fdump (stderr, a);
- fprintf (stderr, "add1 : ternary = %2d, flags =", inexact2);
- flags_fout (stderr, flags2);
- fprintf (stderr, "add1sp: ternary = %2d, flags =", inexact);
- flags_fout (stderr, flags);
- MPFR_ASSERTN (0);
- }
- mpfr_clears (tmpa, tmpb, tmpc, (mpfr_ptr) 0);
- return inexact;
-}
-# define mpfr_add1sp mpfr_add1sp_ref
-#endif /* MPFR_WANT_ASSERT >= 2 */
-
-#if !defined(MPFR_GENERIC_ABI)
-
-#if defined(MPFR_WANT_PROVEN_CODE) && GMP_NUMB_BITS == 64 && \
- UINT_MAX == 0xffffffff && MPFR_PREC_BITS == 64 && \
- _MPFR_PREC_FORMAT == 3 && _MPFR_EXP_FORMAT == _MPFR_PREC_FORMAT
-
-/* The code assumes that mp_limb_t has 64 bits exactly, unsigned int
- has 32 bits exactly, mpfr_prec_t and mpfr_exp_t are of type long,
- which has 64 bits exactly. */
-
-#include "add1sp1_extracted.c"
-
-#else
-
-/* same as mpfr_add1sp, but for p < GMP_NUMB_BITS */
-static int
-mpfr_add1sp1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t sh = GMP_NUMB_BITS - p;
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a0; /* to store the result */
- mp_limb_t mask;
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(p < GMP_NUMB_BITS);
-
- if (bx == cx)
- {
- /* The following line is probably better than
- a0 = MPFR_LIMB_HIGHBIT | ((bp[0] + cp[0]) >> 1);
- as it has less dependency and doesn't need a long constant on some
- processors. On ARM, it can also probably benefit from shift-and-op
- in a better way. Timings cannot be conclusive. */
- a0 = (bp[0] >> 1) + (cp[0] >> 1);
- bx ++;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- ap[0] = a0 ^ rb;
- sb = 0; /* since b + c fits on p+1 bits, the sticky bit is zero */
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- mask = MPFR_LIMB_MASK(sh);
- /* TODO: Should the case d < sh be removed, i.e. seen as a particular
- case of d < GMP_NUMB_BITS? This case would do a bit more operations
- but a test would be removed, avoiding pipeline stall issues. */
- if (d < sh)
- {
- /* we can shift c by d bits to the right without losing any bit,
- moreover we can shift one more if there is an exponent increase */
- a0 = bp[0] + (cp[0] >> d);
- if (a0 < bp[0]) /* carry */
- {
- MPFR_ASSERTD ((a0 & MPFR_LIMB_ONE) == 0);
- a0 = MPFR_LIMB_HIGHBIT | (a0 >> 1);
- bx ++;
- }
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb = (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else if (d < GMP_NUMB_BITS) /* sh <= d < GMP_NUMB_BITS */
- {
- sb = cp[0] << (GMP_NUMB_BITS - d); /* bits from cp[-1] after shift */
- a0 = bp[0] + (cp[0] >> d);
- if (a0 < bp[0]) /* carry */
- {
- sb |= a0 & MPFR_LIMB_ONE;
- a0 = MPFR_LIMB_HIGHBIT | (a0 >> 1);
- bx ++;
- }
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else /* d >= GMP_NUMB_BITS */
- {
- ap[0] = bp[0];
- rb = 0; /* since p < GMP_NUMB_BITS */
- sb = 1; /* since c <> 0 */
- }
- }
-
- /* Note: we could keep the output significand in a0 for the rounding,
- and only store it in ap[0] at the very end, but this seems slower
- on average (but better for the worst case). */
-
- /* now perform rounding */
- if (MPFR_UNLIKELY(bx > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET(0);
- else if (rnd_mode == MPFR_RNDN)
- {
- /* the condition below should be rb == 0 || (rb != 0 && ...), but this
- is equivalent to rb == 0 || (...) */
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- if (MPFR_UNLIKELY(ap[0] == 0))
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- /* no need to have MPFR_LIKELY here, since we are in a rare branch */
- if (bx + 1 <= __gmpfr_emax)
- MPFR_SET_EXP (a, bx + 1);
- else /* overflow */
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-#endif /* MPFR_WANT_PROVEN_CODE */
-
-/* same as mpfr_add1sp, but for p = GMP_NUMB_BITS */
-static int
-mpfr_add1sp1n (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a0; /* to store the result */
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(MPFR_PREC (a) == GMP_NUMB_BITS);
- MPFR_ASSERTD(MPFR_PREC (b) == GMP_NUMB_BITS);
- MPFR_ASSERTD(MPFR_PREC (c) == GMP_NUMB_BITS);
-
- if (bx == cx)
- {
- a0 = bp[0] + cp[0];
- rb = a0 & MPFR_LIMB_ONE;
- ap[0] = MPFR_LIMB_HIGHBIT | (a0 >> 1);
- bx ++;
- sb = 0; /* since b + c fits on p+1 bits, the sticky bit is zero */
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- if (d < GMP_NUMB_BITS) /* 1 <= d < GMP_NUMB_BITS */
- {
- a0 = bp[0] + (cp[0] >> d);
- sb = cp[0] << (GMP_NUMB_BITS - d); /* bits from cp[-1] after shift */
- if (a0 < bp[0]) /* carry */
- {
- ap[0] = MPFR_LIMB_HIGHBIT | (a0 >> 1);
- rb = a0 & MPFR_LIMB_ONE;
- bx ++;
- }
- else /* no carry */
- {
- ap[0] = a0;
- rb = sb & MPFR_LIMB_HIGHBIT;
- sb &= ~MPFR_LIMB_HIGHBIT;
- }
- }
- else /* d >= GMP_NUMB_BITS */
- {
- sb = d != GMP_NUMB_BITS || cp[0] != MPFR_LIMB_HIGHBIT;
- ap[0] = bp[0];
- rb = d == GMP_NUMB_BITS;
- }
- }
-
- /* Note: we could keep the output significand in a0 for the rounding,
- and only store it in ap[0] at the very end, but this seems slower
- on average (but better for the worst case). */
-
- /* now perform rounding */
- if (MPFR_UNLIKELY(bx > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET(0);
- else if (rnd_mode == MPFR_RNDN)
- {
- /* the condition below should be rb == 0 || (rb != 0 && ...), but this
- is equivalent to rb == 0 || (...) */
- if (rb == 0 || (sb == 0 && (ap[0] & MPFR_LIMB_ONE) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE;
- if (MPFR_UNLIKELY(ap[0] == 0))
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- /* no need to have MPFR_LIKELY here, since we are in a rare branch */
- if (bx + 1 <= __gmpfr_emax)
- MPFR_SET_EXP (a, bx + 1);
- else /* overflow */
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* same as mpfr_add1sp, but for GMP_NUMB_BITS < p < 2*GMP_NUMB_BITS */
-static int
-mpfr_add1sp2 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t sh = 2*GMP_NUMB_BITS - p;
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a1, a0;
- mp_limb_t mask;
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(GMP_NUMB_BITS < p && p < 2 * GMP_NUMB_BITS);
-
- if (bx == cx)
- {
- /* since bp[1], cp[1] >= MPFR_LIMB_HIGHBIT, a carry always occurs */
- a0 = bp[0] + cp[0];
- a1 = bp[1] + cp[1] + (a0 < bp[0]);
- a0 = (a0 >> 1) | (a1 << (GMP_NUMB_BITS - 1));
- bx ++;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- ap[1] = MPFR_LIMB_HIGHBIT | (a1 >> 1);
- ap[0] = a0 ^ rb;
- sb = 0; /* since b + c fits on p+1 bits, the sticky bit is zero */
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- mask = MPFR_LIMB_MASK(sh);
- if (d < GMP_NUMB_BITS) /* 0 < d < GMP_NUMB_BITS */
- {
- sb = cp[0] << (GMP_NUMB_BITS - d); /* bits from cp[-1] after shift */
- a0 = bp[0] + ((cp[1] << (GMP_NUMB_BITS - d)) | (cp[0] >> d));
- a1 = bp[1] + (cp[1] >> d) + (a0 < bp[0]);
- if (a1 < bp[1]) /* carry in high word */
- {
- exponent_shift:
- sb |= a0 & MPFR_LIMB_ONE;
- /* shift a by 1 */
- a0 = (a1 << (GMP_NUMB_BITS - 1)) | (a0 >> 1);
- ap[1] = MPFR_LIMB_HIGHBIT | (a1 >> 1);
- bx ++;
- }
- else
- ap[1] = a1;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else if (d < 2*GMP_NUMB_BITS) /* GMP_NUMB_BITS <= d < 2*GMP_NUMB_BITS */
- {
- sb = (d == GMP_NUMB_BITS) ? cp[0]
- : cp[0] | (cp[1] << (2*GMP_NUMB_BITS-d));
- a0 = bp[0] + (cp[1] >> (d - GMP_NUMB_BITS));
- a1 = bp[1] + (a0 < bp[0]);
- if (a1 == 0)
- goto exponent_shift;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- ap[1] = a1;
- }
- else /* d >= 2*GMP_NUMB_BITS */
- {
- ap[0] = bp[0];
- ap[1] = bp[1];
- rb = 0; /* since p < 2*GMP_NUMB_BITS */
- sb = 1; /* since c <> 0 */
- }
- }
-
- /* now perform rounding */
- if (MPFR_UNLIKELY(bx > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET(0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- if (MPFR_UNLIKELY(ap[1] == 0))
- {
- ap[1] = MPFR_LIMB_HIGHBIT;
- /* no need to have MPFR_LIKELY here, since we are in a rare branch */
- if (bx + 1 <= __gmpfr_emax)
- MPFR_SET_EXP (a, bx + 1);
- else /* overflow */
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* same as mpfr_add1sp, but for p = 2*GMP_NUMB_BITS */
-static int
-mpfr_add1sp2n (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a1, a0;
- mpfr_uexp_t d;
-
- if (bx == cx)
- {
- /* since bp[1], cp[1] >= MPFR_LIMB_HIGHBIT, a carry always occurs */
- a0 = bp[0] + cp[0];
- a1 = bp[1] + cp[1] + (a0 < bp[0]);
- rb = a0 & MPFR_LIMB_ONE;
- sb = 0; /* since b + c fits on p+1 bits, the sticky bit is zero */
- ap[0] = (a1 << (GMP_NUMB_BITS - 1)) | (a0 >> 1);
- ap[1] = MPFR_LIMB_HIGHBIT | (a1 >> 1);
- bx ++;
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- if (d >= 2 * GMP_NUMB_BITS)
- {
- if (d == 2 * GMP_NUMB_BITS)
- {
- rb = 1;
- sb = (cp[0] != MPFR_LIMB_ZERO ||
- cp[1] > MPFR_LIMB_HIGHBIT);
- }
- else
- {
- rb = 0;
- sb = 1;
- }
- ap[0] = bp[0];
- ap[1] = bp[1];
- }
- else
- {
- /* First, compute (a0,a1) = b + (c >> d), and determine sb from
- the bits shifted out such that (MSB, other bits) is regarded
- as (rounding bit, sticky bit), assuming no carry. */
- if (d < GMP_NUMB_BITS) /* 0 < d < GMP_NUMB_BITS */
- {
- sb = cp[0] << (GMP_NUMB_BITS - d);
- a0 = bp[0] + ((cp[1] << (GMP_NUMB_BITS - d)) | (cp[0] >> d));
- a1 = bp[1] + (cp[1] >> d) + (a0 < bp[0]);
- }
- else /* GMP_NUMB_BITS <= d < 2 * GMP_NUMB_BITS */
- {
- /* The most significant bit of sb should be the rounding bit,
- while the other bits represent the sticky bit:
- * if d = GMP_NUMB_BITS, we get cp[0];
- * if d > GMP_NUMB_BITS: we get the least d-GMP_NUMB_BITS bits
- of cp[1], and those from cp[0] as the LSB of sb. */
- sb = (d == GMP_NUMB_BITS) ? cp[0]
- : (cp[1] << (2*GMP_NUMB_BITS-d)) | (cp[0] != 0);
- a0 = bp[0] + (cp[1] >> (d - GMP_NUMB_BITS));
- a1 = bp[1] + (a0 < bp[0]);
- }
- if (a1 < bp[1]) /* carry in high word */
- {
- rb = a0 << (GMP_NUMB_BITS - 1);
- /* and sb is the real sticky bit. */
- /* Shift the result by 1 to the right. */
- ap[0] = (a1 << (GMP_NUMB_BITS - 1)) | (a0 >> 1);
- ap[1] = MPFR_LIMB_HIGHBIT | (a1 >> 1);
- bx ++;
- }
- else
- {
- rb = MPFR_LIMB_MSB (sb);
- sb <<= 1;
- ap[0] = a0;
- ap[1] = a1;
- }
- }
- }
-
- /* now perform rounding */
- if (MPFR_UNLIKELY(bx > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET(0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & MPFR_LIMB_ONE) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE;
- ap[1] += (ap[0] == 0);
- if (MPFR_UNLIKELY(ap[1] == 0))
- {
- ap[1] = MPFR_LIMB_HIGHBIT;
- /* no need to have MPFR_LIKELY here, since we are in a rare branch */
- if (bx + 1 <= __gmpfr_emax)
- MPFR_SET_EXP (a, bx + 1);
- else /* overflow */
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* same as mpfr_add1sp, but for 2*GMP_NUMB_BITS < p < 3*GMP_NUMB_BITS */
-static int
-mpfr_add1sp3 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t sh = 3*GMP_NUMB_BITS - p;
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a2, a1, a0;
- mp_limb_t mask;
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(2 * GMP_NUMB_BITS < p && p < 3 * GMP_NUMB_BITS);
-
- if (bx == cx)
- {
- /* since bp[2], cp[2] >= MPFR_LIMB_HIGHBIT, a carry always occurs */
- a0 = bp[0] + cp[0];
- a1 = bp[1] + cp[1] + (a0 < bp[0]);
- a2 = bp[2] + cp[2] + (a1 < bp[1] || (a1 == bp[1] && a0 < bp[0]));
- /* since p < 3 * GMP_NUMB_BITS, we lose no bit in a0 >> 1 */
- a0 = (a1 << (GMP_NUMB_BITS - 1)) | (a0 >> 1);
- bx ++;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- ap[2] = MPFR_LIMB_HIGHBIT | (a2 >> 1);
- ap[1] = (a2 << (GMP_NUMB_BITS - 1)) | (a1 >> 1);
- ap[0] = a0 ^ rb;
- sb = 0; /* since b + c fits on p+1 bits, the sticky bit is zero */
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- mask = MPFR_LIMB_MASK(sh);
- if (d < GMP_NUMB_BITS) /* 0 < d < GMP_NUMB_BITS */
- {
- mp_limb_t cy;
- sb = cp[0] << (GMP_NUMB_BITS - d); /* bits from cp[-1] after shift */
- a0 = bp[0] + ((cp[1] << (GMP_NUMB_BITS - d)) | (cp[0] >> d));
- a1 = bp[1] + ((cp[2] << (GMP_NUMB_BITS - d)) | (cp[1] >> d))
- + (a0 < bp[0]);
- cy = a1 < bp[1] || (a1 == bp[1] && a0 < bp[0]); /* carry in a1 */
- a2 = bp[2] + (cp[2] >> d) + cy;
- if (a2 < bp[2] || (a2 == bp[2] && cy)) /* carry in high word */
- {
- exponent_shift:
- sb |= a0 & MPFR_LIMB_ONE;
- /* shift a by 1 */
- a0 = (a1 << (GMP_NUMB_BITS - 1)) | (a0 >> 1);
- ap[1] = (a2 << (GMP_NUMB_BITS - 1)) | (a1 >> 1);
- ap[2] = MPFR_LIMB_HIGHBIT | (a2 >> 1);
- bx ++;
- }
- else
- {
- ap[1] = a1;
- ap[2] = a2;
- }
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else if (d < 2*GMP_NUMB_BITS) /* GMP_NUMB_BITS <= d < 2*GMP_NUMB_BITS */
- {
- mp_limb_t c0shifted;
- sb = (d == GMP_NUMB_BITS) ? cp[0]
- : (cp[1] << (2*GMP_NUMB_BITS - d)) | cp[0];
- c0shifted = (d == GMP_NUMB_BITS) ? cp[1]
- : (cp[2] << (2*GMP_NUMB_BITS-d)) | (cp[1] >> (d - GMP_NUMB_BITS));
- a0 = bp[0] + c0shifted;
- a1 = bp[1] + (cp[2] >> (d - GMP_NUMB_BITS)) + (a0 < bp[0]);
- /* if a1 < bp[1], there was a carry in the above addition,
- or when a1 = bp[1] and one of the added terms is nonzero
- (the sum of cp[2] >> (d - GMP_NUMB_BITS) and a0 < bp[0]
- is at most 2^GMP_NUMB_BITS-d) */
- a2 = bp[2] + ((a1 < bp[1]) || (a1 == bp[1] && a0 < bp[0]));
- if (a2 == 0)
- goto exponent_shift;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- ap[1] = a1;
- ap[2] = a2;
- }
- else if (d < 3*GMP_NUMB_BITS) /* 2*GMP_NUMB_BITS<=d<3*GMP_NUMB_BITS */
- {
- MPFR_ASSERTD (2*GMP_NUMB_BITS <= d && d < 3*GMP_NUMB_BITS);
- sb = (d == 2*GMP_NUMB_BITS ? 0 : cp[2] << (3*GMP_NUMB_BITS - d))
- | cp[1] | cp[0];
- a0 = bp[0] + (cp[2] >> (d - 2*GMP_NUMB_BITS));
- a1 = bp[1] + (a0 < bp[0]);
- a2 = bp[2] + (a1 < bp[1]);
- if (a2 == 0)
- goto exponent_shift;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- ap[1] = a1;
- ap[2] = a2;
- }
- else /* d >= 2*GMP_NUMB_BITS */
- {
- ap[0] = bp[0];
- ap[1] = bp[1];
- ap[2] = bp[2];
- rb = 0; /* since p < 3*GMP_NUMB_BITS */
- sb = 1; /* since c <> 0 */
- }
- }
-
- /* now perform rounding */
- if (MPFR_UNLIKELY(bx > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET(0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- ap[2] += (ap[1] == 0 && ap[0] == 0);
- if (MPFR_UNLIKELY(ap[2] == 0))
- {
- ap[2] = MPFR_LIMB_HIGHBIT;
- /* no need to have MPFR_LIKELY here, since we are in a rare branch */
- if (bx + 1 <= __gmpfr_emax)
- MPFR_SET_EXP (a, bx + 1);
- else /* overflow */
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-#endif /* !defined(MPFR_GENERIC_ABI) */
-
-/* {ap, n} <- {bp, n} + {cp + q, n - q} >> r where d = q * GMP_NUMB_BITS + r.
- Return the carry at ap[n+1] (0 or 1) and set *low so that:
- * the most significant bit of *low would be that of ap[-1] if we would
- compute one more limb of the (infinite) addition
- * the GMP_NUMB_BITS-1 least significant bits of *low are zero iff all bits
- of ap[-1], ap[-2], ... would be zero (except the most significant bit
- of ap[-1).
- Assume 0 < d < GMP_NUMB_BITS*n. */
-static mp_limb_t
-mpfr_addrsh (mp_limb_t *ap, mp_limb_t *bp, mp_limb_t *cp, mp_size_t n,
- mp_size_t d, mp_limb_t *low)
-{
- mp_limb_t cy, cy2, c_shifted;
- mp_size_t i;
-
- if (d < GMP_NUMB_BITS)
- {
- /* {ap, n} <- {bp, n} + {cp, n} >> d */
- MPFR_ASSERTD (d > 0);
- /* thus 0 < GMP_NUMB_BITS - d < GMP_NUMB_BITS */
- *low = cp[0] << (GMP_NUMB_BITS - d);
- for (i = 0, cy = 0; i < n - 1; i++)
- {
- c_shifted = (cp[i+1] << (GMP_NUMB_BITS - d)) | (cp[i] >> d);
- ap[i] = bp[i] + c_shifted;
- cy2 = ap[i] < c_shifted;
- ap[i] += cy;
- cy = cy2 + (ap[i] < cy);
- }
- /* most significant limb is special */
- c_shifted = cp[i] >> d;
- ap[i] = bp[i] + c_shifted;
- cy2 = ap[i] < c_shifted;
- ap[i] += cy;
- cy = cy2 + (ap[i] < cy);
- }
- else /* d >= GMP_NUMB_BITS */
- {
- mp_size_t q = d / GMP_NUMB_BITS;
- mpfr_uexp_t r = d % GMP_NUMB_BITS;
- if (r == 0)
- {
- MPFR_ASSERTD(q > 0);
- *low = cp[q-1];
- for (i = 0; i < q-1; i++)
- *low |= !!cp[i];
- cy = mpn_add_n (ap, bp, cp + q, n - q);
- cy = mpn_add_1 (ap + n - q, bp + n - q, q, cy);
- }
- else /* 0 < r < GMP_NUMB_BITS */
- {
- *low = cp[q] << (GMP_NUMB_BITS - r);
- for (i = 0; i < q; i++)
- *low |= !!cp[i];
- for (i = 0, cy = 0; i < n - q - 1; i++)
- {
- c_shifted = (cp[q+i+1] << (GMP_NUMB_BITS - r)) | (cp[q+i] >> r);
- ap[i] = bp[i] + c_shifted;
- cy2 = ap[i] < c_shifted;
- ap[i] += cy;
- cy = cy2 + (ap[i] < cy);
- }
- /* most significant limb of c is special */
- MPFR_ASSERTD(i == n - q - 1);
- c_shifted = cp[n-1] >> r;
- ap[i] = bp[i] + c_shifted;
- cy2 = ap[i] < c_shifted;
- ap[i] += cy;
- cy = cy2 + (ap[i] < cy);
- /* upper limbs are copied */
- cy = mpn_add_1 (ap + n - q, bp + n - q, q, cy);
- }
- }
- return cy;
-}
-
-/* compute sign(b) * (|b| + |c|).
- Returns 0 iff result is exact,
- a negative value when the result is less than the exact value,
- a positive value otherwise. */
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_add1sp (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_uexp_t d;
- mpfr_prec_t p;
- unsigned int sh;
- mp_size_t n;
- mp_limb_t *ap = MPFR_MANT(a);
- mpfr_exp_t bx;
- mp_limb_t limb, rb, sb;
- int inexact;
- int neg;
-
- MPFR_ASSERTD(MPFR_PREC(a) == MPFR_PREC(b) && MPFR_PREC(b) == MPFR_PREC(c));
- MPFR_ASSERTD(MPFR_IS_PURE_FP(b));
- MPFR_ASSERTD(MPFR_IS_PURE_FP(c));
-
- MPFR_SET_SAME_SIGN (a, b);
-
- /* Read prec and num of limbs */
- p = MPFR_GET_PREC (b);
-
-#if !defined(MPFR_GENERIC_ABI)
- if (p < GMP_NUMB_BITS)
- return mpfr_add1sp1 (a, b, c, rnd_mode, p);
-
- if (GMP_NUMB_BITS < p && p < 2 * GMP_NUMB_BITS)
- return mpfr_add1sp2 (a, b, c, rnd_mode, p);
-
- /* we put this test after the mpfr_add1sp2() call, to avoid slowing down
- the more frequent case GMP_NUMB_BITS < p < 2 * GMP_NUMB_BITS */
- if (p == GMP_NUMB_BITS)
- return mpfr_add1sp1n (a, b, c, rnd_mode);
-
- if (2 * GMP_NUMB_BITS < p && p < 3 * GMP_NUMB_BITS)
- return mpfr_add1sp3 (a, b, c, rnd_mode, p);
-
- if (p == 2 * GMP_NUMB_BITS)
- return mpfr_add1sp2n (a, b, c, rnd_mode);
-#endif
-
- /* We need to get the sign before the possible exchange. */
- neg = MPFR_IS_NEG (b);
-
- bx = MPFR_GET_EXP(b);
- if (bx < MPFR_GET_EXP(c))
- {
- mpfr_srcptr t = b;
- bx = MPFR_GET_EXP(c);
- b = c;
- c = t;
- }
- MPFR_ASSERTD(bx >= MPFR_GET_EXP(c));
-
- n = MPFR_PREC2LIMBS (p);
- MPFR_UNSIGNED_MINUS_MODULO(sh, p);
- d = (mpfr_uexp_t) (bx - MPFR_GET_EXP(c));
-
- /* printf ("New add1sp with diff=%lu\n", (unsigned long) d); */
-
- if (d == 0)
- {
- /* d==0 */
- /* mpfr_print_mant_binary("C= ", MPFR_MANT(c), p); */
- /* mpfr_print_mant_binary("B= ", MPFR_MANT(b), p); */
- bx++; /* exp + 1 */
- limb = mpn_add_n (ap, MPFR_MANT(b), MPFR_MANT(c), n);
- /* mpfr_print_mant_binary("A= ", ap, p); */
- MPFR_ASSERTD(limb != 0); /* There must be a carry */
- rb = ap[0] & (MPFR_LIMB_ONE << sh); /* Get round bit (sb=0) */
- mpn_rshift (ap, ap, n, 1); /* Shift mantissa A */
- ap[n-1] |= MPFR_LIMB_HIGHBIT; /* Set MSB */
- ap[0] &= ~MPFR_LIMB_MASK(sh); /* Clear round bit */
-
-
- /* Fast track for faithful rounding: since b and c have the same
- precision and the same exponent, the neglected value is either
- 0 or 1/2 ulp(a), thus returning a is fine. */
- if (rnd_mode == MPFR_RNDF)
- { inexact = 0; goto set_exponent; }
-
- if (rb == 0) /* Check exact case */
- { inexact = 0; goto set_exponent; }
-
- /* Zero: Truncate
- Nearest: Even Rule => truncate or add 1
- Away: Add 1 */
- if (MPFR_LIKELY (rnd_mode == MPFR_RNDN))
- {
- if ((ap[0] & (MPFR_LIMB_ONE << sh)) == 0)
- { inexact = -1; goto set_exponent; }
- else
- goto add_one_ulp;
- }
- MPFR_UPDATE_RND_MODE(rnd_mode, neg);
- if (rnd_mode == MPFR_RNDZ)
- { inexact = -1; goto set_exponent; }
- else
- goto add_one_ulp;
- }
- else if (MPFR_UNLIKELY (d >= p))
- {
- /* fast track for RNDF */
- if (MPFR_LIKELY(rnd_mode == MPFR_RNDF))
- goto copy_set_exponent;
-
- if (MPFR_LIKELY (d > p))
- {
- /* d > p : Copy B in A */
- /* Away: Add 1
- Nearest: Trunc
- Zero: Trunc */
- if (rnd_mode == MPFR_RNDN || MPFR_IS_LIKE_RNDZ (rnd_mode, neg))
- {
- copy_set_exponent:
- if (a != b)
- MPN_COPY (ap, MPFR_MANT(b), n);
- inexact = -1;
- goto set_exponent;
- }
- else
- {
- copy_add_one_ulp:
- if (a != b)
- MPN_COPY (ap, MPFR_MANT(b), n);
- goto add_one_ulp;
- }
- }
- else
- {
- /* d==p : Copy B in A */
- /* Away: Add 1
- Nearest: Even Rule if C is a power of 2, else Add 1
- Zero: Trunc */
- if (rnd_mode == MPFR_RNDN)
- {
- /* Check if C was a power of 2 */
- if (mpfr_powerof2_raw (c) &&
- ((MPFR_MANT (b))[0] & (MPFR_LIMB_ONE << sh)) == 0)
- goto copy_set_exponent;
- /* Not a Power of 2 */
- goto copy_add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ (rnd_mode, neg))
- goto copy_set_exponent;
- else
- goto copy_add_one_ulp;
- }
- }
- else /* 0 < d < p */
- {
- mp_limb_t mask = ~MPFR_LIMB_MASK(sh);
-
- /* General case: 1 <= d < p */
-
- limb = mpfr_addrsh (ap, MPFR_MANT(b), MPFR_MANT(c), n, d, &sb);
- /* the most significant bit of sb contains what would be the most
- significant bit of ap[-1], and the remaining bits of sb are 0
- iff the remaining bits of ap[-1], ap[-2], ... are all zero */
-
- if (sh > 0)
- {
- /* The round bit and a part of the sticky bit are in ap[0]. */
- rb = (ap[0] & (MPFR_LIMB_ONE << (sh - 1)));
- sb |= ap[0] & MPFR_LIMB_MASK (sh - 1);
- }
- else
- {
- /* The round bit and possibly a part of the sticky bit are
- in sb. */
- rb = sb & MPFR_LIMB_HIGHBIT;
- sb &= ~MPFR_LIMB_HIGHBIT;
- }
-
- ap[0] &= mask;
-
- /* Check for carry out */
- if (MPFR_UNLIKELY (limb != 0))
- {
- limb = ap[0] & (MPFR_LIMB_ONE << sh); /* Get LSB (will be new rb) */
- mpn_rshift (ap, ap, n, 1); /* Shift significand */
- bx++; /* Increase exponent */
- ap[n-1] |= MPFR_LIMB_HIGHBIT; /* Set MSB */
- ap[0] &= mask; /* Clear LSB */
- sb |= rb; /* Update sb */
- rb = limb; /* New rb */
- /* printf ("(Overflow) rb=%lu sb=%lu\n",
- (unsigned long) rb, (unsigned long) sb);
- mpfr_print_mant_binary ("Add= ", ap, p); */
- }
-
- /* Round:
- Zero: Truncate but could be exact.
- Away: Add 1 if rb or sb !=0
- Nearest: Truncate but could be exact if sb==0
- Add 1 if rb !=0,
- Even rule else */
- if (MPFR_LIKELY(rnd_mode == MPFR_RNDF))
- { inexact = 0; goto set_exponent; }
- else if (rnd_mode == MPFR_RNDN)
- {
- inexact = - (sb != 0);
- if (rb == 0)
- goto set_exponent;
- else if (MPFR_UNLIKELY (sb == 0) &&
- (ap[0] & (MPFR_LIMB_ONE << sh)) == 0)
- { inexact = -1; goto set_exponent; }
- else
- goto add_one_ulp;
- }
- MPFR_UPDATE_RND_MODE(rnd_mode, neg);
- inexact = - (rb != 0 || sb != 0);
- if (rnd_mode == MPFR_RNDZ || inexact == 0)
- goto set_exponent;
- else
- goto add_one_ulp;
- }
- MPFR_RET_NEVER_GO_HERE();
-
- add_one_ulp:
- /* add one unit in last place to a */
- /* printf("AddOneUlp\n"); */
- if (MPFR_UNLIKELY (mpn_add_1 (ap, ap, n, MPFR_LIMB_ONE << sh)))
- {
- /* Case 100000x0 = 0x1111x1 + 1*/
- /* printf("Pow of 2\n"); */
- bx++;
- ap[n-1] = MPFR_LIMB_HIGHBIT;
- }
- inexact = 1;
-
- set_exponent:
- if (MPFR_UNLIKELY(bx > __gmpfr_emax)) /* Check for overflow */
- {
- /* printf("Overflow\n"); */
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_SET_EXP (a, bx);
-
- MPFR_RET (inexact * MPFR_INT_SIGN (a));
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/add1sp1_extracted.c b/Build/source/libs/mpfr/mpfr-src/src/add1sp1_extracted.c
deleted file mode 100644
index 1ff0db1a0e8..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/add1sp1_extracted.c
+++ /dev/null
@@ -1,363 +0,0 @@
-/* mpfr_add1sp1 -- internal function to perform a "real" addition on one limb
- This code was extracted by Kremlin from a formal proof in F*
- done by Jianyang Pan in April-August 2018: do not modify it!
-
-Source: https://github.com/project-everest/hacl-star/tree/dev_mpfr/code/mpfr
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define int64_t long
-#define uint32_t unsigned int
-#define uint64_t mp_limb_t
-
-typedef struct MPFR_Add1sp1_state_s
-{
- int64_t sh;
- int64_t bx;
- uint64_t rb;
- uint64_t sb;
-}
-MPFR_Add1sp1_state;
-
-static MPFR_Add1sp1_state
-MPFR_Add1sp1_mk_state(int64_t sh, int64_t bx, uint64_t rb, uint64_t sb)
-{
- return ((MPFR_Add1sp1_state){ .sh = sh, .bx = bx, .rb = rb, .sb = sb });
-}
-
-typedef struct K___uint64_t_int64_t_s
-{
- uint64_t fst;
- int64_t snd;
-}
-K___uint64_t_int64_t;
-
-typedef struct K___uint64_t_uint64_t_int64_t_s
-{
- uint64_t fst;
- uint64_t snd;
- int64_t thd;
-}
-K___uint64_t_uint64_t_int64_t;
-
-#define MPFR_Lib_mpfr_struct __mpfr_struct
-#define MPFR_Lib_mpfr_RET(I) ((I) != 0 ? ((__gmpfr_flags |= MPFR_FLAGS_INEXACT), (I)) : 0)
-#define MPFR_Exceptions_mpfr_overflow mpfr_overflow
-#define mpfr_prec _mpfr_prec
-#define mpfr_exp _mpfr_exp
-#define mpfr_d _mpfr_d
-#define mpfr_sign _mpfr_sign
-#define MPFR_Lib_gmp_NUMB_BITS GMP_NUMB_BITS
-#define MPFR_Lib_mpfr_EMAX __gmpfr_emax
-
-#define MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode) (rnd_mode == MPFR_RNDN)
-#define MPFR_RoundingMode_mpfr_IS_LIKE_RNDZ MPFR_IS_LIKE_RNDZ
-
-/* same as mpfr_add1sp, but for p < GMP_NUMB_BITS */
-static int
-mpfr_add1sp1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- MPFR_Lib_mpfr_struct a0 = a[0U];
- MPFR_Lib_mpfr_struct b0 = b[0U];
- MPFR_Lib_mpfr_struct c0 = c[0U];
- int64_t bx = b0.mpfr_exp;
- int64_t cx = c0.mpfr_exp;
- int64_t sh = MPFR_Lib_gmp_NUMB_BITS - p;
- MPFR_Add1sp1_state st;
- if (bx == cx)
- {
- uint64_t *ap = a0.mpfr_d;
- uint64_t *bp = b0.mpfr_d;
- uint64_t *cp = c0.mpfr_d;
- uint64_t a01 = (bp[0U] >> (uint32_t)1U) + (cp[0U] >> (uint32_t)1U);
- int64_t bx1 = b0.mpfr_exp + (int64_t)1;
- uint64_t rb = a01 & (uint64_t)1U << (uint32_t)(sh - (int64_t)1);
- ap[0U] = a01 ^ rb;
- uint64_t sb = (uint64_t)0U;
- st = MPFR_Add1sp1_mk_state(sh, bx1, rb, sb);
- }
- else
- {
- MPFR_Add1sp1_state ite0;
- if (bx > cx)
- {
- int64_t bx1 = b0.mpfr_exp;
- int64_t cx1 = c0.mpfr_exp;
- int64_t d = bx1 - cx1;
- uint64_t mask = ((uint64_t)1U << (uint32_t)sh) - (uint64_t)1U;
- MPFR_Add1sp1_state ite1;
- if (d < sh)
- {
- uint64_t *ap = a0.mpfr_d;
- uint64_t *bp = b0.mpfr_d;
- uint64_t *cp = c0.mpfr_d;
- int64_t bx2 = b0.mpfr_exp;
- uint64_t a01 = bp[0U] + (cp[0U] >> (uint32_t)d);
- K___uint64_t_int64_t scrut;
- if (a01 < bp[0U])
- scrut =
- (
- (K___uint64_t_int64_t){
- .fst = (uint64_t)0x8000000000000000U | a01 >> (uint32_t)1U,
- .snd = bx2 + (int64_t)1
- }
- );
- else
- scrut = ((K___uint64_t_int64_t){ .fst = a01, .snd = bx2 });
- uint64_t a02 = scrut.fst;
- int64_t bx3 = scrut.snd;
- uint64_t rb = a02 & (uint64_t)1U << (uint32_t)(sh - (int64_t)1);
- uint64_t sb = (a02 & mask) ^ rb;
- ap[0U] = a02 & ~mask;
- ite1 = MPFR_Add1sp1_mk_state(sh, bx3, rb, sb);
- }
- else
- {
- MPFR_Add1sp1_state ite;
- if (d < MPFR_Lib_gmp_NUMB_BITS)
- {
- uint64_t *ap = a0.mpfr_d;
- uint64_t *bp = b0.mpfr_d;
- uint64_t *cp = c0.mpfr_d;
- int64_t bx2 = b0.mpfr_exp;
- uint64_t sb = cp[0U] << (uint32_t)(MPFR_Lib_gmp_NUMB_BITS - d);
- uint64_t a01 = bp[0U] + (cp[0U] >> (uint32_t)d);
- K___uint64_t_uint64_t_int64_t scrut;
- if (a01 < bp[0U])
- scrut =
- (
- (K___uint64_t_uint64_t_int64_t){
- .fst = sb | (a01 & (uint64_t)1U),
- .snd = (uint64_t)0x8000000000000000U | a01 >> (uint32_t)1U,
- .thd = bx2 + (int64_t)1
- }
- );
- else
- scrut = ((K___uint64_t_uint64_t_int64_t){ .fst = sb, .snd = a01, .thd = bx2 });
- uint64_t sb1 = scrut.fst;
- uint64_t a02 = scrut.snd;
- int64_t bx3 = scrut.thd;
- uint64_t rb = a02 & (uint64_t)1U << (uint32_t)(sh - (int64_t)1);
- uint64_t sb2 = sb1 | ((a02 & mask) ^ rb);
- ap[0U] = a02 & ~mask;
- ite = MPFR_Add1sp1_mk_state(sh, bx3, rb, sb2);
- }
- else
- {
- uint64_t *ap = a0.mpfr_d;
- uint64_t *bp = b0.mpfr_d;
- int64_t bx2 = b0.mpfr_exp;
- ap[0U] = bp[0U];
- uint64_t rb = (uint64_t)0U;
- uint64_t sb = (uint64_t)1U;
- ite = MPFR_Add1sp1_mk_state(sh, bx2, rb, sb);
- }
- ite1 = ite;
- }
- ite0 = ite1;
- }
- else
- {
- int64_t bx1 = c0.mpfr_exp;
- int64_t cx1 = b0.mpfr_exp;
- int64_t d = bx1 - cx1;
- uint64_t mask = ((uint64_t)1U << (uint32_t)sh) - (uint64_t)1U;
- MPFR_Add1sp1_state ite1;
- if (d < sh)
- {
- uint64_t *ap = a0.mpfr_d;
- uint64_t *bp = c0.mpfr_d;
- uint64_t *cp = b0.mpfr_d;
- int64_t bx2 = c0.mpfr_exp;
- uint64_t a01 = bp[0U] + (cp[0U] >> (uint32_t)d);
- K___uint64_t_int64_t scrut;
- if (a01 < bp[0U])
- scrut =
- (
- (K___uint64_t_int64_t){
- .fst = (uint64_t)0x8000000000000000U | a01 >> (uint32_t)1U,
- .snd = bx2 + (int64_t)1
- }
- );
- else
- scrut = ((K___uint64_t_int64_t){ .fst = a01, .snd = bx2 });
- uint64_t a02 = scrut.fst;
- int64_t bx3 = scrut.snd;
- uint64_t rb = a02 & (uint64_t)1U << (uint32_t)(sh - (int64_t)1);
- uint64_t sb = (a02 & mask) ^ rb;
- ap[0U] = a02 & ~mask;
- ite1 = MPFR_Add1sp1_mk_state(sh, bx3, rb, sb);
- }
- else
- {
- MPFR_Add1sp1_state ite;
- if (d < MPFR_Lib_gmp_NUMB_BITS)
- {
- uint64_t *ap = a0.mpfr_d;
- uint64_t *bp = c0.mpfr_d;
- uint64_t *cp = b0.mpfr_d;
- int64_t bx2 = c0.mpfr_exp;
- uint64_t sb = cp[0U] << (uint32_t)(MPFR_Lib_gmp_NUMB_BITS - d);
- uint64_t a01 = bp[0U] + (cp[0U] >> (uint32_t)d);
- K___uint64_t_uint64_t_int64_t scrut;
- if (a01 < bp[0U])
- scrut =
- (
- (K___uint64_t_uint64_t_int64_t){
- .fst = sb | (a01 & (uint64_t)1U),
- .snd = (uint64_t)0x8000000000000000U | a01 >> (uint32_t)1U,
- .thd = bx2 + (int64_t)1
- }
- );
- else
- scrut = ((K___uint64_t_uint64_t_int64_t){ .fst = sb, .snd = a01, .thd = bx2 });
- uint64_t sb1 = scrut.fst;
- uint64_t a02 = scrut.snd;
- int64_t bx3 = scrut.thd;
- uint64_t rb = a02 & (uint64_t)1U << (uint32_t)(sh - (int64_t)1);
- uint64_t sb2 = sb1 | ((a02 & mask) ^ rb);
- ap[0U] = a02 & ~mask;
- ite = MPFR_Add1sp1_mk_state(sh, bx3, rb, sb2);
- }
- else
- {
- uint64_t *ap = a0.mpfr_d;
- uint64_t *bp = c0.mpfr_d;
- int64_t bx2 = c0.mpfr_exp;
- ap[0U] = bp[0U];
- uint64_t rb = (uint64_t)0U;
- uint64_t sb = (uint64_t)1U;
- ite = MPFR_Add1sp1_mk_state(sh, bx2, rb, sb);
- }
- ite1 = ite;
- }
- ite0 = ite1;
- }
- st = ite0;
- }
- if (st.bx > MPFR_Lib_mpfr_EMAX)
- {
- int32_t t = MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- return t;
- }
- else
- {
- uint64_t *ap = a->mpfr_d;
- uint64_t a01 = ap[0U];
- MPFR_Lib_mpfr_struct uu___72_3478 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3478.mpfr_prec,
- .mpfr_sign = uu___72_3478.mpfr_sign,
- .mpfr_exp = st.bx,
- .mpfr_d = uu___72_3478.mpfr_d
- }
- );
- if (st.rb == (uint64_t)0U && st.sb == (uint64_t)0U)
- return MPFR_Lib_mpfr_RET((int32_t)0);
- else if (MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode))
- if
- (
- st.rb
- == (uint64_t)0U
- || (st.sb == (uint64_t)0U && (a01 & (uint64_t)1U << (uint32_t)st.sh) == (uint64_t)0U)
- )
- {
- int32_t ite;
- if (a->mpfr_sign == (int32_t)1)
- ite = (int32_t)-1;
- else
- ite = (int32_t)1;
- return MPFR_Lib_mpfr_RET(ite);
- }
- else
- {
- uint64_t *ap1 = a->mpfr_d;
- ap1[0U] = ap1[0U] + ((uint64_t)1U << (uint32_t)st.sh);
- if (ap1[0U] == (uint64_t)0U)
- {
- ap1[0U] = (uint64_t)0x8000000000000000U;
- if (st.bx + (int64_t)1 <= MPFR_Lib_mpfr_EMAX)
- {
- MPFR_Lib_mpfr_struct uu___72_3574 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3574.mpfr_prec,
- .mpfr_sign = uu___72_3574.mpfr_sign,
- .mpfr_exp = st.bx + (int64_t)1,
- .mpfr_d = uu___72_3574.mpfr_d
- }
- );
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- else
- {
- int32_t t = MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- return MPFR_Lib_mpfr_RET(t);
- }
- }
- else
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- else if (MPFR_RoundingMode_mpfr_IS_LIKE_RNDZ(rnd_mode, a->mpfr_sign < (int32_t)0))
- {
- int32_t ite;
- if (a->mpfr_sign == (int32_t)1)
- ite = (int32_t)-1;
- else
- ite = (int32_t)1;
- return MPFR_Lib_mpfr_RET(ite);
- }
- else
- {
- uint64_t *ap1 = a->mpfr_d;
- ap1[0U] = ap1[0U] + ((uint64_t)1U << (uint32_t)st.sh);
- if (ap1[0U] == (uint64_t)0U)
- {
- ap1[0U] = (uint64_t)0x8000000000000000U;
- if (st.bx + (int64_t)1 <= MPFR_Lib_mpfr_EMAX)
- {
- MPFR_Lib_mpfr_struct uu___72_3781 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3781.mpfr_prec,
- .mpfr_sign = uu___72_3781.mpfr_sign,
- .mpfr_exp = st.bx + (int64_t)1,
- .mpfr_d = uu___72_3781.mpfr_d
- }
- );
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- else
- {
- int32_t t = MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- return MPFR_Lib_mpfr_RET(t);
- }
- }
- else
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/add_d.c b/Build/source/libs/mpfr/mpfr-src/src/add_d.c
deleted file mode 100644
index a934bfbddcc..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/add_d.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* mpfr_add_d -- add a multiple precision floating-point number
- to a machine double precision float
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_add_d (mpfr_ptr a, mpfr_srcptr b, double c, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t d;
- mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("b[%Pu]=%.*Rg c=%.20g rnd=%d",
- mpfr_get_prec(b), mpfr_log_prec, b, c, rnd_mode),
- ("a[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (a), mpfr_log_prec, a, inexact));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(tmp_man, d, IEEE_DBL_MANT_DIG);
- inexact = mpfr_set_d (d, c, rnd_mode);
- MPFR_ASSERTD (inexact == 0);
-
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_add (a, b, d, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (a, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/add_ui.c b/Build/source/libs/mpfr/mpfr-src/src/add_ui.c
deleted file mode 100644
index df774950efd..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/add_ui.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* mpfr_add_ui -- add a floating-point number with a machine integer
-
-Copyright 2000-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_add_ui (mpfr_ptr y, mpfr_srcptr x, unsigned long int u, mpfr_rnd_t rnd_mode)
-{
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%lu rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y));
-
- /* (unsigned long) 0 is assumed to be a real 0 (unsigned) */
- if (MPFR_UNLIKELY (u == 0))
- return mpfr_set (y, x, rnd_mode);
-
- /* This block is actually useless, but this is a minor optimization. */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- if (MPFR_IS_INF (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0); /* +/-infinity is exact */
- }
- MPFR_ASSERTD (MPFR_IS_ZERO (x) && u != 0);
- /* Note: the fact that u != 0 is important due to signed zeros. */
- return mpfr_set_ui (y, u, rnd_mode);
- }
-
- /* Main code */
- {
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Optimization note: Exponent save/restore operations may be
- removed if mpfr_add works even when uu is out-of-range. */
- MPFR_SAVE_EXPO_MARK (expo);
-
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- mpfr_t uu;
- mp_limb_t up[1];
- int cnt;
-
- MPFR_TMP_INIT1 (up, uu, GMP_NUMB_BITS);
- /* So, u fits in a mp_limb_t, which justifies the casts below. */
- MPFR_ASSERTD (u != 0);
- count_leading_zeros (cnt, (mp_limb_t) u);
- up[0] = (mp_limb_t) u << cnt;
- MPFR_SET_EXP (uu, GMP_NUMB_BITS - cnt);
- inex = mpfr_add (y, x, uu, rnd_mode);
- }
-#else
- {
- mpfr_t uu;
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- mpfr_set_ui (uu, u, MPFR_RNDZ);
- inex = mpfr_add (y, x, uu, rnd_mode);
- mpfr_clear (uu);
- }
-#endif
-
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd_mode);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/agm.c b/Build/source/libs/mpfr/mpfr-src/src/agm.c
deleted file mode 100644
index a571ebefb80..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/agm.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/* mpfr_agm -- arithmetic-geometric mean of two floating-point numbers
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* agm(x,y) is between x and y, so we don't need to save exponent range */
-int
-mpfr_agm (mpfr_ptr r, mpfr_srcptr op2, mpfr_srcptr op1, mpfr_rnd_t rnd_mode)
-{
- int compare, inexact;
- mp_size_t s;
- mpfr_prec_t p, q;
- mp_limb_t *up, *vp, *ufp, *vfp;
- mpfr_t u, v, uf, vf, sc1, sc2;
- mpfr_exp_t scaleop = 0, scaleit;
- unsigned long n; /* number of iterations */
- MPFR_ZIV_DECL (loop);
- MPFR_TMP_DECL(marker);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("op2[%Pu]=%.*Rg op1[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (op2), mpfr_log_prec, op2,
- mpfr_get_prec (op1), mpfr_log_prec, op1, rnd_mode),
- ("r[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (r), mpfr_log_prec, r, inexact));
-
- /* Deal with special values */
- if (MPFR_ARE_SINGULAR (op1, op2))
- {
- /* If a or b is NaN, the result is NaN */
- if (MPFR_IS_NAN(op1) || MPFR_IS_NAN(op2))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- /* now one of a or b is Inf or 0 */
- /* If a and b is +Inf, the result is +Inf.
- Otherwise if a or b is -Inf or 0, the result is NaN */
- else if (MPFR_IS_INF(op1) || MPFR_IS_INF(op2))
- {
- if (MPFR_IS_STRICTPOS(op1) && MPFR_IS_STRICTPOS(op2))
- {
- MPFR_SET_INF(r);
- MPFR_SET_SAME_SIGN(r, op1);
- MPFR_RET(0); /* exact */
- }
- else
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- }
- else /* a and b are neither NaN nor Inf, and one is zero */
- { /* If a or b is 0, the result is +0, in particular because the
- result is always >= 0 with our definition (Maple sometimes
- chooses a different sign for GaussAGM, but it uses another
- definition, with possible negative results). */
- MPFR_ASSERTD (MPFR_IS_ZERO (op1) || MPFR_IS_ZERO (op2));
- MPFR_SET_POS (r);
- MPFR_SET_ZERO (r);
- MPFR_RET (0); /* exact */
- }
- }
-
- /* If a or b is negative (excluding -Infinity), the result is NaN */
- if (MPFR_UNLIKELY(MPFR_IS_NEG(op1) || MPFR_IS_NEG(op2)))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
-
- /* Precision of the following calculus */
- q = MPFR_PREC(r);
- p = q + MPFR_INT_CEIL_LOG2(q) + 15;
- MPFR_ASSERTD (p >= 7); /* see algorithms.tex */
- s = MPFR_PREC2LIMBS (p);
-
- /* b (op2) and a (op1) are the 2 operands but we want b >= a */
- compare = mpfr_cmp (op1, op2);
- if (MPFR_UNLIKELY( compare == 0 ))
- return mpfr_set (r, op1, rnd_mode);
- else if (compare > 0)
- {
- mpfr_srcptr t = op1;
- op1 = op2;
- op2 = t;
- }
-
- /* Now b (=op2) > a (=op1) */
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_MARK(marker);
-
- /* Main loop */
- MPFR_ZIV_INIT (loop, p);
- for (;;)
- {
- mpfr_prec_t eq;
- unsigned long err = 0; /* must be set to 0 at each Ziv iteration */
- MPFR_BLOCK_DECL (flags);
-
- /* Init temporary vars */
- MPFR_TMP_INIT (up, u, p, s);
- MPFR_TMP_INIT (vp, v, p, s);
- MPFR_TMP_INIT (ufp, uf, p, s);
- MPFR_TMP_INIT (vfp, vf, p, s);
-
- /* Calculus of un and vn */
- retry:
- MPFR_BLOCK (flags,
- mpfr_mul (u, op1, op2, MPFR_RNDN);
- /* mpfr_mul(...): faster since PREC(op) < PREC(u) */
- mpfr_add (v, op1, op2, MPFR_RNDN);
- /* mpfr_add with !=prec is still good */);
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags) || MPFR_UNDERFLOW (flags)))
- {
- mpfr_exp_t e1 , e2;
-
- MPFR_ASSERTN (scaleop == 0);
- e1 = MPFR_GET_EXP (op1);
- e2 = MPFR_GET_EXP (op2);
-
- /* Let's determine scaleop to avoid an overflow/underflow. */
- if (MPFR_OVERFLOW (flags))
- {
- /* Let's recall that emin <= e1 <= e2 <= emax.
- There has been an overflow. Thus e2 >= emax/2.
- If the mpfr_mul overflowed, then e1 + e2 > emax.
- If the mpfr_add overflowed, then e2 = emax.
- We want: (e1 + scale) + (e2 + scale) <= emax,
- i.e. scale <= (emax - e1 - e2) / 2. Let's take
- scale = min(floor((emax - e1 - e2) / 2), -1).
- This is OK, as:
- 1. emin <= scale <= -1.
- 2. e1 + scale >= emin. Indeed:
- * If e1 + e2 > emax, then
- e1 + scale >= e1 + (emax - e1 - e2) / 2 - 1
- >= (emax + e1 - emax) / 2 - 1
- >= e1 / 2 - 1 >= emin.
- * Otherwise, mpfr_mul didn't overflow, therefore
- mpfr_add overflowed and e2 = emax, so that
- e1 > emin (see restriction below).
- e1 + scale > emin - 1, thus e1 + scale >= emin.
- 3. e2 + scale <= emax, since scale < 0. */
- if (e1 + e2 > MPFR_EMAX_MAX)
- {
- scaleop = - (((e1 + e2) - MPFR_EMAX_MAX + 1) / 2);
- MPFR_ASSERTN (scaleop < 0);
- }
- else
- {
- /* The addition necessarily overflowed. */
- MPFR_ASSERTN (e2 == MPFR_EMAX_MAX);
- /* The case where e1 = emin and e2 = emax is not supported
- here. This would mean that the precision of e2 would be
- huge (and possibly not supported in practice anyway). */
- MPFR_ASSERTN (e1 > MPFR_EMIN_MIN);
- /* Note: this case is probably impossible to have in practice
- since we need e2 = emax, and no overflow in the product.
- Since the product is >= 2^(e1+e2-2), it implies
- e1 + e2 - 2 <= emax, thus e1 <= 2. Now to get an overflow
- we need op1 >= 1/2 ulp(op2), which implies that the
- precision of op2 should be at least emax-2. On a 64-bit
- computer this is impossible to have, and would require
- a huge amount of memory on a 32-bit computer. */
- scaleop = -1;
- }
-
- }
- else /* underflow only (in the multiplication) */
- {
- /* We have e1 + e2 <= emin (so, e1 <= e2 <= 0).
- We want: (e1 + scale) + (e2 + scale) >= emin + 1,
- i.e. scale >= (emin + 1 - e1 - e2) / 2. let's take
- scale = ceil((emin + 1 - e1 - e2) / 2). This is OK, as:
- 1. 1 <= scale <= emax.
- 2. e1 + scale >= emin + 1 >= emin.
- 3. e2 + scale <= scale <= emax. */
- MPFR_ASSERTN (e1 <= e2 && e2 <= 0);
- scaleop = (MPFR_EMIN_MIN + 2 - e1 - e2) / 2;
- MPFR_ASSERTN (scaleop > 0);
- }
-
- MPFR_ALIAS (sc1, op1, MPFR_SIGN (op1), e1 + scaleop);
- MPFR_ALIAS (sc2, op2, MPFR_SIGN (op2), e2 + scaleop);
- op1 = sc1;
- op2 = sc2;
- MPFR_LOG_MSG (("Exception in pre-iteration, scale = %"
- MPFR_EXP_FSPEC "d\n", scaleop));
- goto retry;
- }
-
- MPFR_CLEAR_FLAGS ();
- mpfr_sqrt (u, u, MPFR_RNDN);
- mpfr_div_2ui (v, v, 1, MPFR_RNDN);
-
- scaleit = 0;
- n = 1;
- while (mpfr_cmp2 (u, v, &eq) != 0 && eq <= p - 2)
- {
- MPFR_BLOCK_DECL (flags2);
-
- MPFR_LOG_MSG (("Iteration n = %lu\n", n));
-
- retry2:
- mpfr_add (vf, u, v, MPFR_RNDN); /* No overflow? */
- mpfr_div_2ui (vf, vf, 1, MPFR_RNDN);
- /* See proof in algorithms.tex */
- if (eq > p / 4)
- {
- mpfr_t w;
- MPFR_BLOCK_DECL (flags3);
-
- MPFR_LOG_MSG (("4*eq > p\n", 0));
-
- /* vf = V(k) */
- mpfr_init2 (w, (p + 1) / 2);
- MPFR_BLOCK
- (flags3,
- mpfr_sub (w, v, u, MPFR_RNDN); /* e = V(k-1)-U(k-1) */
- mpfr_sqr (w, w, MPFR_RNDN); /* e = e^2 */
- mpfr_div_2ui (w, w, 4, MPFR_RNDN); /* e*= (1/2)^2*1/4 */
- mpfr_div (w, w, vf, MPFR_RNDN); /* 1/4*e^2/V(k) */
- );
- if (MPFR_LIKELY (! MPFR_UNDERFLOW (flags3)))
- {
- mpfr_sub (v, vf, w, MPFR_RNDN);
- err = MPFR_GET_EXP (vf) - MPFR_GET_EXP (v); /* 0 or 1 */
- mpfr_clear (w);
- break;
- }
- /* There has been an underflow because of the cancellation
- between V(k-1) and U(k-1). Let's use the conventional
- method. */
- MPFR_LOG_MSG (("4*eq > p -> underflow\n", 0));
- mpfr_clear (w);
- MPFR_CLEAR_UNDERFLOW ();
- }
- /* U(k) increases, so that U.V can overflow (but not underflow). */
- MPFR_BLOCK (flags2, mpfr_mul (uf, u, v, MPFR_RNDN););
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags2)))
- {
- mpfr_exp_t scale2;
-
- scale2 = - (((MPFR_GET_EXP (u) + MPFR_GET_EXP (v))
- - MPFR_EMAX_MAX + 1) / 2);
- MPFR_EXP (u) += scale2;
- MPFR_EXP (v) += scale2;
- scaleit += scale2;
- MPFR_LOG_MSG (("Overflow in iteration n = %lu, scaleit = %"
- MPFR_EXP_FSPEC "d (%" MPFR_EXP_FSPEC "d)\n",
- n, scaleit, scale2));
- MPFR_CLEAR_OVERFLOW ();
- goto retry2;
- }
- mpfr_sqrt (u, uf, MPFR_RNDN);
- mpfr_swap (v, vf);
- n ++;
- }
-
- MPFR_LOG_MSG (("End of iterations (n = %lu)\n", n));
-
- /* the error on v is bounded by (18n+51) ulps, or twice if there
- was an exponent loss in the final subtraction */
- err += MPFR_INT_CEIL_LOG2(18 * n + 51); /* 18n+51 should not overflow
- since n is about log(p) */
- /* we should have n+2 <= 2^(p/4) [see algorithms.tex] */
- if (MPFR_LIKELY (MPFR_INT_CEIL_LOG2(n + 2) <= p / 4 &&
- MPFR_CAN_ROUND (v, p - err, q, rnd_mode)))
- break; /* Stop the loop */
-
- /* Next iteration */
- MPFR_ZIV_NEXT (loop, p);
- s = MPFR_PREC2LIMBS (p);
- }
- MPFR_ZIV_FREE (loop);
-
- if (MPFR_UNLIKELY ((__gmpfr_flags & (MPFR_FLAGS_ALL ^ MPFR_FLAGS_INEXACT))
- != 0))
- {
- MPFR_ASSERTN (! mpfr_overflow_p ()); /* since mpfr_clear_flags */
- MPFR_ASSERTN (! mpfr_underflow_p ()); /* since mpfr_clear_flags */
- MPFR_ASSERTN (! mpfr_divby0_p ()); /* since mpfr_clear_flags */
- MPFR_ASSERTN (! mpfr_nanflag_p ()); /* since mpfr_clear_flags */
- }
-
- /* Setting of the result */
- inexact = mpfr_set (r, v, rnd_mode);
- MPFR_EXP (r) -= scaleop + scaleit;
-
- /* Let's clean */
- MPFR_TMP_FREE(marker);
-
- MPFR_SAVE_EXPO_FREE (expo);
- /* From the definition of the AGM, underflow and overflow
- are not possible. */
- return mpfr_check_range (r, inexact, rnd_mode);
- /* agm(u,v) can be exact for u, v rational only for u=v.
- Proof (due to Nicolas Brisebarre): it suffices to consider
- u=1 and v<1. Then 1/AGM(1,v) = 2F1(1/2,1/2,1;1-v^2),
- and a theorem due to G.V. Chudnovsky states that for x a
- non-zero algebraic number with |x|<1, then
- 2F1(1/2,1/2,1;x) and 2F1(-1/2,1/2,1;x) are algebraically
- independent over Q. */
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ai.c b/Build/source/libs/mpfr/mpfr-src/src/ai.c
deleted file mode 100644
index 66650dddd16..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ai.c
+++ /dev/null
@@ -1,690 +0,0 @@
-/* mpfr_ai -- Airy function Ai
-
-Copyright 2010-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Reminder and notations:
- -----------------------
-
- Ai is the solution of:
- / y'' - x*y = 0
- { Ai(0) = 1/ ( 9^(1/3)*Gamma(2/3) )
- \ Ai'(0) = -1/ ( 3^(1/3)*Gamma(1/3) )
-
- Series development:
- Ai(x) = sum (a_i*x^i)
- = sum (t_i)
-
- Recurrences:
- a_(i+3) = a_i / ((i+2)*(i+3))
- t_(i+3) = t_i * x^3 / ((i+2)*(i+3))
-
- Values:
- a_0 = Ai(0) ~ 0.355
- a_1 = Ai'(0) ~ -0.259
-*/
-
-
-/* Airy function Ai evaluated by the most naive algorithm.
- Assume that x is a finite number. */
-static int
-mpfr_ai1 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
- mpfr_prec_t wprec; /* working precision */
- mpfr_prec_t prec; /* target precision */
- mpfr_prec_t err; /* used to estimate the evaluation error */
- mpfr_prec_t correct_bits; /* estimates the number of correct bits*/
- unsigned long int k;
- unsigned long int cond; /* condition number of the series */
- unsigned long int assumed_exponent; /* used as a lowerbound of |EXP(Ai(x))| */
- int r;
- mpfr_t s; /* used to store the partial sum */
- mpfr_t ti, tip1; /* used to store successive values of t_i */
- mpfr_t x3; /* used to store x^3 */
- mpfr_t tmp_sp, tmp2_sp; /* small precision variables */
- unsigned long int x3u; /* used to store ceil(x^3) */
- mpfr_t temp1, temp2;
- int test1, test2;
-
- /* Logging */
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y) );
-
- /* Save current exponents range */
- MPFR_SAVE_EXPO_MARK (expo);
-
- if (MPFR_UNLIKELY (MPFR_IS_ZERO (x)))
- {
- mpfr_t y1, y2;
- prec = MPFR_ADD_PREC (MPFR_PREC (y), 3);
- mpfr_init2 (y1, prec);
- mpfr_init2 (y2, prec);
- MPFR_ZIV_INIT (loop, prec);
-
- /* ZIV loop */
- for (;;)
- {
- mpfr_gamma_one_and_two_third (y1, y2, prec); /* y2 = Gamma(2/3)(1 + delta1), |delta1| <= 2^{1-prec}. */
-
- r = mpfr_set_ui (y1, 9, MPFR_RNDN);
- MPFR_ASSERTD (r == 0);
- mpfr_cbrt (y1, y1, MPFR_RNDN); /* y1 = cbrt(9)(1 + delta2), |delta2| <= 2^{-prec}. */
- mpfr_mul (y1, y1, y2, MPFR_RNDN);
- mpfr_ui_div (y1, 1, y1, MPFR_RNDN);
- if (MPFR_LIKELY (MPFR_CAN_ROUND (y1, prec - 3, MPFR_PREC (y), rnd)))
- break;
- MPFR_ZIV_NEXT (loop, prec);
- }
- r = mpfr_set (y, y1, rnd);
- MPFR_ZIV_FREE (loop);
- MPFR_SAVE_EXPO_FREE (expo);
- mpfr_clear (y1);
- mpfr_clear (y2);
- return mpfr_check_range (y, r, rnd);
- }
-
- /* now x is not zero */
- MPFR_ASSERTD(!MPFR_IS_ZERO(x));
-
- /* FIXME: underflow for large values of |x| ? */
-
-
- /* Set initial precision */
- /* If we compute sum(i=0, N-1, t_i), the relative error is bounded by */
- /* 2*(4N)*2^(1-wprec)*C(|x|)/Ai(x) */
- /* where C(|x|) = 1 if 0<=x<=1 */
- /* and C(|x|) = (1/2)*x^(-1/4)*exp(2/3 x^(3/2)) if x >= 1 */
-
- /* A priori, we do not know N, so we estimate it to ~ prec */
- /* If 0<=x<=1, we estimate Ai(x) ~ 1/8 */
- /* if 1<=x, we estimate Ai(x) ~ (1/4)*x^(-1/4)*exp(-2/3 * x^(3/2)) */
- /* if x<=0, ????? */
-
- /* We begin with 11 guard bits */
- prec = MPFR_ADD_PREC (MPFR_PREC (y), 11);
- MPFR_ZIV_INIT (loop, prec);
-
- /* The working precision is heuristically chosen in order to obtain */
- /* approximately prec correct bits in the sum. To sum up: the sum */
- /* is stopped when the *exact* sum gives ~ prec correct bit. And */
- /* when it is stopped, the accuracy of the computed sum, with respect*/
- /* to the exact one should be ~prec bits. */
- mpfr_init2 (tmp_sp, MPFR_SMALL_PRECISION);
- mpfr_init2 (tmp2_sp, MPFR_SMALL_PRECISION);
- mpfr_abs (tmp_sp, x, MPFR_RNDU);
- mpfr_pow_ui (tmp_sp, tmp_sp, 3, MPFR_RNDU);
- mpfr_sqrt (tmp_sp, tmp_sp, MPFR_RNDU); /* tmp_sp ~ |x|^(3/2) */
-
- /* 0.96179669392597567 >~ 2/3 * log2(e). See algorithms.tex */
- mpfr_set_str (tmp2_sp, "0.96179669392597567", 10, MPFR_RNDU);
- mpfr_mul (tmp2_sp, tmp_sp, tmp2_sp, MPFR_RNDU);
-
- /* cond represents the number of lost bits in the evaluation of the sum */
- if (MPFR_GET_EXP (x) <= 0)
- cond = 0;
- else
- {
- MPFR_BLOCK_DECL (flags);
-
- MPFR_BLOCK (flags, cond = mpfr_get_ui (tmp2_sp, MPFR_RNDU));
- MPFR_ASSERTN (! MPFR_ERANGEFLAG (flags));
- cond -= (MPFR_GET_EXP (x) - 1) / 4 + 1;
- }
-
- /* The variable assumed_exponent is used to store the maximal assumed */
- /* exponent of Ai(x). More precisely, we assume that |Ai(x)| will be */
- /* greater than 2^{-assumed_exponent}. */
- if (MPFR_IS_POS (x))
- {
- if (MPFR_GET_EXP (x) <= 0)
- assumed_exponent = 3;
- else
- {
- unsigned long int t;
- MPFR_BLOCK_DECL (flags);
-
- MPFR_BLOCK (flags, t = mpfr_get_ui (tmp2_sp, MPFR_RNDU));
- MPFR_ASSERTN (! MPFR_ERANGEFLAG (flags));
- assumed_exponent = t + 2 + (MPFR_GET_EXP (x) / 4 + 1);
- MPFR_ASSERTN (assumed_exponent > t);
- }
- }
- /* We do not know Ai (x) yet */
- /* We cover the case when EXP (Ai (x))>=-10 */
- else
- assumed_exponent = 10;
-
- {
- unsigned long int t, u;
-
- t = assumed_exponent + cond;
- MPFR_ASSERTN (t >= cond);
- u = MPFR_INT_CEIL_LOG2 (prec) + 5;
- t += u;
- MPFR_ASSERTN (t >= u);
- wprec = MPFR_ADD_PREC (prec, t);
- }
-
- mpfr_init (ti);
- mpfr_init (tip1);
- mpfr_init (temp1);
- mpfr_init (temp2);
- mpfr_init (x3);
- mpfr_init (s);
-
- /* ZIV loop */
- for (;;)
- {
- MPFR_LOG_MSG (("Working precision: %Pu\n", wprec));
- mpfr_set_prec (ti, wprec);
- mpfr_set_prec (tip1, wprec);
- mpfr_set_prec (x3, wprec);
- mpfr_set_prec (s, wprec);
-
- mpfr_sqr (x3, x, MPFR_RNDU);
- mpfr_mul (x3, x3, x, (MPFR_IS_POS (x)?MPFR_RNDU:MPFR_RNDD)); /* x3=x^3 */
- if (MPFR_IS_NEG (x))
- MPFR_CHANGE_SIGN (x3);
- x3u = mpfr_get_ui (x3, MPFR_RNDU); /* x3u >= ceil(x^3) */
- if (MPFR_IS_NEG (x))
- MPFR_CHANGE_SIGN (x3);
-
- mpfr_gamma_one_and_two_third (temp1, temp2, wprec);
- mpfr_set_ui (ti, 9, MPFR_RNDN);
- mpfr_cbrt (ti, ti, MPFR_RNDN);
- mpfr_mul (ti, ti, temp2, MPFR_RNDN);
- mpfr_ui_div (ti, 1, ti , MPFR_RNDN); /* ti = 1/( Gamma (2/3)*9^(1/3) ) */
-
- mpfr_set_ui (tip1, 3, MPFR_RNDN);
- mpfr_cbrt (tip1, tip1, MPFR_RNDN);
- mpfr_mul (tip1, tip1, temp1, MPFR_RNDN);
- mpfr_neg (tip1, tip1, MPFR_RNDN);
- mpfr_div (tip1, x, tip1, MPFR_RNDN); /* tip1 = -x/(Gamma (1/3)*3^(1/3)) */
-
- mpfr_add (s, ti, tip1, MPFR_RNDN);
-
-
- /* Evaluation of the series */
- k = 2;
- for (;;)
- {
- mpfr_mul (ti, ti, x3, MPFR_RNDN);
- mpfr_mul (tip1, tip1, x3, MPFR_RNDN);
-
- mpfr_div_ui2 (ti, ti, k, (k+1), MPFR_RNDN);
- mpfr_div_ui2 (tip1, tip1, (k+1), (k+2), MPFR_RNDN);
-
- k += 3;
- mpfr_add (s, s, ti, MPFR_RNDN);
- mpfr_add (s, s, tip1, MPFR_RNDN);
-
- /* FIXME: if s==0 */
- test1 = MPFR_IS_ZERO (ti)
- || (MPFR_GET_EXP (ti) + (mpfr_exp_t)prec + 3 <= MPFR_GET_EXP (s));
- test2 = MPFR_IS_ZERO (tip1)
- || (MPFR_GET_EXP (tip1) + (mpfr_exp_t)prec + 3 <= MPFR_GET_EXP (s));
-
- if ( test1 && test2 && (x3u <= k*(k+1)/2) )
- break; /* FIXME: if k*(k+1) overflows */
- }
-
- MPFR_LOG_MSG (("Truncation rank: %lu\n", k));
-
- err = 4 + MPFR_INT_CEIL_LOG2 (k) + cond - MPFR_GET_EXP (s);
-
- /* err is the number of bits lost due to the evaluation error */
- /* wprec-(prec+1): number of bits lost due to the approximation error */
- MPFR_LOG_MSG (("Roundoff error: %Pu\n", err));
- MPFR_LOG_MSG (("Approxim error: %Pu\n", wprec-prec-1));
-
- if (wprec < err + 1)
- correct_bits = 0;
- else if (wprec < err + prec +1)
- correct_bits = wprec - err - 1; /* since wprec > err + 1,
- correct_bits > 0 */
- else
- correct_bits = prec;
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, correct_bits, MPFR_PREC (y), rnd)))
- break;
-
- if (correct_bits == 0)
- {
- assumed_exponent *= 2;
- MPFR_LOG_MSG (("Not a single bit correct (assumed_exponent=%lu)\n",
- assumed_exponent));
- wprec = prec + 5 + MPFR_INT_CEIL_LOG2 (prec) + cond +
- assumed_exponent;
- }
- else if (correct_bits < prec)
- { /* The precision was badly chosen */
- MPFR_LOG_MSG (("Bad assumption on the exponent of Ai(x)"
- " (E=%" MPFR_EXP_FSPEC "d)\n",
- (mpfr_eexp_t) MPFR_GET_EXP (s)));
- wprec = prec + err + 1;
- }
- else
- { /* We are really in a bad case of the TMD */
- MPFR_ZIV_NEXT (loop, prec);
-
- /* We update wprec */
- /* We assume that K will not be multiplied by more than 4 */
- wprec = prec + (MPFR_INT_CEIL_LOG2 (k) + 2) + 5 + cond
- - MPFR_GET_EXP (s);
- }
-
- } /* End of ZIV loop */
-
- MPFR_ZIV_FREE (loop);
-
- r = mpfr_set (y, s, rnd);
-
- mpfr_clear (ti);
- mpfr_clear (tip1);
- mpfr_clear (temp1);
- mpfr_clear (temp2);
- mpfr_clear (x3);
- mpfr_clear (s);
- mpfr_clear (tmp_sp);
- mpfr_clear (tmp2_sp);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, r, rnd);
-}
-
-
-/* Airy function Ai evaluated by Smith algorithm.
- Assume that x is a finite non-zero number. */
-static int
-mpfr_ai2 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
- mpfr_prec_t wprec; /* working precision */
- mpfr_prec_t prec; /* target precision */
- mpfr_prec_t err; /* used to estimate the evaluation error */
- mpfr_prec_t correctBits; /* estimates the number of correct bits*/
- unsigned long int i, j, L, t;
- unsigned long int cond; /* condition number of the series */
- unsigned long int assumed_exponent; /* used as a lowerbound of |EXP(Ai(x))| */
- int r; /* returned ternary value */
- mpfr_t s; /* used to store the partial sum */
- mpfr_t u0, u1;
- mpfr_t *z; /* used to store the (x^3j) */
- mpfr_t result;
- mpfr_t tmp_sp, tmp2_sp; /* small precision variables */
- unsigned long int x3u; /* used to store ceil (x^3) */
- mpfr_t temp1, temp2;
- int test0, test1;
-
- /* Logging */
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y));
-
- /* Save current exponents range */
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* FIXME: underflow for large values of |x| */
-
- /* Set initial precision */
- /* See the analysis for the naive evaluation */
-
- /* We begin with 11 guard bits */
- prec = MPFR_PREC (y) + 11;
- MPFR_ZIV_INIT (loop, prec);
-
- mpfr_init2 (tmp_sp, MPFR_SMALL_PRECISION);
- mpfr_init2 (tmp2_sp, MPFR_SMALL_PRECISION);
- mpfr_abs (tmp_sp, x, MPFR_RNDU);
- mpfr_pow_ui (tmp_sp, tmp_sp, 3, MPFR_RNDU);
- mpfr_sqrt (tmp_sp, tmp_sp, MPFR_RNDU); /* tmp_sp ~ |x|^(3/2) */
-
- /* 0.96179669392597567 >~ 2/3 * log2(e). See algorithms.tex */
- mpfr_set_str (tmp2_sp, "0.96179669392597567", 10, MPFR_RNDU);
- mpfr_mul (tmp2_sp, tmp_sp, tmp2_sp, MPFR_RNDU);
-
- /* cond represents the number of lost bits in the evaluation of the sum */
- if (MPFR_GET_EXP (x) <= 0)
- cond = 0;
- else
- {
- MPFR_BLOCK_DECL (flags);
-
- MPFR_BLOCK (flags, cond = mpfr_get_ui (tmp2_sp, MPFR_RNDU));
- MPFR_ASSERTN (! MPFR_ERANGEFLAG (flags));
- cond -= (MPFR_GET_EXP (x) - 1) / 4 + 1;
- }
-
- /* This variable is used to store the maximal assumed exponent of */
- /* Ai(x). More precisely, we assume that |Ai(x)| will be greater than */
- /* 2^{-assumed_exponent}. */
- if (MPFR_IS_POS (x))
- {
- if (MPFR_GET_EXP (x) <= 0)
- assumed_exponent = 3;
- else
- {
- unsigned long int t;
- MPFR_BLOCK_DECL (flags);
-
- MPFR_BLOCK (flags, t = mpfr_get_ui (tmp2_sp, MPFR_RNDU));
- MPFR_ASSERTN (! MPFR_ERANGEFLAG (flags));
- assumed_exponent = t + 2 + (MPFR_GET_EXP (x) / 4 + 1);
- MPFR_ASSERTN (assumed_exponent > t);
- }
- }
- /* We do not know Ai(x) yet */
- /* We cover the case when EXP(Ai(x))>=-10 */
- else
- assumed_exponent = 10;
-
- {
- unsigned long int t, u;
-
- t = assumed_exponent + cond;
- MPFR_ASSERTN (t >= cond);
- u = MPFR_INT_CEIL_LOG2 (prec) + 6;
- t += u;
- MPFR_ASSERTN (t >= u);
- wprec = MPFR_ADD_PREC (prec, t);
- }
-
- /* We assume that the truncation rank will be ~ prec */
- L = __gmpfr_isqrt (prec);
- MPFR_LOG_MSG (("size of blocks L = %lu\n", L));
-
- z = (mpfr_t *) mpfr_allocate_func ( (L + 1) * sizeof (mpfr_t) );
- MPFR_ASSERTN (z != NULL);
- for (j=0; j<=L; j++)
- mpfr_init (z[j]);
-
- mpfr_init (s);
- mpfr_init (u0); mpfr_init (u1);
- mpfr_init (result);
- mpfr_init (temp1);
- mpfr_init (temp2);
-
- /* ZIV loop */
- for (;;)
- {
- MPFR_LOG_MSG (("working precision: %Pu\n", wprec));
-
- for (j=0; j<=L; j++)
- mpfr_set_prec (z[j], wprec);
- mpfr_set_prec (s, wprec);
- mpfr_set_prec (u0, wprec); mpfr_set_prec (u1, wprec);
- mpfr_set_prec (result, wprec);
-
- mpfr_set_ui (u0, 1, MPFR_RNDN);
- mpfr_set (u1, x, MPFR_RNDN);
-
- mpfr_set_ui (z[0], 1, MPFR_RNDU);
- mpfr_sqr (z[1], u1, MPFR_RNDU);
- mpfr_mul (z[1], z[1], x, (MPFR_IS_POS (x) ? MPFR_RNDU : MPFR_RNDD) );
-
- if (MPFR_IS_NEG (x))
- MPFR_CHANGE_SIGN (z[1]);
- x3u = mpfr_get_ui (z[1], MPFR_RNDU); /* x3u >= ceil (x^3) */
- if (MPFR_IS_NEG (x))
- MPFR_CHANGE_SIGN (z[1]);
-
- for (j=2; j<=L ;j++)
- {
- if (j%2 == 0)
- mpfr_sqr (z[j], z[j/2], MPFR_RNDN);
- else
- mpfr_mul (z[j], z[j-1], z[1], MPFR_RNDN);
- }
-
- mpfr_gamma_one_and_two_third (temp1, temp2, wprec);
- mpfr_set_ui (u0, 9, MPFR_RNDN);
- mpfr_cbrt (u0, u0, MPFR_RNDN);
- mpfr_mul (u0, u0, temp2, MPFR_RNDN);
- mpfr_ui_div (u0, 1, u0 , MPFR_RNDN); /* u0 = 1/( Gamma (2/3)*9^(1/3) ) */
-
- mpfr_set_ui (u1, 3, MPFR_RNDN);
- mpfr_cbrt (u1, u1, MPFR_RNDN);
- mpfr_mul (u1, u1, temp1, MPFR_RNDN);
- mpfr_neg (u1, u1, MPFR_RNDN);
- mpfr_div (u1, x, u1, MPFR_RNDN); /* u1 = -x/(Gamma (1/3)*3^(1/3)) */
-
- mpfr_set_ui (result, 0, MPFR_RNDN);
- t = 0;
-
- /* Evaluation of the series by Smith' method */
- for (i=0; ; i++)
- {
- t += 3 * L;
-
- /* k = 0 */
- t -= 3;
- mpfr_set (s, z[L-1], MPFR_RNDN);
- for (j=L-2; ; j--)
- {
- t -= 3;
- mpfr_div_ui2 (s, s, (t+2), (t+3), MPFR_RNDN);
- mpfr_add (s, s, z[j], MPFR_RNDN);
- if (j==0)
- break;
- }
- mpfr_mul (s, s, u0, MPFR_RNDN);
- mpfr_add (result, result, s, MPFR_RNDN);
-
- mpfr_mul (u0, u0, z[L], MPFR_RNDN);
- for (j=0; j<=L-1; j++)
- {
- mpfr_div_ui2 (u0, u0, (t + 2), (t + 3), MPFR_RNDN);
- t += 3;
- }
-
- t++;
-
- /* k = 1 */
- t -= 3;
- mpfr_set (s, z[L-1], MPFR_RNDN);
- for (j=L-2; ; j--)
- {
- t -= 3;
- mpfr_div_ui2 (s, s, (t + 2), (t + 3), MPFR_RNDN);
- mpfr_add (s, s, z[j], MPFR_RNDN);
- if (j==0)
- break;
- }
- mpfr_mul (s, s, u1, MPFR_RNDN);
- mpfr_add (result, result, s, MPFR_RNDN);
-
- mpfr_mul (u1, u1, z[L], MPFR_RNDN);
- for (j=0; j<=L-1; j++)
- {
- mpfr_div_ui2 (u1, u1, (t + 2), (t + 3), MPFR_RNDN);
- t += 3;
- }
-
- t++;
-
- /* k = 2 */
- t++;
-
- /* End of the loop over k */
- t -= 3;
-
- test0 = MPFR_IS_ZERO (u0) ||
- MPFR_GET_EXP (u0) + (mpfr_exp_t)prec + 4 <= MPFR_GET_EXP (result);
- test1 = MPFR_IS_ZERO (u1) ||
- MPFR_GET_EXP (u1) + (mpfr_exp_t)prec + 4 <= MPFR_GET_EXP (result);
-
- if ( test0 && test1 && (x3u <= (t + 2) * (t + 3) / 2) )
- break;
- }
-
- MPFR_LOG_MSG (("Truncation rank: %lu\n", t));
-
- err = (5 + MPFR_INT_CEIL_LOG2 (L+1) + MPFR_INT_CEIL_LOG2 (i+1)
- + cond - MPFR_GET_EXP (result));
-
- /* err is the number of bits lost due to the evaluation error */
- /* wprec-(prec+1): number of bits lost due to the approximation error */
- MPFR_LOG_MSG (("Roundoff error: %Pu\n", err));
- MPFR_LOG_MSG (("Approxim error: %Pu\n", wprec - prec - 1));
-
- if (wprec < err+1)
- correctBits = 0;
- else
- {
- if (wprec < err+prec+1)
- correctBits = wprec - err - 1;
- else
- correctBits = prec;
- }
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (result, correctBits,
- MPFR_PREC (y), rnd)))
- break;
-
- for (j=0; j<=L; j++)
- mpfr_clear (z[j]);
- mpfr_free_func (z, (L + 1) * sizeof (mpfr_t));
- L = __gmpfr_isqrt (t);
- MPFR_LOG_MSG (("size of blocks L = %lu\n", L));
- z = (mpfr_t *) mpfr_allocate_func ( (L + 1) * sizeof (mpfr_t));
- MPFR_ASSERTN (z != NULL);
- for (j=0; j<=L; j++)
- mpfr_init (z[j]);
-
- if (correctBits == 0)
- {
- assumed_exponent *= 2;
- MPFR_LOG_MSG (("Not a single bit correct (assumed_exponent=%lu)\n",
- assumed_exponent));
- wprec = prec + 6 + MPFR_INT_CEIL_LOG2 (t) + cond + assumed_exponent;
- }
- else
- {
- if (correctBits < prec)
- { /* The precision was badly chosen */
- MPFR_LOG_MSG (("Bad assumption on the exponent of Ai(x)"
- " (E=%" MPFR_EXP_FSPEC "d)\n",
- (mpfr_eexp_t) MPFR_GET_EXP (result)));
- wprec = prec + err + 1;
- }
- else
- { /* We are really in a bad case of the TMD */
- MPFR_ZIV_NEXT (loop, prec);
-
- /* We update wprec */
- /* We assume that t will not be multiplied by more than 4 */
- wprec = (prec + (MPFR_INT_CEIL_LOG2 (t) + 2) + 6 + cond
- - MPFR_GET_EXP (result));
- }
- }
- } /* End of ZIV loop */
-
- MPFR_ZIV_FREE (loop);
-
- r = mpfr_set (y, result, rnd);
-
- mpfr_clear (tmp_sp);
- mpfr_clear (tmp2_sp);
- for (j=0; j<=L; j++)
- mpfr_clear (z[j]);
- mpfr_free_func (z, (L + 1) * sizeof (mpfr_t));
-
- mpfr_clear (s);
- mpfr_clear (u0); mpfr_clear (u1);
- mpfr_clear (result);
- mpfr_clear (temp1);
- mpfr_clear (temp2);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, r, rnd);
-}
-
-/* We consider that the boundary between the area where the naive method
- should preferably be used and the area where Smith' method should preferably
- be used has the following form:
- it is a triangle defined by two lines (one for the negative values of x, and
- one for the positive values of x) crossing at x=0.
-
- More precisely,
-
- * If x<0 and MPFR_AI_THRESHOLD1*x + MPFR_AI_THRESHOLD2*prec > MPFR_AI_SCALE,
- use Smith' algorithm;
- * If x>0 and MPFR_AI_THRESHOLD3*x + MPFR_AI_THRESHOLD2*prec > MPFR_AI_SCALE,
- use Smith' algorithm;
- * otherwise, use the naive method.
-*/
-
-#define MPFR_AI_SCALE 1048576
-
-int
-mpfr_ai (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- mpfr_t temp1, temp2;
- int use_ai2;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Special cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- return mpfr_set_ui (y, 0, rnd);
- /* the cases x = +0 or -0 will be treated below */
- }
-
- /* The exponent range must be large enough for the computation of temp1. */
- MPFR_SAVE_EXPO_MARK (expo);
-
- mpfr_init2 (temp1, MPFR_SMALL_PRECISION);
- mpfr_init2 (temp2, MPFR_SMALL_PRECISION);
-
- mpfr_set (temp1, x, MPFR_RNDN);
- mpfr_set_si (temp2, MPFR_AI_THRESHOLD2, MPFR_RNDN);
- mpfr_mul_ui (temp2, temp2, MPFR_PREC (y) > ULONG_MAX ?
- ULONG_MAX : (unsigned long) MPFR_PREC (y), MPFR_RNDN);
-
- if (MPFR_IS_NEG (x))
- mpfr_mul_si (temp1, temp1, MPFR_AI_THRESHOLD1, MPFR_RNDN);
- else
- mpfr_mul_si (temp1, temp1, MPFR_AI_THRESHOLD3, MPFR_RNDN);
-
- mpfr_add (temp1, temp1, temp2, MPFR_RNDN);
- mpfr_clear (temp2);
-
- use_ai2 = mpfr_cmp_si (temp1, MPFR_AI_SCALE) > 0;
- mpfr_clear (temp1);
-
- MPFR_SAVE_EXPO_FREE (expo); /* Ignore all previous exceptions. */
-
- /* we use ai2 if |x|*AI_THRESHOLD1/3 + PREC(y)*AI_THRESHOLD2 > AI_SCALE,
- which means x cannot be zero in mpfr_ai2 */
- return use_ai2 ? mpfr_ai2 (y, x, rnd) : mpfr_ai1 (y, x, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/amd/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/amd/mparam.h
deleted file mode 100644
index 67cbd14de8c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/amd/mparam.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 6.3.0 */
-/* gcc13.fsffrance.org (Dual-Core AMD Opteron(tm) Processor 2212)
- with gmp 6.1.2, which uses -m64 -mtune=k8 -march=k8. */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,9,11, \
- 12,13,11,15,14,15,15,16,18,18,19,20,18,19,19,20, \
- 22,23,23,24,26,30,28,24,30,32,30,32,32,30,30,32, \
- 32,30,30,32,32,38,32,40,36,36,40,40,38,38,38,38, \
- 38,40,44,44,46,46,44,46,48,46,52,48,56,56,56,56, \
- 56,56,56,60,60,60,64,64,64,64,64,64,64,64,64,64, \
- 72,72,72,72,72,72,72,72,72,72,72,72,80,80,80,80, \
- 80,80,80,80,80,80,80,80,80,93,80,93,93,80,80,93, \
- 80,80,80,80,80,105,93,93,93,93,93,93,93,93,93,108, \
- 93,93,111,93,105,117,105,117,117,117,111,117,117,105,111,105, \
- 108,105,117,117,117,117,117,117,117,117,117,117,117,117,111,117, \
- 117,117,117,117,129,129,117,129,129,129,135,129,129,129,135,135, \
- 135,141,141,129,129,141,132,141,141,141,141,135,141,141,141,141, \
- 141,141,141,141,141,141,141,159,141,153,141,153,153,165,165,165, \
- 159,165,165,165,165,165,165,165,165,165,165,177,189,189,189,189, \
- 189,189,177,189,189,189,189,189,189,189,189,189,189,189,189,189, \
- 189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \
- 189,213,213,189,189,189,189,189,213,213,213,213,213,213,213,213, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,225,225, \
- 225,237,225,225,237,237,237,237,237,237,237,237,237,237,237,252, \
- 237,237,252,252,252,252,252,252,252,252,252,252,252,252,252,252, \
- 252,252,284,252,284,284,252,284,284,252,284,284,284,284,284,284, \
- 284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284, \
- 284,284,284,284,284,284,284,284,284,284,284,284,284,300,300,284, \
- 300,300,300,300,300,300,300,300,316,316,315,316,316,315,316,316, \
- 316,316,315,316,316,316,316,316,316,316,316,316,316,316,316,316, \
- 316,314,315,316,316,316,316,314,315,316,316,316,316,316,316,316, \
- 316,316,316,316,316,316,316,316,316,378,378,378,378,378,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,426, \
- 378,426,378,426,378,378,378,378,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,425,426,426,426,426,426,426,426,426,426,425, \
- 426,426,426,426,474,425,474,426,474,474,504,426,474,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,503,504,504, \
- 504,504,504,504,504,504,504,503,504,504,503,504,504,504,504,504, \
- 504,504,568,504,568,504,504,504,568,504,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,567,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,567,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,567,568,568,568,567,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,567,568,568,568,568,568,568,568,568,568, \
- 600,568,568,568,600,632,632,568,632,632,632,632,632,600,632,600, \
- 632,632,600,600,632,632,599,600,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,631,632,632,632,632,632,630,631,632,632, \
- 632,632,631,632,632,632,632,632,631,632,631,632,632,632,631,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,631, \
- 632,632,632,632,632,632,631,632,632,632,632,632,632,736,632,736, \
- 736,736,736,736,736,735,736,735,736,736,736,735,736,736,736,735, \
- 735,736,735,736,736,736,736,736,736,736,736,735,736,736,736,736, \
- 736,736,736,736,735,736,736,736,736,736,736,736,736,736,735,736, \
- 736,736,736,736,736,736,735,736,734,736,736,736,736,736,735,736, \
- 735,736,735,736,736,736,736,736,735,736,736,736,736,736,736,736, \
- 736,736,736,736,736,736,736,735,736,736,736,832,736,736,832,832, \
- 736,831,831,832,832,832,832,832,832,832,830,832,832,832,832,832, \
- 832,832,831,832,832,832,832,832,832,832,832,830,831,832,831,832, \
- 831,832,832,832,832,832,831,832,831,831,831,832,832,832,832,832, \
- 832,832,832,832,831,832,832,832,832,832,832,832,831,832,831,832 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,9,9,11, \
- 11,11,11,12,13,14,15,15,17,18,18,17,17,18,18,20, \
- 20,18,19,19,20,21,23,23,24,25,23,23,24,25,26,27, \
- 28,27,28,29,28,31,32,31,32,31,32,33,34,34,34,40, \
- 40,40,40,40,40,40,40,40,40,46,46,46,42,46,46,48, \
- 48,48,48,48,48,48,48,48,56,54,56,56,56,48,56,56, \
- 50,50,52,52,62,54,54,56,56,54,58,60,62,62,58,64, \
- 64,62,66,64,64,72,66,68,66,72,72,72,72,72,72,72, \
- 72,72,72,72,80,72,80,72,80,72,80,80,80,80,80,80, \
- 84,80,80,84,80,80,80,80,80,92,92,92,96,92,96,92, \
- 96,92,96,92,96,96,96,96,96,96,96,100,96,96,96,96, \
- 96,96,96,96,100,96,96,112,112,112,96,112,112,112,112,112, \
- 112,112,112,104,112,111,112,112,112,112,112,112,112,112,112,112, \
- 112,112,112,141,112,141,135,135,141,135,128,141,141,141,135,141, \
- 128,141,140,141,141,141,135,135,141,135,141,141,141,141,141,141, \
- 141,141,147,141,141,147,147,141,141,141,159,147,141,147,147,159, \
- 158,159,159,159,159,159,165,159,165,165,159,165,165,159,165,165, \
- 165,171,159,165,165,165,165,165,165,165,171,171,165,171,171,183, \
- 189,189,183,189,189,189,189,189,189,189,189,189,189,189,189,189, \
- 189,189,189,188,189,189,188,171,171,188,189,189,189,189,189,189, \
- 189,189,183,183,183,189,189,183,188,189,189,195,213,189,189,195, \
- 189,189,188,195,189,189,189,195,213,189,189,189,213,213,213,189, \
- 189,213,213,189,189,189,195,189,189,189,195,188,189,213,213,195, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
- 213,213,213,212,213,213,237,236,213,237,213,213,213,213,237,237, \
- 237,237,237,237,237,237,237,237,237,237,237,236,237,237,237,237, \
- 237,237,237,237,237,249,237,237,237,237,237,237,237,249,237,237, \
- 237,272,273,236,273,237,273,273,273,285,273,273,249,273,237,285, \
- 273,273,273,273,285,237,285,285,273,285,273,284,285,285,285,285, \
- 285,285,285,285,285,285,285,284,285,285,285,285,285,284,273,284, \
- 285,285,285,284,285,285,285,285,285,285,285,285,285,285,285,285, \
- 285,285,285,285,284,333,333,333,309,333,285,332,333,333,309,333, \
- 333,309,332,333,321,321,333,309,333,333,333,333,333,332,333,332, \
- 333,333,333,333,333,332,333,333,332,333,333,333,333,333,333,333, \
- 333,333,333,333,332,333,333,333,333,333,333,333,333,333,333,333, \
- 333,333,333,333,333,332,333,333,333,332,333,333,333,333,333,333, \
- 333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333, \
- 333,333,333,333,333,420,333,333,333,402,420,420,402,402,420,420, \
- 402,420,420,420,419,402,420,420,420,420,420,420,420,420,420,420, \
- 420,420,420,420,420,420,420,420,420,420,420,419,420,420,420,420, \
- 420,420,419,420,402,420,420,420,420,420,420,420,420,402,401,420, \
- 420,420,402,420,420,402,419,420,420,420,419,420,420,420,420,420, \
- 420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420, \
- 420,420,420,420,420,418,419,420,419,420,420,420,420,420,420,420, \
- 420,420,420,419,420,420,420,420,420,420,402,420,420,417,420,420, \
- 420,420,420,420,420,420,420,420,419,420,420,420,420,420,420,420, \
- 420,420,438,420,438,438,420,420,420,420,419,420,420,474,420,474, \
- 474,474,474,492,492,474,420,474,492,474,420,492,568,473,420,492, \
- 492,492,568,492,568,568,568,568,492,568,568,568,568,568,568,567, \
- 568,568,568,568,568,568,492,568,568,492,568,568,568,492,568,568, \
- 568,568,568,568,568,492,568,568,568,568,568,568,568,568,567,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,567,568,568,568,568,568,568,568,567,568,568,568,568,568, \
- 568,568,567,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,567,568,568,568,568, \
- 568,568,568,568,568,568,567,568,566,567,568,568,568,568,568,568, \
- 568,568,568,568,566,568,568,568,568,568,568,568,568,568,568,568, \
- 568,632,568,632,568,568,568,568,568,568,568,568,568,568,568,568, \
- 632,568,568,568,568,568,568,568,568,568,568,568,568,630,568,568, \
- 630,632,568,568,632,632,631,632,630,568,632,632,632,632,632,632, \
- 632,632,632,632,631,632,632,632,632,632,632,632,664,631,632,664, \
- 631,632,632,632,664,628,632,632,662,632,632,632,632,664,664,632, \
- 632,632,632,664,664,632,632,632,664,631,632,632,664,632,632,632 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,22,0,0,0,0,0,26,26,26,27,0,29,30,30, /*32-47*/ \
- 30,30,34,34,0,33,34,0,34,33,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*64-79*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*80-95*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*96-111*/ \
- 0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0, /*112-127*/ \
- 0,0,0,0,0,0,74,0,0,78,74,78,74,78,78,74, /*128-143*/ \
- 0,0,78,78,78,78,0,78,0,78,0,0,0,0,88,0, /*144-159*/ \
- 0,0,0,0,91,92,91,92,90,88,92,90,92,92,0,112, /*160-175*/ \
- 92,94,96,95,95,112,104,104,112,112,112,112,112,104,112,120, /*176-191*/ \
- 112,112,112,104,112,120,107,112,120,128,112,112,120,120,120,120, /*192-207*/ \
- 112,120,120,120,128,128,128,120,128,128,128,128,128,128,128,128, /*208-223*/ \
- 128,128,120,128,128,128,128,128,128,120,128,128,128,128,128,128, /*224-239*/ \
- 128,128,128,128,136,128,128,128,128,128,148,136,148,128,136,136, /*240-255*/ \
- 136,148,148,148,135,156,148,148,135,156,156,148,156,149,160,160, /*256-271*/ \
- 156,148,156,156,144,160,156,160,148,156,160,156,156,160,156,149, /*272-287*/ \
- 148,160,160,160,156,156,156,156,154,156,156,156,156,156,156,156, /*288-303*/ \
- 156,156,156,160,156,156,157,160,160,160,160,160,160,160,184,184, /*304-319*/ \
- 184,185,184,179,185,184,184,184,184,184,174,174,183,186,184,186, /*320-335*/ \
- 182,184,185,185,186,186,186,184,208,184,192,208,184,184,184,208, /*336-351*/ \
- 184,208,184,208,208,209,192,216,209,208,216,208,210,208,208,224, /*352-367*/ \
- 222,208,208,216,208,224,210,208,222,210,224,224,208,208,210,224, /*368-383*/ \
- 240,232,208,234,206,240,216,208,208,240,240,224,208,208,208,208, /*384-399*/ \
- 208,208,224,224,233,208,224,224,208,216,224,224,208,240,224,222, /*400-415*/ \
- 240,224,224,256,232,216,240,224,234,256,216,256,224,256,256,232, /*416-431*/ \
- 240,240,240,240,255,224,232,256,256,240,256,256,240,256,240,256, /*432-447*/ \
- 240,240,256,256,256,240,256,256,256,256,240,256,256,256,256,256, /*448-463*/ \
- 256,256,256,256,255,256,256,254,256,256,256,256,256,256,256,256, /*464-479*/ \
- 256,256,255,256,256,256,256,256,256,255,256,256,255,256,256,256, /*480-495*/ \
- 256,256,256,256,256,256,256,256,256,256,256,256,256,256,280,272, /*496-511*/ \
- 272,270,280,296,280,276,280,279,280,280,281,280,280,272,272,280, /*512-527*/ \
- 280,272,280,282,312,272,282,312,280,312,280,280,288,280,281,296, /*528-543*/ \
- 312,296,312,312,296,296,312,288,312,312,312,315,316,312,312,312, /*544-559*/ \
- 312,312,312,312,312,318,312,313,312,302,318,312,311,296,312,312, /*560-575*/ \
- 318,312,312,311,312,296,304,311,312,312,312,312,312,312,312,312, /*576-591*/ \
- 313,312,312,312,312,312,312,318,312,312,312,312,312,312,311,312, /*592-607*/ \
- 316,312,320,312,312,312,312,312,312,312,312,312,316,313,313,318, /*608-623*/ \
- 317,316,317,318,320,318,318,318,320,318,348,368,320,336,372,372, /*624-639*/ \
- 372,371,367,368,368,372,371,368,372,336,372,368,372,368,364,372, /*640-655*/ \
- 372,354,384,368,352,368,372,371,348,352,372,366,368,366,372,368, /*656-671*/ \
- 372,365,368,372,368,372,372,371,372,378,369,371,372,372,369,372, /*672-687*/ \
- 372,372,370,378,384,372,370,367,416,384,416,416,371,372,420,424, /*688-703*/ \
- 366,372,372,368,416,420,372,420,432,372,372,416,378,372,416,384, /*704-719*/ \
- 420,416,420,414,416,416,448,416,419,424,425,416,416,425,432,432, /*720-735*/ \
- 432,432,432,432,448,424,448,432,444,432,432,444,432,432,448,448, /*736-751*/ \
- 448,448,448,448,420,416,420,416,448,448,448,420,448,420,432,432, /*752-767*/ \
- 448,426,448,432,416,420,448,432,448,432,414,432,432,420,417,417, /*768-783*/ \
- 420,444,416,444,419,424,420,426,432,420,432,416,480,416,420,424, /*784-799*/ \
- 420,432,419,420,424,424,420,416,425,419,432,448,448,444,448,432, /*800-815*/ \
- 426,420,432,448,448,448,432,448,512,464,444,448,447,448,448,448, /*816-831*/ \
- 432,448,448,464,431,467,448,448,448,444,448,432,448,448,448,504, /*832-847*/ \
- 448,447,432,432,448,512,432,464,448,504,448,448,480,444,448,449, /*848-863*/ \
- 448,512,448,512,480,444,447,448,449,512,480,448,504,480,448,468, /*864-879*/ \
- 448,448,448,467,512,464,463,504,480,504,504,448,480,512,512,504, /*880-895*/ \
- 480,512,503,480,512,480,504,512,512,467,504,512,512,504,512,512, /*896-911*/ \
- 512,512,504,504,462,480,512,504,512,504,504,504,480,464,480,504, /*912-927*/ \
- 504,504,504,512,480,504,504,512,504,512,480,504,512,512,512,512, /*928-943*/ \
- 512,504,480,504,512,504,480,512,512,480,512,480,561,512,504,512, /*944-959*/ \
- 496,504,512,512,504,512,497,512,504,504,504,512,512,512,504,504, /*960-975*/ \
- 504,512,512,512,512,512,512,504,512,512,512,512,504,512,512,512, /*976-991*/ \
- 562,512,504,512,511,512,512,512,512,504,512,512,512,504,512,512, /*992-1007*/ \
- 512,561,512,512,536,512,512,512,512,512,544,559,561,561,563,544 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 17 /* limbs */
-#define MPFR_SQR_THRESHOLD 16 /* limbs */
-#define MPFR_DIV_THRESHOLD 3 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 585 /* bits */
-#define MPFR_EXP_THRESHOLD 11179 /* bits */
-#define MPFR_SINCOS_THRESHOLD 30593 /* bits */
-#define MPFR_AI_THRESHOLD1 -11898 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 1175
-#define MPFR_AI_THRESHOLD3 18856
-/* Tuneup completed successfully, took 705 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/arm/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/arm/mparam.h
deleted file mode 100644
index e0b78e381d6..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/arm/mparam.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 7.3.0 */
-/* calva.loria.fr ARMv7 Processor rev 5 (v7l) with gmp-6.1.2,
- which defines -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,-1,-1,0,-1,-1,-1,-1,-1,0,-1,-1,0, \
- 0,0,13,14,13,14,17,16,16,17,19,19,20,20,23,23, \
- 24,25,23,24,25,26,25,26,29,28,29,29,31,32,32,34, \
- 29,35,31,32,32,32,32,34,35,38,37,38,40,38,38,40, \
- 40,40,40,40,46,46,46,52,46,46,52,51,52,50,52,51, \
- 52,51,52,52,56,52,58,58,58,58,64,64,58,62,64,64, \
- 64,64,64,63,64,64,68,88,64,68,70,70,80,70,76,80, \
- 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, \
- 92,92,92,92,92,92,92,92,92,92,104,104,104,104,100,104, \
- 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,116, \
- 104,116,116,104,116,116,116,116,116,116,116,116,116,116,116,116, \
- 112,128,116,128,128,128,128,128,135,116,128,127,128,128,127,128, \
- 128,153,124,128,128,135,128,128,128,153,147,153,153,135,128,153, \
- 153,153,153,138,135,135,153,153,153,153,150,153,152,152,150,153, \
- 153,153,152,153,152,153,152,153,153,153,152,152,153,153,170,171, \
- 171,165,170,170,171,170,170,171,168,171,171,171,170,171,170,171, \
- 170,171,171,170,168,189,186,189,170,189,189,189,189,189,189,189, \
- 189,189,188,189,188,189,189,189,189,189,189,189,189,189,189,204, \
- 204,204,204,204,204,204,204,204,204,204,204,204,228,228,228,228, \
- 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228, \
- 228,228,228,228,228,228,228,228,228,228,228,252,252,252,252,252, \
- 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252, \
- 252,252,252,251,252,252,252,252,252,252,251,252,252,252,252,252, \
- 252,252,252,252,252,252,252,252,252,252,252,252,276,252,276,276, \
- 276,276,275,252,276,276,276,276,276,276,276,276,316,276,276,316, \
- 316,316,316,316,316,316,316,316,316,315,316,316,316,316,316,316, \
- 316,316,316,315,316,316,316,315,316,316,315,316,316,316,316,316, \
- 316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \
- 316,316,316,316,316,364,316,316,364,364,363,364,364,364,364,364, \
- 364,364,364,363,364,364,364,364,364,364,364,364,364,364,364,364, \
- 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \
- 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \
- 364,364,364,364,364,364,364,364,364,364,364,412,412,412,412,412, \
- 412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412, \
- 412,412,412,412,412,412,412,412,412,412,411,412,412,412,411,412, \
- 412,412,412,412,412,412,412,412,412,474,412,474,474,474,474,474, \
- 474,473,474,474,474,474,474,474,473,474,474,474,474,474,473,474, \
- 474,474,474,474,474,474,473,474,474,474,474,474,474,474,474,474, \
- 474,474,473,474,474,474,474,474,473,474,474,474,474,474,474,474, \
- 474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \
- 474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \
- 474,474,504,474,474,504,474,474,474,474,474,504,504,474,474,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,536,504, \
- 552,552,504,552,504,552,552,552,552,552,552,552,552,552,552,552, \
- 552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, \
- 552,552,552,552,552,552,552,632,631,631,632,631,632,632,630,631, \
- 632,632,631,631,632,632,631,632,632,631,632,632,632,632,632,632, \
- 632,631,632,632,632,632,632,632,632,632,632,632,632,631,632,632, \
- 632,632,632,632,632,631,631,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,631,632,632,632,632,632,632,632,632,632,632, \
- 631,632,632,631,632,632,632,632,632,630,631,632,632,631,632,632, \
- 632,632,632,631,632,631,632,632,632,632,632,728,728,631,632,728, \
- 728,727,728,728,728,727,728,727,728,727,728,728,728,728,728,728, \
- 728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
- 728,728,728,728,728,727,728,728,728,727,728,728,728,727,728,728, \
- 728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
- 728,727,726,727,728,728,728,728,728,727,728,728,728,727,728,728, \
- 728,728,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
- 728,728,728,728,728,726,728,728,728,824,728,728,727,824,824,728, \
- 824,824,728,824,824,728,824,824,728,824,824,728,824,824,824,824, \
- 824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \
- 824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \
- 824,824,824,824,824,824,823,824,824,824,824,824,824,823,824,824 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, \
- 12,12,11,12,12,14,15,16,16,16,18,16,20,18,20,20, \
- 21,20,20,24,22,24,24,25,26,28,28,25,25,27,27,28, \
- 29,27,28,29,29,28,29,29,31,31,32,33,33,35,35,36, \
- 37,34,35,36,37,36,39,40,41,42,41,40,42,41,42,44, \
- 44,42,44,44,45,44,48,48,49,50,48,52,56,56,52,52, \
- 56,52,56,56,60,56,56,64,64,60,60,64,68,64,68,64, \
- 68,64,68,68,72,72,72,72,68,72,76,74,72,72,72,80, \
- 72,72,72,72,70,72,72,74,74,80,76,80,78,80,80,84, \
- 80,84,84,88,84,88,88,90,88,84,92,80,88,88,88,84, \
- 84,92,88,88,88,88,88,88,88,88,96,96,92,92,112,96, \
- 96,92,92,96,104,104,112,104,104,112,112,112,104,104,104,112, \
- 112,112,112,112,112,112,112,120,120,112,120,112,120,120,120,112, \
- 128,120,120,128,128,112,128,120,120,120,120,128,120,128,128,128, \
- 128,128,128,136,128,128,136,136,136,136,136,136,136,136,144,144, \
- 136,144,144,128,144,144,144,128,144,144,136,144,144,136,136,144, \
- 144,144,144,144,144,144,144,144,144,144,144,144,144,152,144,152, \
- 152,144,144,144,160,160,144,160,160,160,160,160,160,160,160,160, \
- 160,160,160,160,160,177,177,160,160,160,160,160,160,160,177,160, \
- 160,160,160,160,177,177,177,160,177,177,177,201,177,201,177,201, \
- 201,177,201,201,201,201,201,177,201,201,201,201,201,201,201,201, \
- 201,201,201,207,201,201,201,200,201,201,201,201,201,201,201,201, \
- 201,201,213,201,213,213,213,213,213,213,213,213,213,213,218,218, \
- 218,219,213,213,213,213,219,213,225,213,218,219,225,219,237,218, \
- 237,237,237,237,237,237,237,237,237,237,237,237,224,237,249,237, \
- 237,249,237,237,249,243,237,237,243,243,237,249,249,249,249,248, \
- 249,249,249,237,249,249,261,249,249,260,261,248,249,249,261,261, \
- 261,261,261,273,261,249,249,260,261,273,261,261,261,273,284,284, \
- 273,284,261,284,273,261,292,273,284,292,291,292,292,292,292,284, \
- 292,292,292,284,291,292,284,292,292,284,292,284,284,292,292,284, \
- 284,292,284,291,292,308,291,292,292,292,292,284,284,284,284,316, \
- 292,292,316,284,308,292,292,284,300,316,292,292,316,292,300,316, \
- 316,316,291,292,292,292,291,292,316,292,308,308,300,316,316,332, \
- 292,300,316,316,316,316,316,316,332,308,324,316,316,316,332,316, \
- 316,316,332,316,332,316,332,324,316,324,332,332,332,332,332,332, \
- 332,332,332,332,332,332,324,316,332,348,324,332,348,348,348,348, \
- 332,348,332,332,348,348,332,332,348,332,348,364,364,332,348,364, \
- 348,364,348,348,348,364,348,348,364,348,348,364,364,348,364,364, \
- 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,372, \
- 380,364,380,372,380,364,379,380,364,364,364,380,364,380,402,380, \
- 364,372,364,380,372,380,402,380,402,402,402,402,402,402,426,402, \
- 402,426,402,402,402,438,426,438,426,426,426,438,426,438,426,438, \
- 426,426,426,426,426,426,438,426,426,426,438,426,438,438,438,438, \
- 438,438,438,426,426,438,438,438,426,426,426,438,426,426,426,438, \
- 426,426,438,438,426,438,438,438,438,438,474,450,438,474,474,450, \
- 474,474,474,474,474,474,474,474,474,450,474,474,474,474,450,474, \
- 486,474,498,474,473,474,474,474,474,474,474,474,498,474,474,498, \
- 473,474,474,438,474,474,474,498,450,474,474,498,450,498,498,498, \
- 522,498,498,474,522,498,498,498,498,498,474,522,474,498,474,498, \
- 474,474,474,474,474,522,474,474,474,522,522,522,474,522,522,522, \
- 522,522,498,522,522,498,498,498,498,522,498,498,498,498,498,498, \
- 522,498,498,498,498,498,498,498,498,522,546,522,522,522,522,522, \
- 522,522,522,546,522,522,522,522,522,546,522,522,522,522,522,522, \
- 546,546,522,522,546,546,546,546,546,546,546,522,546,546,546,546, \
- 546,546,546,546,546,546,545,546,546,546,546,546,568,558,546,568, \
- 546,568,568,546,546,546,546,546,546,546,546,568,546,546,546,545, \
- 546,584,584,584,546,584,546,584,568,546,568,584,584,568,584,568, \
- 584,584,600,568,584,600,568,584,568,568,584,600,600,600,600,584, \
- 600,600,616,584,600,616,632,616,584,616,616,632,632,616,632,632, \
- 632,631,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,664,632,632,632, \
- 632,664,664,632,632,664,632,664,664,632,664,664,664,632,664,632, \
- 632,664,631,664,632,664,664,664,664,664,664,664,664,664,664,664, \
- 664,664,664,664,664,664,664,664,696,664,696,696,664,696,696,664 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,0,0,0,0,0,42,41,44,44,45,45,45, /*64-79*/ \
- 44,44,49,47,47,46,47,46,52,52,52,51,52,52,52,52, /*80-95*/ \
- 53,51,52,59,58,52,59,64,58,59,62,68,62,57,64,59, /*96-111*/ \
- 64,59,68,68,70,68,70,70,68,64,70,70,66,64,66,70, /*112-127*/ \
- 76,67,69,72,70,70,80,80,71,88,76,80,80,76,80,80, /*128-143*/ \
- 80,88,88,90,92,92,92,90,88,84,92,80,88,80,92,92, /*144-159*/ \
- 92,92,92,88,88,90,90,92,92,92,95,94,94,92,92,94, /*160-175*/ \
- 96,104,94,92,92,92,95,102,104,104,103,104,104,104,104,104, /*176-191*/ \
- 104,104,104,100,104,104,104,104,104,104,104,103,104,112,108,112, /*192-207*/ \
- 116,116,116,128,116,128,116,128,116,128,128,128,116,128,128,128, /*208-223*/ \
- 127,128,128,128,128,128,128,136,128,128,136,128,128,140,128,128, /*224-239*/ \
- 128,140,128,136,128,128,128,128,128,139,128,136,136,138,140,140, /*240-255*/ \
- 136,136,140,140,140,140,140,138,144,140,136,140,148,142,139,160, /*256-271*/ \
- 160,140,160,158,160,160,160,148,160,160,160,160,160,160,160,160, /*272-287*/ \
- 160,160,152,160,160,160,176,176,160,160,176,160,160,168,160,184, /*288-303*/ \
- 160,160,184,160,160,176,160,160,176,184,184,184,160,184,184,183, /*304-319*/ \
- 176,184,184,182,184,184,184,184,182,184,184,184,176,208,184,184, /*320-335*/ \
- 192,184,184,184,184,184,184,184,208,184,184,184,208,208,184,184, /*336-351*/ \
- 208,208,184,208,208,208,208,208,208,200,208,184,208,208,208,208, /*352-367*/ \
- 208,208,208,208,208,208,208,208,208,208,208,208,208,204,208,208, /*368-383*/ \
- 208,208,208,207,208,208,206,208,208,208,208,206,208,208,208,208, /*384-399*/ \
- 208,208,206,208,208,208,208,208,208,208,208,208,208,208,224,224, /*400-415*/ \
- 224,224,224,231,232,256,256,224,256,232,232,232,256,256,232,224, /*416-431*/ \
- 232,256,256,224,232,228,224,256,232,256,256,232,256,256,256,256, /*432-447*/ \
- 256,256,256,232,256,230,256,256,256,256,256,256,256,256,256,256, /*448-463*/ \
- 256,248,256,256,256,252,256,256,256,256,255,256,254,256,256,256, /*464-479*/ \
- 256,256,256,255,256,256,256,256,256,256,256,256,256,248,256,256, /*480-495*/ \
- 256,256,256,256,256,256,256,256,256,256,256,256,256,270,280,272, /*496-511*/ \
- 272,280,270,268,280,288,288,288,288,292,280,276,288,270,280,304, /*512-527*/ \
- 288,304,288,280,280,279,304,280,280,280,280,304,296,280,280,282, /*528-543*/ \
- 304,320,279,320,288,304,304,288,320,304,320,316,320,304,320,304, /*544-559*/ \
- 288,304,304,304,320,304,320,320,320,304,304,304,320,318,296,304, /*560-575*/ \
- 320,320,318,320,318,304,304,320,304,304,320,304,304,304,304,320, /*576-591*/ \
- 320,320,320,318,320,320,320,318,352,320,320,320,318,352,320,352, /*592-607*/ \
- 320,320,320,320,320,336,368,336,368,320,320,368,352,352,368,368, /*608-623*/ \
- 366,320,342,368,320,368,352,350,352,352,320,364,352,366,352,366, /*624-639*/ \
- 368,367,366,360,364,368,368,366,368,368,368,368,368,366,368,378, /*640-655*/ \
- 352,376,368,368,352,364,352,368,352,366,366,352,368,384,368,368, /*656-671*/ \
- 364,366,364,367,368,367,368,368,376,368,368,368,368,367,368,376, /*672-687*/ \
- 366,364,366,366,368,366,368,368,368,368,384,416,384,376,416,368, /*688-703*/ \
- 376,378,368,366,368,368,384,368,366,416,368,368,416,376,368,367, /*704-719*/ \
- 368,384,416,416,368,416,416,416,416,416,416,416,384,384,408,416, /*720-735*/ \
- 416,416,376,408,408,416,416,408,408,416,416,416,378,416,416,416, /*736-751*/ \
- 416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,400, /*752-767*/ \
- 416,416,416,416,416,416,416,416,408,416,416,416,416,416,408,416, /*768-783*/ \
- 416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416, /*784-799*/ \
- 448,416,416,416,416,448,416,456,416,416,416,448,416,416,416,416, /*800-815*/ \
- 416,448,416,448,416,416,416,416,416,416,416,448,456,416,448,464, /*816-831*/ \
- 456,448,512,448,464,462,464,464,464,448,448,464,448,448,464,448, /*832-847*/ \
- 448,448,464,480,512,448,448,448,464,512,448,448,448,456,456,456, /*848-863*/ \
- 512,512,464,464,456,464,464,512,512,512,512,464,512,512,512,512, /*864-879*/ \
- 512,512,512,512,512,512,512,512,512,512,512,512,456,512,512,454, /*880-895*/ \
- 512,512,456,511,464,512,504,504,504,512,512,504,512,464,512,512, /*896-911*/ \
- 512,512,512,512,464,512,512,512,512,512,512,464,512,512,512,512, /*912-927*/ \
- 504,512,510,512,512,512,512,512,512,512,512,512,512,512,512,512, /*928-943*/ \
- 512,512,512,512,512,504,504,512,512,512,512,512,504,512,512,512, /*944-959*/ \
- 512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, /*960-975*/ \
- 512,512,512,512,512,511,512,512,512,512,512,512,504,512,512,511, /*976-991*/ \
- 511,512,512,511,512,512,512,512,512,512,512,512,512,511,512,512, /*992-1007*/ \
- 512,512,512,512,512,512,512,512,512,512,512,512,512,536,544,544 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 22 /* limbs */
-#define MPFR_SQR_THRESHOLD 24 /* limbs */
-#define MPFR_DIV_THRESHOLD 3 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 277 /* bits */
-#define MPFR_EXP_THRESHOLD 10666 /* bits */
-#define MPFR_SINCOS_THRESHOLD 28990 /* bits */
-#define MPFR_AI_THRESHOLD1 -28503 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 2972
-#define MPFR_AI_THRESHOLD3 44718
-/* Tuneup completed successfully, took 3001 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/asin.c b/Build/source/libs/mpfr/mpfr-src/src/asin.c
deleted file mode 100644
index 62cf89b862a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/asin.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* mpfr_asin -- arc-sinus of a floating-point number
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_asin (mpfr_ptr asin, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t xp;
- int compared, inexact;
- mpfr_prec_t prec;
- mpfr_exp_t xp_exp;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("asin[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (asin), mpfr_log_prec, asin,
- inexact));
-
- /* Special cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x) || MPFR_IS_INF (x))
- {
- MPFR_SET_NAN (asin);
- MPFR_RET_NAN;
- }
- else /* x = 0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (asin);
- MPFR_SET_SAME_SIGN (asin, x);
- MPFR_RET (0); /* exact result */
- }
- }
-
- /* asin(x) = x + x^3/6 + ... so the error is < 2^(3*EXP(x)-2) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (asin, x, -2 * MPFR_GET_EXP (x), 2, 1,
- rnd_mode, {});
-
- /* Set x_p=|x| (x is a normal number) */
- mpfr_init2 (xp, MPFR_PREC (x));
- inexact = mpfr_abs (xp, x, MPFR_RNDN);
- MPFR_ASSERTD (inexact == 0);
-
- compared = mpfr_cmp_ui (xp, 1);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- if (MPFR_UNLIKELY (compared >= 0))
- {
- mpfr_clear (xp);
- if (compared > 0) /* asin(x) = NaN for |x| > 1 */
- {
- MPFR_SAVE_EXPO_FREE (expo);
- MPFR_SET_NAN (asin);
- MPFR_RET_NAN;
- }
- else /* x = 1 or x = -1 */
- {
- if (MPFR_IS_POS (x)) /* asin(+1) = Pi/2 */
- inexact = mpfr_const_pi (asin, rnd_mode);
- else /* asin(-1) = -Pi/2 */
- {
- inexact = -mpfr_const_pi (asin, MPFR_INVERT_RND(rnd_mode));
- MPFR_CHANGE_SIGN (asin);
- }
- mpfr_div_2ui (asin, asin, 1, rnd_mode);
- }
- }
- else
- {
- /* Compute exponent of 1 - ABS(x) */
- mpfr_ui_sub (xp, 1, xp, MPFR_RNDD);
- MPFR_ASSERTD (MPFR_GET_EXP (xp) <= 0);
- MPFR_ASSERTD (MPFR_GET_EXP (x) <= 0);
- xp_exp = 2 - MPFR_GET_EXP (xp);
-
- /* Set up initial prec */
- prec = MPFR_PREC (asin) + 10 + xp_exp;
-
- /* use asin(x) = atan(x/sqrt(1-x^2)) */
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- mpfr_set_prec (xp, prec);
- mpfr_sqr (xp, x, MPFR_RNDN);
- mpfr_ui_sub (xp, 1, xp, MPFR_RNDN);
- mpfr_sqrt (xp, xp, MPFR_RNDN);
- mpfr_div (xp, x, xp, MPFR_RNDN);
- mpfr_atan (xp, xp, MPFR_RNDN);
- if (MPFR_LIKELY (MPFR_CAN_ROUND (xp, prec - xp_exp,
- MPFR_PREC (asin), rnd_mode)))
- break;
- MPFR_ZIV_NEXT (loop, prec);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (asin, xp, rnd_mode);
-
- mpfr_clear (xp);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (asin, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/asinh.c b/Build/source/libs/mpfr/mpfr-src/src/asinh.c
deleted file mode 100644
index 10aa23fc77e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/asinh.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* mpfr_asinh -- inverse hyperbolic sine
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The computation of asinh is done by *
- * asinh = ln(x + sqrt(x^2 + 1)) */
-
-int
-mpfr_asinh (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- int signx, neg;
- mpfr_prec_t Ny, Nt;
- mpfr_t t; /* auxiliary variables */
- mpfr_exp_t err;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- else /* x is necessarily 0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y); /* asinh(0) = 0 */
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- }
-
- /* asinh(x) = x - x^3/6 + ... so the error is < 2^(3*EXP(x)-2) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, -2 * MPFR_GET_EXP (x), 2, 0,
- rnd_mode, {});
-
- Ny = MPFR_PREC (y); /* Precision of output variable */
-
- signx = MPFR_SIGN (x);
- neg = MPFR_IS_NEG (x);
-
- /* General case */
-
- /* compute the precision of intermediary variable */
- /* the optimal number of bits : see algorithms.tex */
- Nt = Ny + 4 + MPFR_INT_CEIL_LOG2 (Ny);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* initialize intermediary variables */
- mpfr_init2 (t, Nt);
-
- /* First computation of asinh */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- /* compute asinh */
- mpfr_sqr (t, x, MPFR_RNDD); /* x^2 */
- mpfr_add_ui (t, t, 1, MPFR_RNDD); /* x^2+1 */
- mpfr_sqrt (t, t, MPFR_RNDN); /* sqrt(x^2+1) */
- (neg ? mpfr_sub : mpfr_add) (t, t, x, MPFR_RNDN); /* sqrt(x^2+1)+x */
- mpfr_log (t, t, MPFR_RNDN); /* ln(sqrt(x^2+1)+x)*/
-
- if (MPFR_LIKELY (MPFR_IS_PURE_FP (t)))
- {
- /* error estimate -- see algorithms.tex */
- err = Nt - (MAX (4 - MPFR_GET_EXP (t), 0) + 1);
- if (MPFR_LIKELY (MPFR_IS_ZERO (t)
- || MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- break;
- }
-
- /* actualization of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set4 (y, t, rnd_mode, signx);
-
- mpfr_clear (t);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/atan.c b/Build/source/libs/mpfr/mpfr-src/src/atan.c
deleted file mode 100644
index 0f63416c95e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/atan.c
+++ /dev/null
@@ -1,522 +0,0 @@
-/* mpfr_atan -- arc-tangent of a floating-point number
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#if GMP_NUMB_BITS == 64
-/* for each pair (r,p), we store a 192-bit approximation of atan(x)/x for
- x=p/2^r, with lowest limb first.
- Sage code:
- for p in range(1,2^ceil(r/2)):
- x=p/2^r
- l=floor(2^192*n(atan(x)/x, 300)).digits(2^64)
- print ("{0x%x, 0x%x, 0x%x}, /"+"* (%d,%d) *"+"/") % (l[0],l[1],l[2],r,p)
-*/
-static const mp_limb_t atan_table[][3] = {
- {0x6e141587261cdf00, 0x6fe445ecbc3a8d03, 0xed63382b0dda7b45}, /* (1,1) */
- {0xaa7fa90388b3836b, 0x6dc79ef5f7a217e5, 0xfadbafc96406eb15}, /* (2,1) */
- {0x319c12cf59d4b2dc, 0xcb2792dc0e2e0d51, 0xffaaddb967ef4e36}, /* (4,1) */
- {0x8b3957d95d9ad922, 0xc897989f3e888ef7, 0xfeadd4d5617b6e32}, /* (4,2) */
- {0xc4e6abc8af62e439, 0x4eb9bf602625f0b4, 0xfd0fcdd343cac19b}, /* (4,3) */
- {0x7c18baeb9bc95789, 0xb12afb6b6d4f7e16, 0xffffaaaaddddb94b}, /* (8,1) */
- {0x6856a0171a2f001a, 0x62351fbbe60af47, 0xfffeaaadddd4b968}, /* (8,2) */
- {0x69164c094f49da06, 0xd517294f7373d07a, 0xfffd001032cb1179}, /* (8,3) */
- {0x20ef65c10deef460, 0xe78c564015f76048, 0xfffaaadddb94d5bb}, /* (8,4) */
- {0x3ce233aa002f0344, 0x9dd8ea342a65d4cc, 0xfff7ab27a1f32f95}, /* (8,5) */
- {0xa37f403c7279c5cb, 0x13ab53a1c8db8497, 0xfff40103192ce74d}, /* (8,6) */
- {0xe5a85657103c1aa8, 0xb8409e6c914191d3, 0xffefac8a9c40a26b}, /* (8,7) */
- {0x806d0294c0db8816, 0x779d776dda8c6213, 0xffeaaddd4bb12542}, /* (8,8) */
- {0x5545d1914ef21478, 0x3aea58d6660f5a12, 0xffe5051f0aebf73a}, /* (8,9) */
- {0x6e47a91d015f4133, 0xc085ab6b490b7f02, 0xffdeb2787d4adac1}, /* (8,10) */
- {0x4efc1f931f7ec9b3, 0xb7f43cd16195ef4b, 0xffd7b61702b09aad}, /* (8,11) */
- {0xd27d1dbf55fed60d, 0xd812c11d7d473e5e, 0xffd0102cb3c1bfbe}, /* (8,12) */
- {0xca629e927383fe97, 0x8c61aedf58e42206, 0xffc7c0f05db9d1b6}, /* (8,13) */
- {0x4eff0b53d4e905b7, 0x28ac1e800ca31e9d, 0xffbec89d7dddd7e9}, /* (8,14) */
- {0xb0a7931deec6fe60, 0xb46feea78588554b, 0xffb527743c8cdd8f} /* (8,15) */
- };
-
-static void
-set_table (mpfr_t y, const mp_limb_t x[3])
-{
- mpfr_prec_t p = MPFR_PREC(y);
- mp_size_t n = MPFR_PREC2LIMBS(p);
- mpfr_prec_t sh;
- mp_limb_t *yp = MPFR_MANT(y);
-
- MPFR_UNSIGNED_MINUS_MODULO (sh, p);
- MPFR_ASSERTD (n >= 1 && n <= 3);
- mpn_copyi (yp, x + 3 - n, n);
- yp[0] &= ~MPFR_LIMB_MASK(sh);
- MPFR_SET_EXP(y, 0);
-}
-#endif
-
-/* If x = p/2^r, put in y an approximation to atan(x)/x using 2^m terms
- for the series expansion, with an error of at most 1 ulp.
- Assumes 0 < x < 1, thus 1 <= p < 2^r.
- More precisely, p consists of the floor(r/2) bits of the binary expansion
- of a number 0 < s < 1:
- * the bit of weight 2^-1 is for r=1, thus p <= 1
- * the bit of weight 2^-2 is for r=2, thus p <= 1
- * the two bits of weight 2^-3 and 2^-4 are for r=4, thus p <= 3
- * more generally p < 2^(r/2).
-
- If X=x^2, we want 1 - X/3 + X^2/5 - ... + (-1)^k*X^k/(2k+1) + ...
-
- When we sum terms up to x^k/(2k+1), the denominator Q[0] is
- 3*5*7*...*(2k+1) ~ (2k/e)^k.
-
- The tab[] array should have at least 3*(m+1) entries.
-*/
-static void
-mpfr_atan_aux (mpfr_ptr y, mpz_ptr p, unsigned long r, int m, mpz_t *tab)
-{
- mpz_t *S, *Q, *ptoj;
- mp_bitcnt_t n, h, j; /* unsigned type, which is >= unsigned long */
- mpfr_exp_t diff, expo;
- int im, i, k, l, done;
- mpfr_prec_t mult;
- mpfr_prec_t accu[MPFR_PREC_BITS], log2_nb_terms[MPFR_PREC_BITS];
- mpfr_prec_t precy = MPFR_PREC(y);
-
- MPFR_ASSERTD (mpz_sgn (p) > 0);
- MPFR_ASSERTD (m > 0);
- MPFR_ASSERTD (m <= MPFR_PREC_BITS - 1);
-
-#if GMP_NUMB_BITS == 64
- /* tabulate values for small precision and small value of r (which are the
- most expensive to compute) */
- if (precy <= 192)
- {
- unsigned long u;
-
- switch (r)
- {
- case 1:
- /* p has 1 bit: necessarily p=1 */
- MPFR_ASSERTD(mpz_cmp_ui (p, 1) == 0);
- set_table (y, atan_table[0]);
- return;
- case 2:
- /* p has 1 bit: necessarily p=1 too */
- MPFR_ASSERTD(mpz_cmp_ui (p, 1) == 0);
- set_table (y, atan_table[1]);
- return;
- case 4:
- /* p has at most 2 bits: 1 <= p <= 3 */
- u = mpz_get_ui (p);
- MPFR_ASSERTD(1 <= u && u <= 3);
- set_table (y, atan_table[1 + u]);
- return;
- case 8:
- /* p has at most 4 bits: 1 <= p <= 15 */
- u = mpz_get_ui (p);
- MPFR_ASSERTD(1 <= u && u <= 15);
- set_table (y, atan_table[4 + u]);
- return;
- }
- }
-#endif
-
- /* Set Tables */
- S = tab; /* S */
- ptoj = S + 1*(m+1); /* p^2^j Precomputed table */
- Q = S + 2*(m+1); /* Product of Odd integer table */
-
- /* From p to p^2, and r to 2r */
- mpz_mul (p, p, p);
- MPFR_ASSERTD (2 * r > r);
- r = 2 * r;
-
- /* Normalize p */
- n = mpz_scan1 (p, 0);
- if (n > 0)
- {
- mpz_tdiv_q_2exp (p, p, n); /* exact */
- MPFR_ASSERTD (r > n);
- r -= n;
- }
-
- /* Since |p/2^r| < 1, and p is a non-zero integer, necessarily r > 0. */
- MPFR_ASSERTD (mpz_sgn (p) > 0);
- MPFR_ASSERTD (m > 0);
- MPFR_ASSERTD (r > 0);
-
- /* check if p=1 (special case) */
- l = 0;
- /*
- We compute by binary splitting, with X = x^2 = p/2^r:
- P(a,b) = p if a+1=b, P(a,c)*P(c,b) otherwise
- Q(a,b) = (2a+1)*2^r if a+1=b [except Q(0,1)=1], Q(a,c)*Q(c,b) otherwise
- S(a,b) = p*(2a+1) if a+1=b, Q(c,b)*S(a,c)+Q(a,c)*P(a,c)*S(c,b) otherwise
- Then atan(x)/x ~ S(0,i)/Q(0,i) for i so that (p/2^r)^i/i is small enough.
- The factor 2^(r*(b-a)) in Q(a,b) is implicit, thus we have to take it
- into account when we compute with Q.
- */
- accu[0] = 0; /* accu[k] = Mult[0] + ... + Mult[k], where Mult[j] is the
- number of bits of the corresponding term S[j]/Q[j] */
- if (mpz_cmp_ui (p, 1) != 0)
- {
- /* p <> 1: precompute ptoj table */
- mpz_set (ptoj[0], p);
- for (im = 1 ; im <= m ; im ++)
- mpz_mul (ptoj[im], ptoj[im - 1], ptoj[im - 1]);
- /* main loop */
- n = 1UL << m;
- MPFR_ASSERTN (n != 0); /* no overflow */
- /* the i-th term being X^i/(2i+1) with X=p/2^r, we can stop when
- p^i/2^(r*i) < 2^(-precy), i.e. r*i > precy + log2(p^i) */
- for (i = k = done = 0; (i < n) && (done == 0); i += 2, k ++)
- {
- /* initialize both S[k],Q[k] and S[k+1],Q[k+1] */
- mpz_set_ui (Q[k+1], 2 * i + 3); /* Q(i+1,i+2) */
- mpz_mul_ui (S[k+1], p, 2 * i + 1); /* S(i+1,i+2) */
- mpz_mul_2exp (S[k], Q[k+1], r);
- mpz_sub (S[k], S[k], S[k+1]); /* S(i,i+2) */
- mpz_mul_ui (Q[k], Q[k+1], 2 * i + 1); /* Q(i,i+2) */
- log2_nb_terms[k] = 1; /* S[k]/Q[k] corresponds to 2 terms */
- for (j = (i + 2) >> 1, l = 1; (j & 1) == 0; l ++, j >>= 1, k --)
- {
- /* invariant: S[k-1]/Q[k-1] and S[k]/Q[k] correspond
- to 2^l terms each. We combine them into S[k-1]/Q[k-1] */
- MPFR_ASSERTD (k > 0);
- mpz_mul (S[k], S[k], Q[k-1]);
- mpz_mul (S[k], S[k], ptoj[l]);
- mpz_mul (S[k-1], S[k-1], Q[k]);
- mpz_mul_2exp (S[k-1], S[k-1], r << l);
- mpz_add (S[k-1], S[k-1], S[k]);
- mpz_mul (Q[k-1], Q[k-1], Q[k]);
- log2_nb_terms[k-1] = l + 1;
- /* now S[k-1]/Q[k-1] corresponds to 2^(l+1) terms */
- MPFR_MPZ_SIZEINBASE2(mult, ptoj[l+1]);
- mult = (r << (l + 1)) - mult - 1;
- accu[k-1] = (k == 1) ? mult : accu[k-2] + mult;
- if (accu[k-1] > precy)
- done = 1;
- }
- }
- }
- else /* special case p=1: the i-th term being X^i/(2i+1) with X=1/2^r,
- we can stop when r*i > precy i.e. i > precy/r */
- {
- n = 1UL << m;
- if (precy / r <= n)
- n = (precy / r) + 1;
- MPFR_ASSERTN (n != 0); /* no overflow */
- for (i = k = 0; i < n; i += 2, k ++)
- {
- mpz_set_ui (Q[k + 1], 2 * i + 3);
- mpz_mul_2exp (S[k], Q[k+1], r);
- mpz_sub_ui (S[k], S[k], 1 + 2 * i);
- mpz_mul_ui (Q[k], Q[k + 1], 1 + 2 * i);
- log2_nb_terms[k] = 1; /* S[k]/Q[k] corresponds to 2 terms */
- for (j = (i + 2) >> 1, l = 1; (j & 1) == 0; l++, j >>= 1, k --)
- {
- MPFR_ASSERTD (k > 0);
- mpz_mul (S[k], S[k], Q[k-1]);
- mpz_mul (S[k-1], S[k-1], Q[k]);
- mpz_mul_2exp (S[k-1], S[k-1], r << l);
- mpz_add (S[k-1], S[k-1], S[k]);
- mpz_mul (Q[k-1], Q[k-1], Q[k]);
- log2_nb_terms[k-1] = l + 1;
- }
- }
- }
-
- /* we need to combine S[0]/Q[0]...S[k-1]/Q[k-1] */
- h = 0; /* number of terms accumulated in S[k]/Q[k] */
- while (k > 1)
- {
- k --;
- /* combine S[k-1]/Q[k-1] and S[k]/Q[k] */
- mpz_mul (S[k], S[k], Q[k-1]);
- if (mpz_cmp_ui (p, 1) != 0)
- mpz_mul (S[k], S[k], ptoj[log2_nb_terms[k-1]]);
- mpz_mul (S[k-1], S[k-1], Q[k]);
- h += (mp_bitcnt_t) 1 << log2_nb_terms[k];
- mpz_mul_2exp (S[k-1], S[k-1], r * h);
- mpz_add (S[k-1], S[k-1], S[k]);
- mpz_mul (Q[k-1], Q[k-1], Q[k]);
- }
-
- MPFR_MPZ_SIZEINBASE2 (diff, S[0]);
- diff -= 2 * precy;
- expo = diff;
- if (diff >= 0)
- mpz_tdiv_q_2exp (S[0], S[0], diff);
- else
- mpz_mul_2exp (S[0], S[0], -diff);
-
- MPFR_MPZ_SIZEINBASE2 (diff, Q[0]);
- diff -= precy;
- expo -= diff;
- if (diff >= 0)
- mpz_tdiv_q_2exp (Q[0], Q[0], diff);
- else
- mpz_mul_2exp (Q[0], Q[0], -diff);
-
- mpz_tdiv_q (S[0], S[0], Q[0]);
- mpfr_set_z (y, S[0], MPFR_RNDD);
- /* TODO: Check/prove that the following expression doesn't overflow. */
- expo = MPFR_GET_EXP (y) + expo - r * (i - 1);
- MPFR_SET_EXP (y, expo);
-}
-
-int
-mpfr_atan (mpfr_ptr atan, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t xp, arctgt, sk, tmp, tmp2;
- mpz_t ukz;
- mpz_t tabz[3*(MPFR_PREC_BITS+1)];
- mpfr_exp_t exptol;
- mpfr_prec_t prec, realprec, est_lost, lost;
- unsigned long twopoweri, log2p, red;
- int comparison, inexact;
- int i, n0, oldn0;
- MPFR_GROUP_DECL (group);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("atan[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (atan), mpfr_log_prec, atan, inexact));
-
- /* Singular cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (atan);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- MPFR_SAVE_EXPO_MARK (expo);
- if (MPFR_IS_POS (x)) /* arctan(+inf) = Pi/2 */
- inexact = mpfr_const_pi (atan, rnd_mode);
- else /* arctan(-inf) = -Pi/2 */
- {
- inexact = -mpfr_const_pi (atan,
- MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN (atan);
- }
- mpfr_div_2ui (atan, atan, 1, rnd_mode); /* exact (no exceptions) */
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (atan, inexact, rnd_mode);
- }
- else /* x is necessarily 0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (atan);
- MPFR_SET_SAME_SIGN (atan, x);
- MPFR_RET (0);
- }
- }
-
- /* atan(x) = x - x^3/3 + x^5/5...
- so the error is < 2^(3*EXP(x)-1)
- so `EXP(x)-(3*EXP(x)-1)` = -2*EXP(x)+1 */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (atan, x, -2 * MPFR_GET_EXP (x), 1, 0,
- rnd_mode, {});
-
- /* Set x_p=|x| */
- MPFR_TMP_INIT_ABS (xp, x);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Other simple case arctan(-+1)=-+pi/4 */
- comparison = mpfr_cmp_ui (xp, 1);
- if (MPFR_UNLIKELY (comparison == 0))
- {
- int neg = MPFR_IS_NEG (x);
- inexact = mpfr_const_pi (atan, MPFR_IS_POS (x) ? rnd_mode
- : MPFR_INVERT_RND (rnd_mode));
- if (neg)
- {
- inexact = -inexact;
- MPFR_CHANGE_SIGN (atan);
- }
- mpfr_div_2ui (atan, atan, 2, rnd_mode); /* exact (no exceptions) */
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (atan, inexact, rnd_mode);
- }
-
- realprec = MPFR_PREC (atan) + MPFR_INT_CEIL_LOG2 (MPFR_PREC (atan)) + 4;
- prec = realprec + GMP_NUMB_BITS;
-
- /* Initialisation */
- mpz_init2 (ukz, prec); /* ukz will need 'prec' bits below */
- MPFR_GROUP_INIT_4 (group, prec, sk, tmp, tmp2, arctgt);
- oldn0 = 0;
-
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- /* First, if |x| < 1, we need to have more prec to be able to round (sup)
- n0 = ceil(log(prec_requested + 2 + 1+ln(2.4)/ln(2))/log(2)) */
- mpfr_prec_t sup;
- sup = MPFR_GET_EXP (xp) < 0 ? 2 - MPFR_GET_EXP (xp) : 1; /* sup >= 1 */
-
- n0 = MPFR_INT_CEIL_LOG2 ((realprec + sup) + 3);
- /* since realprec >= 4, n0 >= ceil(log2(8)) >= 3, thus 3*n0 > 2 */
- prec = (realprec + sup) + 1 + MPFR_INT_CEIL_LOG2 (3*n0-2);
-
- /* the number of lost bits due to argument reduction is
- 9 - 2 * EXP(sk), which we estimate by 9 + 2*ceil(log2(p))
- since we manage that sk < 1/p */
- if (MPFR_PREC (atan) > 100)
- {
- log2p = MPFR_INT_CEIL_LOG2(prec) / 2 - 3;
- est_lost = 9 + 2 * log2p;
- prec += est_lost;
- }
- else
- log2p = est_lost = 0; /* don't reduce the argument */
-
- /* Initialisation */
- MPFR_GROUP_REPREC_4 (group, prec, sk, tmp, tmp2, arctgt);
- MPFR_ASSERTD (n0 <= MPFR_PREC_BITS);
- /* Note: the tabz[] entries are used to get a rational approximation
- of atan(x) to precision 'prec', thus allocating them to 'prec' bits
- should be good enough. */
- for (i = oldn0; i < 3 * (n0 + 1); i++)
- mpz_init2 (tabz[i], prec);
- oldn0 = 3 * (n0 + 1);
-
- /* The mpfr_ui_div below mustn't underflow. This is guaranteed by
- MPFR_SAVE_EXPO_MARK, but let's check that for maintainability. */
- MPFR_ASSERTD (__gmpfr_emax <= 1 - __gmpfr_emin);
-
- if (comparison > 0) /* use atan(xp) = Pi/2 - atan(1/xp) */
- mpfr_ui_div (sk, 1, xp, MPFR_RNDN);
- else
- mpfr_set (sk, xp, MPFR_RNDN);
-
- /* now 0 < sk <= 1 */
-
- /* Argument reduction: atan(x) = 2 atan((sqrt(1+x^2)-1)/x).
- We want |sk| < k/sqrt(p) where p is the target precision. */
- lost = 0;
- for (red = 0; MPFR_GET_EXP(sk) > - (mpfr_exp_t) log2p; red ++)
- {
- lost = 9 - 2 * MPFR_EXP(sk);
- mpfr_sqr (tmp, sk, MPFR_RNDN);
- mpfr_add_ui (tmp, tmp, 1, MPFR_RNDN);
- mpfr_sqrt (tmp, tmp, MPFR_RNDN);
- mpfr_sub_ui (tmp, tmp, 1, MPFR_RNDN);
- if (red == 0 && comparison > 0)
- /* use xp = 1/sk */
- mpfr_mul (sk, tmp, xp, MPFR_RNDN);
- else
- mpfr_div (sk, tmp, sk, MPFR_RNDN);
- }
-
- /* We started from x0 = 1/|x| if |x| > 1, and |x| otherwise, thus
- we had x0 = min(|x|, 1/|x|) <= 1, and applied 'red' times the
- argument reduction x -> (sqrt(1+x^2)-1)/x, which keeps 0 < x <= 1 */
-
- /* We first show that if the for-loop is executed at least once, then
- sk < 1 after the loop. Indeed for 1/2 <= x <= 1, interval
- arithmetic with precision 5 shows that (sqrt(1+x^2)-1)/x,
- when evaluated with rounding to nearest, gives a value <= 0.875.
- Now assume 2^(-k-1) <= x <= 2^(-k) for k >= 1.
- Then o(x^2) <= 2^(-2k), o(1+x^2) <= 1+2^(-2k),
- o(sqrt(1+x^2)) <= 1+2^(-2k-1), o(sqrt(1+x^2)-1) <= 2^(-2k-1),
- and o((sqrt(1+x^2)-1)/x) <= 2^(-k) <= 1/2.
-
- Now if sk=1 before the loop, then EXP(sk)=1 and since log2p >= 0,
- the loop is performed at least once, thus the case sk=1 cannot
- happen below.
- */
-
- MPFR_ASSERTD(mpfr_cmp_ui (sk, 1) < 0);
-
- /* Assignation */
- MPFR_SET_ZERO (arctgt);
- twopoweri = 1 << 0;
- MPFR_ASSERTD (n0 >= 4);
- for (i = 0 ; i < n0; i++)
- {
- if (MPFR_UNLIKELY (MPFR_IS_ZERO (sk)))
- break;
- /* Calculation of trunc(tmp) --> mpz */
- mpfr_mul_2ui (tmp, sk, twopoweri, MPFR_RNDN);
- mpfr_trunc (tmp, tmp);
- if (!MPFR_IS_ZERO (tmp))
- {
- /* tmp = ukz*2^exptol */
- exptol = mpfr_get_z_2exp (ukz, tmp);
- /* since the s_k are decreasing (see algorithms.tex),
- and s_0 = min(|x|, 1/|x|) < 1, we have sk < 1,
- thus exptol < 0 */
- MPFR_ASSERTD (exptol < 0);
- mpz_tdiv_q_2exp (ukz, ukz, (unsigned long int) (-exptol));
- /* since tmp is a non-zero integer, and tmp = ukzold*2^exptol,
- we now have ukz = tmp, thus ukz is non-zero */
- /* Calculation of arctan(Ak) */
- mpfr_set_z (tmp, ukz, MPFR_RNDN);
- mpfr_div_2ui (tmp, tmp, twopoweri, MPFR_RNDN);
- mpfr_atan_aux (tmp2, ukz, twopoweri, n0 - i, tabz);
- mpfr_mul (tmp2, tmp2, tmp, MPFR_RNDN);
- /* Addition */
- mpfr_add (arctgt, arctgt, tmp2, MPFR_RNDN);
- /* Next iteration */
- mpfr_sub (tmp2, sk, tmp, MPFR_RNDN);
- mpfr_mul (sk, sk, tmp, MPFR_RNDN);
- mpfr_add_ui (sk, sk, 1, MPFR_RNDN);
- mpfr_div (sk, tmp2, sk, MPFR_RNDN);
- }
- twopoweri <<= 1;
- }
- /* Add last step (Arctan(sk) ~= sk */
- mpfr_add (arctgt, arctgt, sk, MPFR_RNDN);
-
- /* argument reduction */
- mpfr_mul_2ui (arctgt, arctgt, red, MPFR_RNDN);
-
- if (comparison > 0)
- { /* atan(x) = Pi/2-atan(1/x) for x > 0 */
- mpfr_const_pi (tmp, MPFR_RNDN);
- mpfr_div_2ui (tmp, tmp, 1, MPFR_RNDN);
- mpfr_sub (arctgt, tmp, arctgt, MPFR_RNDN);
- }
- MPFR_SET_POS (arctgt);
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (arctgt, realprec + est_lost - lost,
- MPFR_PREC (atan), rnd_mode)))
- break;
- MPFR_ZIV_NEXT (loop, realprec);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set4 (atan, arctgt, rnd_mode, MPFR_SIGN (x));
-
- for (i = 0 ; i < oldn0 ; i++)
- mpz_clear (tabz[i]);
- mpz_clear (ukz);
- MPFR_GROUP_CLEAR (group);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (atan, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/atan2.c b/Build/source/libs/mpfr/mpfr-src/src/atan2.c
deleted file mode 100644
index 866a8289eab..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/atan2.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/* mpfr_atan2 -- arc-tan 2 of a floating-point number
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-static int
-pi_div_2ui (mpfr_ptr dest, int i, int neg, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
- if (neg) /* -PI/2^i */
- {
- inexact = - mpfr_const_pi (dest, MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN (dest);
- }
- else /* PI/2^i */
- {
- inexact = mpfr_const_pi (dest, rnd_mode);
- }
- mpfr_div_2ui (dest, dest, i, rnd_mode); /* exact */
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (dest, inexact, rnd_mode);
-}
-
-int
-mpfr_atan2 (mpfr_ptr dest, mpfr_srcptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t tmp, pi;
- int inexact;
- mpfr_prec_t prec;
- mpfr_exp_t e;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("y[%Pu]=%.*Rg x[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (y), mpfr_log_prec, y,
- mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("atan[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (dest), mpfr_log_prec, dest, inexact));
-
- /* Special cases */
- if (MPFR_ARE_SINGULAR (x, y))
- {
- /* atan2(0, 0) does not raise the "invalid" floating-point
- exception, nor does atan2(y, 0) raise the "divide-by-zero"
- floating-point exception.
- -- atan2(±0, -0) returns ±pi.313)
- -- atan2(±0, +0) returns ±0.
- -- atan2(±0, x) returns ±pi, for x < 0.
- -- atan2(±0, x) returns ±0, for x > 0.
- -- atan2(y, ±0) returns -pi/2 for y < 0.
- -- atan2(y, ±0) returns pi/2 for y > 0.
- -- atan2(±oo, -oo) returns ±3pi/4.
- -- atan2(±oo, +oo) returns ±pi/4.
- -- atan2(±oo, x) returns ±pi/2, for finite x.
- -- atan2(±y, -oo) returns ±pi, for finite y > 0.
- -- atan2(±y, +oo) returns ±0, for finite y > 0.
- */
- if (MPFR_IS_NAN (x) || MPFR_IS_NAN (y))
- {
- MPFR_SET_NAN (dest);
- MPFR_RET_NAN;
- }
- if (MPFR_IS_ZERO (y))
- {
- if (MPFR_IS_NEG (x)) /* +/- PI */
- {
- set_pi:
- if (MPFR_IS_NEG (y))
- {
- inexact = mpfr_const_pi (dest, MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN (dest);
- return -inexact;
- }
- else
- return mpfr_const_pi (dest, rnd_mode);
- }
- else /* +/- 0 */
- {
- set_zero:
- MPFR_SET_ZERO (dest);
- MPFR_SET_SAME_SIGN (dest, y);
- return 0;
- }
- }
- if (MPFR_IS_ZERO (x))
- {
- return pi_div_2ui (dest, 1, MPFR_IS_NEG (y), rnd_mode);
- }
- if (MPFR_IS_INF (y))
- {
- if (!MPFR_IS_INF (x)) /* +/- PI/2 */
- return pi_div_2ui (dest, 1, MPFR_IS_NEG (y), rnd_mode);
- else if (MPFR_IS_POS (x)) /* +/- PI/4 */
- return pi_div_2ui (dest, 2, MPFR_IS_NEG (y), rnd_mode);
- else /* +/- 3*PI/4: Ugly since we have to round properly */
- {
- mpfr_t tmp2;
- MPFR_ZIV_DECL (loop2);
- mpfr_prec_t prec2 = MPFR_PREC (dest) + 10;
-
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_init2 (tmp2, prec2);
- MPFR_ZIV_INIT (loop2, prec2);
- for (;;)
- {
- mpfr_const_pi (tmp2, MPFR_RNDN);
- mpfr_mul_ui (tmp2, tmp2, 3, MPFR_RNDN); /* Error <= 2 */
- mpfr_div_2ui (tmp2, tmp2, 2, MPFR_RNDN);
- if (MPFR_CAN_ROUND (tmp2, MPFR_PREC (tmp2) - 2,
- MPFR_PREC (dest), rnd_mode))
- break;
- MPFR_ZIV_NEXT (loop2, prec2);
- mpfr_set_prec (tmp2, prec2);
- }
- MPFR_ZIV_FREE (loop2);
- if (MPFR_IS_NEG (y))
- MPFR_CHANGE_SIGN (tmp2);
- inexact = mpfr_set (dest, tmp2, rnd_mode);
- mpfr_clear (tmp2);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (dest, inexact, rnd_mode);
- }
- }
- MPFR_ASSERTD (MPFR_IS_INF (x));
- if (MPFR_IS_NEG (x))
- goto set_pi;
- else
- goto set_zero;
- }
-
- /* When x is a power of two, we call directly atan(y/x) since y/x is
- exact. */
- if (MPFR_UNLIKELY (MPFR_IS_POS (x) && mpfr_powerof2_raw (x)))
- {
- int r;
- mpfr_t yoverx;
- mpfr_flags_t saved_flags = __gmpfr_flags;
-
- mpfr_init2 (yoverx, MPFR_PREC (y));
- if (MPFR_LIKELY (mpfr_div_2si (yoverx, y, MPFR_GET_EXP (x) - 1,
- MPFR_RNDN) == 0))
- {
- /* Here the flags have not changed due to mpfr_div_2si. */
- r = mpfr_atan (dest, yoverx, rnd_mode);
- mpfr_clear (yoverx);
- return r;
- }
- else
- {
- /* Division is inexact because of a small exponent range */
- mpfr_clear (yoverx);
- __gmpfr_flags = saved_flags;
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Set up initial prec */
- prec = MPFR_PREC (dest) + 3 + MPFR_INT_CEIL_LOG2 (MPFR_PREC (dest));
- mpfr_init2 (tmp, prec);
-
- MPFR_ZIV_INIT (loop, prec);
- if (MPFR_IS_POS (x))
- /* use atan2(y,x) = atan(y/x) */
- for (;;)
- {
- int div_inex;
- MPFR_BLOCK_DECL (flags);
-
- MPFR_BLOCK (flags, div_inex = mpfr_div (tmp, y, x, MPFR_RNDN));
- if (div_inex == 0)
- {
- /* Result is exact. */
- inexact = mpfr_atan (dest, tmp, rnd_mode);
- goto end;
- }
-
- /* Error <= ulp (tmp) except in case of underflow or overflow. */
-
- /* If the division underflowed, since |atan(z)/z| < 1, we have
- an underflow. */
- if (MPFR_UNDERFLOW (flags))
- {
- int sign;
-
- /* In the case MPFR_RNDN with 2^(emin-2) < |y/x| < 2^(emin-1):
- The smallest significand value S > 1 of |y/x| is:
- * 1 / (1 - 2^(-px)) if py <= px,
- * (1 - 2^(-px) + 2^(-py)) / (1 - 2^(-px)) if py >= px.
- Therefore S - 1 > 2^(-pz), where pz = max(px,py). We have:
- atan(|y/x|) > atan(z), where z = 2^(emin-2) * (1 + 2^(-pz)).
- > z - z^3 / 3.
- > 2^(emin-2) * (1 + 2^(-pz) - 2^(2 emin - 5))
- Assuming pz <= -2 emin + 5, we can round away from zero
- (this is what mpfr_underflow always does on MPFR_RNDN).
- In the case MPFR_RNDN with |y/x| <= 2^(emin-2), we round
- toward zero, as |atan(z)/z| < 1. */
- MPFR_ASSERTN (MPFR_PREC_MAX <=
- 2 * (mpfr_uexp_t) - MPFR_EMIN_MIN + 5);
- if (rnd_mode == MPFR_RNDN && MPFR_IS_ZERO (tmp))
- rnd_mode = MPFR_RNDZ;
- sign = MPFR_SIGN (tmp);
- mpfr_clear (tmp);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (dest, rnd_mode, sign);
- }
-
- mpfr_atan (tmp, tmp, MPFR_RNDN); /* Error <= 2*ulp (tmp) since
- abs(D(arctan)) <= 1 */
- /* TODO: check that the error bound is correct in case of overflow. */
- /* FIXME: Error <= ulp(tmp) ? */
- if (MPFR_LIKELY (MPFR_CAN_ROUND (tmp, prec - 2, MPFR_PREC (dest),
- rnd_mode)))
- break;
- MPFR_ZIV_NEXT (loop, prec);
- mpfr_set_prec (tmp, prec);
- }
- else /* x < 0 */
- /* Use sign(y)*(PI - atan (|y/x|)) */
- {
- mpfr_init2 (pi, prec);
- for (;;)
- {
- mpfr_div (tmp, y, x, MPFR_RNDN); /* Error <= ulp (tmp) */
- /* If tmp is 0, we have |y/x| <= 2^(-emin-2), thus
- atan|y/x| < 2^(-emin-2). */
- MPFR_SET_POS (tmp); /* no error */
- mpfr_atan (tmp, tmp, MPFR_RNDN); /* Error <= 2*ulp (tmp) since
- abs(D(arctan)) <= 1 */
- mpfr_const_pi (pi, MPFR_RNDN); /* Error <= ulp(pi) /2 */
- e = MPFR_NOTZERO(tmp) ? MPFR_GET_EXP (tmp) : __gmpfr_emin - 1;
- mpfr_sub (tmp, pi, tmp, MPFR_RNDN); /* see above */
- if (MPFR_IS_NEG (y))
- MPFR_CHANGE_SIGN (tmp);
- /* Error(tmp) <= (1/2+2^(EXP(pi)-EXP(tmp)-1)+2^(e-EXP(tmp)+1))*ulp
- <= 2^(MAX (MAX (EXP(PI)-EXP(tmp)-1, e-EXP(tmp)+1),
- -1)+2)*ulp(tmp) */
- e = MAX (MAX (MPFR_GET_EXP (pi)-MPFR_GET_EXP (tmp) - 1,
- e - MPFR_GET_EXP (tmp) + 1), -1) + 2;
- if (MPFR_LIKELY (MPFR_CAN_ROUND (tmp, prec - e, MPFR_PREC (dest),
- rnd_mode)))
- break;
- MPFR_ZIV_NEXT (loop, prec);
- mpfr_set_prec (tmp, prec);
- mpfr_set_prec (pi, prec);
- }
- mpfr_clear (pi);
- }
- inexact = mpfr_set (dest, tmp, rnd_mode);
-
- end:
- MPFR_ZIV_FREE (loop);
- mpfr_clear (tmp);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (dest, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/atanh.c b/Build/source/libs/mpfr/mpfr-src/src/atanh.c
deleted file mode 100644
index db0c8ad141a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/atanh.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* mpfr_atanh -- Inverse Hyperbolic Tangente
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Put in y an approximation of atanh(x) for x small.
- We assume x <= 1/2, in which case:
- x <= y ~ atanh(x) = x + x^3/3 + x^5/5 + x^7/7 + ... <= 2*x.
- Return k such that the error is bounded by 2^k*ulp(y).
-*/
-static int
-mpfr_atanh_small (mpfr_ptr y, mpfr_srcptr x)
-{
- mpfr_prec_t p = MPFR_PREC(y), err;
- mpfr_t x2, t, u;
- unsigned long i;
- int k;
-
- MPFR_ASSERTD(MPFR_GET_EXP (x) <= -1);
-
- /* in the following, theta represents a value with |theta| <= 2^(1-p)
- (might be a different value each time) */
-
- mpfr_init2 (t, p);
- mpfr_init2 (u, p);
- mpfr_init2 (x2, p);
- mpfr_set (t, x, MPFR_RNDF); /* t = x * (1 + theta) */
- mpfr_set (y, t, MPFR_RNDF); /* exact */
- mpfr_sqr (x2, x, MPFR_RNDF); /* x2 = x^2 * (1 + theta) */
- for (i = 3; ; i += 2)
- {
- mpfr_mul (t, t, x2, MPFR_RNDF); /* t = x^i * (1 + theta)^i */
- mpfr_div_ui (u, t, i, MPFR_RNDF); /* u = x^i/i * (1 + theta)^(i+1) */
- if (MPFR_GET_EXP (u) <= MPFR_GET_EXP (y) - p) /* |u| < ulp(y) */
- break;
- mpfr_add (y, y, u, MPFR_RNDF); /* error <= ulp(y) */
- }
- /* We assume |(1 + theta)^(i+1)| <= 2.
- The neglected part is at most |u| + |u|/4 + |u|/16 + ... <= 4/3*|u|,
- which has to be multiplied by |(1 + theta)^(i+1)| <= 2, thus at most
- 3 ulp(y).
- The rounding error on y is bounded by:
- * for the (i-3)/2 add/sub, each error is bounded by ulp(y_i),
- where y_i is the current value of y, which is bounded by ulp(y)
- for y the final value (since it increases in absolute value),
- this yields (i-3)/2*ulp(y)
- * from Lemma 3.1 from [Higham02] (see algorithms.tex),
- the relative error on u at step i is bounded by:
- (i+1)*epsilon/(1-(i+1)*epsilon) where epsilon = 2^(1-p).
- If (i+1)*epsilon <= 1/2, then the relative error on u at
- step i is bounded by 2*(i+1)*epsilon, and since |u| <= 1/2^(i+1)
- at step i, this gives an absolute error bound of;
- 2*epsilon*x*(4/2^4 + 6/2^6 + 8/2^8 + ...) = 2*2^(1-p)*x*(7/18) =
- 14/9*2^(-p)*x <= 2*ulp(x).
-
- If (i+1)*epsilon <= 1/2, then the relative error on u at step i
- is bounded by (i+1)*epsilon/(1-(i+1)*epsilon) <= 1, thus it follows
- |(1 + theta)^(i+1)| <= 2.
-
- Finally the total error is bounded by 3*ulp(y) + (i-3)/2*ulp(y) +2*ulp(x).
- Since x <= 2*y, we have ulp(x) <= 2*ulp(y), thus the error is bounded by:
- (i+7)/2*ulp(y).
- */
- err = (i + 8) / 2; /* ceil((i+7)/2) */
- k = __gmpfr_int_ceil_log2 (err);
- MPFR_ASSERTN(k + 2 < p);
- /* if k + 2 < p, since k = ceil(log2(err)), we have err <= 2^k <= 2^(p-3),
- thus i+7 <= 2*err <= 2^(p-2), thus (i+7)*epsilon <= 1/2, which implies
- our assumption (i+1)*epsilon <= 1/2. */
- mpfr_clear (t);
- mpfr_clear (u);
- mpfr_clear (x2);
- return k;
-}
-
-/* The computation of atanh is done by:
- atanh = ln((1+x)/(1-x)) / 2
- except when x is very small, in which case atanh = x + tiny error,
- and when x is small, where we use directly the Taylor expansion.
-*/
-
-int
-mpfr_atanh (mpfr_ptr y, mpfr_srcptr xt, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t x, t, te;
- mpfr_prec_t Nx, Ny, Nt;
- mpfr_exp_t err;
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (xt), mpfr_log_prec, xt, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- /* Special cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (xt)))
- {
- /* atanh(NaN) = NaN, and atanh(+/-Inf) = NaN since tanh gives a result
- between -1 and 1 */
- if (MPFR_IS_NAN (xt) || MPFR_IS_INF (xt))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else /* necessarily xt is 0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (xt));
- MPFR_SET_ZERO (y); /* atanh(0) = 0 */
- MPFR_SET_SAME_SIGN (y,xt);
- MPFR_RET (0);
- }
- }
-
- /* atanh (x) = NaN as soon as |x| > 1, and arctanh(+/-1) = +/-Inf */
- if (MPFR_UNLIKELY (MPFR_GET_EXP (xt) > 0))
- {
- if (MPFR_GET_EXP (xt) == 1 && mpfr_powerof2_raw (xt))
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, xt);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0);
- }
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
-
- /* atanh(x) = x + x^3/3 + ... so the error is < 2^(3*EXP(x)-1) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, xt, -2 * MPFR_GET_EXP (xt), 1, 1,
- rnd_mode, {});
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Compute initial precision */
- Nx = MPFR_PREC (xt);
- MPFR_TMP_INIT_ABS (x, xt);
- Ny = MPFR_PREC (y);
- Nt = MAX (Nx, Ny);
- Nt = Nt + MPFR_INT_CEIL_LOG2 (Nt) + 4;
-
- /* initialize of intermediary variable */
- mpfr_init2 (t, Nt);
- mpfr_init2 (te, Nt);
-
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- int k;
-
- /* small case: assuming the AGM algorithm used by mpfr_log uses
- log2(p) steps for a precision of p bits, we try the special
- variant whenever EXP(x) <= -p/log2(p). */
- k = 1 + __gmpfr_int_ceil_log2 (Ny); /* the +1 avoids a division by 0
- when Ny=1 */
- if (MPFR_GET_EXP (x) <= - 1 - (mpfr_exp_t) (Ny / k))
- /* this implies EXP(x) <= -1 thus x < 1/2 */
- {
- err = Nt - mpfr_atanh_small (t, x);
- goto round;
- }
-
- /* compute atanh */
- mpfr_ui_sub (te, 1, x, MPFR_RNDU); /* (1-x) with x = |xt| */
- mpfr_add_ui (t, x, 1, MPFR_RNDD); /* (1+x) */
- mpfr_div (t, t, te, MPFR_RNDN); /* (1+x)/(1-x) */
- mpfr_log (t, t, MPFR_RNDN); /* ln((1+x)/(1-x)) */
- mpfr_div_2ui (t, t, 1, MPFR_RNDN); /* ln((1+x)/(1-x)) / 2 */
-
- /* error estimate: see algorithms.tex */
- /* FIXME: this does not correspond to the value in algorithms.tex!!! */
- /* err = Nt - __gmpfr_ceil_log2(1+5*pow(2,1-MPFR_EXP(t))); */
- err = Nt - (MAX (4 - MPFR_GET_EXP (t), 0) + 1);
-
- round:
- if (MPFR_LIKELY (MPFR_IS_ZERO (t)
- || MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- break;
-
- /* reactualisation of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- mpfr_set_prec (te, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set4 (y, t, rnd_mode, MPFR_SIGN (xt));
-
- mpfr_clear (t);
- mpfr_clear (te);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/bernoulli.c b/Build/source/libs/mpfr/mpfr-src/src/bernoulli.c
deleted file mode 100644
index 3656d80fdc8..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/bernoulli.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/* bernoulli -- internal function to compute Bernoulli numbers.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* assume p >= 5 and is odd */
-static int
-is_prime (unsigned long p)
-{
- unsigned long q;
-
- MPFR_ASSERTD (p >= 5 && (p & 1) != 0);
- for (q = 3; q * q <= p; q += 2)
- if ((p % q) == 0)
- return 0;
- return 1;
-}
-
-/* Computes and stores B[2n]*(2n+1)! in b[n]
- using Von Staudt–Clausen theorem, which says that the denominator of B[n]
- divides the product of all primes p such that p-1 divides n.
- Since B[n] = zeta(n) * 2*n!/(2pi)^n, we compute an approximation of
- (2n+1)! * zeta(n) * 2*n!/(2pi)^n and round it to the nearest integer. */
-static void
-mpfr_bernoulli_internal (mpz_t *b, unsigned long n)
-{
- unsigned long p, err, zn;
- mpz_t s, t, u, den;
- mpz_ptr num;
- mpfr_t y, z;
- int ok;
- /* Prec[n/2] is minimal precision so that result is correct for B[n] */
- mpfr_prec_t prec;
- mpfr_prec_t Prec[] = {0, 5, 5, 6, 6, 9, 16, 10, 19, 23, 25, 27, 35, 31,
- 42, 51, 51, 50, 73, 60, 76, 79, 83, 87, 101, 97,
- 108, 113, 119, 125, 149, 133, 146};
-
- mpz_init (b[n]);
-
- if (n == 0)
- {
- mpz_set_ui (b[0], 1);
- return;
- }
-
- /* compute denominator */
- num = b[n];
- n = 2 * n;
- mpz_init_set_ui (den, 6);
- for (p = 5; p <= n+1; p += 2)
- {
- if ((n % (p-1)) == 0 && is_prime (p))
- mpz_mul_ui (den, den, p);
- }
- if (n <= 64)
- prec = Prec[n >> 1];
- else
- {
- /* evaluate the needed precision: zeta(n)*2*den*n!/(2*pi)^n <=
- 3.3*den*(n/e/2/pi)^n*sqrt(2*pi*n) */
- prec = __gmpfr_ceil_log2 (7.0 * (double) n); /* bound 2*pi by 7 */
- prec = (prec + 1) >> 1; /* sqrt(2*pi*n) <= 2^prec */
- mpfr_init2 (z, 53);
- mpfr_set_ui_2exp (z, 251469612, -32, MPFR_RNDU); /* 1/e/2/pi <= z */
- mpfr_mul_ui (z, z, n, MPFR_RNDU);
- mpfr_log2 (z, z, MPFR_RNDU);
- mpfr_mul_ui (z, z, n, MPFR_RNDU);
- p = mpfr_get_ui (z, MPFR_RNDU); /* (n/e/2/pi)^n <= 2^p */
- mpfr_clear (z);
- MPFR_INC_PREC (prec, p + mpz_sizeinbase (den, 2));
- /* the +2 term ensures no rounding failure up to n=10000 */
- MPFR_INC_PREC (prec, __gmpfr_ceil_log2 (prec) + 2);
- }
-
- try_again:
- mpz_init (s);
- mpz_init (t);
- mpz_init (u);
- mpz_set_ui (u, 1);
- mpz_mul_2exp (u, u, prec); /* u = 2^prec */
- mpz_ui_pow_ui (t, 3, n);
- mpz_fdiv_q (s, u, t); /* multiply all terms by 2^prec */
- /* we compute a lower bound of the series, thus the final result cannot
- be too large */
- for (p = 4; mpz_cmp_ui (t, 0) > 0; p++)
- {
- mpz_ui_pow_ui (t, p, n);
- mpz_fdiv_q (t, u, t);
- /* 2^prec/p^n-1 < t <= 2^prec/p^n */
- mpz_add (s, s, t);
- }
- /* sum(2^prec/q^n-1, q=3..p) < t <= sum(2^prec/q^n, q=3..p)
- thus the error on the truncated series is at most p-2.
- The neglected part of the series is R = sum(1/x^n, x=p+1..infinity)
- with int(1/x^n, x=p+1..infinity) <= R <= int(1/x^n, x=p..infinity)
- thus 1/(n-1)/(p+1)^(n-1) <= R <= 1/(n-1)/p^(n-1). The difference between
- the lower and upper bound is bounded by p^(-n), which is bounded by
- 2^(-prec) since t=0 in the above loop */
- mpz_ui_pow_ui (t, p, n - 1);
- mpz_mul_ui (t, t, n - 1);
- mpz_cdiv_q (t, u, t);
- mpz_add (s, s, t);
- /* now 2^prec * (zeta(n)-1-1/2^n) - p < s <= 2^prec * (zeta(n)-1-1/2^n) */
- /* add 1 which is 2^prec */
- mpz_add (s, s, u);
- /* add 1/2^n which is 2^(prec-n) */
- mpz_cdiv_q_2exp (u, u, n);
- mpz_add (s, s, u);
- /* now 2^prec * zeta(n) - p < s <= 2^prec * zeta(n) */
- /* multiply by n! */
- mpz_fac_ui (t, n);
- mpz_mul (s, s, t);
- /* multiply by 2*den */
- mpz_mul (s, s, den);
- mpz_mul_2exp (s, s, 1);
- /* now convert to mpfr */
- mpfr_init2 (z, prec);
- mpfr_set_z (z, s, MPFR_RNDZ);
- /* now (2^prec * zeta(n) - p) * 2*den*n! - ulp(z) < z <=
- 2^prec * zeta(n) * 2*den*n!.
- Since z <= 2^prec * zeta(n) * 2*den*n!,
- ulp(z) <= 2*zeta(n) * 2*den*n!, thus
- (2^prec * zeta(n)-(p+1)) * 2*den*n! < z <= 2^prec * zeta(n) * 2*den*n! */
- mpfr_div_2ui (z, z, prec, MPFR_RNDZ);
- /* now (zeta(n) - (p+1)/2^prec) * 2*den*n! < z <= zeta(n) * 2*den*n! */
- /* divide by (2pi)^n */
- mpfr_init2 (y, prec);
- mpfr_const_pi (y, MPFR_RNDU);
- /* pi <= y <= pi * (1 + 2^(1-prec)) */
- mpfr_mul_2ui (y, y, 1, MPFR_RNDU);
- /* 2pi <= y <= 2pi * (1 + 2^(1-prec)) */
- mpfr_pow_ui (y, y, n, MPFR_RNDU);
- /* (2pi)^n <= y <= (2pi)^n * (1 + 2^(1-prec))^(n+1) */
- mpfr_div (z, z, y, MPFR_RNDZ);
- /* now (zeta(n) - (p+1)/2^prec) * 2*den*n! / (2pi)^n / (1+2^(1-prec))^(n+1)
- <= z <= zeta(n) * 2*den*n! / (2pi)^n, and since zeta(n) >= 1:
- den * B[n] * (1 - (p+1)/2^prec) / (1+2^(1-prec))^(n+1)
- <= z <= den * B[n]
- Since 1 / (1+2^(1-prec))^(n+1) >= (1 - 2^(1-prec))^(n+1) >=
- 1 - (n+1) * 2^(1-prec):
- den * B[n] / (2pi)^n * (1 - (p+1)/2^prec) * (1-(n+1)*2^(1-prec))
- <= z <= den * B[n] thus
- den * B[n] * (1 - (2n+p+3)/2^prec) <= z <= den * B[n] */
-
- /* the error is bounded by 2^(EXP(z)-prec) * (2n+p+3) */
- for (err = 0, p = 2 * n + p + 3; p > 1; err++, p = (p + 1) >> 1);
- zn = MPFR_LIMB_SIZE(z) * GMP_NUMB_BITS; /* total number of bits of z */
- if (err >= prec)
- ok = 0;
- else
- {
- err = prec - err;
- /* now the absolute error is bounded by 2^(EXP(z) - err):
- den * B[n] - 2^(EXP(z) - err) <= z <= den * B[n]
- thus if subtracting 2^(EXP(z) - err) does not change the rounding
- (up) we are ok */
- err = mpn_scan1 (MPFR_MANT(z), zn - err);
- /* weight of this 1 bit is 2^(EXP(z) - zn + err) */
- ok = MPFR_EXP(z) < zn - err;
- }
- mpfr_get_z (num, z, MPFR_RNDU);
- if ((n & 2) == 0)
- mpz_neg (num, num);
-
- /* multiply by (n+1)! */
- mpz_mul_ui (t, t, n + 1);
- mpz_divexact (t, t, den); /* t was still n! */
- mpz_mul (num, num, t);
-
- mpfr_clear (y);
- mpfr_clear (z);
- mpz_clear (s);
- mpz_clear (t);
- mpz_clear (u);
-
- if (!ok)
- {
- MPFR_INC_PREC (prec, prec / 10);
- goto try_again;
- }
-
- mpz_clear (den);
-}
-
-static MPFR_THREAD_ATTR mpz_t *bernoulli_table = NULL;
-static MPFR_THREAD_ATTR unsigned long bernoulli_size = 0;
-static MPFR_THREAD_ATTR unsigned long bernoulli_alloc = 0;
-
-mpz_srcptr
-mpfr_bernoulli_cache (unsigned long n)
-{
- unsigned long i;
-
- if (n >= bernoulli_size)
- {
- if (bernoulli_alloc == 0)
- {
- bernoulli_alloc = MAX(16, n + n/4);
- bernoulli_table = (mpz_t *)
- mpfr_allocate_func (bernoulli_alloc * sizeof (mpz_t));
- bernoulli_size = 0;
- }
- else if (n >= bernoulli_alloc)
- {
- bernoulli_table = (mpz_t *) mpfr_reallocate_func
- (bernoulli_table, bernoulli_alloc * sizeof (mpz_t),
- (n + n/4) * sizeof (mpz_t));
- bernoulli_alloc = n + n/4;
- }
- MPFR_ASSERTD (bernoulli_alloc > n);
- MPFR_ASSERTD (bernoulli_size >= 0);
- for (i = bernoulli_size; i <= n; i++)
- mpfr_bernoulli_internal (bernoulli_table, i);
- bernoulli_size = n+1;
- }
- MPFR_ASSERTD (bernoulli_size > n);
- return bernoulli_table[n];
-}
-
-void
-mpfr_bernoulli_freecache (void)
-{
- unsigned long i;
-
- if (bernoulli_table != NULL)
- {
- for (i = 0; i < bernoulli_size; i++)
- {
- mpz_clear (bernoulli_table[i]);
- }
- mpfr_free_func (bernoulli_table, bernoulli_alloc * sizeof (mpz_t));
- bernoulli_table = NULL;
- bernoulli_alloc = 0;
- bernoulli_size = 0;
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/beta.c b/Build/source/libs/mpfr/mpfr-src/src/beta.c
deleted file mode 100644
index c260c42c48c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/beta.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/* mpfr_beta -- beta function
-
-Copyright 2017-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H /* for MPFR_INT_CEIL_LOG2 */
-#include "mpfr-impl.h"
-
-/* use formula (6.2.2) from Abramowitz & Stegun:
- beta(z,w) = gamma(z)*gamma(w)/gamma(z+w) */
-int
-mpfr_beta (mpfr_ptr r, mpfr_srcptr z, mpfr_srcptr w, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t emin, emax;
- mpfr_uexp_t pmin;
- mpfr_prec_t prec;
- mpfr_t z_plus_w, tmp, tmp2;
- int inex, w_integer;
- MPFR_GROUP_DECL (group);
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (mpfr_less_p (z, w))
- return mpfr_beta (r, w, z, rnd_mode);
-
- /* Now, either z and w are unordered (at least one is a NaN), or z >= w. */
-
- if (MPFR_ARE_SINGULAR (z, w))
- {
- /* if z or w is NaN, return NaN */
- if (MPFR_IS_NAN (z) || MPFR_IS_NAN (w))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (z) || MPFR_IS_INF (w))
- {
- /* Since we have z >= w:
- if z = +Inf and w > 0, then r = +0 (including w = +Inf);
- if z = +Inf and w = 0, then r = NaN
- [beta(z,1/log(z)) tends to +Inf whereas
- beta(z,1/log(log(z))) tends to +0]
- if z = +Inf and w < 0:
- if w is an integer or -Inf: r = NaN
- if -2k-1 < w < -2k: r = -Inf
- if -2k-2 < w < -2k-1: r = +Inf
- if w = -Inf and z is finite and not an integer:
- beta(z,t) for t going to -Inf oscillates between positive and
- negative values, with poles around integer values of t, thus
- beta(z,w) gives NaN;
- if w = -Inf and z is an integer:
- beta(z,w) gives +0 for z even > 0, -0 for z odd > 0,
- NaN for z <= 0;
- if z = -Inf (then w = -Inf too): r = NaN */
- if (MPFR_IS_INF (z) && MPFR_IS_POS(z)) /* z = +Inf */
- {
- if (mpfr_cmp_ui (w, 0) > 0)
- {
- MPFR_SET_ZERO(r);
- MPFR_SET_POS(r);
- MPFR_RET(0);
- }
- else if (MPFR_IS_ZERO(w) || MPFR_IS_INF(w) || mpfr_integer_p (w))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- else
- {
- long q;
- mpfr_t t;
-
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_init2 (t, MPFR_PREC_MIN);
- mpfr_set_ui (t, 1, MPFR_RNDN);
- mpfr_fmodquo (t, &q, w, t, MPFR_RNDD);
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- /* q contains the low bits of trunc(w) where trunc() rounds
- toward zero, thus if q is odd, then -2k-2 < w < -2k-1 */
- MPFR_SET_INF(r);
- if ((unsigned long) q & 1)
- MPFR_SET_NEG(r);
- else
- MPFR_SET_POS(r);
- MPFR_RET(0);
- }
- }
- else if (MPFR_IS_INF(w)) /* w = -Inf */
- {
- if (mpfr_cmp_ui (z, 0) <= 0 || !mpfr_integer_p (z))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- else
- {
- MPFR_SET_ZERO(r);
- if (mpfr_odd_p (z))
- MPFR_SET_NEG(r);
- else
- MPFR_SET_POS(r);
- MPFR_RET(0);
- }
- }
- }
- else /* z or w is 0 */
- {
- /* If x is not a nonpositive integer, Gamma(x) is regular, so that
- when y -> 0 with either y >= 0 or y <= 0,
- Beta(x,y) ~ Gamma(x) * Gamma(y) / Gamma(x) = Gamma(y)
- Gamma(y) tends to an infinity of the same sign as y.
- Thus Beta(x,y) should be an infinity of the same sign as y.
- */
- if (mpfr_cmp_ui (z, 0) != 0) /* then w is +0 or -0 and z > 0 */
- {
- /* beta(z,+0) = +Inf, beta(z,-0) = -Inf (see above) */
- MPFR_SET_INF(r);
- MPFR_SET_SAME_SIGN(r,w);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- else if (mpfr_cmp_ui (w, 0) != 0) /* then z is +0 or -0 and w < 0 */
- {
- if (mpfr_integer_p (w))
- {
- /* For small u > 0, Beta(2u,w+u) and Beta(2u,w-u) have
- opposite signs, so that they tend to infinities of
- opposite signs when u -> 0. Thus the result is NaN. */
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- else
- {
- /* beta(+0,w) = +Inf, beta(-0,w) = -Inf (see above) */
- MPFR_SET_INF(r);
- MPFR_SET_SAME_SIGN(r,z);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- }
- else /* w = z = 0:
- beta(+0,+0) = +Inf
- beta(-0,-0) = -Inf
- beta(+0,-0) = NaN */
- {
- if (MPFR_SIGN(z) == MPFR_SIGN(w))
- {
- MPFR_SET_INF(r);
- MPFR_SET_SAME_SIGN(r,z);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- else
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- }
- }
- }
-
- /* special case when w is a negative integer */
- w_integer = mpfr_integer_p (w);
- if (w_integer && MPFR_IS_NEG(w))
- {
- /* if z < 0 or z+w > 0, or z is not an integer, return NaN */
- if (MPFR_IS_NEG(z) || mpfr_cmpabs (z, w) > 0 || !mpfr_integer_p (z))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- /* If z+w = 0, the result is 1/z. */
- if (mpfr_cmpabs (z, w) == 0)
- return mpfr_ui_div (r, 1, z, rnd_mode);
- /* Now z is an integer and z+w <= 0: return (-1)^z*beta(z,1-w-z).
- Since z and w are of opposite signs, |z+w| <= max(|z|,|w|). */
- emax = MAX (MPFR_EXP(z), MPFR_EXP(w));
- mpfr_init2 (z_plus_w, (mpfr_prec_t) emax);
- inex = mpfr_add (z_plus_w, z, w, MPFR_RNDN);
- MPFR_ASSERTN(inex == 0);
- inex = mpfr_ui_sub (z_plus_w, 1, z_plus_w, MPFR_RNDN);
- MPFR_ASSERTN(inex == 0);
- if (mpfr_odd_p (z))
- {
- inex = -mpfr_beta (r, z, z_plus_w, MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN(r);
- }
- else
- inex = mpfr_beta (r, z, z_plus_w, rnd_mode);
- mpfr_clear (z_plus_w);
- return inex;
- }
-
- /* special case when z is a negative integer: here w < z and w is not an
- integer */
- if (mpfr_integer_p (z) && MPFR_IS_NEG(z))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* compute the smallest precision such that z + w is exact */
- emax = MAX (MPFR_EXP(z), MPFR_EXP(w));
- emin = MIN (MPFR_EXP(z) - MPFR_PREC(z), MPFR_EXP(w) - MPFR_PREC(w));
- MPFR_ASSERTD (emax >= emin);
- /* Thus the math value of emax - emin is representable in mpfr_uexp_t. */
- pmin = (mpfr_uexp_t) emax - emin;
- /* If z and w have same sign, their sum can have exponent emax + 1. */
- pmin += 1;
- if (pmin > MPFR_PREC_MAX) /* FIXME: check if result can differ from NaN. */
- {
- MPFR_SAVE_EXPO_FREE (expo);
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- MPFR_ASSERTN (pmin <= MPFR_PREC_MAX); /* detect integer overflow */
- mpfr_init2 (z_plus_w, (mpfr_prec_t) pmin);
- inex = mpfr_add (z_plus_w, z, w, MPFR_RNDN);
- /* if z+w overflows with rounding to nearest, then w must be larger than
- 1/2*ulp(z), thus we have an underflow. */
- if (MPFR_IS_INF(z_plus_w))
- {
- mpfr_clear (z_plus_w);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (r, rnd_mode, 1);
- }
- MPFR_ASSERTN(inex == 0);
-
- /* If z+w is 0 or a negative integer, return +0 when w (and thus z) is not
- an integer. Indeed, gamma(z) and gamma(w) are regular numbers, and
- gamma(z+w) is Inf, thus 1/gamma(z+w) is zero. Unless there is a rule
- to choose the sign of 0, we choose +0. */
- if (mpfr_cmp_ui (z_plus_w, 0) <= 0 && !w_integer
- && mpfr_integer_p (z_plus_w))
- {
- mpfr_clear (z_plus_w);
- MPFR_SAVE_EXPO_FREE (expo);
- MPFR_SET_ZERO(r);
- MPFR_SET_POS(r);
- MPFR_RET(0);
- }
-
- prec = MPFR_PREC(r);
- prec += MPFR_INT_CEIL_LOG2 (prec);
- MPFR_GROUP_INIT_2 (group, prec, tmp, tmp2);
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- unsigned int inex2; /* unsigned due to bitwise operations */
-
- MPFR_GROUP_REPREC_2 (group, prec, tmp, tmp2);
- inex2 = mpfr_gamma (tmp, z, MPFR_RNDN);
- /* tmp = gamma(z) * (1 + theta) with |theta| <= 2^-prec */
- inex2 |= mpfr_gamma (tmp2, w, MPFR_RNDN);
- /* tmp2 = gamma(w) * (1 + theta2) with |theta2| <= 2^-prec */
- inex2 |= mpfr_mul (tmp, tmp, tmp2, MPFR_RNDN);
- /* tmp = gamma(z)*gamma(w) * (1 + theta3)^3 with |theta3| <= 2^-prec */
- inex2 |= mpfr_gamma (tmp2, z_plus_w, MPFR_RNDN);
- /* tmp2 = gamma(z+w) * (1 + theta4) with |theta4| <= 2^-prec */
- inex2 |= mpfr_div (tmp, tmp, tmp2, MPFR_RNDN);
- /* tmp = gamma(z)*gamma(w)/gamma(z+w) * (1 + theta5)^5
- with |theta5| <= 2^-prec. For prec >= 3, we have
- |(1 + theta5)^5 - 1| <= 7 * 2^(-prec), thus the error is bounded
- by 7 ulps */
-
- if (MPFR_IS_NAN(tmp)) /* FIXME: most probably gamma(z)*gamma(w) = +-Inf,
- and gamma(z+w) = +-Inf, can we do better? */
- {
- mpfr_clear (z_plus_w);
- MPFR_ZIV_FREE (loop);
- MPFR_GROUP_CLEAR (group);
- MPFR_SAVE_EXPO_FREE (expo);
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
-
- MPFR_ASSERTN(mpfr_regular_p (tmp));
-
- /* if inex2 = 0, then tmp is exactly beta(z,w) */
- if (inex2 == 0 ||
- MPFR_LIKELY (MPFR_CAN_ROUND (tmp, prec - 3, MPFR_PREC(r), rnd_mode)))
- break;
-
- /* beta(1,+/-2^(-k)) = +/-2^k is exact, and cannot be detected above
- since gamma(+/-2^(-k)) is not exact */
- if (mpfr_cmp_ui (z, 1) == 0)
- {
- mpfr_exp_t expw = mpfr_get_exp (w);
- if (mpfr_cmp_ui_2exp (w, 1, expw - 1) == 0)
- {
- /* since z >= w, this will only match w <= 1 */
- mpfr_set_ui_2exp (tmp, 1, 1 - expw, MPFR_RNDN);
- break;
- }
- else if (mpfr_cmp_si_2exp (w, -1, expw - 1) == 0)
- {
- mpfr_set_si_2exp (tmp, -1, 1 - expw, MPFR_RNDN);
- break;
- }
- }
-
- /* beta(2^k,1) = 1/2^k for k > 0 (k <= 0 was already tested above) */
- if (mpfr_cmp_ui (w, 1) == 0 &&
- mpfr_cmp_ui_2exp (z, 1, MPFR_EXP(z) - 1) == 0)
- {
- mpfr_set_ui_2exp (tmp, 1, 1 - MPFR_EXP(z), MPFR_RNDN);
- break;
- }
-
- /* beta(2,-0.5) = -4 */
- if (mpfr_cmp_ui (z, 2) == 0 && mpfr_cmp_si_2exp (w, -1, -1) == 0)
- {
- mpfr_set_si_2exp (tmp, -1, 2, MPFR_RNDN);
- break;
- }
-
- MPFR_ZIV_NEXT (loop, prec);
- }
- MPFR_ZIV_FREE (loop);
- inex = mpfr_set (r, tmp, rnd_mode);
- MPFR_GROUP_CLEAR (group);
- mpfr_clear (z_plus_w);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inex, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/buildopt.c b/Build/source/libs/mpfr/mpfr-src/src/buildopt.c
deleted file mode 100644
index 00d425f1fe2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/buildopt.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* buildopt.c -- functions giving information about options used during the
- mpfr library compilation
-
-Copyright 2009-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_buildopt_tls_p (void)
-{
-#ifdef MPFR_USE_THREAD_SAFE
- return 1;
-#else
- return 0;
-#endif
-}
-
-int
-mpfr_buildopt_float128_p (void)
-{
-#ifdef MPFR_WANT_FLOAT128
- return 1;
-#else
- return 0;
-#endif
-}
-
-int
-mpfr_buildopt_decimal_p (void)
-{
-#ifdef MPFR_WANT_DECIMAL_FLOATS
- return 1;
-#else
- return 0;
-#endif
-}
-
-int
-mpfr_buildopt_gmpinternals_p (void)
-{
-#if defined(MPFR_HAVE_GMP_IMPL) || defined(WANT_GMP_INTERNALS)
- return 1;
-#else
- return 0;
-#endif
-}
-
-int
-mpfr_buildopt_sharedcache_p (void)
-{
-#ifdef MPFR_WANT_SHARED_CACHE
- return 1;
-#else
- return 0;
-#endif
-}
-
-const char *mpfr_buildopt_tune_case (void)
-{
- /* MPFR_TUNE_CASE is always defined (can be "default"). */
- return MPFR_TUNE_CASE;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cache.c b/Build/source/libs/mpfr/mpfr-src/src/cache.c
deleted file mode 100644
index ece6cf0a06d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cache.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* mpfr_cache -- cache interface for multiple-precision constants in MPFR.
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#if 0 /* this function is not used/documented/tested so far, it could be
- useful if some user wants to add a new constant to mpfr, and
- implement a cache mechanism for that constant */
-void
-mpfr_init_cache (mpfr_cache_t cache, int (*func)(mpfr_ptr, mpfr_rnd_t))
-{
- MPFR_PREC (cache->x) = 0; /* Invalid prec to detect that the cache is not
- valid. Maybe add a flag? */
- cache->func = func;
-}
-#endif
-
-void
-mpfr_clear_cache (mpfr_cache_t cache)
-{
- if (MPFR_UNLIKELY (MPFR_PREC (cache->x) != 0))
- {
- /* Get the cache in read-write mode */
- MPFR_LOCK_WRITE(cache->lock);
-
- if (MPFR_LIKELY (MPFR_PREC (cache->x) != 0))
- {
- mpfr_clear (cache->x);
- MPFR_PREC (cache->x) = 0;
- }
-
- /* Free the cache in read-write mode */
- MPFR_UNLOCK_WRITE(cache->lock);
- }
-}
-
-int
-mpfr_cache (mpfr_ptr dest, mpfr_cache_t cache, mpfr_rnd_t rnd)
-{
- mpfr_prec_t dprec = MPFR_PREC (dest);
- mpfr_prec_t cprec; /* precision of the cache */
- int inexact, sign;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Call the initialisation function of the cache if it's needed */
- MPFR_DEFERRED_INIT_CALL(cache);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Get the cache in read-only mode */
- MPFR_LOCK_READ(cache->lock);
- /* Read the precision within the cache */
- cprec = MPFR_PREC (cache->x);
- if (MPFR_UNLIKELY (dprec > cprec))
- {
- /* Free the cache in read-only mode */
- /* And get the cache in read-write mode */
- MPFR_LOCK_READ2WRITE(cache->lock);
-
- /* Retest the precision once we get the lock (since it might have
- changed). If there is no lock, there is no harm in this code. */
- cprec = MPFR_PREC (cache->x);
- if (MPFR_LIKELY (dprec > cprec))
- {
- /* No previous result in the cache or the precision of the
- previous result is not sufficient. */
- if (MPFR_UNLIKELY (cprec == 0)) /* No previous result. */
- {
- cprec = dprec;
- mpfr_init2 (cache->x, cprec);
- }
- else
- {
- /* We increase the cache size by at least 10% to avoid
- invalidating the cache many times if one performs
- several computations with small increase of precision. */
- cprec += cprec / 10;
- if (cprec < dprec)
- cprec = dprec;
- /* no need to keep the previous value */
- mpfr_set_prec (cache->x, cprec);
- }
-
- cache->inexact = (*cache->func) (cache->x, MPFR_RNDN);
- }
-
- /* Free the cache in read-write mode */
- /* Get the cache in read-only mode */
- MPFR_LOCK_WRITE2READ(cache->lock);
- }
-
- /* now cprec >= dprec is the precision of cache->x */
- MPFR_ASSERTD (cprec >= dprec);
- MPFR_ASSERTD (MPFR_PREC (cache->x) == cprec);
-
- /* First, check if the cache has the exact value (unlikely).
- Else the exact value is between (assuming x=cache->x > 0):
- x and x+ulp(x) if cache->inexact < 0,
- x-ulp(x) and x if cache->inexact > 0,
- and abs(x-exact) <= ulp(x)/2. */
-
- /* we assume all cached constants are positive */
- MPFR_ASSERTN (MPFR_IS_POS (cache->x)); /* TODO... */
- sign = MPFR_SIGN (cache->x);
- MPFR_EXP (dest) = MPFR_GET_EXP (cache->x);
- MPFR_SET_SIGN (dest, sign);
-
- /* round cache->x from precision cprec down to precision dprec;
- since we are in extended exponent range, for the values considered
- here, an overflow is not possible (and wouldn't make much sense). */
- MPFR_RNDRAW_GEN (inexact, dest,
- MPFR_MANT (cache->x), cprec, rnd, sign,
- if (MPFR_UNLIKELY (cache->inexact == 0))
- {
- if ((_sp[0] & _ulp) == 0)
- {
- inexact = -sign;
- goto trunc_doit;
- }
- else
- goto addoneulp;
- }
- else if (cache->inexact < 0)
- goto addoneulp;
- else /* cache->inexact > 0 */
- {
- inexact = -sign;
- goto trunc_doit;
- },
- MPFR_EXP (dest) ++;
- MPFR_ASSERTD (MPFR_EXP (dest) <= __gmpfr_emax);
- );
-
- /* Rather a likely, this is a 100% success rate for
- all constants of MPFR */
- if (MPFR_LIKELY (cache->inexact != 0))
- {
- switch (rnd)
- {
- case MPFR_RNDZ:
- case MPFR_RNDD:
- if (MPFR_UNLIKELY (inexact == 0))
- {
- inexact = cache->inexact;
- if (inexact > 0)
- {
- mpfr_nextbelow (dest);
- inexact = -inexact;
- }
- }
- break;
- case MPFR_RNDU:
- case MPFR_RNDA:
- if (MPFR_UNLIKELY (inexact == 0))
- {
- inexact = cache->inexact;
- if (inexact < 0)
- {
- mpfr_nextabove (dest);
- inexact = -inexact;
- }
- }
- break;
- default: /* MPFR_RNDN */
- if (MPFR_UNLIKELY(inexact == 0))
- inexact = cache->inexact;
- break;
- }
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
-
- /* Free the cache in read-only mode */
- MPFR_UNLOCK_READ(cache->lock);
-
- return mpfr_check_range (dest, inexact, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cbrt.c b/Build/source/libs/mpfr/mpfr-src/src/cbrt.c
deleted file mode 100644
index 85f6cd2fb91..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cbrt.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* mpfr_cbrt -- cube root function.
-
-Copyright 2002-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The computation of y = x^(1/3) is done as follows.
-
- Let n = PREC(y), or PREC(y) + 1 if the rounding mode is MPFR_RNDN.
- We seek to compute an integer cube root in precision n and the
- associated inexact bit (non-zero iff the remainder is non-zero).
-
- Let us write x, possibly truncated, under the form sign * m * 2^(3*e)
- where m is an integer such that 2^(3n-3) <= m < 2^(3n), i.e. m has
- between 3n-2 and 3n bits.
-
- Let s be the integer cube root of m, i.e. the maximum integer such that
- m = s^3 + t with t >= 0. Thus 2^(n-1) <= s < 2^n, i.e. s has n bits.
-
- Then |x|^(1/3) = s * 2^e or (s+1) * 2^e depending on the rounding mode,
- the sign, and whether s is "inexact" (i.e. t > 0 or the truncation of x
- was not equal to x).
-
- Note: The truncation of x was allowed because any breakpoint has n bits
- and its cube has at most 3n bits. Thus the truncation of x cannot yield
- a cube root below RNDZ(x^(1/3)) in precision n. [TODO: add details.]
-*/
-
-int
-mpfr_cbrt (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpz_t m;
- mpfr_exp_t e, d, sh;
- mpfr_prec_t n, size_m;
- int inexact, inexact2, negative, r;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- /* special values */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- /* case 0: cbrt(+/- 0) = +/- 0 */
- else /* x is necessarily 0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- }
-
- /* General case */
- MPFR_SAVE_EXPO_MARK (expo);
- mpz_init (m);
-
- e = mpfr_get_z_2exp (m, x); /* x = m * 2^e */
- if ((negative = MPFR_IS_NEG(x)))
- mpz_neg (m, m);
- r = e % 3;
- if (r < 0)
- r += 3;
- MPFR_ASSERTD (r >= 0 && r < 3 && (e - r) % 3 == 0);
-
- /* x = (m*2^r) * 2^(e-r) = (m*2^r) * 2^(3*q) */
-
- MPFR_LOG_MSG (("e=%" MPFR_EXP_FSPEC "d r=%d\n", (mpfr_eexp_t) e, r));
-
- MPFR_MPZ_SIZEINBASE2 (size_m, m);
- n = MPFR_PREC (y) + (rnd_mode == MPFR_RNDN);
-
- /* We will need to multiply m by 2^(r'), truncated if r' < 0, and
- subtract r' from e, so that m has between 3n-2 and 3n bits and
- e becomes a multiple of 3.
- Since r = e % 3, we write r' = 3 * sh + r.
- We want 3 * n - 2 <= size_m + 3 * sh + r <= 3 * n.
- Let d = 3 * n - size_m - r. Thus we want 0 <= d - 3 * sh <= 2,
- i.e. sh = floor(d/3). */
- d = 3 * (mpfr_exp_t) n - (mpfr_exp_t) size_m - r;
- sh = d >= 0 ? d / 3 : - ((2 - d) / 3); /* floor(d/3) */
- r += 3 * sh; /* denoted r' above */
-
- e -= r;
- MPFR_ASSERTD (e % 3 == 0);
- e /= 3;
-
- inexact = 0;
-
- if (r > 0)
- {
- mpz_mul_2exp (m, m, r);
- }
- else if (r < 0)
- {
- r = -r;
- inexact = mpz_scan1 (m, 0) < r;
- mpz_fdiv_q_2exp (m, m, r);
- }
-
- /* we reuse the variable m to store the cube root, since it is not needed
- any more: we just need to know if the root is exact */
- inexact = ! mpz_root (m, m, 3) || inexact;
-
-#if MPFR_WANT_ASSERT > 0
- {
- mpfr_prec_t tmp;
-
- MPFR_MPZ_SIZEINBASE2 (tmp, m);
- MPFR_ASSERTN (tmp == n);
- }
-#endif
-
- if (inexact)
- {
- if (negative)
- rnd_mode = MPFR_INVERT_RND (rnd_mode);
- if (rnd_mode == MPFR_RNDU || rnd_mode == MPFR_RNDA
- || (rnd_mode == MPFR_RNDN && mpz_tstbit (m, 0)))
- {
- inexact = 1;
- mpz_add_ui (m, m, 1);
- }
- else
- inexact = -1;
- }
-
- /* either inexact is not zero, and the conversion is exact, i.e. inexact
- is not changed; or inexact=0, and inexact is set only when
- rnd_mode=MPFR_RNDN and bit (n+1) from m is 1 */
- inexact2 = mpfr_set_z (y, m, MPFR_RNDN);
- MPFR_ASSERTD (inexact == 0 || inexact2 == 0);
- inexact += inexact2;
- MPFR_SET_EXP (y, MPFR_GET_EXP (y) + e);
-
- if (negative)
- {
- MPFR_CHANGE_SIGN (y);
- inexact = -inexact;
- }
-
- mpz_clear (m);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/check.c b/Build/source/libs/mpfr/mpfr-src/src/check.c
deleted file mode 100644
index dedecf52d09..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/check.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* mpfr_check -- Check if a floating-point number has not been corrupted.
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/*
- * Check if x is a valid mpfr_t initialized by mpfr_init
- * Returns 0 if isn't valid
- *
- * Note: Due to the MPFR_GET_ALLOC_SIZE test, this function must not
- * be called on statically allocated numbers (only used inside MPFR).
- * Anyway, this test should not be useful on such numbers.
- */
-int
-mpfr_check (mpfr_srcptr x)
-{
- mp_size_t s, i;
- mp_limb_t tmp;
- volatile mp_limb_t *xm;
- mpfr_prec_t prec;
- int rw;
-
- /* Check sign */
- if (MPFR_SIGN(x) != MPFR_SIGN_POS &&
- MPFR_SIGN(x) != MPFR_SIGN_NEG)
- return 0;
- /* Check precision */
- prec = MPFR_PREC(x);
- if (! MPFR_PREC_COND (prec))
- return 0;
- /* Check mantissa */
- xm = MPFR_MANT(x);
- if (xm == NULL)
- return 0;
- /* Check size of mantissa */
- s = MPFR_GET_ALLOC_SIZE(x);
- if (s <= 0 || s > MP_SIZE_T_MAX ||
- prec > (mpfr_prec_t) s * GMP_NUMB_BITS)
- return 0;
- /* Access all the mp_limb of the mantissa: may do a seg fault */
- for (i = 0 ; i < s ; i++)
- tmp = xm[i];
- /* Check singular numbers (do not use MPFR_IS_PURE_FP() in order to avoid
- any assertion checking, as this function mpfr_check() does something
- similar by returning a Boolean instead of doing an abort if the format
- is incorrect). */
- if (MPFR_IS_SINGULAR (x))
- return MPFR_IS_ZERO(x) || MPFR_IS_NAN(x) || MPFR_IS_INF(x);
- /* Check the most significant limb (its MSB must be 1) */
- if (! MPFR_IS_NORMALIZED (x))
- return 0;
- /* Check the least significant limb (the trailing bits must be 0) */
- rw = prec % GMP_NUMB_BITS;
- if (rw != 0)
- {
- tmp = MPFR_LIMB_MASK (GMP_NUMB_BITS - rw);
- if ((xm[0] & tmp) != 0)
- return 0;
- }
- /* Check exponent range */
- return MPFR_EXP_IN_RANGE (MPFR_EXP (x));
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/clear.c b/Build/source/libs/mpfr/mpfr-src/src/clear.c
deleted file mode 100644
index 05d2c00154c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/clear.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* mpfr_clear -- free the memory space allocated for a floating-point number
-
-Copyright 1999-2001, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR void
-mpfr_clear (mpfr_ptr m)
-{
- mpfr_free_func (MPFR_GET_REAL_PTR (m),
- MPFR_MALLOC_SIZE (MPFR_GET_ALLOC_SIZE (m)));
- MPFR_MANT (m) = (mp_limb_t *) 0;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/clears.c b/Build/source/libs/mpfr/mpfr-src/src/clears.c
deleted file mode 100644
index c229ddf9de7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/clears.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* mpfr_clears -- free the memory space allocated for several
- floating-point numbers
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#if HAVE_STDARG
-# include <stdarg.h>
-#else
-# include <varargs.h>
-#endif
-
-#include "mpfr-impl.h"
-
-void
-#if HAVE_STDARG
-mpfr_clears (mpfr_ptr x, ...)
-#else
-mpfr_clears (va_alist)
- va_dcl
-#endif
-{
- va_list arg;
-
-#if HAVE_STDARG
- va_start (arg, x);
-#else
- mpfr_ptr x;
- va_start(arg);
- x = va_arg (arg, mpfr_ptr);
-#endif
-
- while (x != 0)
- {
- mpfr_clear (x);
- x = (mpfr_ptr) va_arg (arg, mpfr_ptr);
- }
- va_end (arg);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmp.c b/Build/source/libs/mpfr/mpfr-src/src/cmp.c
deleted file mode 100644
index ecc35057834..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmp.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* mpfr_cmp -- compare two floating-point numbers
-
-Copyright 1999, 2001, 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* returns 0 iff b = sign(s) * c
- a positive value iff b > sign(s) * c
- a negative value iff b < sign(s) * c
- returns 0 and sets erange flag if b and/or c is NaN.
-*/
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_cmp3 (mpfr_srcptr b, mpfr_srcptr c, int s)
-{
- mpfr_exp_t be, ce;
- mp_size_t bn, cn;
- mp_limb_t *bp, *cp;
-
- s = MPFR_MULT_SIGN( s , MPFR_SIGN(c) );
-
- if (MPFR_ARE_SINGULAR(b, c))
- {
- if (MPFR_IS_NAN (b) || MPFR_IS_NAN (c))
- {
- MPFR_SET_ERANGEFLAG ();
- return 0;
- }
- else if (MPFR_IS_INF(b))
- {
- if (MPFR_IS_INF(c) && s == MPFR_SIGN(b) )
- return 0;
- else
- return MPFR_SIGN(b);
- }
- else if (MPFR_IS_INF(c))
- return -s;
- else if (MPFR_IS_ZERO(b))
- return MPFR_IS_ZERO(c) ? 0 : -s;
- else /* necessarily c=0 */
- return MPFR_SIGN(b);
- }
- /* b and c are real numbers */
- if (s != MPFR_SIGN(b))
- return MPFR_SIGN(b);
-
- /* now signs are equal */
-
- be = MPFR_GET_EXP (b);
- ce = MPFR_GET_EXP (c);
- if (be > ce)
- return s;
- if (be < ce)
- return -s;
-
- /* both signs and exponents are equal */
-
- bn = MPFR_LAST_LIMB (b);
- cn = MPFR_LAST_LIMB (c);
-
- bp = MPFR_MANT(b);
- cp = MPFR_MANT(c);
-
- for ( ; bn >= 0 && cn >= 0; bn--, cn--)
- {
- if (bp[bn] > cp[cn])
- return s;
- if (bp[bn] < cp[cn])
- return -s;
- }
- for ( ; bn >= 0; bn--)
- if (bp[bn])
- return s;
- for ( ; cn >= 0; cn--)
- if (cp[cn])
- return -s;
-
- return 0;
-}
-
-#undef mpfr_cmp
-int
-mpfr_cmp (mpfr_srcptr b, mpfr_srcptr c)
-{
- return mpfr_cmp3 (b, c, 1);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmp2.c b/Build/source/libs/mpfr/mpfr-src/src/cmp2.c
deleted file mode 100644
index 6519a5254cc..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmp2.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/* mpfr_cmp2 -- exponent shift when subtracting two numbers.
-
-Copyright 1999-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* If |b| != |c|, puts the number of canceled bits when one subtracts |c|
- from |b| in *cancel. Returns the sign of the difference (-1, 0, 1).
-
- Assumes neither of b or c is NaN, +/- infinity, or +/- 0.
-
- In other terms, if |b| != |c|, mpfr_cmp2 (b, c) stores
- EXP(max(|b|,|c|)) - EXP(|b| - |c|) in *cancel.
-
- One necessarily has 0 <= cancel <= max(PREC(b),PREC(c)), so that this
- value is representable in a mpfr_prec_t. Note that in the code, the
- maximum intermediate value is cancel + 1, but since MPFR_PREC_MAX is
- not the maximum value of mpfr_prec_t, there is no integer overflow.
-*/
-
-int
-mpfr_cmp2 (mpfr_srcptr b, mpfr_srcptr c, mpfr_prec_t *cancel)
-{
- mp_limb_t *bp, *cp, bb, cc, lastc, dif;
- int high_dif; /* manipulated like a boolean */
- mp_size_t bn, cn;
- mpfr_exp_t sdiff_exp;
- mpfr_uexp_t diff_exp;
- mpfr_prec_t res = 0; /* will be the number of canceled bits (*cancel) */
- int sign;
-
- /* b=c should not happen, since cmp2 is called only from agm (with
- different variables) and from sub1 (if b=c, then sub1sp would be
- called instead). So, no need for a particular optimization here. */
-
- /* the cases b=0 or c=0 are also treated apart in agm and sub
- (which calls sub1) */
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (b));
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (c));
-
- sdiff_exp = MPFR_UNLIKELY (MPFR_IS_UBF (b) || MPFR_IS_UBF (c)) ?
- mpfr_ubf_diff_exp (b, c) : MPFR_GET_EXP (b) - MPFR_GET_EXP (c);
-
- /* The returned result is saturated to [MPFR_EXP_MIN,MPFR_EXP_MAX],
- which is the range of the mpfr_exp_t type. But under the condition
- below, since |MPFR_EXP_MIN| >= MPFR_EXP_MAX, the value of cancel
- will not be affected: by symmetry (as done in the code), assume
- |b| >= |c|; if EXP(b) - EXP(c) >= MPFR_EXP_MAX, then |c| < ulp(b),
- so that the value of cancel is 0, or 1 if |b| is a power of 2,
- whatever the exact value of EXP(b) - EXP(c). */
- MPFR_STAT_STATIC_ASSERT (MPFR_EXP_MAX > MPFR_PREC_MAX);
-
- if (sdiff_exp >= 0)
- {
- sign = 1; /* assumes |b| > |c|; will be changed if not. */
- diff_exp = sdiff_exp;
-
- bp = MPFR_MANT(b);
- cp = MPFR_MANT(c);
-
- /* index of the most significant limb of b and c */
- bn = (MPFR_PREC(b) - 1) / GMP_NUMB_BITS;
- cn = (MPFR_PREC(c) - 1) / GMP_NUMB_BITS;
-
- /* If diff_exp != 0, i.e. diff_exp > 0, then |b| > |c|. Otherwise... */
- if (diff_exp == 0)
- {
- /* Skip the identical most significant limbs, adding GMP_NUMB_BITS
- to the number of canceled bits at each iteration. */
- while (bn >= 0 && cn >= 0 && bp[bn] == cp[cn])
- {
- bn--;
- cn--;
- res += GMP_NUMB_BITS;
- }
-
- if (MPFR_UNLIKELY (bn < 0))
- {
- if (MPFR_LIKELY (cn < 0)) /* |b| = |c| */
- return 0;
-
- /* b has been read entirely, but not c. Thus |b| <= |c|.
- Swap (bp,bn) and (cp,cn), and take the opposite sign
- for the symmetric case below (simulating a swap).
- Note: cp will not be used, thus is not assigned; and
- "cn = -1;" is necessary to enter the following "if"
- (probably less confusing than a "goto"). */
- bp = cp;
- bn = cn;
- cn = -1;
- sign = -1;
- }
-
- if (MPFR_UNLIKELY (cn < 0))
- /* c discards exactly the upper part of b */
- {
- int z;
-
- MPFR_ASSERTD (bn >= 0);
-
- /* Skip null limbs of b (= non-represented null limbs of c),
- adding GMP_NUMB_BITS to the number of canceled bits at
- each iteration. */
- while (bp[bn] == 0)
- {
- if (--bn < 0) /* |b| = |c| */
- return 0;
- res += GMP_NUMB_BITS;
- }
-
- count_leading_zeros (z, bp[bn]); /* bp[bn] != 0 */
- *cancel = res + z;
- return sign;
- }
-
- MPFR_ASSERTD (bn >= 0);
- MPFR_ASSERTD (cn >= 0);
- MPFR_ASSERTD (bp[bn] != cp[cn]);
-
- /* |b| != |c|. If |b| < |c|: swap (bp,bn) and (cp,cn),
- and take the opposite sign. */
- if (bp[bn] < cp[cn])
- {
- mp_limb_t *tp;
- mp_size_t tn;
-
- tp = bp; bp = cp; cp = tp;
- tn = bn; bn = cn; cn = tn;
- sign = -1;
- }
- }
- } /* MPFR_EXP(b) >= MPFR_EXP(c) */
- else /* MPFR_EXP(b) < MPFR_EXP(c) */
- {
- /* We necessarily have |b| < |c|. Simulate a swap by reading the
- parameters so that |(bp,bn)| > |(cp,cn)|. */
-
- sign = -1;
- diff_exp = - (mpfr_uexp_t) sdiff_exp;
-
- bp = MPFR_MANT(c);
- cp = MPFR_MANT(b);
-
- bn = (MPFR_PREC(c) - 1) / GMP_NUMB_BITS;
- cn = (MPFR_PREC(b) - 1) / GMP_NUMB_BITS;
- }
-
- /* Now we have removed the identical upper limbs of b and c
- (when diff_exp = 0), and after the possible swap, we have |b| > |c|,
- where b is represented by (bp,bn) and c is represented by (cp,cn).
- The value diff_exp = EXP(b) - EXP(c) can be regarded as the number
- of leading zeros of c, when aligned with b. */
-
- /* When a limb of c is read from memory, the part that is not taken
- into account for the operation with a limb bp[bn] of b will be put
- in lastc, shifted to the leftmost part (for alignment with b):
- [-------- bp[bn] --------][------- bp[bn-1] -------]
- [-- old_lastc --][-------- cp[cn] --------]
- [-- new_lastc --]
- Note: if diff_exp == 0, then lastc will always remain 0. */
- lastc = 0;
-
- /* Compute the next limb difference, which cannot be 0 (dif >= 1). */
-
- if (MPFR_LIKELY (diff_exp < GMP_NUMB_BITS))
- {
- cc = cp[cn] >> diff_exp;
- /* warning: a shift by GMP_NUMB_BITS is not allowed by ISO C */
- if (diff_exp != 0)
- lastc = cp[cn] << (GMP_NUMB_BITS - diff_exp);
- cn--;
- }
- else
- {
- cc = 0;
- diff_exp -= GMP_NUMB_BITS; /* remove GMP_NUMB_BITS leading zeros */
- }
-
- MPFR_ASSERTD (bp[bn] >= cc); /* no borrow out in subtraction below */
- dif = bp[bn--] - cc;
- MPFR_ASSERTD (dif >= 1);
- high_dif = 0;
-
- /* The current difference, here and later, is expressed under the form
- [high_dif][dif], where high_dif is 0 or 1, and dif is a limb.
- Here, since we have computed a difference of limbs (with b >= c),
- high_dif = 0. */
-
- /* One needs to accumulate canceled bits for the remaining case where
- b and c are close to each other due to a long borrow propagation:
- b = [common part]1000...000[low(b)]
- c = [common part]0111...111[low(c)]
- After eliminating the common part above, we have computed a difference
- of the most significant parts, which has been stored in [high_dif][dif]
- with high_dif = 0. We will loop as long as the currently computed
- difference [high_dif][dif] = 1 (it is >= 1 by construction). The
- computation of the difference will be:
- 1bbb...bbb
- - ccc...ccc
- where the leading 1 before bbb...bbb corresponds to [high_dif][dif]
- at the beginning of the loop. We will exit the loop also when c has
- entirely been taken into account as cancellation is no longer possible
- in this case (it is no longer possible to cancel the leading 1).
- Note: We can enter the loop only with diff_exp = 0 (with a non-empty
- common part, partly or entirely removed) or with diff_exp = 1 (with
- an empty common part). Indeed, if diff_exp > 1, then no limbs have
- been skipped, so that bp[bn] had its MSB equal to 1 and the most two
- significant bits of cc are 0, which implies that dif > 1. */
-
- while (MPFR_UNLIKELY ((cn >= 0 || lastc != 0)
- && high_dif == 0 && dif == 1))
- {
- /* Since we consider the next limb, we assume a cancellation of
- GMP_NUMB_BITS (the new exponent of the difference now being the
- one of the MSB of the next limb). But if the leading 1 remains
- 1 in the difference (i.e. high_dif = 1 at the end of the loop),
- then we will need to decrease res. */
- res += GMP_NUMB_BITS;
- MPFR_ASSERTD (diff_exp <= 1); /* see comment before the loop */
- bb = bn >= 0 ? bp[bn--] : 0; /* next limb of b or non-represented 0 */
- if (MPFR_UNLIKELY (cn < 0))
- {
- cc = lastc;
- lastc = 0;
- }
- else if (diff_exp == 0)
- {
- cc = cp[cn--];
- }
- else
- {
- MPFR_ASSERTD (diff_exp == 1);
- MPFR_ASSERTD (lastc == 0 || lastc == MPFR_LIMB_HIGHBIT);
- cc = lastc + (cp[cn] >> 1);
- lastc = cp[cn--] << (GMP_NUMB_BITS - 1);
- }
- dif = bb - cc;
- high_dif = bb >= cc;
- }
-
- /* Now, c has entirely been taken into account or [high_dif][dif] > 1.
- In any case, [high_dif][dif] >= 1 by construction.
- First, we determine the currently number of canceled bits,
- corresponding to the exponent of the current difference.
- The trailing bits of c, if any, can still decrease the exponent of
- the difference when [high_dif][dif] is a power of two, but since
- [high_dif][dif] > 1 in this case, by not more than 1. */
-
- if (high_dif != 0) /* high_dif == 1 */
- {
- res--; /* see comment at the beginning of the above loop */
- MPFR_ASSERTD (res >= 0);
- /* Terminate if [high_dif][dif] is not a power of two. */
- if (MPFR_LIKELY (dif != 0))
- goto end;
- }
- else /* high_dif == 0 */
- {
- int z;
-
- MPFR_ASSERTD (dif >= 1); /* [high_dif][dif] >= 1 */
- count_leading_zeros (z, dif);
- res += z;
- /* Terminate if [high_dif][dif] is not a power of two. */
- if (MPFR_LIKELY (NOT_POW2 (dif)))
- goto end;
- }
-
- /* Now, the result will be res + (low(b) < low(c)). */
-
- /* If c has entirely been taken into account, it can no longer modify
- the current result. */
- if (cn < 0 && lastc == 0)
- goto end;
-
- for (; bn >= 0 ; bn--)
- {
- if (diff_exp >= GMP_NUMB_BITS)
- {
- diff_exp -= GMP_NUMB_BITS;
- MPFR_ASSERTD (cc == 0);
- }
- else if (MPFR_UNLIKELY (cn < 0))
- {
- cc = lastc;
- lastc = 0;
- }
- else if (diff_exp == 0)
- {
- cc = cp[cn--];
- }
- else
- {
- MPFR_ASSERTD (diff_exp >= 1 && diff_exp < GMP_NUMB_BITS);
- cc = lastc + (cp[cn] >> diff_exp);
- lastc = cp[cn--] << (GMP_NUMB_BITS - diff_exp);
- }
-
- if (bp[bn] != cc)
- {
- res += bp[bn] < cc;
- goto end;
- }
- }
-
- /* b has entirely been read. Determine whether the trailing part of c
- is non-zero. */
-
- if (lastc != 0)
- res++;
- else
- {
- while (cn >= 0 && cp[cn] == 0)
- cn--;
- if (cn >= 0)
- res++;
- }
-
- end:
- *cancel = res;
- return sign;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmp_d.c b/Build/source/libs/mpfr/mpfr-src/src/cmp_d.c
deleted file mode 100644
index 1f72260dd9d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmp_d.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* mpfr_cmp_d -- compare a floating-point number with a double
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_cmp_d (mpfr_srcptr b, double d)
-{
- mpfr_t tmp;
- int res;
- mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(tmp_man, tmp, IEEE_DBL_MANT_DIG);
- res = mpfr_set_d (tmp, d, MPFR_RNDN);
- MPFR_ASSERTD (res == 0);
-
- MPFR_CLEAR_FLAGS ();
- res = mpfr_cmp (b, tmp);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return res;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmp_ld.c b/Build/source/libs/mpfr/mpfr-src/src/cmp_ld.c
deleted file mode 100644
index b94979b0daa..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmp_ld.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* mpfr_cmp_d -- compare a floating-point number with a long double
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h> /* needed so that MPFR_LDBL_MANT_DIG is correctly defined */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_cmp_ld (mpfr_srcptr b, long double d)
-{
- mpfr_t tmp;
- int res;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
-#if !HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE
- mpfr_init2 (tmp, MPFR_LDBL_MANT_DIG);
-#else
- /* since the smallest value is 2^(-1074) and the largest is < 2^1024,
- every double-double is exactly representable with 1024 + 1074 bits */
- mpfr_init2 (tmp, 1024 + 1074);
-#endif
- res = mpfr_set_ld (tmp, d, MPFR_RNDN);
- MPFR_ASSERTD (res == 0);
-
- MPFR_CLEAR_FLAGS ();
- res = mpfr_cmp (b, tmp);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- mpfr_clear (tmp);
- MPFR_SAVE_EXPO_FREE (expo);
- return res;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmp_si.c b/Build/source/libs/mpfr/mpfr-src/src/cmp_si.c
deleted file mode 100644
index a87f261d220..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmp_si.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* mpfr_cmp_si_2exp -- compare a floating-point number with a signed
-machine integer multiplied by a power of 2
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* returns a positive value if b > i*2^f,
- a negative value if b < i*2^f,
- zero if b = i*2^f.
- b must not be NaN.
-*/
-
-int
-mpfr_cmp_si_2exp (mpfr_srcptr b, long int i, mpfr_exp_t f)
-{
- int si;
-
- si = i < 0 ? -1 : 1; /* sign of i */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (b)))
- {
- if (MPFR_IS_INF(b))
- return MPFR_INT_SIGN(b);
- else if (MPFR_IS_ZERO(b))
- return i != 0 ? -si : 0;
- /* NAN */
- MPFR_SET_ERANGEFLAG ();
- return 0;
- }
- else if (MPFR_SIGN(b) != si || i == 0)
- return MPFR_INT_SIGN (b);
- else /* b and i are of same sign si */
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- mpfr_exp_t e;
- unsigned long ai;
- int k;
- mp_size_t bn;
- mp_limb_t c, *bp;
-
- ai = SAFE_ABS(unsigned long, i);
-
- /* ai must be representable in a mp_limb_t */
- MPFR_ASSERTN(ai == (mp_limb_t) ai);
-
- e = MPFR_GET_EXP (b); /* 2^(e-1) <= b < 2^e */
- if (e <= f)
- return -si;
- if (f < MPFR_EMAX_MAX - GMP_NUMB_BITS &&
- e > f + GMP_NUMB_BITS)
- return si;
-
- /* now f < e <= f + GMP_NUMB_BITS */
- c = (mp_limb_t) ai;
- count_leading_zeros(k, c);
- if ((int) (e - f) > GMP_NUMB_BITS - k)
- return si;
- if ((int) (e - f) < GMP_NUMB_BITS - k)
- return -si;
-
- /* now b and i*2^f have the same exponent */
- c <<= k;
- bn = (MPFR_PREC(b) - 1) / GMP_NUMB_BITS;
- bp = MPFR_MANT(b);
- if (bp[bn] > c)
- return si;
- if (bp[bn] < c)
- return -si;
-
- /* most significant limbs agree, check remaining limbs from b */
- while (bn > 0)
- if (bp[--bn])
- return si;
- return 0;
- }
-#else
- {
- mpfr_t uu;
- int ret;
- MPFR_SAVE_EXPO_DECL (expo);
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- /* Warning: i*2^f might be outside the current exponent range! */
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_set_si_2exp (uu, i, f, MPFR_RNDZ);
- MPFR_SAVE_EXPO_FREE (expo);
- ret = mpfr_cmp (b, uu);
- mpfr_clear (uu);
- return ret;
- }
-#endif /* MPFR_LONG_WITHIN_LIMB */
-}
-
-#undef mpfr_cmp_si
-int
-mpfr_cmp_si (mpfr_srcptr b, long int i)
-{
- return mpfr_cmp_si_2exp (b, i, 0);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmp_ui.c b/Build/source/libs/mpfr/mpfr-src/src/cmp_ui.c
deleted file mode 100644
index 4249a9023a5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmp_ui.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* mpfr_cmp_ui_2exp -- compare a floating-point number with an unsigned
-machine integer multiplied by a power of 2
-
-Copyright 1999, 2001-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* returns a positive value if b > i*2^f,
- a negative value if b < i*2^f,
- zero if b = i*2^f.
- b must not be NaN
-*/
-
-int
-mpfr_cmp_ui_2exp (mpfr_srcptr b, unsigned long int i, mpfr_exp_t f)
-{
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(b) ))
- {
- if (MPFR_IS_NAN (b))
- {
- MPFR_SET_ERANGEFLAG ();
- return 0;
- }
- else if (MPFR_IS_INF(b))
- return MPFR_INT_SIGN (b);
- else /* since b cannot be NaN, b=0 here */
- return i != 0 ? -1 : 0;
- }
-
- if (MPFR_IS_NEG (b))
- return -1;
- /* now b > 0 */
- else if (MPFR_UNLIKELY(i == 0))
- return 1;
- else /* b > 0, i > 0 */
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- mpfr_exp_t e;
- int k;
- mp_size_t bn;
- mp_limb_t c, *bp;
-
- /* i must be representable in a mp_limb_t */
- MPFR_ASSERTN(i == (mp_limb_t) i);
-
- e = MPFR_GET_EXP (b); /* 2^(e-1) <= b < 2^e */
- if (e <= f)
- return -1;
- if (f < MPFR_EMAX_MAX - GMP_NUMB_BITS &&
- e > f + GMP_NUMB_BITS)
- return 1;
-
- /* now f < e <= f + GMP_NUMB_BITS */
- c = (mp_limb_t) i;
- count_leading_zeros(k, c);
- if ((int) (e - f) > GMP_NUMB_BITS - k)
- return 1;
- if ((int) (e - f) < GMP_NUMB_BITS - k)
- return -1;
-
- /* now b and i*2^f have the same exponent */
- c <<= k;
- bn = (MPFR_PREC(b) - 1) / GMP_NUMB_BITS;
- bp = MPFR_MANT(b);
- if (bp[bn] > c)
- return 1;
- if (bp[bn] < c)
- return -1;
-
- /* most significant limbs agree, check remaining limbs from b */
- while (bn > 0)
- if (bp[--bn] != 0)
- return 1;
- return 0;
- }
-#else
- {
- mpfr_t uu;
- int ret;
- MPFR_SAVE_EXPO_DECL (expo);
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- /* Warning: i*2^f might be outside the current exponent range! */
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_set_ui_2exp (uu, i, f, MPFR_RNDZ);
- MPFR_SAVE_EXPO_FREE (expo);
- ret = mpfr_cmp (b, uu);
- mpfr_clear (uu);
- return ret;
- }
-#endif /* MPFR_LONG_WITHIN_LIMB */
-}
-
-#undef mpfr_cmp_ui
-int
-mpfr_cmp_ui (mpfr_srcptr b, unsigned long int i)
-{
- return mpfr_cmp_ui_2exp (b, i, 0);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmpabs.c b/Build/source/libs/mpfr/mpfr-src/src/cmpabs.c
deleted file mode 100644
index 90642e78daf..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmpabs.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* mpfr_cmpabs -- compare the absolute values of two FP numbers
-
-Copyright 1999, 2001-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Return a positive value if abs(b) > abs(c), 0 if abs(b) = abs(c), and
- a negative value if abs(b) < abs(c). */
-
-int
-mpfr_cmpabs (mpfr_srcptr b, mpfr_srcptr c)
-{
- mpfr_exp_t be, ce;
- mp_size_t bn, cn;
- mp_limb_t *bp, *cp;
-
- if (MPFR_ARE_SINGULAR (b, c))
- {
- if (MPFR_IS_NAN (b) || MPFR_IS_NAN (c))
- {
- MPFR_SET_ERANGEFLAG ();
- return 0;
- }
- else if (MPFR_IS_INF (b))
- return ! MPFR_IS_INF (c);
- else if (MPFR_IS_INF (c))
- return -1;
- else if (MPFR_IS_ZERO (c))
- return ! MPFR_IS_ZERO (b);
- else /* b == 0 */
- return -1;
- }
-
- MPFR_ASSERTD (MPFR_IS_PURE_FP (b));
- MPFR_ASSERTD (MPFR_IS_PURE_FP (c));
-
- /* Now that we know that b and c are pure FP numbers (i.e. they have
- a meaningful exponent), we use MPFR_EXP instead of MPFR_GET_EXP to
- allow exponents outside the current exponent range. For instance,
- this is useful for mpfr_pow, which compares values to __gmpfr_one.
- This is for internal use only! For compatibility with other MPFR
- versions, the user must still provide values that are representable
- in the current exponent range. */
- be = MPFR_EXP (b);
- ce = MPFR_EXP (c);
- if (be > ce)
- return 1;
- if (be < ce)
- return -1;
-
- /* exponents are equal */
-
- bn = MPFR_LIMB_SIZE(b)-1;
- cn = MPFR_LIMB_SIZE(c)-1;
-
- bp = MPFR_MANT(b);
- cp = MPFR_MANT(c);
-
- for ( ; bn >= 0 && cn >= 0; bn--, cn--)
- {
- if (bp[bn] > cp[cn])
- return 1;
- if (bp[bn] < cp[cn])
- return -1;
- }
-
- for ( ; bn >= 0; bn--)
- if (bp[bn])
- return 1;
-
- for ( ; cn >= 0; cn--)
- if (cp[cn])
- return -1;
-
- return 0;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cmpabs_ui.c b/Build/source/libs/mpfr/mpfr-src/src/cmpabs_ui.c
deleted file mode 100644
index 8ca8f3aace3..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cmpabs_ui.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* mpfr_cmpabs_ui -- compare the absolute value of FP to an unsigned long
-
-Copyright 2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Return a positive value if abs(b) > c, 0 if abs(b) = c, and
- a negative value if abs(b) < c. */
-
-int
-mpfr_cmpabs_ui (mpfr_srcptr b, unsigned long c)
-{
- mpfr_t absb;
-
- MPFR_TMP_INIT_ABS (absb, b);
- return mpfr_cmp_ui (absb, c);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/comparisons.c b/Build/source/libs/mpfr/mpfr-src/src/comparisons.c
deleted file mode 100644
index 5bd7536ae0b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/comparisons.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* comparison predicates
-
-Copyright 2002-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Note: these functions currently use mpfr_cmp; they could have their
- own code to be faster. */
-
-/* = < > unordered
- * mpfr_greater_p 0 0 1 0
- * mpfr_greaterequal_p 1 0 1 0
- * mpfr_less_p 0 1 0 0
- * mpfr_lessequal_p 1 1 0 0
- * mpfr_lessgreater_p 0 1 1 0
- * mpfr_equal_p 1 0 0 0
- * mpfr_unordered_p 0 0 0 1
- */
-
-int
-mpfr_greater_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- return MPFR_IS_NAN(x) || MPFR_IS_NAN(y) ? 0 : (mpfr_cmp (x, y) > 0);
-}
-
-int
-mpfr_greaterequal_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- return MPFR_IS_NAN(x) || MPFR_IS_NAN(y) ? 0 : (mpfr_cmp (x, y) >= 0);
-}
-
-int
-mpfr_less_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- return MPFR_IS_NAN(x) || MPFR_IS_NAN(y) ? 0 : (mpfr_cmp (x, y) < 0);
-}
-
-int
-mpfr_lessequal_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- return MPFR_IS_NAN(x) || MPFR_IS_NAN(y) ? 0 : (mpfr_cmp (x, y) <= 0);
-}
-
-int
-mpfr_lessgreater_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- return MPFR_IS_NAN(x) || MPFR_IS_NAN(y) ? 0 : (mpfr_cmp (x, y) != 0);
-}
-
-int
-mpfr_equal_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- return MPFR_IS_NAN(x) || MPFR_IS_NAN(y) ? 0 : (mpfr_cmp (x, y) == 0);
-}
-
-int
-mpfr_unordered_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- return MPFR_IS_NAN(x) || MPFR_IS_NAN(y);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/const_catalan.c b/Build/source/libs/mpfr/mpfr-src/src/const_catalan.c
deleted file mode 100644
index 855e52b7718..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/const_catalan.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* mpfr_const_catalan -- compute Catalan's constant.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Declare the cache */
-MPFR_DECL_INIT_CACHE (__gmpfr_cache_const_catalan, mpfr_const_catalan_internal)
-
-/* Set User Interface */
-#undef mpfr_const_catalan
-int
-mpfr_const_catalan (mpfr_ptr x, mpfr_rnd_t rnd_mode) {
- return mpfr_cache (x, __gmpfr_cache_const_catalan, rnd_mode);
-}
-
-/* return T, Q such that T/Q = sum(k!^2/(2k)!/(2k+1)^2, k=n1..n2-1) */
-static void
-S (mpz_t T, mpz_t P, mpz_t Q, unsigned long n1, unsigned long n2)
-{
- if (n2 == n1 + 1)
- {
- if (n1 == 0)
- {
- mpz_set_ui (P, 1);
- mpz_set_ui (Q, 1);
- }
- else
- {
- mpz_set_ui (P, 2 * n1 - 1);
- mpz_mul_ui (P, P, n1);
- mpz_ui_pow_ui (Q, 2 * n1 + 1, 2);
- mpz_mul_2exp (Q, Q, 1);
- }
- mpz_set (T, P);
- }
- else
- {
- unsigned long m = (n1 + n2) / 2;
- mpz_t T2, P2, Q2;
- S (T, P, Q, n1, m);
- mpz_init (T2);
- mpz_init (P2);
- mpz_init (Q2);
- S (T2, P2, Q2, m, n2);
- mpz_mul (T, T, Q2);
- mpz_mul (T2, T2, P);
- mpz_add (T, T, T2);
- mpz_mul (P, P, P2);
- mpz_mul (Q, Q, Q2);
- mpz_clear (T2);
- mpz_clear (P2);
- mpz_clear (Q2);
- }
-}
-
-/* Don't need to save/restore exponent range: the cache does it.
- Catalan's constant is G = sum((-1)^k/(2*k+1)^2, k=0..infinity).
- We compute it using formula (31) of Victor Adamchik's page
- "33 representations for Catalan's constant"
- http://www-2.cs.cmu.edu/~adamchik/articles/catalan/catalan.htm
-
- G = Pi/8*log(2+sqrt(3)) + 3/8*sum(k!^2/(2k)!/(2k+1)^2,k=0..infinity)
-*/
-int
-mpfr_const_catalan_internal (mpfr_ptr g, mpfr_rnd_t rnd_mode)
-{
- mpfr_t x, y, z;
- mpz_t T, P, Q;
- mpfr_prec_t pg, p;
- int inex;
- MPFR_ZIV_DECL (loop);
- MPFR_GROUP_DECL (group);
-
- MPFR_LOG_FUNC (("rnd_mode=%d", rnd_mode),
- ("g[%Pu]=%.*Rg inex=%d", mpfr_get_prec (g), mpfr_log_prec, g, inex));
-
- /* Here are the WC (max prec = 100.000.000)
- Once we have found a chain of 11, we only look for bigger chain.
- Found 3 '1' at 0
- Found 5 '1' at 9
- Found 6 '0' at 34
- Found 9 '1' at 176
- Found 11 '1' at 705
- Found 12 '0' at 913
- Found 14 '1' at 12762
- Found 15 '1' at 152561
- Found 16 '0' at 171725
- Found 18 '0' at 525355
- Found 20 '0' at 529245
- Found 21 '1' at 6390133
- Found 22 '0' at 7806417
- Found 25 '1' at 11936239
- Found 27 '1' at 51752950
- */
- pg = MPFR_PREC (g);
- p = pg + MPFR_INT_CEIL_LOG2 (pg) + 7;
-
- MPFR_GROUP_INIT_3 (group, p, x, y, z);
- mpz_init (T);
- mpz_init (P);
- mpz_init (Q);
-
- MPFR_ZIV_INIT (loop, p);
- for (;;) {
- mpfr_sqrt_ui (x, 3, MPFR_RNDU);
- mpfr_add_ui (x, x, 2, MPFR_RNDU);
- mpfr_log (x, x, MPFR_RNDU);
- mpfr_const_pi (y, MPFR_RNDU);
- mpfr_mul (x, x, y, MPFR_RNDN);
- S (T, P, Q, 0, (p - 1) / 2);
- mpz_mul_ui (T, T, 3);
- mpfr_set_z (y, T, MPFR_RNDU);
- mpfr_set_z (z, Q, MPFR_RNDD);
- mpfr_div (y, y, z, MPFR_RNDN);
- mpfr_add (x, x, y, MPFR_RNDN);
- mpfr_div_2ui (x, x, 3, MPFR_RNDN);
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (x, p - 5, pg, rnd_mode)))
- break;
-
- MPFR_ZIV_NEXT (loop, p);
- MPFR_GROUP_REPREC_3 (group, p, x, y, z);
- }
- MPFR_ZIV_FREE (loop);
- inex = mpfr_set (g, x, rnd_mode);
-
- MPFR_GROUP_CLEAR (group);
- mpz_clear (T);
- mpz_clear (P);
- mpz_clear (Q);
-
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/const_euler.c b/Build/source/libs/mpfr/mpfr-src/src/const_euler.c
deleted file mode 100644
index 9e3b88ac518..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/const_euler.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* mpfr_const_euler -- Euler's constant
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by Fredrik Johansson.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* The approximation error bound uses Theorem 1 and Remark 2 in
- http://arxiv.org/pdf/1312.0039v1.pdf */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Declare the cache */
-MPFR_DECL_INIT_CACHE (__gmpfr_cache_const_euler, mpfr_const_euler_internal)
-
-/* Set User Interface */
-#undef mpfr_const_euler
-int
-mpfr_const_euler (mpfr_ptr x, mpfr_rnd_t rnd_mode) {
- return mpfr_cache (x, __gmpfr_cache_const_euler, rnd_mode);
-}
-
-
-typedef struct
-{
- mpz_t P;
- mpz_t Q;
- mpz_t T;
- mpz_t C;
- mpz_t D;
- mpz_t V;
-} mpfr_const_euler_bs_struct;
-
-typedef mpfr_const_euler_bs_struct mpfr_const_euler_bs_t[1];
-
-static void
-mpfr_const_euler_bs_init (mpfr_const_euler_bs_t s)
-{
- mpz_init (s->P);
- mpz_init (s->Q);
- mpz_init (s->T);
- mpz_init (s->C);
- mpz_init (s->D);
- mpz_init (s->V);
-}
-
-static void
-mpfr_const_euler_bs_clear (mpfr_const_euler_bs_t s)
-{
- mpz_clear (s->P);
- mpz_clear (s->Q);
- mpz_clear (s->T);
- mpz_clear (s->C);
- mpz_clear (s->D);
- mpz_clear (s->V);
-}
-
-static void
-mpfr_const_euler_bs_1 (mpfr_const_euler_bs_t s,
- unsigned long n1, unsigned long n2, unsigned long N,
- int cont)
-{
- if (n2 - n1 == 1)
- {
- mpz_set_ui (s->P, N);
- mpz_mul (s->P, s->P, s->P);
- mpz_set_ui (s->Q, n1 + 1);
- mpz_mul (s->Q, s->Q, s->Q);
- mpz_set_ui (s->C, 1);
- mpz_set_ui (s->D, n1 + 1);
- mpz_set (s->T, s->P);
- mpz_set (s->V, s->P);
- }
- else
- {
- mpfr_const_euler_bs_t L, R;
- mpz_t t, u, v;
- unsigned long m = (n1 + n2) / 2;
-
- mpfr_const_euler_bs_init (L);
- mpfr_const_euler_bs_init (R);
- mpfr_const_euler_bs_1 (L, n1, m, N, 1);
- mpfr_const_euler_bs_1 (R, m, n2, N, 1);
-
- mpz_init (t);
- mpz_init (u);
- mpz_init (v);
-
- if (cont)
- mpz_mul (s->P, L->P, R->P);
-
- mpz_mul (s->Q, L->Q, R->Q);
- mpz_mul (s->D, L->D, R->D);
-
- /* T = LP RT + RQ LT*/
- mpz_mul (t, L->P, R->T);
- mpz_mul (v, R->Q, L->T);
- mpz_add (s->T, t, v);
-
- /* C = LC RD + RC LD */
- if (cont)
- {
- mpz_mul (s->C, L->C, R->D);
- mpz_addmul (s->C, R->C, L->D);
- }
-
- /* V = RD (RQ LV + LC LP RT) + LD LP RV */
- mpz_mul (u, L->P, R->V);
- mpz_mul (u, u, L->D);
- mpz_mul (v, R->Q, L->V);
- mpz_addmul (v, t, L->C);
- mpz_mul (v, v, R->D);
- mpz_add (s->V, u, v);
-
- mpfr_const_euler_bs_clear (L);
- mpfr_const_euler_bs_clear (R);
- mpz_clear (t);
- mpz_clear (u);
- mpz_clear (v);
- }
-}
-
-static void
-mpfr_const_euler_bs_2 (mpz_t P, mpz_t Q, mpz_t T,
- unsigned long n1, unsigned long n2, unsigned long N,
- int cont)
-{
- if (n2 - n1 == 1)
- {
- if (n1 == 0)
- {
- mpz_set_ui (P, 1);
- mpz_set_ui (Q, 4 * N);
- }
- else
- {
- mpz_set_ui (P, 2 * n1 - 1);
- mpz_pow_ui (P, P, 3);
- mpz_set_ui (Q, 32 * n1);
- mpz_mul_ui (Q, Q, N);
- mpz_mul_ui (Q, Q, N);
- }
- mpz_set (T, P);
- }
- else
- {
- mpz_t P2, Q2, T2;
- unsigned long m = (n1 + n2) / 2;
-
- mpz_init (P2);
- mpz_init (Q2);
- mpz_init (T2);
- mpfr_const_euler_bs_2 (P, Q, T, n1, m, N, 1);
- mpfr_const_euler_bs_2 (P2, Q2, T2, m, n2, N, 1);
- mpz_mul (T, T, Q2);
- mpz_mul (T2, T2, P);
- mpz_add (T, T, T2);
- if (cont)
- mpz_mul (P, P, P2);
- mpz_mul (Q, Q, Q2);
- mpz_clear (P2);
- mpz_clear (Q2);
- mpz_clear (T2);
- }
-}
-
-int
-mpfr_const_euler_internal (mpfr_t x, mpfr_rnd_t rnd)
-{
- mpfr_const_euler_bs_t sum;
- mpz_t t, u, v;
- unsigned long n, N;
- mpfr_prec_t prec, wp, magn;
- mpfr_t y;
- int inexact;
- MPFR_ZIV_DECL (loop);
-
- prec = mpfr_get_prec (x);
- wp = prec + MPFR_INT_CEIL_LOG2 (prec) + 5;
-
- mpfr_init2 (y, wp);
- mpfr_const_euler_bs_init (sum);
- mpz_init (t);
- mpz_init (u);
- mpz_init (v);
-
- MPFR_ZIV_INIT (loop, wp);
- for (;;)
- {
- /* The approximation error is bounded by 24 exp(-8n) when
- n > 1, which is smaller than 2^-wp if
- n > (wp + log_2(24)) * (log(2)/8).
- Note log2(24) < 5 and log(2)/8 < 866434 / 10000000. */
- mpz_set_ui (t, wp + 5);
- mpz_mul_ui (t, t, 866434);
- mpz_cdiv_q_ui (t, t, 10000000);
- n = mpz_get_ui (t);
-
- /* It is sufficient to take N >= alpha*n + 1
- where alpha = 3/LambertW(3/e) = 4.970625759544... */
- mpz_set_ui (t, n);
- mpz_mul_ui (t, t, 4970626);
- mpz_cdiv_q_ui (t, t, 1000000);
- mpz_add_ui (t, t, 1);
- N = mpz_get_ui (t);
-
- /* V / ((T + Q) * D) = S / I
- where S = sum_{k=0}^{N-1} H_k n^(2k) / (k!)^2,
- I = sum_{k=0}^{N-1} n^(2k) / (k!)^2 */
- mpfr_const_euler_bs_1 (sum, 0, N, n, 0);
- mpz_add (sum->T, sum->T, sum->Q);
- mpz_mul (t, sum->T, sum->D);
- mpz_mul_2exp (u, sum->V, wp);
- mpz_tdiv_q (v, u, t);
- /* v * 2^-wp = S/I with error < 1 */
-
- /* C / (D * V) = U where
- U = (1/(4n)) sum_{k=0}^{2n-1} [(2k)!]^3 / ((k!)^4 8^(2k) (2n)^(2k)) */
- mpfr_const_euler_bs_2 (sum->C, sum->D, sum->V, 0, 2*n, n, 0);
- mpz_mul (t, sum->Q, sum->Q);
- mpz_mul (t, t, sum->V);
- mpz_mul (u, sum->T, sum->T);
- mpz_mul (u, u, sum->D);
- mpz_mul_2exp (t, t, wp);
- mpz_tdiv_q (t, t, u);
- /* t * 2^-wp = U/I^2 with error < 1 */
-
- /* gamma = S/I - U/I^2 - log(n) with error at most 2^-wp */
- mpz_sub (v, v, t);
- /* v * 2^-wp now equals gamma + log(n) with error at most 3*2^-wp */
-
- /* log(n) < 2^ceil(log2(n)) */
- magn = MPFR_INT_CEIL_LOG2(n);
- mpfr_set_prec (y, wp + magn);
- mpfr_set_ui (y, n, MPFR_RNDZ); /* exact */
- mpfr_log (y, y, MPFR_RNDZ); /* error < 2^-wp */
-
- mpfr_mul_2ui (y, y, wp, MPFR_RNDZ);
- mpfr_z_sub (y, v, y, MPFR_RNDZ);
- mpfr_div_2ui (y, y, wp, MPFR_RNDZ);
- /* rounding error from the last subtraction < 2^-wp */
- /* so y = gamma with error < 5*2^-wp */
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (y, wp - 3, prec, rnd)))
- break;
-
- MPFR_ZIV_NEXT (loop, wp);
- }
-
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (x, y, rnd);
-
- mpfr_clear (y);
- mpz_clear (t);
- mpz_clear (u);
- mpz_clear (v);
- mpfr_const_euler_bs_clear (sum);
-
- return inexact; /* always inexact */
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/const_log2.c b/Build/source/libs/mpfr/mpfr-src/src/const_log2.c
deleted file mode 100644
index 1419a0c04e9..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/const_log2.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* mpfr_const_log2 -- compute natural logarithm of 2
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Declare the cache */
-#ifndef MPFR_USE_LOGGING
-MPFR_DECL_INIT_CACHE (__gmpfr_cache_const_log2, mpfr_const_log2_internal)
-#else
-MPFR_DECL_INIT_CACHE (__gmpfr_normal_log2, mpfr_const_log2_internal)
-MPFR_DECL_INIT_CACHE (__gmpfr_logging_log2, mpfr_const_log2_internal)
-MPFR_THREAD_VAR (mpfr_cache_ptr, __gmpfr_cache_const_log2, __gmpfr_normal_log2)
-#endif
-
-/* Set User interface */
-#undef mpfr_const_log2
-int
-mpfr_const_log2 (mpfr_ptr x, mpfr_rnd_t rnd_mode) {
- return mpfr_cache (x, __gmpfr_cache_const_log2, rnd_mode);
-}
-
-/* Auxiliary function: Compute the terms from n1 to n2 (excluded)
- 3/4*sum((-1)^n*n!^2/2^n/(2*n+1)!, n = n1..n2-1).
- Numerator is T[0], denominator is Q[0],
- Compute P[0] only when need_P is non-zero.
- Need 1+ceil(log(n2-n1)/log(2)) cells in T[],P[],Q[].
-*/
-static void
-S (mpz_t *T, mpz_t *P, mpz_t *Q, unsigned long n1, unsigned long n2, int need_P)
-{
- if (n2 == n1 + 1)
- {
- if (n1 == 0)
- mpz_set_ui (P[0], 3);
- else
- {
- mpz_set_ui (P[0], n1);
- mpz_neg (P[0], P[0]);
- }
- /* since n1 <= N, where N is the value from mpfr_const_log2_internal(),
- and N = w / 3 + 1, where w <= PREC_MAX <= ULONG_MAX, then
- N <= floor(ULONG_MAX/3) + 1, thus 2*N+1 <= ULONG_MAX */
- MPFR_STAT_STATIC_ASSERT (MPFR_PREC_MAX <= ULONG_MAX);
- mpz_set_ui (Q[0], 2 * n1 + 1);
- mpz_mul_2exp (Q[0], Q[0], 2);
- mpz_set (T[0], P[0]);
- }
- else
- {
- unsigned long m = (n1 / 2) + (n2 / 2) + (n1 & 1UL & n2);
- mp_bitcnt_t v, w;
-
- S (T, P, Q, n1, m, 1);
- S (T + 1, P + 1, Q + 1, m, n2, need_P);
- mpz_mul (T[0], T[0], Q[1]);
- mpz_mul (T[1], T[1], P[0]);
- mpz_add (T[0], T[0], T[1]);
- if (need_P)
- mpz_mul (P[0], P[0], P[1]);
- mpz_mul (Q[0], Q[0], Q[1]);
-
- /* remove common trailing zeroes if any */
- v = mpz_scan1 (T[0], 0);
- if (v > 0)
- {
- w = mpz_scan1 (Q[0], 0);
- if (w < v)
- v = w;
- if (need_P)
- {
- w = mpz_scan1 (P[0], 0);
- if (w < v)
- v = w;
- }
- /* now v = min(val(T), val(Q), val(P)) */
- if (v > 0)
- {
- mpz_fdiv_q_2exp (T[0], T[0], v);
- mpz_fdiv_q_2exp (Q[0], Q[0], v);
- if (need_P)
- mpz_fdiv_q_2exp (P[0], P[0], v);
- }
- }
- }
-}
-
-/* Don't need to save / restore exponent range: the cache does it */
-int
-mpfr_const_log2_internal (mpfr_ptr x, mpfr_rnd_t rnd_mode)
-{
- unsigned long n = MPFR_PREC (x);
- mpfr_prec_t w; /* working precision */
- unsigned long N;
- mpz_t *T, *P, *Q;
- mpfr_t t, q;
- int inexact;
- unsigned long lgN, i;
- MPFR_GROUP_DECL(group);
- MPFR_TMP_DECL(marker);
- MPFR_ZIV_DECL(loop);
-
- MPFR_LOG_FUNC (
- ("rnd_mode=%d", rnd_mode),
- ("x[%Pu]=%.*Rg inex=%d", mpfr_get_prec(x), mpfr_log_prec, x, inexact));
-
- w = n + MPFR_INT_CEIL_LOG2 (n) + 3;
-
- MPFR_TMP_MARK(marker);
- MPFR_GROUP_INIT_2(group, w, t, q);
-
- MPFR_ZIV_INIT (loop, w);
- for (;;)
- {
- N = w / 3 + 1;
-
- /* the following are needed for error analysis (see algorithms.tex) */
- MPFR_ASSERTD(w >= 3 && N >= 2);
-
- lgN = MPFR_INT_CEIL_LOG2 (N) + 1;
- T = (mpz_t *) MPFR_TMP_ALLOC (3 * lgN * sizeof (mpz_t));
- P = T + lgN;
- Q = T + 2*lgN;
- for (i = 0; i < lgN; i++)
- {
- mpz_init (T[i]);
- mpz_init (P[i]);
- mpz_init (Q[i]);
- }
-
- S (T, P, Q, 0, N, 0);
-
- mpfr_set_z (t, T[0], MPFR_RNDN);
- mpfr_set_z (q, Q[0], MPFR_RNDN);
- mpfr_div (t, t, q, MPFR_RNDN);
-
- for (i = 0; i < lgN; i++)
- {
- mpz_clear (T[i]);
- mpz_clear (P[i]);
- mpz_clear (Q[i]);
- }
-
- if (MPFR_CAN_ROUND (t, w - 2, n, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, w);
- MPFR_GROUP_REPREC_2(group, w, t, q);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (x, t, rnd_mode);
-
- MPFR_GROUP_CLEAR(group);
- MPFR_TMP_FREE(marker);
-
- return inexact;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/const_pi.c b/Build/source/libs/mpfr/mpfr-src/src/const_pi.c
deleted file mode 100644
index 26c55030d28..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/const_pi.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* mpfr_const_pi -- compute Pi
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Declare the cache */
-#ifndef MPFR_USE_LOGGING
-MPFR_DECL_INIT_CACHE (__gmpfr_cache_const_pi, mpfr_const_pi_internal)
-#else
-MPFR_DECL_INIT_CACHE (__gmpfr_normal_pi, mpfr_const_pi_internal)
-MPFR_DECL_INIT_CACHE (__gmpfr_logging_pi, mpfr_const_pi_internal)
-MPFR_THREAD_VAR (mpfr_cache_ptr, __gmpfr_cache_const_pi, __gmpfr_normal_pi)
-#endif
-
-/* Set User Interface */
-#undef mpfr_const_pi
-int
-mpfr_const_pi (mpfr_ptr x, mpfr_rnd_t rnd_mode) {
- return mpfr_cache (x, __gmpfr_cache_const_pi, rnd_mode);
-}
-
-/* The algorithm used here is taken from Section 8.2.5 of the book
- "Fast Algorithms: A Multitape Turing Machine Implementation"
- by A. Schönhage, A. F. W. Grotefeld and E. Vetter, 1994.
- It is a clever form of Brent-Salamin formula. */
-
-/* Don't need to save/restore exponent range: the cache does it */
-int
-mpfr_const_pi_internal (mpfr_ptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t a, A, B, D, S;
- mpfr_prec_t px, p, cancel, k, kmax;
- MPFR_GROUP_DECL (group);
- MPFR_ZIV_DECL (loop);
- int inex;
-
- MPFR_LOG_FUNC
- (("rnd_mode=%d", rnd_mode),
- ("x[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(x), mpfr_log_prec, x, inex));
-
- px = MPFR_PREC (x);
-
- /* we need 9*2^kmax - 4 >= px+2*kmax+8 */
- for (kmax = 2; ((px + 2 * kmax + 12) / 9) >> kmax; kmax ++);
-
- p = px + 3 * kmax + 14; /* guarantees no recomputation for px <= 10000 */
-
- MPFR_GROUP_INIT_5 (group, p, a, A, B, D, S);
-
- MPFR_ZIV_INIT (loop, p);
- for (;;) {
- mpfr_set_ui (a, 1, MPFR_RNDN); /* a = 1 */
- mpfr_set_ui (A, 1, MPFR_RNDN); /* A = a^2 = 1 */
- mpfr_set_ui_2exp (B, 1, -1, MPFR_RNDN); /* B = b^2 = 1/2 */
- mpfr_set_ui_2exp (D, 1, -2, MPFR_RNDN); /* D = 1/4 */
-
-#define b B
-#define ap a
-#define Ap A
-#define Bp B
- for (k = 0; ; k++)
- {
- /* invariant: 1/2 <= B <= A <= a < 1 */
- mpfr_add (S, A, B, MPFR_RNDN); /* 1 <= S <= 2 */
- mpfr_div_2ui (S, S, 2, MPFR_RNDN); /* exact, 1/4 <= S <= 1/2 */
- mpfr_sqrt (b, B, MPFR_RNDN); /* 1/2 <= b <= 1 */
- mpfr_add (ap, a, b, MPFR_RNDN); /* 1 <= ap <= 2 */
- mpfr_div_2ui (ap, ap, 1, MPFR_RNDN); /* exact, 1/2 <= ap <= 1 */
- mpfr_sqr (Ap, ap, MPFR_RNDN); /* 1/4 <= Ap <= 1 */
- mpfr_sub (Bp, Ap, S, MPFR_RNDN); /* -1/4 <= Bp <= 3/4 */
- mpfr_mul_2ui (Bp, Bp, 1, MPFR_RNDN); /* -1/2 <= Bp <= 3/2 */
- mpfr_sub (S, Ap, Bp, MPFR_RNDN);
- MPFR_ASSERTD (mpfr_cmp_ui (S, 1) < 0);
- cancel = MPFR_NOTZERO (S) ? (mpfr_uexp_t) -mpfr_get_exp(S) : p;
- /* MPFR_ASSERTN (cancel >= px || cancel >= 9 * (1 << k) - 4); */
- mpfr_mul_2ui (S, S, k, MPFR_RNDN);
- mpfr_sub (D, D, S, MPFR_RNDN);
- /* stop when |A_k - B_k| <= 2^(k-p) i.e. cancel >= p-k */
- if (cancel >= p - k)
- break;
- }
-#undef b
-#undef ap
-#undef Ap
-#undef Bp
-
- mpfr_div (A, B, D, MPFR_RNDN);
-
- /* MPFR_ASSERTN(p >= 2 * k + 8); */
- if (MPFR_LIKELY (MPFR_CAN_ROUND (A, p - 2 * k - 8, px, rnd_mode)))
- break;
-
- p += kmax;
- MPFR_ZIV_NEXT (loop, p);
- MPFR_GROUP_REPREC_5 (group, p, a, A, B, D, S);
- }
- MPFR_ZIV_FREE (loop);
- inex = mpfr_set (x, A, rnd_mode);
-
- MPFR_GROUP_CLEAR (group);
-
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/constant.c b/Build/source/libs/mpfr/mpfr-src/src/constant.c
deleted file mode 100644
index 34f12c4a123..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/constant.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* MPFR internal constant FP numbers
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-static const mp_limb_t __gmpfr_limb1[1] = {MPFR_LIMB_HIGHBIT};
-const mpfr_t __gmpfr_one = {{2, MPFR_SIGN_POS, 1, (mp_limb_t*)__gmpfr_limb1}};
-const mpfr_t __gmpfr_two = {{2, MPFR_SIGN_POS, 2, (mp_limb_t*)__gmpfr_limb1}};
-const mpfr_t __gmpfr_four ={{2, MPFR_SIGN_POS, 3, (mp_limb_t*)__gmpfr_limb1}};
-const mpfr_t __gmpfr_mone ={{2, MPFR_SIGN_NEG, 1, (mp_limb_t*)__gmpfr_limb1}};
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-static const mp_limb_t mpfr_l2_dd__tab[] = { 0xab, 0x79, 0xcf, 0xd1, 0xf7, 0x17, 0x72 , 0xb1 };
-#elif GMP_NUMB_BITS == 16
-static const mp_limb_t mpfr_l2_dd__tab[] = { 0x79ab, 0xd1cf, 0x17f7, 0xb172 };
-#elif GMP_NUMB_BITS == 32
-static const mp_limb_t mpfr_l2_dd__tab[] = { 0xd1cf79ab, 0xb17217f7};
-#elif GMP_NUMB_BITS == 64
-static const mp_limb_t mpfr_l2_dd__tab[] = { 0xb17217f7d1cf79ab };
-#elif GMP_NUMB_BITS == 96
-static const mp_limb_t mpfr_l2_dd__tab[] = { 0xb17217f7d1cf79ab00000000 };
-#elif GMP_NUMB_BITS == 128
-static const mp_limb_t mpfr_l2_dd__tab[] = { 0xb17217f7d1cf79ab0000000000000000 };
-#elif GMP_NUMB_BITS == 256
-static const mp_limb_t mpfr_l2_dd__tab[] = { 0xb17217f7d1cf79ab000000000000000000000000000000000000000000000000 };
-#endif
-
-const mpfr_t __gmpfr_const_log2_RNDD =
- {{64, MPFR_SIGN_POS, 0, (mp_limb_t*)mpfr_l2_dd__tab}};
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-static const mp_limb_t mpfr_l2_du__tab[] = { 0xac, 0x79, 0xcf, 0xd1, 0xf7, 0x17, 0x72 , 0xb1 };
-#elif GMP_NUMB_BITS == 16
-static const mp_limb_t mpfr_l2_du__tab[] = { 0x79ac, 0xd1cf, 0x17f7, 0xb172 };
-#elif GMP_NUMB_BITS == 32
-static const mp_limb_t mpfr_l2_du__tab[] = { 0xd1cf79ac, 0xb17217f7};
-#elif GMP_NUMB_BITS == 64
-static const mp_limb_t mpfr_l2_du__tab[] = { 0xb17217f7d1cf79ac };
-#elif GMP_NUMB_BITS == 96
-static const mp_limb_t mpfr_l2_du__tab[] = { 0xb17217f7d1cf79ac00000000 };
-#elif GMP_NUMB_BITS == 128
-static const mp_limb_t mpfr_l2_du__tab[] = { 0xb17217f7d1cf79ac0000000000000000 };
-#elif GMP_NUMB_BITS == 256
-static const mp_limb_t mpfr_l2_du__tab[] = { 0xb17217f7d1cf79ac000000000000000000000000000000000000000000000000 };
-#endif
-
-const mpfr_t __gmpfr_const_log2_RNDU =
- {{64, MPFR_SIGN_POS, 0, (mp_limb_t*)mpfr_l2_du__tab}};
diff --git a/Build/source/libs/mpfr/mpfr-src/src/copysign.c b/Build/source/libs/mpfr/mpfr-src/src/copysign.c
deleted file mode 100644
index 53e1ba6ee08..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/copysign.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* mpfr_copysign -- Produce a value with the magnitude of x and sign bit of y
-
-Copyright 2001-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
- /*
- The computation of z with magnitude of x and sign of y:
- z = (-1)^signbit(y) * abs(x), i.e. with the same sign bit as y,
- even if z is a NaN.
- Note: This function implements copysign from the IEEE-754 standard
- when no rounding occurs (e.g. if PREC(z) >= PREC(x)).
- */
-
-#undef mpfr_copysign
-int
-mpfr_copysign (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set4 (z, x, rnd_mode, MPFR_SIGN (y));
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cos.c b/Build/source/libs/mpfr/mpfr-src/src/cos.c
deleted file mode 100644
index 61a9de20b08..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cos.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/* mpfr_cos -- cosine of a floating-point number
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-static int
-mpfr_cos_fast (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int inex;
-
- inex = mpfr_sincos_fast (NULL, y, x, rnd_mode);
- inex = inex >> 2; /* 0: exact, 1: rounded up, 2: rounded down */
- return (inex == 2) ? -1 : inex;
-}
-
-/* f <- 1 - r/2! + r^2/4! + ... + (-1)^l r^l/(2l)! + ...
- Assumes |r| < 1/2, and f, r have the same precision.
- Returns e such that the error on f is bounded by 2^e ulps.
-*/
-static int
-mpfr_cos2_aux (mpfr_ptr f, mpfr_srcptr r)
-{
- mpz_t x, t, s;
- mpfr_exp_t ex, l, m;
- mpfr_prec_t p, q;
- unsigned long i, maxi, imax;
-
- MPFR_ASSERTD(mpfr_get_exp (r) <= -1);
-
- /* compute minimal i such that i*(i+1) does not fit in an unsigned long,
- assuming that there are no padding bits. */
- maxi = 1UL << (sizeof(unsigned long) * CHAR_BIT / 2);
- if (maxi * (maxi / 2) == 0) /* test checked at compile time */
- {
- /* can occur only when there are padding bits. */
- /* maxi * (maxi-1) is representable iff maxi * (maxi / 2) != 0 */
- do
- maxi /= 2;
- while (maxi * (maxi / 2) == 0);
- }
-
- mpz_init (x);
- mpz_init (s);
- mpz_init (t);
- ex = mpfr_get_z_2exp (x, r); /* r = x*2^ex */
-
- /* Remove trailing zeroes.
- Since x comes from a regular MPFR number, due to the constraints on the
- exponent and the precision, there can be no integer overflow below. */
- l = mpz_scan1 (x, 0);
- ex += l;
- mpz_fdiv_q_2exp (x, x, l);
-
- /* since |r| < 1, r = x*2^ex, and x is an integer, necessarily ex < 0 */
-
- p = mpfr_get_prec (f); /* same than r */
- /* bound for number of iterations */
- imax = p / (-mpfr_get_exp (r));
- imax += (imax == 0);
- q = 2 * MPFR_INT_CEIL_LOG2(imax) + 4; /* bound for (3l)^2 */
-
- mpz_set_ui (s, 1); /* initialize sum with 1 */
- mpz_mul_2exp (s, s, p + q); /* scale all values by 2^(p+q) */
- mpz_set (t, s); /* invariant: t is previous term */
- for (i = 1; (m = mpz_sizeinbase (t, 2)) >= q; i += 2)
- {
- /* adjust precision of x to that of t */
- l = mpz_sizeinbase (x, 2);
- if (l > m)
- {
- l -= m;
- mpz_fdiv_q_2exp (x, x, l);
- ex += l;
- }
- /* multiply t by r */
- mpz_mul (t, t, x);
- mpz_fdiv_q_2exp (t, t, -ex);
- /* divide t by i*(i+1) */
- if (i < maxi)
- mpz_fdiv_q_ui (t, t, i * (i + 1));
- else
- {
- mpz_fdiv_q_ui (t, t, i);
- mpz_fdiv_q_ui (t, t, i + 1);
- }
- /* if m is the (current) number of bits of t, we can consider that
- all operations on t so far had precision >= m, so we can prove
- by induction that the relative error on t is of the form
- (1+u)^(3l)-1, where |u| <= 2^(-m), and l=(i+1)/2 is the # of loops.
- Since |(1+x^2)^(1/x) - 1| <= 4x/3 for |x| <= 1/2,
- for |u| <= 1/(3l)^2, the absolute error is bounded by
- 4/3*(3l)*2^(-m)*t <= 4*l since |t| < 2^m.
- Therefore the error on s is bounded by 2*l*(l+1). */
- /* add or subtract to s */
- if (i % 4 == 1)
- mpz_sub (s, s, t);
- else
- mpz_add (s, s, t);
- }
-
- mpfr_set_z (f, s, MPFR_RNDN);
- mpfr_div_2ui (f, f, p + q, MPFR_RNDN);
-
- mpz_clear (x);
- mpz_clear (s);
- mpz_clear (t);
-
- l = (i - 1) / 2; /* number of iterations */
- return 2 * MPFR_INT_CEIL_LOG2 (l + 1) + 1; /* bound is 2l(l+1) */
-}
-
-int
-mpfr_cos (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t K0, K, precy, m, k, l;
- int inexact, reduce = 0;
- mpfr_t r, s, xr, c;
- mpfr_exp_t exps, cancel = 0, expx;
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_GROUP_DECL (group);
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%*.Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%*.Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x) || MPFR_IS_INF (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- return mpfr_set_ui (y, 1, rnd_mode);
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* cos(x) = 1-x^2/2 + ..., so error < 2^(2*EXP(x)-1) */
- expx = MPFR_GET_EXP (x);
- MPFR_SMALL_INPUT_AFTER_SAVE_EXPO (y, __gmpfr_one, -2 * expx,
- 1, 0, rnd_mode, expo, {});
-
- /* Compute initial precision */
- precy = MPFR_PREC (y);
-
- if (precy >= MPFR_SINCOS_THRESHOLD)
- {
- inexact = mpfr_cos_fast (y, x, rnd_mode);
- goto end;
- }
-
- K0 = __gmpfr_isqrt (precy / 3);
- m = precy + 2 * MPFR_INT_CEIL_LOG2 (precy) + 2 * K0 + 4;
-
- if (expx >= 3)
- {
- reduce = 1;
- /* As expx + m - 1 will silently be converted into mpfr_prec_t
- in the mpfr_init2 call, the assert below may be useful to
- avoid undefined behavior. */
- MPFR_ASSERTN (expx + m - 1 <= MPFR_PREC_MAX);
- mpfr_init2 (c, expx + m - 1);
- mpfr_init2 (xr, m);
- }
-
- MPFR_GROUP_INIT_2 (group, m, r, s);
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- /* If |x| >= 4, first reduce x cmod (2*Pi) into xr, using mpfr_remainder:
- let e = EXP(x) >= 3, and m the target precision:
- (1) c <- 2*Pi [precision e+m-1, nearest]
- (2) xr <- remainder (x, c) [precision m, nearest]
- We have |c - 2*Pi| <= 1/2ulp(c) = 2^(3-e-m)
- |xr - x - k c| <= 1/2ulp(xr) <= 2^(1-m)
- |k| <= |x|/(2*Pi) <= 2^(e-2)
- Thus |xr - x - 2kPi| <= |k| |c - 2Pi| + 2^(1-m) <= 2^(2-m).
- It follows |cos(xr) - cos(x)| <= 2^(2-m). */
- if (reduce)
- {
- mpfr_const_pi (c, MPFR_RNDN);
- mpfr_mul_2ui (c, c, 1, MPFR_RNDN); /* 2Pi */
- mpfr_remainder (xr, x, c, MPFR_RNDN);
- if (MPFR_IS_ZERO(xr))
- goto ziv_next;
- /* now |xr| <= 4, thus r <= 16 below */
- mpfr_sqr (r, xr, MPFR_RNDU); /* err <= 1 ulp */
- }
- else
- mpfr_sqr (r, x, MPFR_RNDU); /* err <= 1 ulp */
-
- /* now |x| < 4 (or xr if reduce = 1), thus |r| <= 16 */
-
- /* we need |r| < 1/2 for mpfr_cos2_aux, i.e., EXP(r) - 2K <= -1 */
- K = K0 + 1 + MAX(0, MPFR_GET_EXP(r)) / 2;
- /* since K0 >= 0, if EXP(r) < 0, then K >= 1, thus EXP(r) - 2K <= -3;
- otherwise if EXP(r) >= 0, then K >= 1/2 + EXP(r)/2, thus
- EXP(r) - 2K <= -1 */
-
- MPFR_SET_EXP (r, MPFR_GET_EXP (r) - 2 * K); /* Can't overflow! */
-
- /* s <- 1 - r/2! + ... + (-1)^l r^l/(2l)! */
- l = mpfr_cos2_aux (s, r);
- /* l is the error bound in ulps on s */
- MPFR_SET_ONE (r);
- for (k = 0; k < K; k++)
- {
- mpfr_sqr (s, s, MPFR_RNDU); /* err <= 2*olderr */
- MPFR_SET_EXP (s, MPFR_GET_EXP (s) + 1); /* Can't overflow */
- mpfr_sub (s, s, r, MPFR_RNDN); /* err <= 4*olderr */
- if (MPFR_IS_ZERO(s))
- goto ziv_next;
- MPFR_ASSERTD (MPFR_GET_EXP (s) <= 1);
- }
-
- /* The absolute error on s is bounded by (2l+1/3)*2^(2K-m)
- 2l+1/3 <= 2l+1.
- If |x| >= 4, we need to add 2^(2-m) for the argument reduction
- by 2Pi: if K = 0, this amounts to add 4 to 2l+1/3, i.e., to add
- 2 to l; if K >= 1, this amounts to add 1 to 2*l+1/3. */
- l = 2 * l + 1;
- if (reduce)
- l += (K == 0) ? 4 : 1;
- k = MPFR_INT_CEIL_LOG2 (l) + 2 * K;
- /* now the error is bounded by 2^(k-m) = 2^(EXP(s)-err) */
-
- exps = MPFR_GET_EXP (s);
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, exps + m - k, precy, rnd_mode)))
- break;
-
- if (MPFR_UNLIKELY (exps == 1))
- /* s = 1 or -1, and except x=0 which was already checked above,
- cos(x) cannot be 1 or -1, so we can round if the error is less
- than 2^(-precy) for directed rounding, or 2^(-precy-1) for rounding
- to nearest. */
- {
- if (m > k && (m - k >= precy + (rnd_mode == MPFR_RNDN)))
- {
- /* If round to nearest or away, result is s = 1 or -1,
- otherwise it is round(nexttoward (s, 0)). However in order to
- have the inexact flag correctly set below, we set |s| to
- 1 - 2^(-m) in all cases. */
- mpfr_nexttozero (s);
- break;
- }
- }
-
- if (exps < cancel)
- {
- m += cancel - exps;
- cancel = exps;
- }
-
- ziv_next:
- MPFR_ZIV_NEXT (loop, m);
- MPFR_GROUP_REPREC_2 (group, m, r, s);
- if (reduce)
- {
- mpfr_set_prec (xr, m);
- mpfr_set_prec (c, expx + m - 1);
- }
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, s, rnd_mode);
- MPFR_GROUP_CLEAR (group);
- if (reduce)
- {
- mpfr_clear (xr);
- mpfr_clear (c);
- }
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cosh.c b/Build/source/libs/mpfr/mpfr-src/src/cosh.c
deleted file mode 100644
index 4e878331590..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cosh.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* mpfr_cosh -- hyperbolic cosine
-
-Copyright 2001-2002, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The computation of cosh is done by *
- * cosh= 1/2[e^(x)+e^(-x)] */
-
-int
-mpfr_cosh (mpfr_ptr y, mpfr_srcptr xt , mpfr_rnd_t rnd_mode)
-{
- mpfr_t x;
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%*.Rg rnd=%d", mpfr_get_prec (xt), mpfr_log_prec, xt, rnd_mode),
- ("y[%Pu]=%*.Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(xt)))
- {
- if (MPFR_IS_NAN(xt))
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF(xt))
- {
- MPFR_SET_INF(y);
- MPFR_SET_POS(y);
- MPFR_RET(0);
- }
- else
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(xt));
- return mpfr_set_ui (y, 1, rnd_mode); /* cosh(0) = 1 */
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* cosh(x) = 1+x^2/2 + ... <= 1+x^2 for x <= 2.9828...,
- thus the error < 2^(2*EXP(x)). If x >= 1, then EXP(x) >= 1,
- thus the following will always fail. */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, __gmpfr_one, -2 * MPFR_GET_EXP (xt), 0,
- 1, rnd_mode, inexact = _inexact; goto end);
-
- MPFR_TMP_INIT_ABS(x, xt);
- /* General case */
- {
- /* Declaration of the intermediary variable */
- mpfr_t t, te;
- /* Declaration of the size variable */
- mpfr_prec_t Ny = MPFR_PREC(y); /* Precision of output variable */
- mpfr_prec_t Nt; /* Precision of the intermediary variable */
- long int err; /* Precision of error */
- MPFR_ZIV_DECL (loop);
- MPFR_GROUP_DECL (group);
-
- /* compute the precision of intermediary variable */
- /* The optimal number of bits : see algorithms.tex */
- Nt = Ny + 3 + MPFR_INT_CEIL_LOG2 (Ny);
-
- /* initialize of intermediary variables */
- MPFR_GROUP_INIT_2 (group, Nt, t, te);
-
- /* First computation of cosh */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- /* Compute cosh */
- MPFR_BLOCK (flags, mpfr_exp (te, x, MPFR_RNDD)); /* exp(x) */
- /* exp can overflow (but not underflow since x>0) */
- if (MPFR_OVERFLOW (flags))
- /* cosh(x) > exp(x), cosh(x) underflows too */
- {
- inexact = mpfr_overflow (y, rnd_mode, MPFR_SIGN_POS);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- break;
- }
- mpfr_ui_div (t, 1, te, MPFR_RNDU); /* 1/exp(x) */
- mpfr_add (t, te, t, MPFR_RNDU); /* exp(x) + 1/exp(x)*/
- mpfr_div_2ui (t, t, 1, MPFR_RNDN); /* 1/2(exp(x) + 1/exp(x))*/
-
- /* Estimation of the error */
- err = Nt - 3;
- /* Check if we can round */
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- {
- inexact = mpfr_set (y, t, rnd_mode);
- break;
- }
-
- /* Actualisation of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- MPFR_GROUP_REPREC_2 (group, Nt, t, te);
- }
- MPFR_ZIV_FREE (loop);
- MPFR_GROUP_CLEAR (group);
- }
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/cot.c b/Build/source/libs/mpfr/mpfr-src/src/cot.c
deleted file mode 100644
index 4adb6396c75..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/cot.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* mpfr_cot - cotangent function.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* the cotangent is defined by cot(x) = 1/tan(x) = cos(x)/sin(x).
- cot (NaN) = NaN.
- cot (+Inf) = csc (-Inf) = NaN.
- cot (+0) = +Inf.
- cot (-0) = -Inf.
-*/
-
-#define FUNCTION mpfr_cot
-#define INVERSE mpfr_tan
-#define ACTION_NAN(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_INF(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_ZERO(y,x) do { MPFR_SET_SAME_SIGN(y,x); MPFR_SET_INF(y); \
- MPFR_SET_DIVBY0 (); MPFR_RET(0); } while (1)
-
-/* (This analysis is adapted from that for mpfr_coth.)
- Near x=0, cot(x) = 1/x - x/3 + ..., more precisely we have
- |cot(x) - 1/x| <= 0.36 for |x| <= 1. The error term has
- the opposite sign as 1/x, thus |cot(x)| <= |1/x|. Then:
- (i) either x is a power of two, then 1/x is exactly representable, and
- as long as 1/2*ulp(1/x) > 0.36, we can conclude;
- (ii) otherwise assume x has <= n bits, and y has <= n+1 bits, then
- |y - 1/x| >= 2^(-2n) ufp(y), where ufp means unit in first place.
- Since |cot(x) - 1/x| <= 0.36, if 2^(-2n) ufp(y) >= 0.72, then
- |y - cot(x)| >= 2^(-2n-1) ufp(y), and rounding 1/x gives the correct
- result. If x < 2^E, then y > 2^(-E), thus ufp(y) > 2^(-E-1).
- A sufficient condition is thus EXP(x) + 1 <= -2 MAX(PREC(x),PREC(Y)).
- The division can be inexact in case of underflow or overflow; but
- an underflow is not possible as emin = - emax. The overflow is a
- real overflow possibly except when |x| = 2^emin. */
-#define ACTION_TINY(y,x,r) \
- if (MPFR_EXP(x) + 1 <= -2 * (mpfr_exp_t) MAX(MPFR_PREC(x), MPFR_PREC(y))) \
- { \
- int two2emin; \
- int signx = MPFR_SIGN(x); \
- MPFR_STAT_STATIC_ASSERT (MPFR_EMIN_MIN + MPFR_EMAX_MAX == 0); \
- if ((two2emin = mpfr_get_exp (x) == __gmpfr_emin + 1 && \
- mpfr_powerof2_raw (x))) \
- { \
- /* Case |x| = 2^emin. 1/x is not representable; so, compute \
- 1/(2x) instead (exact), and correct the result later. */ \
- mpfr_set_si_2exp (y, signx, __gmpfr_emax, MPFR_RNDN); \
- inexact = 0; \
- } \
- else \
- inexact = mpfr_ui_div (y, 1, x, r); \
- if (inexact == 0) /* x is a power of two */ \
- { /* result always 1/x, except when rounding to zero */ \
- if (rnd_mode == MPFR_RNDA) \
- rnd_mode = (signx > 0) ? MPFR_RNDU : MPFR_RNDD; \
- if (rnd_mode == MPFR_RNDU || (rnd_mode == MPFR_RNDZ && signx < 0)) \
- { \
- if (signx < 0) \
- mpfr_nextabove (y); /* -2^k + epsilon */ \
- inexact = 1; \
- } \
- else if (rnd_mode == MPFR_RNDD || rnd_mode == MPFR_RNDZ) \
- { \
- if (signx > 0) \
- mpfr_nextbelow (y); /* 2^k - epsilon */ \
- inexact = -1; \
- } \
- else /* round to nearest */ \
- inexact = signx; \
- if (two2emin) \
- mpfr_mul_2ui (y, y, 1, r); /* overflow in MPFR_RNDN */ \
- } \
- /* Underflow is not possible with emin = - emax, but we cannot */ \
- /* add an assert as the underflow flag could have already been */ \
- /* set before the call to mpfr_cot. */ \
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); \
- goto end; \
- }
-
-#include "gen_inverse.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/coth.c b/Build/source/libs/mpfr/mpfr-src/src/coth.c
deleted file mode 100644
index 217904aaaa2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/coth.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* mpfr_coth - Hyperbolic cotangent function.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* the hyperbolic cotangent is defined by coth(x) = 1/tanh(x)
- coth (NaN) = NaN.
- coth (+Inf) = 1
- coth (-Inf) = -1
- coth (+0) = +Inf.
- coth (-0) = -Inf.
-*/
-
-#define FUNCTION mpfr_coth
-#define INVERSE mpfr_tanh
-#define ACTION_NAN(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_INF(y) return mpfr_set_si (y, MPFR_IS_POS(x) ? 1 : -1, rnd_mode)
-#define ACTION_ZERO(y,x) do { MPFR_SET_SAME_SIGN(y,x); MPFR_SET_INF(y); \
- MPFR_SET_DIVBY0 (); MPFR_RET(0); } while (1)
-
-/* We know |coth(x)| > 1, thus if the approximation z is such that
- 1 <= z <= 1 + 2^(-p) where p is the target precision, then the
- result is either 1 or nextabove(1) = 1 + 2^(1-p). */
-#define ACTION_SPECIAL \
- if (MPFR_GET_EXP(z) == 1) /* 1 <= |z| < 2 */ \
- { \
- /* the following is exact by Sterbenz theorem */ \
- mpfr_sub_si (z, z, MPFR_SIGN (z), MPFR_RNDN); \
- if (MPFR_IS_ZERO(z) || MPFR_GET_EXP(z) <= - (mpfr_exp_t) precy) \
- { \
- mpfr_add_si (z, z, MPFR_SIGN (z), MPFR_RNDN); \
- break; \
- } \
- }
-
-/* The analysis is adapted from that for mpfr_csc:
- near x=0, coth(x) = 1/x + x/3 + ..., more precisely we have
- |coth(x) - 1/x| <= 0.32 for |x| <= 1. Like for csc, the error term has
- the same sign as 1/x, thus |coth(x)| >= |1/x|. Then:
- (i) either x is a power of two, then 1/x is exactly representable, and
- as long as 1/2*ulp(1/x) > 0.32, we can conclude;
- (ii) otherwise assume x has <= n bits, and y has <= n+1 bits, then
- |y - 1/x| >= 2^(-2n) ufp(y), where ufp means unit in first place.
- Since |coth(x) - 1/x| <= 0.32, if 2^(-2n) ufp(y) >= 0.64, then
- |y - coth(x)| >= 2^(-2n-1) ufp(y), and rounding 1/x gives the correct
- result. If x < 2^E, then y > 2^(-E), thus ufp(y) > 2^(-E-1).
- A sufficient condition is thus EXP(x) + 1 <= -2 MAX(PREC(x),PREC(Y)). */
-#define ACTION_TINY(y,x,r) \
- if (MPFR_EXP(x) + 1 <= -2 * (mpfr_exp_t) MAX(MPFR_PREC(x), MPFR_PREC(y))) \
- { \
- int signx = MPFR_SIGN(x); \
- inexact = mpfr_ui_div (y, 1, x, r); \
- if (inexact == 0) /* x is a power of two */ \
- { /* result always 1/x, except when rounding away from zero */ \
- if (rnd_mode == MPFR_RNDA) \
- rnd_mode = (signx > 0) ? MPFR_RNDU : MPFR_RNDD; \
- if (rnd_mode == MPFR_RNDU) \
- { \
- if (signx > 0) \
- mpfr_nextabove (y); /* 2^k + epsilon */ \
- inexact = 1; \
- } \
- else if (rnd_mode == MPFR_RNDD) \
- { \
- if (signx < 0) \
- mpfr_nextbelow (y); /* -2^k - epsilon */ \
- inexact = -1; \
- } \
- else /* round to zero, or nearest */ \
- inexact = -signx; \
- } \
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); \
- goto end; \
- }
-
-#include "gen_inverse.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/csc.c b/Build/source/libs/mpfr/mpfr-src/src/csc.c
deleted file mode 100644
index 6675d8bcd19..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/csc.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* mpfr_csc - cosecant function.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* the cosecant is defined by csc(x) = 1/sin(x).
- csc (NaN) = NaN.
- csc (+Inf) = csc (-Inf) = NaN.
- csc (+0) = +Inf.
- csc (-0) = -Inf.
-*/
-
-#define FUNCTION mpfr_csc
-#define INVERSE mpfr_sin
-#define ACTION_NAN(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_INF(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_ZERO(y,x) do { MPFR_SET_SAME_SIGN(y,x); MPFR_SET_INF(y); \
- MPFR_SET_DIVBY0 (); MPFR_RET(0); } while (1)
-/* near x=0, we have csc(x) = 1/x + x/6 + ..., more precisely we have
- |csc(x) - 1/x| <= 0.2 for |x| <= 1. The analysis is similar to that for
- gamma(x) near x=0 (see gamma.c), except here the error term has the same
- sign as 1/x, thus |csc(x)| >= |1/x|. Then:
- (i) either x is a power of two, then 1/x is exactly representable, and
- as long as 1/2*ulp(1/x) > 0.2, we can conclude;
- (ii) otherwise assume x has <= n bits, and y has <= n+1 bits, then
- |y - 1/x| >= 2^(-2n) ufp(y), where ufp means unit in first place.
- Since |csc(x) - 1/x| <= 0.2, if 2^(-2n) ufp(y) >= 0.4, then
- |y - csc(x)| >= 2^(-2n-1) ufp(y), and rounding 1/x gives the correct result.
- If x < 2^E, then y > 2^(-E), thus ufp(y) > 2^(-E-1).
- A sufficient condition is thus EXP(x) <= -2 MAX(PREC(x),PREC(Y)). */
-#define ACTION_TINY(y,x,r) \
- if (MPFR_EXP(x) <= -2 * (mpfr_exp_t) MAX(MPFR_PREC(x), MPFR_PREC(y))) \
- { \
- int signx = MPFR_SIGN(x); \
- inexact = mpfr_ui_div (y, 1, x, r); \
- if (inexact == 0) /* x is a power of two */ \
- { /* result always 1/x, except when rounding away from zero */ \
- if (rnd_mode == MPFR_RNDA) \
- rnd_mode = (signx > 0) ? MPFR_RNDU : MPFR_RNDD; \
- if (rnd_mode == MPFR_RNDU) \
- { \
- if (signx > 0) \
- mpfr_nextabove (y); /* 2^k + epsilon */ \
- inexact = 1; \
- } \
- else if (rnd_mode == MPFR_RNDD) \
- { \
- if (signx < 0) \
- mpfr_nextbelow (y); /* -2^k - epsilon */ \
- inexact = -1; \
- } \
- else /* round to zero, or nearest */ \
- inexact = -signx; \
- } \
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); \
- goto end; \
- }
-
-#include "gen_inverse.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/csch.c b/Build/source/libs/mpfr/mpfr-src/src/csch.c
deleted file mode 100644
index a0c71ef82db..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/csch.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* mpfr_csch - Hyperbolic cosecant function.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* the hyperbolic cosecant is defined by csch(x) = 1/sinh(x).
- csch (NaN) = NaN.
- csch (+Inf) = +0.
- csch (-Inf) = -0.
- csch (+0) = +Inf.
- csch (-0) = -Inf.
-*/
-
-#define FUNCTION mpfr_csch
-#define INVERSE mpfr_sinh
-#define ACTION_NAN(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_INF(y) do { MPFR_SET_SAME_SIGN(y,x); MPFR_SET_ZERO (y); \
- MPFR_RET(0); } while (1)
-#define ACTION_ZERO(y,x) do { MPFR_SET_SAME_SIGN(y,x); MPFR_SET_INF(y); \
- MPFR_SET_DIVBY0 (); MPFR_RET(0); } while (1)
-
-/* (This analysis is adapted from that for mpfr_csc.)
- Near x=0, we have csch(x) = 1/x - x/6 + ..., more precisely we have
- |csch(x) - 1/x| <= 0.2 for |x| <= 1. The error term has the opposite
- sign as 1/x, thus |csch(x)| <= |1/x|. Then:
- (i) either x is a power of two, then 1/x is exactly representable, and
- as long as 1/2*ulp(1/x) > 0.2, we can conclude;
- (ii) otherwise assume x has <= n bits, and y has <= n+1 bits, then
- |y - 1/x| >= 2^(-2n) ufp(y), where ufp means unit in first place.
- Since |csch(x) - 1/x| <= 0.2, if 2^(-2n) ufp(y) >= 0.4, then
- |y - csch(x)| >= 2^(-2n-1) ufp(y), and rounding 1/x gives the correct
- result. If x < 2^E, then y > 2^(-E), thus ufp(y) > 2^(-E-1).
- A sufficient condition is thus EXP(x) <= -2 MAX(PREC(x),PREC(Y)). */
-#define ACTION_TINY(y,x,r) \
- if (MPFR_EXP(x) <= -2 * (mpfr_exp_t) MAX(MPFR_PREC(x), MPFR_PREC(y))) \
- { \
- int signx = MPFR_SIGN(x); \
- inexact = mpfr_ui_div (y, 1, x, r); \
- if (inexact == 0) /* x is a power of two */ \
- { /* result always 1/x, except when rounding to zero */ \
- if (rnd_mode == MPFR_RNDA) \
- rnd_mode = (signx > 0) ? MPFR_RNDU : MPFR_RNDD; \
- if (rnd_mode == MPFR_RNDU || (rnd_mode == MPFR_RNDZ && signx < 0)) \
- { \
- if (signx < 0) \
- mpfr_nextabove (y); /* -2^k + epsilon */ \
- inexact = 1; \
- } \
- else if (rnd_mode == MPFR_RNDD || rnd_mode == MPFR_RNDZ) \
- { \
- if (signx > 0) \
- mpfr_nextbelow (y); /* 2^k - epsilon */ \
- inexact = -1; \
- } \
- else /* round to nearest */ \
- inexact = signx; \
- } \
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); \
- goto end; \
- }
-
-#include "gen_inverse.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/d_div.c b/Build/source/libs/mpfr/mpfr-src/src/d_div.c
deleted file mode 100644
index 99aa3da4f30..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/d_div.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* mpfr_d_div -- divide a machine double precision float
- by a multiple precision floating-point number
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_d_div (mpfr_ptr a, double b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t d;
- mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC (
- ("b=%.20g c[%Pu]=%*.Rg rnd=%d", b, mpfr_get_prec (c), mpfr_log_prec, c, rnd_mode),
- ("a[%Pu]=%*.Rg", mpfr_get_prec (a), mpfr_log_prec, a));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(tmp_man, d, IEEE_DBL_MANT_DIG);
- inexact = mpfr_set_d (d, b, rnd_mode);
- MPFR_ASSERTD (inexact == 0);
-
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_div (a, d, c, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (a, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/d_sub.c b/Build/source/libs/mpfr/mpfr-src/src/d_sub.c
deleted file mode 100644
index cead4eb81c4..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/d_sub.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* mpfr_d_sub -- subtract a multiple precision floating-point number
- from a machine double precision float
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_d_sub (mpfr_ptr a, double b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t d;
- mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC (
- ("b=%.20g c[%Pu]=%*.Rg rnd=%d", b, mpfr_get_prec (c), mpfr_log_prec, c, rnd_mode),
- ("a[%Pu]=%*.Rg", mpfr_get_prec (a), mpfr_log_prec, a));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(tmp_man, d, IEEE_DBL_MANT_DIG);
- inexact = mpfr_set_d (d, b, rnd_mode);
- MPFR_ASSERTD (inexact == 0);
-
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_sub (a, d, c, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (a, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/digamma.c b/Build/source/libs/mpfr/mpfr-src/src/digamma.c
deleted file mode 100644
index e9e8389b115..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/digamma.c
+++ /dev/null
@@ -1,402 +0,0 @@
-/* mpfr_digamma -- digamma function of a floating-point number
-
-Copyright 2009-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* FIXME: Check that MPFR_GET_EXP can only be called on regular values
- (in r14025, this is not the case) and that there cannot be integer
- overflows. */
-
-/* Put in s an approximation of digamma(x).
- Assumes x >= 2.
- Assumes s does not overlap with x.
- Returns an integer e such that the error is bounded by 2^e ulps
- of the result s.
-*/
-static mpfr_exp_t
-mpfr_digamma_approx (mpfr_ptr s, mpfr_srcptr x)
-{
- mpfr_prec_t p = MPFR_PREC (s);
- mpfr_t t, u, invxx;
- mpfr_exp_t e, exps, f, expu;
- unsigned long n;
-
- MPFR_ASSERTN (MPFR_IS_POS (x) && MPFR_GET_EXP (x) >= 2);
-
- mpfr_init2 (t, p);
- mpfr_init2 (u, p);
- mpfr_init2 (invxx, p);
-
- mpfr_log (s, x, MPFR_RNDN); /* error <= 1/2 ulp */
- mpfr_ui_div (t, 1, x, MPFR_RNDN); /* error <= 1/2 ulp */
- mpfr_div_2ui (t, t, 1, MPFR_RNDN); /* exact */
- mpfr_sub (s, s, t, MPFR_RNDN);
- /* error <= 1/2 + 1/2*2^(EXP(olds)-EXP(s)) + 1/2*2^(EXP(t)-EXP(s)).
- For x >= 2, log(x) >= 2*(1/(2x)), thus olds >= 2t, and olds - t >= olds/2,
- thus 0 <= EXP(olds)-EXP(s) <= 1, and EXP(t)-EXP(s) <= 0, thus
- error <= 1/2 + 1/2*2 + 1/2 <= 2 ulps. */
- e = 2; /* initial error */
- mpfr_sqr (invxx, x, MPFR_RNDZ); /* invxx = x^2 * (1 + theta)
- for |theta| <= 2^(-p) */
- mpfr_ui_div (invxx, 1, invxx, MPFR_RNDU); /* invxx = 1/x^2 * (1 + theta)^2 */
-
- /* in the following we note err=xxx when the ratio between the approximation
- and the exact result can be written (1 + theta)^xxx for |theta| <= 2^(-p),
- following Higham's method */
- mpfr_set_ui (t, 1, MPFR_RNDN); /* err = 0 */
- for (n = 1;; n++)
- {
- /* The main term is Bernoulli[2n]/(2n)/x^(2n) = B[n]/(2n+1)!(2n)/x^(2n)
- = B[n]*t[n]/(2n) where t[n]/t[n-1] = 1/(2n)/(2n+1)/x^2. */
- mpfr_mul (t, t, invxx, MPFR_RNDU); /* err = err + 3 */
- mpfr_div_ui (t, t, 2 * n, MPFR_RNDU); /* err = err + 1 */
- mpfr_div_ui (t, t, 2 * n + 1, MPFR_RNDU); /* err = err + 1 */
- /* we thus have err = 5n here */
- mpfr_div_ui (u, t, 2 * n, MPFR_RNDU); /* err = 5n+1 */
- mpfr_mul_z (u, u, mpfr_bernoulli_cache(n), MPFR_RNDU);/* err = 5n+2, and the
- absolute error is bounded
- by 10n+4 ulp(u) [Rule 11] */
- /* if the terms 'u' are decreasing by a factor two at least,
- then the error coming from those is bounded by
- sum((10n+4)/2^n, n=1..infinity) = 24 */
- exps = MPFR_GET_EXP (s);
- expu = MPFR_GET_EXP (u);
- if (expu < exps - (mpfr_exp_t) p)
- break;
- mpfr_sub (s, s, u, MPFR_RNDN); /* error <= 24 + n/2 */
- if (MPFR_GET_EXP (s) < exps)
- e <<= exps - MPFR_GET_EXP (s);
- e ++; /* error in mpfr_sub */
- f = 10 * n + 4;
- while (expu < exps)
- {
- f = (1 + f) / 2;
- expu ++;
- }
- e += f; /* total rounding error coming from 'u' term */
- }
-
- mpfr_clear (t);
- mpfr_clear (u);
- mpfr_clear (invxx);
-
- f = 0;
- while (e > 1)
- {
- f++;
- e = (e + 1) / 2;
- /* Invariant: 2^f * e does not decrease */
- }
- return f;
-}
-
-/* Use the reflection formula Digamma(1-x) = Digamma(x) + Pi * cot(Pi*x),
- i.e., Digamma(x) = Digamma(1-x) - Pi * cot(Pi*x).
- Assume x < 1/2. */
-static int
-mpfr_digamma_reflection (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t p = MPFR_PREC(y) + 10;
- mpfr_t t, u, v;
- mpfr_exp_t e1, expv, expx, q;
- int inex;
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y, inex));
-
- /* we want that 1-x is exact with precision q: if 0 < x < 1/2, then
- q = PREC(x)-EXP(x) is ok, otherwise if -1 <= x < 0, q = PREC(x)-EXP(x)
- is ok, otherwise for x < -1, PREC(x) is ok if EXP(x) <= PREC(x),
- otherwise we need EXP(x) */
- expx = MPFR_GET_EXP (x);
- if (expx < 0)
- q = MPFR_PREC(x) + 1 - expx;
- else if (expx <= MPFR_PREC(x))
- q = MPFR_PREC(x) + 1;
- else
- q = expx;
- MPFR_ASSERTN (q <= MPFR_PREC_MAX);
- mpfr_init2 (u, q);
- MPFR_DBGRES(inex = mpfr_ui_sub (u, 1, x, MPFR_RNDN));
- MPFR_ASSERTN(inex == 0);
-
- /* if x is half an integer, cot(Pi*x) = 0, thus Digamma(x) = Digamma(1-x) */
- mpfr_mul_2ui (u, u, 1, MPFR_RNDN);
- inex = mpfr_integer_p (u);
- mpfr_div_2ui (u, u, 1, MPFR_RNDN);
- if (inex)
- {
- inex = mpfr_digamma (y, u, rnd_mode);
- goto end;
- }
-
- mpfr_init2 (t, p);
- mpfr_init2 (v, p);
-
- MPFR_ZIV_INIT (loop, p);
- for (;;)
- {
- mpfr_const_pi (v, MPFR_RNDN); /* v = Pi*(1+theta) for |theta|<=2^(-p) */
- mpfr_mul (t, v, x, MPFR_RNDN); /* (1+theta)^2 */
- e1 = MPFR_GET_EXP(t) - (mpfr_exp_t) p + 1; /* bound for t: err(t) <= 2^e1 */
- mpfr_cot (t, t, MPFR_RNDN);
- /* cot(t * (1+h)) = cot(t) - theta * (1 + cot(t)^2) with |theta|<=t*h */
- if (MPFR_GET_EXP(t) > 0)
- e1 = e1 + 2 * MPFR_EXP(t) + 1;
- else
- e1 = e1 + 1;
- /* now theta * (1 + cot(t)^2) <= 2^e1 */
- e1 += (mpfr_exp_t) p - MPFR_EXP(t); /* error is now 2^e1 ulps */
- mpfr_mul (t, t, v, MPFR_RNDN);
- e1 ++;
- mpfr_digamma (v, u, MPFR_RNDN); /* error <= 1/2 ulp */
- expv = MPFR_GET_EXP (v);
- mpfr_sub (v, v, t, MPFR_RNDN);
- if (MPFR_GET_EXP (v) < MPFR_GET_EXP (t))
- e1 += MPFR_EXP(t) - MPFR_EXP(v); /* scale error for t wrt new v */
- /* now take into account the 1/2 ulp error for v */
- if (expv - MPFR_EXP(v) - 1 > e1)
- e1 = expv - MPFR_EXP(v) - 1;
- else
- e1 ++;
- e1 ++; /* rounding error for mpfr_sub */
- if (MPFR_CAN_ROUND (v, p - e1, MPFR_PREC(y), rnd_mode))
- break;
- MPFR_ZIV_NEXT (loop, p);
- mpfr_set_prec (t, p);
- mpfr_set_prec (v, p);
- }
- MPFR_ZIV_FREE (loop);
-
- inex = mpfr_set (y, v, rnd_mode);
-
- mpfr_clear (t);
- mpfr_clear (v);
- end:
- mpfr_clear (u);
-
- return inex;
-}
-
-/* we have x >= 1/2 here */
-static int
-mpfr_digamma_positive (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t p = MPFR_PREC(y) + 10, q;
- mpfr_t t, u, x_plus_j;
- int inex;
- mpfr_exp_t errt, erru, expt;
- unsigned long j = 0, min;
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y, inex));
-
- /* compute a precision q such that x+1 is exact */
- if (MPFR_PREC(x) < MPFR_GET_EXP(x))
- q = MPFR_EXP(x);
- else
- q = MPFR_PREC(x) + 1;
-
- /* for very large x, use |digamma(x) - log(x)| < 1/x < 2^(1-EXP(x)) */
- if (MPFR_PREC(y) + 10 < MPFR_EXP(x))
- {
- /* this ensures EXP(x) >= 3, thus x >= 4, thus log(x) > 1 */
- mpfr_init2 (t, MPFR_PREC(y) + 10);
- mpfr_log (t, x, MPFR_RNDZ);
- if (MPFR_CAN_ROUND (t, MPFR_PREC(y) + 10, MPFR_PREC(y), rnd_mode))
- {
- inex = mpfr_set (y, t, rnd_mode);
- mpfr_clear (t);
- return inex;
- }
- mpfr_clear (t);
- }
-
- mpfr_init2 (x_plus_j, q);
-
- mpfr_init2 (t, p);
- mpfr_init2 (u, p);
- MPFR_ZIV_INIT (loop, p);
- for(;;)
- {
- /* Lower bound for x+j in mpfr_digamma_approx call: since the smallest
- term of the divergent series for Digamma(x) is about exp(-2*Pi*x), and
- we want it to be less than 2^(-p), this gives x > p*log(2)/(2*Pi)
- i.e., x >= 0.1103 p.
- To be safe, we ensure x >= 0.25 * p.
- */
- min = (p + 3) / 4;
- if (min < 2)
- min = 2;
-
- mpfr_set (x_plus_j, x, MPFR_RNDN);
- mpfr_set_ui (u, 0, MPFR_RNDN);
- j = 0;
- while (mpfr_cmp_ui (x_plus_j, min) < 0)
- {
- j ++;
- mpfr_ui_div (t, 1, x_plus_j, MPFR_RNDN); /* err <= 1/2 ulp */
- mpfr_add (u, u, t, MPFR_RNDN);
- inex = mpfr_add_ui (x_plus_j, x_plus_j, 1, MPFR_RNDZ);
- if (inex != 0) /* we lost one bit */
- {
- q ++;
- mpfr_prec_round (x_plus_j, q, MPFR_RNDZ);
- mpfr_nextabove (x_plus_j);
- }
- /* since all terms are positive, the error is bounded by j ulps */
- }
- for (erru = 0; j > 1; erru++, j = (j + 1) / 2);
- errt = mpfr_digamma_approx (t, x_plus_j);
- expt = MPFR_GET_EXP (t);
- mpfr_sub (t, t, u, MPFR_RNDN);
- if (MPFR_GET_EXP (t) < expt)
- errt += expt - MPFR_EXP(t);
- /* Warning: if u is zero (which happens when x_plus_j >= min at the
- beginning of the while loop above), EXP(u) is not defined.
- In this case we have no error from u. */
- if (MPFR_NOTZERO(u) && MPFR_GET_EXP (t) < MPFR_GET_EXP (u))
- erru += MPFR_EXP(u) - MPFR_EXP(t);
- if (errt > erru)
- errt = errt + 1;
- else if (errt == erru)
- errt = errt + 2;
- else
- errt = erru + 1;
- if (MPFR_CAN_ROUND (t, p - errt, MPFR_PREC(y), rnd_mode))
- break;
- MPFR_ZIV_NEXT (loop, p);
- mpfr_set_prec (t, p);
- mpfr_set_prec (u, p);
- }
- MPFR_ZIV_FREE (loop);
- inex = mpfr_set (y, t, rnd_mode);
- mpfr_clear (t);
- mpfr_clear (u);
- mpfr_clear (x_plus_j);
- return inex;
-}
-
-int
-mpfr_digamma (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y, inex));
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)))
- {
- if (MPFR_IS_NAN(x))
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF(x))
- {
- if (MPFR_IS_POS(x)) /* Digamma(+Inf) = +Inf */
- {
- MPFR_SET_SAME_SIGN(y, x);
- MPFR_SET_INF(y);
- MPFR_RET(0);
- }
- else /* Digamma(-Inf) = NaN */
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
- }
- else /* Zero case */
- {
- /* the following works also in case of overlap */
- MPFR_SET_INF(y);
- MPFR_SET_OPPOSITE_SIGN(y, x);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- }
-
- /* Digamma is undefined for negative integers */
- if (MPFR_IS_NEG(x) && mpfr_integer_p (x))
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
-
- /* now x is a normal number */
-
- MPFR_SAVE_EXPO_MARK (expo);
- /* for x very small, we have Digamma(x) = -1/x - gamma + O(x), more precisely
- -1 < Digamma(x) + 1/x < 0 for -0.2 < x < 0.2, thus:
- (i) either x is a power of two, then 1/x is exactly representable, and
- as long as 1/2*ulp(1/x) > 1, we can conclude;
- (ii) otherwise assume x has <= n bits, and y has <= n+1 bits, then
- |y + 1/x| >= 2^(-2n) ufp(y), where ufp means unit in first place.
- Since |Digamma(x) + 1/x| <= 1, if 2^(-2n) ufp(y) >= 2, then
- |y - Digamma(x)| >= 2^(-2n-1)ufp(y), and rounding -1/x gives the correct result.
- If x < 2^E, then y > 2^(-E), thus ufp(y) > 2^(-E-1).
- A sufficient condition is thus EXP(x) <= -2 MAX(PREC(x),PREC(Y)). */
- if (MPFR_GET_EXP (x) < -2)
- {
- if (MPFR_EXP(x) <= -2 * (mpfr_exp_t) MAX(MPFR_PREC(x), MPFR_PREC(y)))
- {
- int signx = MPFR_SIGN(x);
- inex = mpfr_si_div (y, -1, x, rnd_mode);
- if (inex == 0) /* x is a power of two */
- { /* result always -1/x, except when rounding down */
- if (rnd_mode == MPFR_RNDA)
- rnd_mode = (signx > 0) ? MPFR_RNDD : MPFR_RNDU;
- if (rnd_mode == MPFR_RNDZ)
- rnd_mode = (signx > 0) ? MPFR_RNDU : MPFR_RNDD;
- if (rnd_mode == MPFR_RNDU)
- inex = 1;
- else if (rnd_mode == MPFR_RNDD)
- {
- mpfr_nextbelow (y);
- inex = -1;
- }
- else /* nearest */
- inex = 1;
- }
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- goto end;
- }
- }
-
- if (MPFR_IS_NEG(x))
- inex = mpfr_digamma_reflection (y, x, rnd_mode);
- /* if x < 1/2 we use the reflection formula */
- else if (MPFR_EXP(x) < 0)
- inex = mpfr_digamma_reflection (y, x, rnd_mode);
- else
- inex = mpfr_digamma_positive (y, x, rnd_mode);
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/dim.c b/Build/source/libs/mpfr/mpfr-src/src/dim.c
deleted file mode 100644
index 29c09b38ced..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/dim.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* mpfr_dim -- positive difference
-
-Copyright 2001-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* dim (x,y) is defined as:
-
- x-y if x > y
- +0 if x <= y
-*/
-
-int
-mpfr_dim (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_IS_NAN(x) || MPFR_IS_NAN(y))
- {
- MPFR_SET_NAN(z);
- MPFR_RET_NAN;
- }
-
- if (mpfr_cmp (x,y) > 0)
- return mpfr_sub (z, x, y, rnd_mode);
- else
- {
- MPFR_SET_ZERO(z);
- MPFR_SET_POS(z);
- MPFR_RET(0);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/div.c b/Build/source/libs/mpfr/mpfr-src/src/div.c
deleted file mode 100644
index a04f2539d91..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/div.c
+++ /dev/null
@@ -1,1446 +0,0 @@
-/* mpfr_div -- divide two floating-point numbers
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* References:
- [1] Short Division of Long Integers, David Harvey and Paul Zimmermann,
- Proceedings of the 20th Symposium on Computer Arithmetic (ARITH-20),
- July 25-27, 2011, pages 7-14.
- [2] Improved Division by Invariant Integers, Niels Möller and Torbjörn Granlund,
- IEEE Transactions on Computers, volume 60, number 2, pages 165-175, 2011.
-*/
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#if !defined(MPFR_GENERIC_ABI)
-
-#if GMP_NUMB_BITS == 64
-
-#include "invert_limb.h"
-
-/* Given u = u1*B+u0 < v = v1*B+v0 with v normalized (high bit of v1 set),
- put in q = Q1*B+Q0 an approximation of floor(u*B^2/v), with:
- B = 2^GMP_NUMB_BITS and q <= floor(u*B^2/v) <= q + 21.
- Note: this function requires __gmpfr_invert_limb_approx (from invert_limb.h)
- which is only provided so far for 64-bit limb.
- Note: __gmpfr_invert_limb_approx can be replaced by __gmpfr_invert_limb,
- in that case the bound 21 reduces to 16. */
-static void
-mpfr_div2_approx (mpfr_limb_ptr Q1, mpfr_limb_ptr Q0,
- mp_limb_t u1, mp_limb_t u0,
- mp_limb_t v1, mp_limb_t v0)
-{
- mp_limb_t inv, q1, q0, r1, r0, cy, xx, yy;
-
- /* first compute an approximation of q1, using a lower approximation of
- B^2/(v1+1) - B */
- if (MPFR_UNLIKELY(v1 == MPFR_LIMB_MAX))
- inv = MPFR_LIMB_ZERO;
- else
- __gmpfr_invert_limb_approx (inv, v1 + 1);
- /* now inv <= B^2/(v1+1) - B */
- umul_ppmm (q1, q0, u1, inv);
- q1 += u1;
- /* now q1 <= u1*B/(v1+1) < (u1*B+u0)*B/(v1*B+v0) */
-
- /* compute q1*(v1*B+v0) into r1:r0:yy and subtract from u1:u0:0 */
- umul_ppmm (r1, r0, q1, v1);
- umul_ppmm (xx, yy, q1, v0);
-
- ADD_LIMB (r0, xx, cy);
- r1 += cy;
-
- /* we ignore yy below, but first increment r0, to ensure we get a lower
- approximation of the remainder */
- r0 += yy != 0;
- r1 += r0 == 0 && yy != 0;
- r0 = u0 - r0;
- r1 = u1 - r1 - (r0 > u0);
-
- /* r1:r0 should be nonnegative */
- MPFR_ASSERTD((r1 & MPFR_LIMB_HIGHBIT) == 0);
-
- /* the second quotient limb is approximated by (r1*B^2+r0*B) / v1,
- and since (B+inv)/B approximates B/v1, this is in turn approximated
- by (r1*B+r0)*(B+inv)/B = r1*B*r1*inv+r0+(r0*inv/B) */
-
- q0 = r0;
- q1 += r1;
- /* add floor(r0*inv/B) to q0 */
- umul_ppmm (xx, yy, r0, inv);
- ADD_LIMB (q0, xx, cy);
- q1 += cy;
- MPFR_ASSERTD (r1 <= 4);
- /* TODO: use value coverage on r1 to check that the 5 cases are tested. */
- while (r1) /* the number of loops is at most 4 */
- {
- /* add inv to q0 */
- ADD_LIMB (q0, inv, cy);
- q1 += cy;
- r1 --;
- }
-
- *Q1 = q1;
- *Q0 = q0;
-}
-
-#endif /* GMP_NUMB_BITS == 64 */
-
-/* Special code for PREC(q) = PREC(u) = PREC(v) = p < GMP_NUMB_BITS */
-static int
-mpfr_div_1 (mpfr_ptr q, mpfr_srcptr u, mpfr_srcptr v, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t p = MPFR_GET_PREC(q);
- mpfr_limb_ptr qp = MPFR_MANT(q);
- mpfr_exp_t qx = MPFR_GET_EXP(u) - MPFR_GET_EXP(v);
- mpfr_prec_t sh = GMP_NUMB_BITS - p;
- mp_limb_t u0 = MPFR_MANT(u)[0];
- mp_limb_t v0 = MPFR_MANT(v)[0];
- mp_limb_t q0, rb, sb, mask = MPFR_LIMB_MASK(sh);
- int extra;
-
- if ((extra = (u0 >= v0)))
- u0 -= v0;
-
-#if GMP_NUMB_BITS == 64 /* __gmpfr_invert_limb_approx only exists for 64-bit */
- /* First try with an approximate quotient.
- FIXME: for p<=62 we have sh-1<2 and will never be able to round correctly.
- Even for p=61 we have sh-1=2 and we can round correctly only when the two
- last bist of q0 are 01, which happens with probability 25% only. */
- {
- mp_limb_t inv;
- __gmpfr_invert_limb_approx (inv, v0);
- umul_ppmm (rb, sb, u0, inv);
- }
- rb += u0;
- q0 = rb >> extra;
- /* rb does not exceed the true quotient floor(u0*2^GMP_NUMB_BITS/v0),
- with error at most 2, which means the rational quotient q satisfies
- rb <= q < rb + 3. We can round correctly except when the last sh-1 bits
- of q0 are 000..000 or 111..111 or 111..110. */
- if (MPFR_LIKELY(((q0 + 2) & (mask >> 1)) > 2))
- {
- rb = q0 & (MPFR_LIMB_ONE << (sh - 1));
- sb = 1; /* result cannot be exact in this case */
- }
- else /* the true quotient is rb, rb+1 or rb+2 */
- {
- mp_limb_t h, l;
- q0 = rb;
- umul_ppmm (h, l, q0, v0);
- MPFR_ASSERTD(h < u0 || (h == u0 && l == MPFR_LIMB_ZERO));
- /* subtract {h,l} from {u0,0} */
- sub_ddmmss (h, l, u0, 0, h, l);
- /* the remainder {h, l} should be < v0 */
- /* This while loop is executed at most two times, but does not seem
- slower than two consecutive identical if-statements. */
- while (h || l >= v0)
- {
- q0 ++;
- h -= (l < v0);
- l -= v0;
- }
- MPFR_ASSERTD(h == 0 && l < v0);
- sb = l | (q0 & extra);
- q0 >>= extra;
- rb = q0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= q0 & (mask >> 1);
- }
-#else
- udiv_qrnnd (q0, sb, u0, 0, v0);
- sb |= q0 & extra;
- q0 >>= extra;
- rb = q0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= q0 & (mask >> 1);
-#endif
-
- qp[0] = (MPFR_LIMB_HIGHBIT | q0) & ~mask;
- qx += extra;
- MPFR_SIGN(q) = MPFR_MULT_SIGN (MPFR_SIGN (u), MPFR_SIGN (v));
-
- /* rounding */
- if (MPFR_UNLIKELY(qx > __gmpfr_emax))
- return mpfr_overflow (q, rnd_mode, MPFR_SIGN(q));
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when q > 0.111...111*2^(emin-1), or when rounding to nearest and
- q >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(qx < __gmpfr_emin))
- {
- /* Note: the case 0.111...111*2^(emin-1) < q < 2^(emin-1) is not possible
- here since (up to exponent) this would imply 1 - 2^(-p) < u/v < 1,
- thus v - 2^(-p)*v < u < v, and since we can assume 1/2 <= v < 1, it
- would imply v - 2^(-p) = v - ulp(v) < u < v, which has no solution. */
-
- /* For RNDN, mpfr_underflow always rounds away, thus for |q|<=2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either qx < emin - 1
- (b) or qx = emin - 1 and qp[0] = 1000....000 and rb = sb = 0.
- Note: in case (b), it suffices to check whether sb = 0, since rb = 1
- and sb = 0 is not possible (the exact quotient would have p+1 bits,
- thus u would need at least p+1 bits). */
- if (rnd_mode == MPFR_RNDN &&
- (qx < __gmpfr_emin - 1 || (qp[0] == MPFR_LIMB_HIGHBIT && sb == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (q, rnd_mode, MPFR_SIGN(q));
- }
-
- MPFR_EXP (q) = qx; /* Don't use MPFR_SET_EXP since qx might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(qx >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- /* It is not possible to have rb <> 0 and sb = 0 here, since it would
- mean a n-bit by n-bit division gives an exact (n+1)-bit number.
- And since the case rb = sb = 0 was already dealt with, we cannot
- have sb = 0. Thus we cannot be in the middle of two numbers. */
- MPFR_ASSERTD(sb != 0);
- if (rb == 0)
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(q)))
- {
- truncate:
- MPFR_ASSERTD(qx >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN(q));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- qp[0] += MPFR_LIMB_ONE << sh;
- MPFR_ASSERTD(qp[0] != 0);
- /* It is not possible to have an overflow in the addition above.
- Proof: if p is the precision of the inputs, it would mean we have two
- integers n and d with 2^(p-1) <= n, d < 2^p, such that the binary
- expansion of n/d starts with p '1', and has at least one '1' later.
- We distinguish two cases:
- (1) if n/d < 1, it would mean 1-2^(-p) < n/d < 1
- (2) if n/d >= 1, it would mean 2-2^(1-p) < n/d < 1
- In case (1), multiplying by d we get 1-d/2^p < n < d,
- which has no integer solution since d/2^p < 1.
- In case (2), multiplying by d we get 2d-2d/2^p < n < 2d:
- (2a) if d=2^(p-1), we get 2^p-1 < n < 2^p which has no solution;
- if d>=2^(p-1)+1, then 2d-2d/2^p >= 2^p+2-2 = 2^p, thus there is
- solution n < 2^p either. */
- MPFR_RET(MPFR_SIGN(q));
- }
-}
-
-/* Special code for PREC(q) = GMP_NUMB_BITS,
- with PREC(u), PREC(v) <= GMP_NUMB_BITS. */
-static int
-mpfr_div_1n (mpfr_ptr q, mpfr_srcptr u, mpfr_srcptr v, mpfr_rnd_t rnd_mode)
-{
- mpfr_limb_ptr qp = MPFR_MANT(q);
- mpfr_exp_t qx = MPFR_GET_EXP(u) - MPFR_GET_EXP(v);
- mp_limb_t u0 = MPFR_MANT(u)[0];
- mp_limb_t v0 = MPFR_MANT(v)[0];
- mp_limb_t q0, rb, sb, l;
- int extra;
-
- MPFR_ASSERTD(MPFR_PREC(q) == GMP_NUMB_BITS);
- MPFR_ASSERTD(MPFR_PREC(u) <= GMP_NUMB_BITS);
- MPFR_ASSERTD(MPFR_PREC(v) <= GMP_NUMB_BITS);
-
- if ((extra = (u0 >= v0)))
- u0 -= v0;
-
-#if GMP_NUMB_BITS == 64 /* __gmpfr_invert_limb_approx only exists for 64-bit */
- {
- mp_limb_t inv, h;
-
- /* First compute an approximate quotient. */
- __gmpfr_invert_limb_approx (inv, v0);
- umul_ppmm (rb, sb, u0, inv);
- q0 = u0 + rb;
- /* rb does not exceed the true quotient floor(u0*2^GMP_NUMB_BITS/v0),
- with error at most 2, which means the rational quotient q satisfies
- rb <= q < rb + 3, thus the true quotient is rb, rb+1 or rb+2 */
- umul_ppmm (h, l, q0, v0);
- MPFR_ASSERTD(h < u0 || (h == u0 && l == MPFR_LIMB_ZERO));
- /* subtract {h,l} from {u0,0} */
- sub_ddmmss (h, l, u0, 0, h, l);
- /* the remainder {h, l} should be < v0 */
- /* This while loop is executed at most two times, but does not seem
- slower than two consecutive identical if-statements. */
- while (h || l >= v0)
- {
- q0 ++;
- h -= (l < v0);
- l -= v0;
- }
- MPFR_ASSERTD(h == 0 && l < v0);
- }
-#else
- udiv_qrnnd (q0, l, u0, 0, v0);
-#endif
-
- /* now (u0 - extra*v0) * 2^GMP_NUMB_BITS = q0*v0 + l with 0 <= l < v0 */
-
- /* If extra=0, the quotient is q0, the round bit is 1 if l >= v0/2,
- and sb are the remaining bits from l.
- If extra=1, the quotient is MPFR_LIMB_HIGHBIT + (q0 >> 1), the round bit
- is the least significant bit of q0, and sb is l. */
-
- if (extra == 0)
- {
- qp[0] = q0;
- /* If "l + l < l", then there is a carry in l + l, thus 2*l > v0.
- Otherwise if there is no carry, we check whether 2*l >= v0. */
- rb = (l + l < l) || (l + l >= v0);
- sb = (rb) ? l + l - v0 : l;
- }
- else
- {
- qp[0] = MPFR_LIMB_HIGHBIT | (q0 >> 1);
- rb = q0 & MPFR_LIMB_ONE;
- sb = l;
- qx ++;
- }
-
- MPFR_SIGN(q) = MPFR_MULT_SIGN (MPFR_SIGN (u), MPFR_SIGN (v));
-
- /* rounding */
- if (MPFR_UNLIKELY(qx > __gmpfr_emax))
- return mpfr_overflow (q, rnd_mode, MPFR_SIGN(q));
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when q > 0.111...111*2^(emin-1), or when rounding to nearest and
- q >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(qx < __gmpfr_emin))
- {
- /* Note: the case 0.111...111*2^(emin-1) < q < 2^(emin-1) is not possible
- here since (up to exponent) this would imply 1 - 2^(-p) < u/v < 1,
- thus v - 2^(-p)*v < u < v, and since we can assume 1/2 <= v < 1, it
- would imply v - 2^(-p) = v - ulp(v) < u < v, which has no solution. */
-
- /* For RNDN, mpfr_underflow always rounds away, thus for |q|<=2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either qx < emin - 1
- (b) or qx = emin - 1 and qp[0] = 1000....000 and rb = sb = 0.
- Note: in case (b), it suffices to check whether sb = 0, since rb = 1
- and sb = 0 is not possible (the exact quotient would have p+1 bits,
- thus u would need at least p+1 bits). */
- if (rnd_mode == MPFR_RNDN &&
- (qx < __gmpfr_emin - 1 || (qp[0] == MPFR_LIMB_HIGHBIT && sb == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (q, rnd_mode, MPFR_SIGN(q));
- }
-
- MPFR_EXP (q) = qx; /* Don't use MPFR_SET_EXP since qx might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(qx >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- /* It is not possible to have rb <> 0 and sb = 0 here, since it would
- mean a n-bit by n-bit division gives an exact (n+1)-bit number.
- And since the case rb = sb = 0 was already dealt with, we cannot
- have sb = 0. Thus we cannot be in the middle of two numbers. */
- MPFR_ASSERTD(sb != 0);
- if (rb == 0)
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(q)))
- {
- truncate:
- MPFR_ASSERTD(qx >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN(q));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- qp[0] += MPFR_LIMB_ONE;
- /* there can be no overflow in the addition above,
- see the analysis of mpfr_div_1 */
- MPFR_ASSERTD(qp[0] != 0);
- MPFR_RET(MPFR_SIGN(q));
- }
-}
-
-/* Special code for GMP_NUMB_BITS < PREC(q) < 2*GMP_NUMB_BITS and
- PREC(u) = PREC(v) = PREC(q) */
-static int
-mpfr_div_2 (mpfr_ptr q, mpfr_srcptr u, mpfr_srcptr v, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t p = MPFR_GET_PREC(q);
- mpfr_limb_ptr qp = MPFR_MANT(q);
- mpfr_exp_t qx = MPFR_GET_EXP(u) - MPFR_GET_EXP(v);
- mpfr_prec_t sh = 2*GMP_NUMB_BITS - p;
- mp_limb_t h, rb, sb, mask = MPFR_LIMB_MASK(sh);
- mp_limb_t v1 = MPFR_MANT(v)[1], v0 = MPFR_MANT(v)[0];
- mp_limb_t q1, q0, r3, r2, r1, r0, l, t;
- int extra;
-
- r3 = MPFR_MANT(u)[1];
- r2 = MPFR_MANT(u)[0];
- extra = r3 > v1 || (r3 == v1 && r2 >= v0);
- if (extra)
- sub_ddmmss (r3, r2, r3, r2, v1, v0);
-
- MPFR_ASSERTD(r3 < v1 || (r3 == v1 && r2 < v0));
-
-#if GMP_NUMB_BITS == 64
- mpfr_div2_approx (&q1, &q0, r3, r2, v1, v0);
- /* we know q1*B+q0 is smaller or equal to the exact quotient, with
- difference at most 21 */
- if (MPFR_LIKELY(((q0 + 21) & (mask >> 1)) > 21))
- sb = 1; /* result is not exact when we can round with an approximation */
- else
- {
- /* we know q1:q0 is a good-enough approximation, use it! */
- mp_limb_t s0, s1, s2, h, l;
-
- /* Since we know the difference should be at most 21*(v1:v0) after the
- subtraction below, thus at most 21*2^128, it suffices to compute the
- lower 3 limbs of (q1:q0) * (v1:v0). */
- umul_ppmm (s1, s0, q0, v0);
- umul_ppmm (s2, l, q0, v1);
- s1 += l;
- s2 += (s1 < l);
- umul_ppmm (h, l, q1, v0);
- s1 += l;
- s2 += h + (s1 < l);
- s2 += q1 * v1;
- /* Subtract s2:s1:s0 from r2:0:0, with result in s2:s1:s0. */
- s2 = r2 - s2;
- /* now negate s1:s0 */
- s0 = -s0;
- s1 = -s1 - (s0 != 0);
- /* there is a borrow in s2 when s0 and s1 are not both zero */
- s2 -= (s1 != 0 || s0 != 0);
- while (s2 > 0 || (s1 > v1) || (s1 == v1 && s0 >= v0))
- {
- /* add 1 to q1:q0 */
- q0 ++;
- q1 += (q0 == 0);
- /* subtract v1:v0 to s2:s1:s0 */
- s2 -= (s1 < v1) || (s1 == v1 && s0 < v0);
- sub_ddmmss (s1, s0, s1, s0, v1, v0);
- }
- sb = s1 | s0;
- }
- goto round_div2;
-#endif
-
- /* now r3:r2 < v1:v0 */
- if (MPFR_UNLIKELY(r3 == v1)) /* can occur in some rare cases */
- {
- /* This can only occur in case extra=0, since otherwise we would have
- u_old >= u_new + v >= B^2/2 + B^2/2 = B^2. In this case we have
- r3 = u1 and r2 = u0, thus the remainder u*B-q1*v is
- v1*B^2+u0*B-(B-1)*(v1*B+v0) = (u0-v0+v1)*B+v0.
- Warning: in this case q1 = B-1 can be too large, for example with
- u = B^2/2 and v = B^2/2 + B - 1, then u*B-(B-1)*u = -1/2*B^2+2*B-1. */
- MPFR_ASSERTD(extra == 0);
- q1 = MPFR_LIMB_MAX;
- r1 = v0;
- t = v0 - r2; /* t > 0 since r3:r2 < v1:v0 */
- r2 = v1 - t;
- if (t > v1) /* q1 = B-1 is too large, we need q1 = B-2, which is ok
- since u*B - q1*v >= v1*B^2-(B-2)*(v1*B+B-1) =
- -B^2 + 2*B*v1 + 3*B - 2 >= 0 since v1>=B/2 and B>=2 */
- {
- q1 --;
- /* add v to r2:r1 */
- r1 += v0;
- r2 += v1 + (r1 < v0);
- }
- }
- else
- {
- /* divide r3:r2 by v1: requires r3 < v1 */
- udiv_qrnnd (q1, r2, r3, r2, v1);
- /* u-extra*v = q1 * v1 + r2 */
-
- /* now subtract q1*v0 to r2:0 */
- umul_ppmm (h, l, q1, v0);
- t = r2; /* save old value of r2 */
- r1 = -l;
- r2 -= h + (l != 0);
- /* Note: h + (l != 0) < 2^GMP_NUMB_BITS. */
-
- /* we have r2:r1 = oldr2:0 - q1*v0 mod 2^(2*GMP_NUMB_BITS)
- thus (u-extra*v)*B = q1 * v + r2:r1 mod 2^(2*GMP_NUMB_BITS) */
-
- /* this while loop should be run at most twice */
- while (r2 > t) /* borrow when subtracting h + (l != 0), q1 too large */
- {
- q1 --;
- /* add v1:v0 to r2:r1 */
- t = r2;
- r1 += v0;
- r2 += v1 + (r1 < v0);
- /* note: since 2^(GMP_NUMB_BITS-1) <= v1 + (r1 < v0)
- <= 2^GMP_NUMB_BITS, it suffices to check if r2 <= t to see
- if there was a carry or not. */
- }
- }
-
- /* now (u-extra*v)*B = q1 * v + r2:r1 with 0 <= r2:r1 < v */
-
- MPFR_ASSERTD(r2 < v1 || (r2 == v1 && r1 < v0));
-
- if (MPFR_UNLIKELY(r2 == v1))
- {
- q0 = MPFR_LIMB_MAX;
- /* r2:r1:0 - q0*(v1:v0) = v1:r1:0 - (B-1)*(v1:v0)
- = r1:0 - v0:0 + v1:v0 */
- r0 = v0;
- t = v0 - r1; /* t > 0 since r2:r1 < v1:v0 */
- r1 = v1 - t;
- if (t > v1)
- {
- q0 --;
- /* add v to r1:r0 */
- r0 += v0;
- r1 += v1 + (r0 < v0);
- }
- }
- else
- {
- /* divide r2:r1 by v1: requires r2 < v1 */
- udiv_qrnnd (q0, r1, r2, r1, v1);
-
- /* r2:r1 = q0*v1 + r1 */
-
- /* subtract q0*v0 to r1:0 */
- umul_ppmm (h, l, q0, v0);
- t = r1;
- r0 = -l;
- r1 -= h + (l != 0);
-
- /* this while loop should be run at most twice */
- while (r1 > t) /* borrow when subtracting h + (l != 0),
- q0 was too large */
- {
- q0 --;
- /* add v1:v0 to r1:r0 */
- t = r1;
- r0 += v0;
- r1 += v1 + (r0 < v0);
- /* note: since 2^(GMP_NUMB_BITS-1) <= v1 + (r0 < v0)
- <= 2^GMP_NUMB_BITS, it suffices to check if r1 <= t to see
- if there was a carry or not. */
- }
- }
-
- MPFR_ASSERTD(r1 < v1 || (r1 == v1 && r0 < v0));
-
- /* now (u-extra*v)*B^2 = (q1:q0) * v + r1:r0 */
-
- sb = r1 | r0;
-
- /* here, q1:q0 should be an approximation of the quotient (or the exact
- quotient), and sb the sticky bit */
-
-#if GMP_NUMB_BITS == 64
- round_div2:
-#endif
- if (extra)
- {
- qx ++;
- sb |= q0 & 1;
- q0 = (q1 << (GMP_NUMB_BITS - 1)) | (q0 >> 1);
- q1 = MPFR_LIMB_HIGHBIT | (q1 >> 1);
- }
- rb = q0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (q0 & mask) ^ rb;
- qp[1] = q1;
- qp[0] = q0 & ~mask;
-
- MPFR_SIGN(q) = MPFR_MULT_SIGN (MPFR_SIGN (u), MPFR_SIGN (v));
-
- /* rounding */
- if (qx > __gmpfr_emax)
- return mpfr_overflow (q, rnd_mode, MPFR_SIGN(q));
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when q > 0.111...111*2^(emin-1), or when rounding to nearest and
- q >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (qx < __gmpfr_emin)
- {
- /* Note: the case 0.111...111*2^(emin-1) < q < 2^(emin-1) is not possible
- here since (up to exponent) this would imply 1 - 2^(-p) < u/v < 1,
- thus v - 2^(-p)*v < u < v, and since we can assume 1/2 <= v < 1, it
- would imply v - 2^(-p) = v - ulp(v) < u < v, which has no solution. */
-
- /* For RNDN, mpfr_underflow always rounds away, thus for |q|<=2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either qx < emin - 1
- (b) or qx = emin - 1 and qp[1] = 100....000, qp[0] = 0 and rb = sb = 0.
- Note: in case (b), it suffices to check whether sb = 0, since rb = 1
- and sb = 0 is not possible (the exact quotient would have p+1 bits, thus
- u would need at least p+1 bits). */
- if (rnd_mode == MPFR_RNDN &&
- (qx < __gmpfr_emin - 1 ||
- (qp[1] == MPFR_LIMB_HIGHBIT && qp[0] == MPFR_LIMB_ZERO && sb == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (q, rnd_mode, MPFR_SIGN(q));
- }
-
- MPFR_EXP (q) = qx; /* Don't use MPFR_SET_EXP since qx might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(qx >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- /* See the comment in mpfr_div_1. */
- MPFR_ASSERTD(sb != 0);
- if (rb == 0)
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(q)))
- {
- truncate:
- MPFR_ASSERTD(qx >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN(q));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- qp[0] += MPFR_LIMB_ONE << sh;
- qp[1] += qp[0] == 0;
- /* there can be no overflow in the addition above,
- see the analysis of mpfr_div_1 */
- MPFR_ASSERTD(qp[1] != 0);
- MPFR_RET(MPFR_SIGN(q));
- }
-}
-
-#endif /* !defined(MPFR_GENERIC_ABI) */
-
-/* check if {ap, an} is zero */
-static int
-mpfr_mpn_cmpzero (mpfr_limb_ptr ap, mp_size_t an)
-{
- MPFR_ASSERTD (an >= 0);
- while (an > 0)
- if (MPFR_LIKELY(ap[--an] != MPFR_LIMB_ZERO))
- return 1;
- return 0;
-}
-
-/* compare {ap, an} and {bp, bn} >> extra,
- aligned by the more significant limbs.
- Takes into account bp[0] for extra=1.
-*/
-static int
-mpfr_mpn_cmp_aux (mpfr_limb_ptr ap, mp_size_t an,
- mpfr_limb_ptr bp, mp_size_t bn, int extra)
-{
- int cmp = 0;
- mp_size_t k;
- mp_limb_t bb;
-
- MPFR_ASSERTD (an >= 0);
- MPFR_ASSERTD (bn >= 0);
- MPFR_ASSERTD (extra == 0 || extra == 1);
-
- if (an >= bn)
- {
- k = an - bn;
- while (cmp == 0 && bn > 0)
- {
- bn --;
- bb = (extra) ? ((bp[bn+1] << (GMP_NUMB_BITS - 1)) | (bp[bn] >> 1))
- : bp[bn];
- cmp = (ap[k + bn] > bb) ? 1 : ((ap[k + bn] < bb) ? -1 : 0);
- }
- bb = (extra) ? bp[0] << (GMP_NUMB_BITS - 1) : MPFR_LIMB_ZERO;
- while (cmp == 0 && k > 0)
- {
- k--;
- cmp = (ap[k] > bb) ? 1 : ((ap[k] < bb) ? -1 : 0);
- bb = MPFR_LIMB_ZERO; /* ensure we consider only once bp[0] & 1 */
- }
- if (cmp == 0 && bb != MPFR_LIMB_ZERO)
- cmp = -1;
- }
- else /* an < bn */
- {
- k = bn - an;
- while (cmp == 0 && an > 0)
- {
- an --;
- bb = (extra) ? ((bp[k+an+1] << (GMP_NUMB_BITS - 1)) | (bp[k+an] >> 1))
- : bp[k+an];
- if (ap[an] > bb)
- cmp = 1;
- else if (ap[an] < bb)
- cmp = -1;
- }
- while (cmp == 0 && k > 0)
- {
- k--;
- bb = (extra) ? ((bp[k+1] << (GMP_NUMB_BITS - 1)) | (bp[k] >> 1))
- : bp[k];
- cmp = (bb != MPFR_LIMB_ZERO) ? -1 : 0;
- }
- if (cmp == 0 && extra && (bp[0] & MPFR_LIMB_ONE))
- cmp = -1;
- }
- return cmp;
-}
-
-/* {ap, n} <- {ap, n} - {bp, n} >> extra - cy, with cy = 0 or 1.
- Return borrow out.
-*/
-static mp_limb_t
-mpfr_mpn_sub_aux (mpfr_limb_ptr ap, mpfr_limb_ptr bp, mp_size_t n,
- mp_limb_t cy, int extra)
-{
- mp_limb_t bb, rp;
-
- MPFR_ASSERTD (cy <= 1);
- MPFR_ASSERTD (n >= 0);
-
- while (n--)
- {
- bb = (extra) ? (MPFR_LIMB_LSHIFT(bp[1],GMP_NUMB_BITS-1) | (bp[0] >> 1)) : bp[0];
- rp = ap[0] - bb - cy;
- cy = (ap[0] < bb) || (cy && rp == MPFR_LIMB_MAX) ?
- MPFR_LIMB_ONE : MPFR_LIMB_ZERO;
- ap[0] = rp;
- ap ++;
- bp ++;
- }
- MPFR_ASSERTD (cy <= 1);
- return cy;
-}
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_div (mpfr_ptr q, mpfr_srcptr u, mpfr_srcptr v, mpfr_rnd_t rnd_mode)
-{
- mp_size_t q0size, usize, vsize;
- mp_size_t qsize; /* number of limbs wanted for the computed quotient */
- mp_size_t qqsize;
- mp_size_t k;
- mpfr_limb_ptr q0p, qp;
- mpfr_limb_ptr up, vp;
- mpfr_limb_ptr ap;
- mpfr_limb_ptr bp;
- mp_limb_t qh;
- mp_limb_t sticky_u, sticky_v;
- mp_limb_t low_u;
- mp_limb_t sticky;
- mp_limb_t sticky3;
- mp_limb_t round_bit;
- mpfr_exp_t qexp;
- int sign_quotient;
- int extra_bit;
- int sh, sh2;
- int inex;
- int like_rndz;
- MPFR_TMP_DECL(marker);
-
- MPFR_LOG_FUNC (
- ("u[%Pu]=%.*Rg v[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec(u), mpfr_log_prec, u,
- mpfr_get_prec (v),mpfr_log_prec, v, rnd_mode),
- ("q[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(q), mpfr_log_prec, q, inex));
-
- /**************************************************************************
- * *
- * This part of the code deals with special cases *
- * *
- **************************************************************************/
-
- if (MPFR_UNLIKELY(MPFR_ARE_SINGULAR(u,v)))
- {
- if (MPFR_IS_NAN(u) || MPFR_IS_NAN(v))
- {
- MPFR_SET_NAN(q);
- MPFR_RET_NAN;
- }
- sign_quotient = MPFR_MULT_SIGN( MPFR_SIGN(u) , MPFR_SIGN(v) );
- MPFR_SET_SIGN(q, sign_quotient);
- if (MPFR_IS_INF(u))
- {
- if (MPFR_IS_INF(v))
- {
- MPFR_SET_NAN(q);
- MPFR_RET_NAN;
- }
- else
- {
- MPFR_SET_INF(q);
- MPFR_RET(0);
- }
- }
- else if (MPFR_IS_INF(v))
- {
- MPFR_SET_ZERO (q);
- MPFR_RET (0);
- }
- else if (MPFR_IS_ZERO (v))
- {
- if (MPFR_IS_ZERO (u))
- {
- MPFR_SET_NAN(q);
- MPFR_RET_NAN;
- }
- else
- {
- MPFR_ASSERTD (! MPFR_IS_INF (u));
- MPFR_SET_INF(q);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (u));
- MPFR_SET_ZERO (q);
- MPFR_RET (0);
- }
- }
-
- /* When MPFR_GENERIC_ABI is defined, we don't use special code. */
-#if !defined(MPFR_GENERIC_ABI)
- if (MPFR_GET_PREC(u) == MPFR_GET_PREC(q) &&
- MPFR_GET_PREC(v) == MPFR_GET_PREC(q))
- {
- if (MPFR_GET_PREC(q) < GMP_NUMB_BITS)
- return mpfr_div_1 (q, u, v, rnd_mode);
-
- if (GMP_NUMB_BITS < MPFR_GET_PREC(q) &&
- MPFR_GET_PREC(q) < 2 * GMP_NUMB_BITS)
- return mpfr_div_2 (q, u, v, rnd_mode);
-
- if (MPFR_GET_PREC(q) == GMP_NUMB_BITS)
- return mpfr_div_1n (q, u, v, rnd_mode);
- }
-#endif /* !defined(MPFR_GENERIC_ABI) */
-
- usize = MPFR_LIMB_SIZE(u);
- vsize = MPFR_LIMB_SIZE(v);
- q0size = MPFR_LIMB_SIZE(q); /* number of limbs of destination */
- q0p = MPFR_MANT(q);
- up = MPFR_MANT(u);
- vp = MPFR_MANT(v);
- sticky_u = MPFR_LIMB_ZERO;
- sticky_v = MPFR_LIMB_ZERO;
- round_bit = MPFR_LIMB_ZERO;
-
- /**************************************************************************
- * *
- * End of the part concerning special values. *
- * *
- **************************************************************************/
-
- /* When the divisor has one limb and MPFR_LONG_WITHIN_LIMB is defined,
- we can use mpfr_div_ui, which should be faster, assuming there is no
- intermediate overflow or underflow.
- The divisor interpreted as an integer satisfies
- 2^(GMP_NUMB_BITS-1) <= vm < 2^GMP_NUMB_BITS, thus the quotient
- satisfies 2^(EXP(u)-1-GMP_NUMB_BITS) < u/vm < 2^(EXP(u)-GMP_NUMB_BITS+1)
- and its exponent is either EXP(u)-GMP_NUMB_BITS or one more. */
-#ifdef MPFR_LONG_WITHIN_LIMB
- if (vsize <= 1 && __gmpfr_emin <= MPFR_EXP(u) - GMP_NUMB_BITS
- && MPFR_EXP(u) - GMP_NUMB_BITS + 1 <= __gmpfr_emax
- && vp[0] <= ULONG_MAX)
- {
- mpfr_exp_t exp_v = MPFR_EXP(v); /* save it in case q=v */
- if (MPFR_IS_POS (v))
- inex = mpfr_div_ui (q, u, vp[0], rnd_mode);
- else
- {
- inex = -mpfr_div_ui (q, u, vp[0], MPFR_INVERT_RND(rnd_mode));
- MPFR_CHANGE_SIGN(q);
- }
- /* q did not under/overflow */
- MPFR_EXP(q) -= exp_v;
- /* The following test is needed, otherwise the next addition
- on the exponent may overflow, e.g. when dividing the
- largest finite MPFR number by the smallest positive one. */
- if (MPFR_UNLIKELY (MPFR_EXP(q) > __gmpfr_emax - GMP_NUMB_BITS))
- return mpfr_overflow (q, rnd_mode, MPFR_SIGN(q));
- MPFR_EXP(q) += GMP_NUMB_BITS;
- return mpfr_check_range (q, inex, rnd_mode);
- }
-#endif
-
- MPFR_TMP_MARK(marker);
-
- /* set sign */
- sign_quotient = MPFR_MULT_SIGN( MPFR_SIGN(u) , MPFR_SIGN(v) );
- MPFR_SET_SIGN(q, sign_quotient);
-
- /* determine if an extra bit comes from the division, i.e. if the
- significand of u (as a fraction in [1/2, 1[) is larger than that
- of v */
- if (MPFR_LIKELY(up[usize - 1] != vp[vsize - 1]))
- extra_bit = (up[usize - 1] > vp[vsize - 1]) ? 1 : 0;
- else /* most significant limbs are equal, must look at further limbs */
- {
- mp_size_t l;
-
- k = usize - 1;
- l = vsize - 1;
- while (k != 0 && l != 0 && up[--k] == vp[--l]);
- /* now k=0 or l=0 or up[k] != vp[l] */
- if (up[k] != vp[l])
- extra_bit = (up[k] > vp[l]);
- /* now up[k] = vp[l], thus either k=0 or l=0 */
- else if (l == 0) /* no more divisor limb */
- extra_bit = 1;
- else /* k=0: no more dividend limb */
- extra_bit = mpfr_mpn_cmpzero (vp, l) == 0;
- }
-
- /* set exponent */
- qexp = MPFR_GET_EXP (u) - MPFR_GET_EXP (v) + extra_bit;
-
- /* sh is the number of zero bits in the low limb of the quotient */
- MPFR_UNSIGNED_MINUS_MODULO(sh, MPFR_PREC(q));
-
- like_rndz = rnd_mode == MPFR_RNDZ ||
- rnd_mode == (sign_quotient < 0 ? MPFR_RNDU : MPFR_RNDD);
-
- /**************************************************************************
- * *
- * We first try Mulders' short division (for large operands) *
- * *
- **************************************************************************/
-
- if (MPFR_UNLIKELY(q0size >= MPFR_DIV_THRESHOLD &&
- vsize >= MPFR_DIV_THRESHOLD))
- {
- mp_size_t n = q0size + 1; /* we will perform a short (2n)/n division */
- mpfr_limb_ptr ap, bp, qp;
- mpfr_prec_t p;
-
- /* since Mulders' short division clobbers the dividend, we have to
- copy it */
- ap = MPFR_TMP_LIMBS_ALLOC (n + n);
- if (usize >= n + n) /* truncate the dividend */
- MPN_COPY(ap, up + usize - (n + n), n + n);
- else /* zero-pad the dividend */
- {
- MPN_COPY(ap + (n + n) - usize, up, usize);
- MPN_ZERO(ap, (n + n) - usize);
- }
-
- if (vsize >= n) /* truncate the divisor */
- bp = vp + vsize - n;
- else /* zero-pad the divisor */
- {
- bp = MPFR_TMP_LIMBS_ALLOC (n);
- MPN_COPY(bp + n - vsize, vp, vsize);
- MPN_ZERO(bp, n - vsize);
- }
-
- qp = MPFR_TMP_LIMBS_ALLOC (n);
- /* since n = q0size + 1, we have n >= 2 here */
- qh = mpfr_divhigh_n (qp, ap, bp, n);
- MPFR_ASSERTD (qh == 0 || qh == 1);
- /* in all cases, the error is at most (2n+2) ulps on qh*B^n+{qp,n},
- cf algorithms.tex */
-
- p = n * GMP_NUMB_BITS - MPFR_INT_CEIL_LOG2 (2 * n + 2);
- /* If rnd=RNDN, we need to be able to round with a directed rounding
- and one more bit. */
- if (qh == 1)
- {
- mpn_rshift (qp, qp, n, 1);
- qp[n - 1] |= MPFR_LIMB_HIGHBIT;
- }
- if (MPFR_LIKELY (mpfr_round_p (qp, n, p,
- MPFR_PREC(q) + (rnd_mode == MPFR_RNDN))))
- {
- /* we can round correctly whatever the rounding mode */
- MPN_COPY (q0p, qp + 1, q0size);
- q0p[0] &= ~MPFR_LIMB_MASK(sh); /* put to zero low sh bits */
-
- if (rnd_mode == MPFR_RNDN) /* round to nearest */
- {
- /* we know we can round, thus we are never in the even rule case:
- if the round bit is 0, we truncate
- if the round bit is 1, we add 1 */
- if (sh > 0)
- round_bit = (qp[1] >> (sh - 1)) & 1;
- else
- round_bit = qp[0] >> (GMP_NUMB_BITS - 1);
- /* TODO: add value coverage tests in tdiv to check that
- we reach this part with different values of qh and
- round_bit (4 cases). */
- if (round_bit == 0)
- {
- inex = -1;
- goto truncate;
- }
- else /* round_bit = 1 */
- goto add_one_ulp;
- }
- else if (! like_rndz) /* round away */
- goto add_one_ulp;
- else /* round to zero: nothing to do */
- {
- inex = -1;
- goto truncate;
- }
- }
- }
-
- /**************************************************************************
- * *
- * Mulders' short division failed: we revert to integer division *
- * *
- **************************************************************************/
-
- if (MPFR_UNLIKELY(rnd_mode == MPFR_RNDN && sh == 0))
- { /* we compute the quotient with one more limb, in order to get
- the round bit in the quotient, and the remainder only contains
- sticky bits */
- qsize = q0size + 1;
- /* need to allocate memory for the quotient */
- qp = MPFR_TMP_LIMBS_ALLOC (qsize);
- }
- else
- {
- qsize = q0size;
- qp = q0p; /* directly put the quotient in the destination */
- }
- qqsize = qsize + qsize;
-
- /* prepare the dividend */
- ap = MPFR_TMP_LIMBS_ALLOC (qqsize);
- if (MPFR_LIKELY(qqsize > usize)) /* use the full dividend */
- {
- k = qqsize - usize; /* k > 0 */
- MPN_ZERO(ap, k);
- if (extra_bit)
- ap[k - 1] = mpn_rshift (ap + k, up, usize, 1);
- else
- MPN_COPY(ap + k, up, usize);
- }
- else /* truncate the dividend */
- {
- k = usize - qqsize;
- if (extra_bit)
- sticky_u = mpn_rshift (ap, up + k, qqsize, 1);
- else
- MPN_COPY(ap, up + k, qqsize);
- sticky_u = sticky_u || mpfr_mpn_cmpzero (up, k);
- }
- low_u = sticky_u;
-
- /* now sticky_u is non-zero iff the truncated part of u is non-zero */
-
- /* prepare the divisor */
- if (MPFR_LIKELY(vsize >= qsize))
- {
- k = vsize - qsize;
- if (qp != vp)
- bp = vp + k; /* avoid copying the divisor */
- else /* need to copy, since mpn_divrem doesn't allow overlap
- between quotient and divisor, necessarily k = 0
- since quotient and divisor are the same mpfr variable */
- {
- bp = MPFR_TMP_LIMBS_ALLOC (qsize);
- MPN_COPY(bp, vp, vsize);
- }
- sticky_v = sticky_v || mpfr_mpn_cmpzero (vp, k);
- k = 0;
- }
- else /* vsize < qsize: small divisor case */
- {
- bp = vp;
- k = qsize - vsize;
- }
-
- /**************************************************************************
- * *
- * Here we perform the real division of {ap+k,qqsize-k} by {bp,qsize-k} *
- * *
- **************************************************************************/
-
- /* In the general case (usize > 2*qsize and vsize > qsize), we have:
- ______________________________________
- | | | u1 has 2*qsize limbs
- | u1 | u0 | u0 has usize-2*qsize limbs
- |__________________________|___________|
-
- ____________________
- | | | v1 has qsize limbs
- | v1 | v0 | v0 has vsize-qsize limbs
- |___________|________|
-
- We divide u1 by v1, with quotient in qh + {qp, qsize} and
- remainder (denoted r below) stored in place of the low qsize limbs of u1.
- */
-
- /* if Mulders' short division failed, we revert to division with remainder */
- qh = mpn_divrem (qp, 0, ap + k, qqsize - k, bp, qsize - k);
- /* let u1 be the upper part of u, and v1 the upper part of v (with sticky_u
- and sticky_v representing the lower parts), then the quotient of u1 by v1
- is now in {qp, qsize}, with possible carry in qh, and the remainder in
- {ap + k, qsize - k} */
- /* warning: qh may be 1 if u1 == v1, but u < v */
-
- k = qsize;
- sticky_u = sticky_u || mpfr_mpn_cmpzero (ap, k);
-
- sticky = sticky_u | sticky_v;
-
- /* now sticky is non-zero iff one of the following holds:
- (a) the truncated part of u is non-zero
- (b) the truncated part of v is non-zero
- (c) the remainder from division is non-zero */
-
- if (MPFR_LIKELY(qsize == q0size))
- {
- sticky3 = qp[0] & MPFR_LIMB_MASK(sh); /* does nothing when sh=0 */
- sh2 = sh;
- }
- else /* qsize = q0size + 1: only happens when rnd_mode=MPFR_RNDN and sh=0 */
- {
- MPN_COPY (q0p, qp + 1, q0size);
- sticky3 = qp[0];
- sh2 = GMP_NUMB_BITS;
- }
- qp[0] ^= sticky3;
- /* sticky3 contains the truncated bits from the quotient,
- including the round bit, and 1 <= sh2 <= GMP_NUMB_BITS
- is the number of bits in sticky3 */
- inex = (sticky != MPFR_LIMB_ZERO) || (sticky3 != MPFR_LIMB_ZERO);
-
- /* to round, we distinguish two cases:
- (a) vsize <= qsize: we used the full divisor
- (b) vsize > qsize: the divisor was truncated
- */
-
- if (MPFR_LIKELY(vsize <= qsize)) /* use the full divisor */
- {
- if (MPFR_LIKELY(rnd_mode == MPFR_RNDN))
- {
- round_bit = sticky3 & (MPFR_LIMB_ONE << (sh2 - 1));
- sticky = (sticky3 ^ round_bit) | sticky_u;
- }
- else if (like_rndz || inex == 0)
- sticky = (inex == 0) ? MPFR_LIMB_ZERO : MPFR_LIMB_ONE;
- else /* round away from zero */
- sticky = MPFR_LIMB_ONE;
- goto case_1;
- }
- else /* vsize > qsize: need to truncate the divisor */
- {
- if (inex == 0)
- goto truncate;
- else
- {
- /* We know the estimated quotient is an upper bound of the exact
- quotient (with rounding toward zero), with a difference of at
- most 2 in qp[0].
- Thus we can round except when sticky3 is 000...000 or 000...001
- for directed rounding, and 100...000 or 100...001 for rounding
- to nearest. (For rounding to nearest, we cannot determine the
- inexact flag for 000...000 or 000...001.)
- */
- mp_limb_t sticky3orig = sticky3;
- if (rnd_mode == MPFR_RNDN)
- {
- round_bit = sticky3 & (MPFR_LIMB_ONE << (sh2 - 1));
- sticky3 = sticky3 ^ round_bit;
- }
- if (sticky3 != MPFR_LIMB_ZERO && sticky3 != MPFR_LIMB_ONE)
- {
- sticky = sticky3;
- goto case_1;
- }
- else /* hard case: we have to compare q1 * v0 and r + u0,
- where q1 * v0 has qsize + (vsize-qsize) = vsize limbs, and
- r + u0 has qsize + (usize-2*qsize) = usize-qsize limbs */
- {
- mp_size_t l;
- mpfr_limb_ptr sp;
- int cmp_s_r;
- mp_limb_t qh2;
-
- sp = MPFR_TMP_LIMBS_ALLOC (vsize);
- k = vsize - qsize;
- /* sp <- {qp, qsize} * {vp, vsize-qsize} */
- qp[0] ^= sticky3orig; /* restore original quotient */
- if (qsize >= k)
- mpn_mul (sp, qp, qsize, vp, k);
- else
- mpn_mul (sp, vp, k, qp, qsize);
- if (qh)
- qh2 = mpn_add_n (sp + qsize, sp + qsize, vp, k);
- else
- qh2 = MPFR_LIMB_ZERO;
- qp[0] ^= sticky3orig; /* restore truncated quotient */
-
- /* compare qh2 + {sp, k + qsize} to {ap, qsize} + u0 */
- cmp_s_r = (qh2 != 0) ? 1 : mpn_cmp (sp + k, ap, qsize);
- if (cmp_s_r == 0) /* compare {sp, k} and u0 */
- {
- cmp_s_r = (usize >= qqsize) ?
- mpfr_mpn_cmp_aux (sp, k, up, usize - qqsize, extra_bit) :
- mpfr_mpn_cmpzero (sp, k);
- }
- /* now cmp_s_r > 0 if {sp, vsize} > {ap, qsize} + u0
- cmp_s_r = 0 if {sp, vsize} = {ap, qsize} + u0
- cmp_s_r < 0 if {sp, vsize} < {ap, qsize} + u0 */
- if (cmp_s_r <= 0) /* quotient is in [q1, q1+1) */
- {
- sticky = (cmp_s_r == 0) ? sticky3 : MPFR_LIMB_ONE;
- goto case_1;
- }
- else /* cmp_s_r > 0, quotient is < q1: to determine if it is
- in [q1-2,q1-1] or in [q1-1,q1], we need to subtract
- the low part u0 of the dividend from q*v0 */
- {
- mp_limb_t cy = MPFR_LIMB_ZERO;
-
- /* subtract u0 >> extra_bit if non-zero */
- if (qh2 != 0) /* whatever the value of {up, m + k}, it
- will be smaller than qh2 + {sp, k} */
- cmp_s_r = 1;
- else
- {
- if (low_u != MPFR_LIMB_ZERO)
- {
- mp_size_t m;
- l = usize - qqsize; /* number of limbs in u0 */
- m = (l > k) ? l - k : 0;
- cy = (extra_bit) ?
- (up[m] & MPFR_LIMB_ONE) : MPFR_LIMB_ZERO;
- if (l >= k) /* u0 has at least as many limbs than s:
- first look if {up, m} is not zero,
- and compare {sp, k} and {up + m, k} */
- {
- cy = cy || mpfr_mpn_cmpzero (up, m);
- low_u = cy;
- cy = mpfr_mpn_sub_aux (sp, up + m, k,
- cy, extra_bit);
- }
- else /* l < k: s has more limbs than u0 */
- {
- low_u = MPFR_LIMB_ZERO;
- if (cy != MPFR_LIMB_ZERO)
- cy = mpn_sub_1 (sp + k - l - 1, sp + k - l - 1,
- 1, MPFR_LIMB_HIGHBIT);
- cy = mpfr_mpn_sub_aux (sp + k - l, up, l,
- cy, extra_bit);
- }
- }
- MPFR_ASSERTD (cy <= 1);
- cy = mpn_sub_1 (sp + k, sp + k, qsize, cy);
- /* subtract r */
- cy += mpn_sub_n (sp + k, sp + k, ap, qsize);
- MPFR_ASSERTD (cy <= 1);
- /* now compare {sp, ssize} to v */
- cmp_s_r = mpn_cmp (sp, vp, vsize);
- if (cmp_s_r == 0 && low_u != MPFR_LIMB_ZERO)
- cmp_s_r = 1; /* since in fact we subtracted
- less than 1 */
- }
- if (cmp_s_r <= 0) /* q1-1 <= u/v < q1 */
- {
- if (sticky3 == MPFR_LIMB_ONE)
- { /* q1-1 is either representable (directed rounding),
- or the middle of two numbers (nearest) */
- sticky = (cmp_s_r) ? MPFR_LIMB_ONE : MPFR_LIMB_ZERO;
- goto case_1;
- }
- /* now necessarily sticky3=0 */
- else if (round_bit == MPFR_LIMB_ZERO)
- { /* round_bit=0, sticky3=0: q1-1 is exact only
- when sh=0 */
- inex = (cmp_s_r || sh) ? -1 : 0;
- if (rnd_mode == MPFR_RNDN ||
- (! like_rndz && inex != 0))
- {
- inex = 1;
- goto truncate_check_qh;
- }
- else /* round down */
- goto sub_one_ulp;
- }
- else /* sticky3=0, round_bit=1 ==> rounding to nearest */
- {
- inex = cmp_s_r;
- goto truncate;
- }
- }
- else /* q1-2 < u/v < q1-1 */
- {
- /* if rnd=MPFR_RNDN, the result is q1 when
- q1-2 >= q1-2^(sh-1), i.e. sh >= 2,
- otherwise (sh=1) it is q1-2 */
- if (rnd_mode == MPFR_RNDN) /* sh > 0 */
- {
- /* Case sh=1: sb=0 always, and q1-rb is exactly
- representable, like q1-rb-2.
- rb action
- 0 subtract two ulps, inex=-1
- 1 truncate, inex=1
-
- Case sh>1: one ulp is 2^(sh-1) >= 2
- rb sb action
- 0 0 truncate, inex=1
- 0 1 truncate, inex=1
- 1 x truncate, inex=-1
- */
- if (sh == 1)
- {
- if (round_bit == MPFR_LIMB_ZERO)
- {
- inex = -1;
- sh = 0;
- goto sub_two_ulp;
- }
- else
- {
- inex = 1;
- goto truncate_check_qh;
- }
- }
- else /* sh > 1 */
- {
- inex = (round_bit == MPFR_LIMB_ZERO) ? 1 : -1;
- goto truncate_check_qh;
- }
- }
- else if (like_rndz)
- {
- /* the result is down(q1-2), i.e. subtract one
- ulp if sh > 0, and two ulps if sh=0 */
- inex = -1;
- if (sh > 0)
- goto sub_one_ulp;
- else
- goto sub_two_ulp;
- }
- /* if round away from zero, the result is up(q1-1),
- which is q1 unless sh = 0, where it is q1-1 */
- else
- {
- inex = 1;
- if (sh > 0)
- goto truncate_check_qh;
- else /* sh = 0 */
- goto sub_one_ulp;
- }
- }
- }
- }
- }
- }
-
- case_1: /* quotient is in [q1, q1+1),
- round_bit is the round_bit (0 for directed rounding),
- sticky the sticky bit */
- if (like_rndz || (round_bit == MPFR_LIMB_ZERO && sticky == MPFR_LIMB_ZERO))
- {
- inex = round_bit == MPFR_LIMB_ZERO && sticky == MPFR_LIMB_ZERO ? 0 : -1;
- goto truncate;
- }
- else if (rnd_mode == MPFR_RNDN) /* sticky <> 0 or round <> 0 */
- {
- if (round_bit == MPFR_LIMB_ZERO) /* necessarily sticky <> 0 */
- {
- inex = -1;
- goto truncate;
- }
- /* round_bit = 1 */
- else if (sticky != MPFR_LIMB_ZERO)
- goto add_one_ulp; /* inex=1 */
- else /* round_bit=1, sticky=0 */
- goto even_rule;
- }
- else /* round away from zero, sticky <> 0 */
- goto add_one_ulp; /* with inex=1 */
-
- sub_two_ulp:
- /* we cannot subtract MPFR_LIMB_MPFR_LIMB_ONE << (sh+1) since this is
- undefined for sh = GMP_NUMB_BITS */
- qh -= mpn_sub_1 (q0p, q0p, q0size, MPFR_LIMB_ONE << sh);
- /* go through */
-
- sub_one_ulp:
- qh -= mpn_sub_1 (q0p, q0p, q0size, MPFR_LIMB_ONE << sh);
- /* go through truncate_check_qh */
-
- truncate_check_qh:
- if (qh)
- {
- if (MPFR_LIKELY (qexp < MPFR_EXP_MAX))
- qexp ++;
- /* else qexp is now incorrect, but one will still get an overflow */
- q0p[q0size - 1] = MPFR_LIMB_HIGHBIT;
- }
- goto truncate;
-
- even_rule: /* has to set inex */
- inex = (q0p[0] & (MPFR_LIMB_ONE << sh)) ? 1 : -1;
- if (inex < 0)
- goto truncate;
- /* else go through add_one_ulp */
-
- add_one_ulp:
- inex = 1; /* always here */
- if (mpn_add_1 (q0p, q0p, q0size, MPFR_LIMB_ONE << sh))
- {
- if (MPFR_LIKELY (qexp < MPFR_EXP_MAX))
- qexp ++;
- /* else qexp is now incorrect, but one will still get an overflow */
- q0p[q0size - 1] = MPFR_LIMB_HIGHBIT;
- }
-
- truncate: /* inex already set */
-
- MPFR_TMP_FREE(marker);
-
- /* check for underflow/overflow */
- if (MPFR_UNLIKELY(qexp > __gmpfr_emax))
- return mpfr_overflow (q, rnd_mode, sign_quotient);
- else if (MPFR_UNLIKELY(qexp < __gmpfr_emin))
- {
- if (rnd_mode == MPFR_RNDN && ((qexp < __gmpfr_emin - 1) ||
- (inex >= 0 && mpfr_powerof2_raw (q))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (q, rnd_mode, sign_quotient);
- }
- MPFR_SET_EXP(q, qexp);
-
- inex *= sign_quotient;
- MPFR_RET (inex);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/div_2exp.c b/Build/source/libs/mpfr/mpfr-src/src/div_2exp.c
deleted file mode 100644
index eb13204158d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/div_2exp.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* mpfr_div_2exp -- divide a floating-point number by a power of two
-
-Copyright 1999, 2001, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Obsolete function, use mpfr_div_2ui or mpfr_div_2si instead. */
-
-#undef mpfr_div_2exp
-
-int
-mpfr_div_2exp (mpfr_ptr y, mpfr_srcptr x, unsigned long int n, mpfr_rnd_t rnd_mode)
-{
- return mpfr_div_2ui (y, x, n, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/div_2si.c b/Build/source/libs/mpfr/mpfr-src/src/div_2si.c
deleted file mode 100644
index 779a2fa893b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/div_2si.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* mpfr_div_2si -- divide a floating-point number by a power of two
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_div_2si (mpfr_ptr y, mpfr_srcptr x, long int n, mpfr_rnd_t rnd_mode)
-{
- int inexact;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg n=%ld rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, n, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return mpfr_set (y, x, rnd_mode);
- else
- {
- mpfr_exp_t exp = MPFR_GET_EXP (x);
- MPFR_SETRAW (inexact, y, x, exp, rnd_mode);
- if (MPFR_UNLIKELY( n > 0 && (__gmpfr_emin > MPFR_EMAX_MAX - n ||
- exp < __gmpfr_emin + n)) )
- {
- if (rnd_mode == MPFR_RNDN &&
- (__gmpfr_emin > MPFR_EMAX_MAX - (n - 1) ||
- exp < __gmpfr_emin + (n - 1) ||
- ((MPFR_IS_NEG (y) ? inexact <= 0 : inexact >= 0) &&
- mpfr_powerof2_raw (y))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (y, rnd_mode, MPFR_SIGN(y));
- }
- else if (MPFR_UNLIKELY(n <= 0 && (__gmpfr_emax < MPFR_EMIN_MIN - n ||
- exp > __gmpfr_emax + n)) )
- return mpfr_overflow (y, rnd_mode, MPFR_SIGN(y));
-
- MPFR_SET_EXP (y, exp - n);
- }
-
- MPFR_RET (inexact);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/div_2ui.c b/Build/source/libs/mpfr/mpfr-src/src/div_2ui.c
deleted file mode 100644
index 349d8367af3..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/div_2ui.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* mpfr_div_2ui -- divide a floating-point number by a power of two
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_div_2ui (mpfr_ptr y, mpfr_srcptr x, unsigned long n, mpfr_rnd_t rnd_mode)
-{
- int inexact;
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg n=%lu rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, n,
- rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY (n == 0 || MPFR_IS_SINGULAR (x)))
- return mpfr_set (y, x, rnd_mode);
- else
- {
- mpfr_exp_t exp = MPFR_GET_EXP (x);
- mpfr_uexp_t diffexp;
-
- MPFR_SETRAW (inexact, y, x, exp, rnd_mode);
- /* Warning! exp may have increased by 1 due to rounding. Thus the
- difference below may overflow in a mpfr_exp_t; but mpfr_uexp_t
- is OK to hold the value, with the difference done in unsigned
- integer arithmetic in this type. */
- diffexp = (mpfr_uexp_t) exp - (mpfr_uexp_t) (__gmpfr_emin - 1);
- if (MPFR_UNLIKELY (n >= diffexp)) /* exp - n <= emin - 1 */
- {
- if (rnd_mode == MPFR_RNDN &&
- (n > diffexp ||
- ((MPFR_IS_NEG (y) ? inexact <= 0 : inexact >= 0) &&
- mpfr_powerof2_raw (y))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (y, rnd_mode, MPFR_SIGN (y));
- }
- /* Now, n < diffexp, i.e. n <= exp - emin, which a difference of
- * two valid exponents + 0 or 1, thus fits in a mpfr_exp_t (from
- * the constraints on valid exponents). Moreover, there cannot be
- * an overflow (if exp had been increased by 1 due to rounding)
- * since the case n = 0 has been filtered out.
- */
- MPFR_ASSERTD (n <= MPFR_EXP_MAX);
- MPFR_ASSERTD (n >= 1);
- MPFR_SET_EXP (y, exp - (mpfr_exp_t) n);
- }
-
- MPFR_RET (inexact);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/div_d.c b/Build/source/libs/mpfr/mpfr-src/src/div_d.c
deleted file mode 100644
index bcd537ac759..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/div_d.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* mpfr_div_d -- divide a multiple precision floating-point number
- by a machine double precision float
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_div_d (mpfr_ptr a, mpfr_srcptr b, double c, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t d;
- mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC (
- ("b[%Pu]=%.*Rg c%.20g rnd=%d", mpfr_get_prec (b), mpfr_log_prec, b, c,
- rnd_mode),
- ("a[%Pu]=%.*Rg", mpfr_get_prec (a), mpfr_log_prec, a));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(tmp_man, d, IEEE_DBL_MANT_DIG);
- inexact = mpfr_set_d (d, c, rnd_mode);
- MPFR_ASSERTD (inexact == 0);
-
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_div (a, b, d, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (a, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/div_ui.c b/Build/source/libs/mpfr/mpfr-src/src/div_ui.c
deleted file mode 100644
index 67001eec4b2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/div_ui.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/* mpfr_div_ui -- divide a floating-point number by a machine integer
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#ifdef MPFR_COV_CHECK
-int __gmpfr_cov_div_ui_sb[10][2] = { 0 };
-#endif
-
-/* returns 0 if result exact, non-zero otherwise */
-#undef mpfr_div_ui
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_div_ui (mpfr_ptr y, mpfr_srcptr x, unsigned long int u,
- mpfr_rnd_t rnd_mode)
-{
- int inexact;
-
-#ifdef MPFR_LONG_WITHIN_LIMB
-
- int sh;
- mp_size_t i, xn, yn, dif;
- mp_limb_t *xp, *yp, *tmp, c, d;
- mpfr_exp_t exp;
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- MPFR_TMP_DECL(marker);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%lu rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- if (u == 0) /* 0/0 is NaN */
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else
- {
- MPFR_SET_ZERO(y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET(0);
- }
- }
- }
- else if (MPFR_UNLIKELY (u <= 1))
- {
- if (u < 1)
- {
- /* x/0 is Inf since x != 0 */
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0);
- }
- else /* y = x/1 = x */
- return mpfr_set (y, x, rnd_mode);
- }
- else if (MPFR_UNLIKELY (IS_POW2 (u)))
- return mpfr_div_2si (y, x, MPFR_INT_CEIL_LOG2 (u), rnd_mode);
-
- MPFR_SET_SAME_SIGN (y, x);
-
- MPFR_TMP_MARK (marker);
-
- xn = MPFR_LIMB_SIZE (x);
- yn = MPFR_LIMB_SIZE (y);
-
- xp = MPFR_MANT (x);
- yp = MPFR_MANT (y);
- exp = MPFR_GET_EXP (x);
-
- dif = yn + 1 - xn;
-
- /* we need to store yn + 1 = xn + dif limbs of the quotient */
- tmp = MPFR_TMP_LIMBS_ALLOC (yn + 1);
-
- /* Notation: {p, n} denotes the integer formed by the n limbs
- from p[0] to p[n-1]. Let B = 2^GMP_NUMB_BITS.
- One has: 0 <= {p, n} < B^n. */
-
- if (dif >= 0)
- {
- c = mpn_divrem_1 (tmp, dif, xp, xn, u); /* used all the dividend */
- /* {xp, xn} = ({tmp, xn+dif} * u + c) * B^(-dif)
- = ({tmp, yn+1} * u + c) * B^(-dif) */
- }
- else /* dif < 0, i.e. xn > yn+1; ignore the (-dif) low limbs from x */
- {
- c = mpn_divrem_1 (tmp, 0, xp - dif, yn + 1, u);
- /* {xp-dif, yn+1} = {tmp, yn+1} * u + c
- thus
- {xp, xn} = {xp, -dif} + {xp-dif, yn+1} * B^(-dif)
- = {xp, -dif} + ({tmp, yn+1} * u + c) * B^(-dif) */
- }
-
- /* Let r = {xp, -dif} / B^(-dif) if dif < 0, r = 0 otherwise; 0 <= r < 1.
- Then {xp, xn} = ({tmp, yn+1} * u + c + r) * B^(-dif).
- x / u = ({xp, xn} / u) * B^(-xn) * 2^exp
- = ({tmp, yn+1} + (c + r) / u) * B^(-(yn+1)) * 2^exp
- where 0 <= (c + r) / u < 1. */
-
- for (sb = 0, i = 0; sb == 0 && i < -dif; i++)
- if (xp[i])
- sb = 1;
- /* sb != 0 iff r != 0 */
-
- /*
- If the highest limb of the result is 0 (xp[xn-1] < u), remove it.
- Otherwise, compute the left shift to be performed to normalize.
- In the latter case, we discard some low bits computed. They
- contain information useful for the rounding, hence the updating
- of middle and inexact.
- */
-
- MPFR_UNSIGNED_MINUS_MODULO (sh, MPFR_PREC (y));
- /* sh: number of the trailing bits of y */
-
- if (tmp[yn] == 0)
- {
- MPN_COPY(yp, tmp, yn);
- exp -= GMP_NUMB_BITS;
- if (sh == 0) /* round bit is 1 iff (c + r) / u >= 1/2 */
- {
- /* In this case tmp[yn]=0 and sh=0, the round bit is not in
- {tmp,yn+1}. It is 1 iff 2*(c+r) - u >= 0. This means that in
- some cases, we should look at the most significant bit of r. */
- if (c >= u - c) /* i.e. 2c >= u: round bit is always 1 */
- {
- rb = 1;
- /* The sticky bit is 1 unless 2c-u = 0 and r = 0. */
- sb |= 2 * c - u;
- MPFR_COV_SET (div_ui_sb[0][!!sb]);
- }
- else /* 2*c < u */
- {
- /* The round bit is 1 iff r >= 1/2 and 2*(c+1/2) = u. */
- rb = (c == u/2) && (dif < 0) && (xp[-dif-1] & MPFR_LIMB_HIGHBIT);
- /* If rb is set, we need to recompute sb, since it might have
- taken into account the msb of xp[-dif-1]. */
- if (rb)
- {
- sb = xp[-dif-1] << 1; /* discard the most significant bit */
- for (i = 0; sb == 0 && i < -dif-1; i++)
- if (xp[i])
- sb = 1;
- /* The dif < -1 case with sb = 0, i.e. [2][0], will
- ensure that the body of the loop is covered. */
- MPFR_COV_SET (div_ui_sb[1 + (dif < -1)][!!sb]);
- }
- else
- {
- sb |= c;
- MPFR_COV_SET (div_ui_sb[3][!!sb]);
- }
- }
- }
- else
- {
- /* round bit is in tmp[0] */
- rb = tmp[0] & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (tmp[0] & MPFR_LIMB_MASK(sh - 1)) | c;
- MPFR_COV_SET (div_ui_sb[4+!!rb][!!sb]);
- }
- }
- else /* tmp[yn] != 0 */
- {
- int shlz;
- mp_limb_t w;
-
- MPFR_ASSERTD (tmp[yn] != 0);
- count_leading_zeros (shlz, tmp[yn]);
-
- MPFR_ASSERTD (u >= 2); /* see special cases at the beginning */
- MPFR_ASSERTD (shlz > 0); /* since u >= 2 */
-
- /* shift left to normalize */
- w = tmp[0] << shlz;
- mpn_lshift (yp, tmp + 1, yn, shlz);
- yp[0] |= tmp[0] >> (GMP_NUMB_BITS - shlz);
- /* now {yp, yn} is the approximate quotient, w is the next limb */
-
- if (sh == 0) /* round bit is upper bit from w */
- {
- rb = w & MPFR_LIMB_HIGHBIT;
- sb |= (w - rb) | c;
- MPFR_COV_SET (div_ui_sb[6+!!rb][!!sb]);
- }
- else
- {
- rb = yp[0] & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (yp[0] & MPFR_LIMB_MASK(sh - 1)) | w | c;
- MPFR_COV_SET (div_ui_sb[8+!!rb][!!sb]);
- }
-
- exp -= shlz;
- }
-
- d = yp[0] & MPFR_LIMB_MASK (sh);
- yp[0] ^= d; /* clear the lowest sh bits */
-
- MPFR_TMP_FREE (marker);
-
- if (MPFR_UNLIKELY (exp < __gmpfr_emin - 1))
- return mpfr_underflow (y, rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode,
- MPFR_SIGN (y));
-
- if (MPFR_UNLIKELY (rb == 0 && sb == 0))
- inexact = 0; /* result is exact */
- else
- {
- int nexttoinf;
-
- MPFR_UPDATE2_RND_MODE (rnd_mode, MPFR_SIGN (y));
- switch (rnd_mode)
- {
- case MPFR_RNDZ:
- case MPFR_RNDF:
- inexact = - MPFR_INT_SIGN (y); /* result is inexact */
- nexttoinf = 0;
- break;
-
- case MPFR_RNDA:
- inexact = MPFR_INT_SIGN (y);
- nexttoinf = 1;
- break;
-
- default: /* should be MPFR_RNDN */
- MPFR_ASSERTD (rnd_mode == MPFR_RNDN);
- /* We have one more significant bit in yn. */
- if (rb == 0)
- {
- inexact = - MPFR_INT_SIGN (y);
- nexttoinf = 0;
- }
- else if (sb != 0) /* necessarily rb != 0 */
- {
- inexact = MPFR_INT_SIGN (y);
- nexttoinf = 1;
- }
- else /* middle case */
- {
- if (yp[0] & (MPFR_LIMB_ONE << sh))
- {
- inexact = MPFR_INT_SIGN (y);
- nexttoinf = 1;
- }
- else
- {
- inexact = - MPFR_INT_SIGN (y);
- nexttoinf = 0;
- }
- }
- }
- if (nexttoinf &&
- MPFR_UNLIKELY (mpn_add_1 (yp, yp, yn, MPFR_LIMB_ONE << sh)))
- {
- exp++;
- yp[yn-1] = MPFR_LIMB_HIGHBIT;
- }
- }
-
- /* Set the exponent. Warning! One may still have an underflow. */
- MPFR_EXP (y) = exp;
-#else /* MPFR_LONG_WITHIN_LIMB */
- mpfr_t uu;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- mpfr_set_ui (uu, u, MPFR_RNDZ);
- inexact = mpfr_div (y, x, uu, rnd_mode);
- mpfr_clear (uu);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
-#endif
-
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/dot.c b/Build/source/libs/mpfr/mpfr-src/src/dot.c
deleted file mode 100644
index 9b4006c09d1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/dot.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* mpfr_dot -- dot product of two array of numbers
-
-Copyright 2018-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* FIXME: handle intermediate overflows and underflows. */
-
-/* res <- a[0]*b[0] + ... + a[n-1]*b[n-1] */
-int
-mpfr_dot (mpfr_ptr res, const mpfr_ptr *a, const mpfr_ptr *b,
- unsigned long n, mpfr_rnd_t rnd)
-{
- mpfr_t *c;
- size_t i;
- int inex;
- mpfr_ptr *tab;
-
- if (MPFR_UNLIKELY (n == 0))
- {
- MPFR_SET_ZERO (res);
- MPFR_SET_POS (res);
- MPFR_RET (0);
- }
-
- c = (mpfr_t *) mpfr_allocate_func (n * sizeof (mpfr_t));
- tab = (mpfr_ptr *) mpfr_allocate_func (n * sizeof (mpfr_ptr));
- for (i = 0; i < n; i++)
- {
- mpfr_init2 (c[i], mpfr_get_prec (a[i]) + mpfr_get_prec (b[i]));
- inex = mpfr_mul (c[i], a[i], b[i], MPFR_RNDZ); /* exact except... */
- MPFR_ASSERTN (inex == 0); /* failure in case of overflow/underflow */
- tab[i] = c[i];
- }
- inex = mpfr_sum (res, tab, n, rnd);
- for (i = 0; i < n; i++)
- mpfr_clear (c[i]);
- mpfr_free_func (c, n * sizeof (mpfr_t));
- mpfr_free_func (tab, n * sizeof (mpfr_ptr));
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/dump.c b/Build/source/libs/mpfr/mpfr-src/src/dump.c
deleted file mode 100644
index d1f7aacdbf3..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/dump.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* mpfr_dump, mpfr_fdump -- dump a float (for the tests and debugging purpose)
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* mpfr_dump is mainly for debugging purpose. It outputs a MPFR number
- * in some unspecified format, then a newline character. This function
- * is part of the API, but the output format may change without breaking
- * the ABI.
- *
- * Since this is for debugging, it can detect invalid data (or UBF), and
- * in such a case, it outputs information between exclamation marks:
- * - 'N': the number is not normalized (MSB = 0);
- * - 'T': there are non-zero trailing bits (output in square brackets);
- * - 'U': this is an UBF number (internal use only);
- * - '<': the exponent is < the current emin;
- * - '>': the exponent is > the current emax.
- *
- * The format may depend on MPFR_* environment variables. For instance,
- * in the future, some environment variables could specify prefix and
- * suffix strings to colorize parts of the output that correspond to
- * invalid data.
- */
-
-void
-mpfr_fdump (FILE *stream, mpfr_srcptr x)
-{
- if (MPFR_IS_NEG (x))
- fprintf (stream, "-");
-
- if (MPFR_IS_NAN (x))
- fprintf (stream, "@NaN@");
- else if (MPFR_IS_INF (x))
- fprintf (stream, "@Inf@");
- else if (MPFR_IS_ZERO (x))
- fprintf (stream, "0");
- else
- {
- mp_limb_t *mx;
- mpfr_prec_t px;
- mp_size_t n;
- char invalid[4];
- int first = 1, i = 0;
-
- mx = MPFR_MANT (x);
- px = MPFR_PREC (x);
-
- fprintf (stream, "0.");
- for (n = (px - 1) / GMP_NUMB_BITS; n >= 0; n--)
- {
- mp_limb_t wd, t;
-
- wd = mx[n];
- if (first)
- {
- if (! MPFR_LIMB_MSB (wd))
- invalid[i++] = 'N';
- first = 0;
- }
- for (t = MPFR_LIMB_HIGHBIT; t != 0; t >>= 1)
- {
- putc ((wd & t) == 0 ? '0' : '1', stream);
- if (--px == 0)
- {
- MPFR_ASSERTD (n == 0);
- if (t != 0 && (wd & (t - 1)) != 0)
- {
- putc ('[', stream);
- invalid[i++] = 'T';
- }
- else
- break; /* the trailing bits (all 0's) are not output */
- }
- }
- }
- if (px < 0) /* there are non-zero trailing bits */
- putc (']', stream);
-
- if (MPFR_IS_UBF (x))
- {
-#ifndef MPFR_USE_MINI_GMP
- gmp_fprintf (stream, "E%Zd", MPFR_ZEXP (x));
-#else /* mini-gmp has no gmp_fprintf */
- fprintf (stream, "E");
- mpz_out_str (stream, 10, MPFR_ZEXP (x));
-#endif
- invalid[i++] = 'U';
- }
- else
- {
- mpfr_exp_t e = MPFR_EXP (x);
-
- fprintf (stream, "E%" MPFR_EXP_FSPEC "d", (mpfr_eexp_t) e);
- if (e < __gmpfr_emin)
- invalid[i++] = '<';
- else if (e > __gmpfr_emax)
- invalid[i++] = '>';
- }
-
- if (i != 0)
- {
- invalid[i] = '\0';
- fprintf (stream, "!!!%s!!!", invalid);
- }
- }
- putc ('\n', stream);
-}
-
-void
-mpfr_dump (mpfr_srcptr x)
-{
- mpfr_fdump (stdout, x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/eint.c b/Build/source/libs/mpfr/mpfr-src/src/eint.c
deleted file mode 100644
index 4df65821d6f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/eint.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/* mpfr_eint, mpfr_eint1 -- the exponential integral
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* eint1(x) = -gamma - log(x) - sum((-1)^k*z^k/k/k!, k=1..infinity) for x > 0
- = - eint(-x) for x < 0
- where
- eint (x) = gamma + log(x) + sum(z^k/k/k!, k=1..infinity) for x > 0
- eint (x) is undefined for x < 0.
-*/
-
-/* Compute in y an approximation of sum(x^k/k/k!, k=1..infinity),
- assuming x != 0, and return e such that the absolute error is
- bounded by 2^e ulp(y).
- Return PREC(y) when the truncated series does not converge.
-*/
-static mpfr_exp_t
-mpfr_eint_aux (mpfr_t y, mpfr_srcptr x)
-{
- mpfr_t eps; /* dynamic (absolute) error bound on t */
- mpfr_t erru, errs;
- mpz_t m, s, t, u;
- mpfr_exp_t e, sizeinbase;
- mpfr_prec_t w = MPFR_PREC(y);
- unsigned long k;
- MPFR_GROUP_DECL (group);
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg", mpfr_get_prec (x), mpfr_log_prec, x),
- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y));
-
- /* for |x| <= 1, we have S := sum(x^k/k/k!, k=1..infinity) = x + R(x)
- where |R(x)| <= (x/2)^2/(1-|x|/2) <= 2*(x/2)^2
- thus |R(x)/x| <= |x|/2
- thus if |x| <= 2^(-PREC(y)) we have |S - o(x)| <= ulp(y) */
-
- if (MPFR_GET_EXP(x) <= - (mpfr_exp_t) w)
- {
- mpfr_set (y, x, MPFR_RNDN);
- return 0;
- }
-
- mpz_init (s); /* initializes to 0 */
- mpz_init (t);
- mpz_init (u);
- mpz_init (m);
- MPFR_GROUP_INIT_3 (group, 31, eps, erru, errs);
- e = mpfr_get_z_2exp (m, x); /* x = m * 2^e with m != 0 */
- MPFR_LOG_MSG (("e=%" MPFR_EXP_FSPEC "d\n", (mpfr_eexp_t) e));
- MPFR_ASSERTD (mpz_sizeinbase (m, 2) == MPFR_PREC (x)); /* since m != 0 */
- if (MPFR_PREC (x) > w)
- {
- e += MPFR_PREC (x) - w;
- mpz_tdiv_q_2exp (m, m, MPFR_PREC (x) - w); /* one still has m != 0 */
- MPFR_LOG_MSG (("e=%" MPFR_EXP_FSPEC "d\n", (mpfr_eexp_t) e));
- }
- /* Remove trailing zeroes from m: this will speed up much cases where
- x is a small integer divided by a power of 2.
- Note: As shown above, m != 0. This is needed for the "e += ..." below,
- otherwise n would take the largest value of mp_bitcnt_t and could be
- too large. */
- {
- mp_bitcnt_t n = mpz_scan1 (m, 0);
- mpz_tdiv_q_2exp (m, m, n);
- /* Since one initially has mpz_sizeinbase (m, 2) == MPFR_PREC (x)
- and m has not increased, one can deduce that n <= MPFR_PREC (x),
- so that the cast to mpfr_prec_t is valid. This cast is needed to
- ensure that the operand e of the addition below is not converted
- to an unsigned integer type, which could yield incorrect results
- with some C implementations. */
- MPFR_ASSERTD (n <= MPFR_PREC (x));
- e += (mpfr_prec_t) n;
- }
- /* initialize t to 2^w */
- mpz_set_ui (t, 1);
- mpz_mul_2exp (t, t, w);
- mpfr_set_ui (eps, 0, MPFR_RNDN); /* eps[0] = 0 */
- mpfr_set_ui (errs, 0, MPFR_RNDN); /* maximal error on s */
- for (k = 1;; k++)
- {
- /* let t[k] = x^k/k/k!, and eps[k] be the absolute error on t[k]:
- since t[k] = trunc(t[k-1]*m*2^e/k), we have
- eps[k+1] <= 1 + eps[k-1]*|m|*2^e/k + |t[k-1]|*|m|*2^(1-w)*2^e/k
- = 1 + (eps[k-1] + |t[k-1]|*2^(1-w))*|m|*2^e/k
- = 1 + (eps[k-1]*2^(w-1) + |t[k-1]|)*2^(1-w)*|m|*2^e/k */
- mpfr_mul_2ui (eps, eps, w - 1, MPFR_RNDU);
- if (mpz_sgn (t) >= 0)
- mpfr_add_z (eps, eps, t, MPFR_RNDU);
- else
- mpfr_sub_z (eps, eps, t, MPFR_RNDU);
- MPFR_MPZ_SIZEINBASE2 (sizeinbase, m);
- mpfr_mul_2si (eps, eps, sizeinbase - (w - 1) + e, MPFR_RNDU);
- mpfr_div_ui (eps, eps, k, MPFR_RNDU);
- mpfr_add_ui (eps, eps, 1, MPFR_RNDU);
- mpz_mul (t, t, m);
- if (e < 0)
- mpz_tdiv_q_2exp (t, t, -e);
- else
- mpz_mul_2exp (t, t, e);
- mpz_tdiv_q_ui (t, t, k);
- mpz_tdiv_q_ui (u, t, k);
- mpz_add (s, s, u);
- /* the absolute error on u is <= 1 + eps[k]/k */
- mpfr_div_ui (erru, eps, k, MPFR_RNDU);
- mpfr_add_ui (erru, erru, 1, MPFR_RNDU);
- /* and that on s is the sum of all errors on u */
- mpfr_add (errs, errs, erru, MPFR_RNDU);
- /* we are done when t is smaller than errs */
- if (mpz_sgn (t) == 0)
- sizeinbase = 0;
- else
- MPFR_MPZ_SIZEINBASE2 (sizeinbase, t);
- if (sizeinbase < MPFR_GET_EXP (errs))
- break;
- }
- /* the truncation error is bounded by (|t|+eps)/k*(|x|/k + |x|^2/k^2 + ...)
- <= (|t|+eps)/k*|x|/(k-|x|) */
- mpz_abs (t, t);
- mpfr_add_z (eps, eps, t, MPFR_RNDU);
- mpfr_div_ui (eps, eps, k, MPFR_RNDU);
- mpfr_abs (erru, x, MPFR_RNDU); /* |x| */
- mpfr_mul (eps, eps, erru, MPFR_RNDU);
- mpfr_ui_sub (erru, k, erru, MPFR_RNDD);
- if (MPFR_IS_NEG (erru))
- {
- /* the truncated series does not converge, return fail */
- e = w;
- }
- else
- {
- mpfr_div (eps, eps, erru, MPFR_RNDU);
- mpfr_add (errs, errs, eps, MPFR_RNDU);
- mpfr_set_z (y, s, MPFR_RNDN);
- mpfr_div_2ui (y, y, w, MPFR_RNDN);
- /* errs was an absolute error bound on s. We must convert it to an error
- in terms of ulp(y). Since ulp(y) = 2^(EXP(y)-PREC(y)), we must
- divide the error by 2^(EXP(y)-PREC(y)), but since we divided also
- y by 2^w = 2^PREC(y), we must simply divide by 2^EXP(y). */
- e = MPFR_GET_EXP (errs) - MPFR_GET_EXP (y);
- }
- MPFR_GROUP_CLEAR (group);
- mpz_clear (s);
- mpz_clear (t);
- mpz_clear (u);
- mpz_clear (m);
- MPFR_LOG_MSG (("e=%" MPFR_EXP_FSPEC "d\n", (mpfr_eexp_t) e));
- return e;
-}
-
-/* Return in y an approximation of Ei(x) using the asymptotic expansion:
- Ei(x) = exp(x)/x * (1 + 1/x + 2/x^2 + ... + k!/x^k + ...)
- Assumes |x| >= PREC(y) * log(2).
- Returns the error bound in terms of ulp(y).
-*/
-static mpfr_exp_t
-mpfr_eint_asympt (mpfr_ptr y, mpfr_srcptr x)
-{
- mpfr_prec_t p = MPFR_PREC(y);
- mpfr_t invx, t, err;
- unsigned long k;
- mpfr_exp_t err_exp;
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg", mpfr_get_prec (x), mpfr_log_prec, x),
- ("err_exp=%" MPFR_EXP_FSPEC "d", (mpfr_eexp_t) err_exp));
-
- mpfr_init2 (t, p);
- mpfr_init2 (invx, p);
- mpfr_init2 (err, 31); /* error in ulps on y */
- mpfr_ui_div (invx, 1, x, MPFR_RNDN); /* invx = 1/x*(1+u) with |u|<=2^(1-p) */
- mpfr_set_ui (t, 1, MPFR_RNDN); /* exact */
- mpfr_set (y, t, MPFR_RNDN);
- mpfr_set_ui (err, 0, MPFR_RNDN);
- for (k = 1; MPFR_GET_EXP(t) + (mpfr_exp_t) p > MPFR_GET_EXP(y); k++)
- {
- mpfr_mul (t, t, invx, MPFR_RNDN); /* 2 more roundings */
- mpfr_mul_ui (t, t, k, MPFR_RNDN); /* 1 more rounding: t = k!/x^k*(1+u)^e
- with u=2^{-p} and |e| <= 3*k */
- /* we use the fact that |(1+u)^n-1| <= 2*|n*u| for |n*u| <= 1, thus
- the error on t is less than 6*k*2^{-p}*t <= 6*k*ulp(t) */
- /* err is in terms of ulp(y): transform it in terms of ulp(t) */
- mpfr_mul_2si (err, err, MPFR_GET_EXP(y) - MPFR_GET_EXP(t), MPFR_RNDU);
- mpfr_add_ui (err, err, 6 * k, MPFR_RNDU);
- /* transform back in terms of ulp(y) */
- mpfr_div_2si (err, err, MPFR_GET_EXP(y) - MPFR_GET_EXP(t), MPFR_RNDU);
- mpfr_add (y, y, t, MPFR_RNDN);
- }
- /* add the truncation error bounded by ulp(y): 1 ulp */
- mpfr_mul (y, y, invx, MPFR_RNDN); /* err <= 2*err + 3/2 */
- mpfr_exp (t, x, MPFR_RNDN); /* err(t) <= 1/2*ulp(t) */
- mpfr_mul (y, y, t, MPFR_RNDN); /* again: err <= 2*err + 3/2 */
- mpfr_mul_2ui (err, err, 2, MPFR_RNDU);
- mpfr_add_ui (err, err, 8, MPFR_RNDU);
- err_exp = MPFR_GET_EXP(err);
- mpfr_clear (t);
- mpfr_clear (invx);
- mpfr_clear (err);
- return err_exp;
-}
-
-/* mpfr_eint returns Ei(x) for x >= 0,
- and -E1(-x) for x < 0, following http://dlmf.nist.gov/6.2 */
-int
-mpfr_eint (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- int inex;
- mpfr_t tmp, ump, x_abs;
- mpfr_exp_t err, te;
- mpfr_prec_t prec;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC (
- ("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y, inex));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- /* eint(+inf) = +inf and eint(-inf) = -0 */
- if (MPFR_IS_POS (x))
- {
- MPFR_SET_INF(y);
- MPFR_SET_POS(y);
- }
- else
- {
- MPFR_SET_ZERO(y);
- MPFR_SET_NEG(y);
- }
- MPFR_RET(0);
- }
- else /* eint(+/-0) = -Inf */
- {
- MPFR_SET_INF(y);
- MPFR_SET_NEG(y);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- }
-
- MPFR_TMP_INIT_ABS (x_abs, x);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Init stuff */
- prec = MPFR_PREC (y) + 2 * MPFR_INT_CEIL_LOG2 (MPFR_PREC (y)) + 6;
- mpfr_init2 (tmp, 64);
- mpfr_init2 (ump, 64);
-
- /* Since eint(x) >= exp(x)/x, we have log2(eint(x)) >= (x-log(x))/log(2).
- Let's compute k <= (x-log(x))/log(2) in a low precision. If k >= emax,
- then log2(eint(x)) >= emax, and eint(x) >= 2^emax, i.e. it overflows. */
- if (MPFR_IS_POS(x))
- {
- mpfr_log (tmp, x, MPFR_RNDU);
- mpfr_sub (ump, x, tmp, MPFR_RNDD);
- mpfr_div (ump, ump, __gmpfr_const_log2_RNDU, MPFR_RNDD);
- /* FIXME: We really need a mpfr_cmp_exp_t function. */
- MPFR_ASSERTN (MPFR_EMAX_MAX <= LONG_MAX);
- if (mpfr_cmp_ui (ump, __gmpfr_emax) >= 0)
- {
- mpfr_clear (tmp);
- mpfr_clear (ump);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_overflow (y, rnd, 1);
- }
- }
-
- /* Since E1(x) <= exp(-x) for x >= 1, we have log2(E1(x)) <= -x/log(2).
- Let's compute k >= -x/log(2) in a low precision. If k < emin
- then log2(E1(x)) <= emin-1, and E1(x) <= 2^(emin-1): it underflows. */
- if (MPFR_IS_NEG(x) && MPFR_GET_EXP(x) >= 1)
- {
- mpfr_div (ump, x, __gmpfr_const_log2_RNDD, MPFR_RNDU);
- MPFR_ASSERTN (MPFR_EMIN_MIN >= LONG_MIN);
- if (mpfr_cmp_si (ump, __gmpfr_emin) < 0)
- {
- mpfr_clear (tmp);
- mpfr_clear (ump);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (y, rnd, -1);
- }
- }
-
- /* eint() has a root 0.37250741078136663446...,
- so if x is near, already take more bits */
- if (MPFR_IS_POS(x) && MPFR_GET_EXP(x) == -1) /* 1/4 <= x < 1/2 */
- {
- mpfr_t y;
- mpfr_init2 (y, 32);
- /* 1599907147/2^32 is a 32-bit approximation of 0.37250741078136663446 */
- mpfr_set_ui_2exp (y, 1599907147UL, -32, MPFR_RNDN);
- mpfr_sub (y, x, y, MPFR_RNDN);
- prec += (mpfr_zero_p (y)) ? 32
- : mpfr_get_exp (y) < 0 ? -mpfr_get_exp (y) : 0;
- mpfr_clear (y);
- }
-
- mpfr_set_prec (tmp, prec);
- mpfr_set_prec (ump, prec);
-
- MPFR_ZIV_INIT (loop, prec); /* Initialize the ZivLoop controller */
- for (;;) /* Infinite loop */
- {
- /* For the asymptotic expansion to work, we need that the smallest
- value of k!/|x|^k is smaller than 2^(-p). The minimum is obtained for
- x=k, and it is smaller than e*sqrt(x)/e^x for x>=1. */
- if (MPFR_GET_EXP (x) > 0 &&
- mpfr_cmp_d (x_abs, ((double) prec +
- 0.5 * (double) MPFR_GET_EXP (x)) * LOG2 + 1.0) > 0)
- err = mpfr_eint_asympt (tmp, x);
- else
- {
- err = mpfr_eint_aux (tmp, x); /* error <= 2^err ulp(tmp) */
- te = MPFR_GET_EXP(tmp);
- mpfr_const_euler (ump, MPFR_RNDN); /* 0.577 -> EXP(ump)=0 */
- mpfr_add (tmp, tmp, ump, MPFR_RNDN);
- /* If tmp <> 0:
- error <= 1/2 + 1/2*2^(EXP(ump)-EXP(tmp)) + 2^(te-EXP(tmp)+err)
- <= 1/2 + 2^(MAX(EXP(ump), te+err+1) - EXP(tmp))
- <= 2^(MAX(0, 1 + MAX(EXP(ump), te+err+1) - EXP(tmp))).
- If tmp = 0 we can use the same bound, replacing
- EXP(tmp) by EXP(ump). */
- err = MAX(1, te + err + 2);
- te = MPFR_IS_ZERO(tmp) ? MPFR_GET_EXP(ump) : MPFR_GET_EXP(tmp);
- err = err - te;
- err = MAX(0, err);
- mpfr_log (ump, x_abs, MPFR_RNDN);
- mpfr_add (tmp, tmp, ump, MPFR_RNDN);
- /* same formula as above, except now EXP(ump) is not 0 */
- err += te + 1;
- if (MPFR_LIKELY (!MPFR_IS_ZERO (ump)))
- err = MAX (MPFR_GET_EXP (ump), err);
- /* if tmp is zero, we surely cannot round correctly */
- err = (MPFR_IS_ZERO(tmp)) ? prec : MAX(0, err - MPFR_GET_EXP (tmp));
- }
- /* Note: we assume here that MPFR_CAN_ROUND returns the same result
- for rnd and MPFR_INVERT_RND(rnd) */
- if (MPFR_LIKELY (MPFR_CAN_ROUND (tmp, prec - err, MPFR_PREC (y), rnd)))
- break;
- MPFR_ZIV_NEXT (loop, prec); /* Increase used precision */
- mpfr_set_prec (tmp, prec);
- mpfr_set_prec (ump, prec);
- }
- MPFR_ZIV_FREE (loop); /* Free the ZivLoop Controller */
-
- /* Set y to the computed value */
- inex = mpfr_set (y, tmp, rnd);
- mpfr_clear (tmp);
- mpfr_clear (ump);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/eq.c b/Build/source/libs/mpfr/mpfr-src/src/eq.c
deleted file mode 100644
index 68f69464bd9..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/eq.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* mpfr_eq -- Compare two floats up to a specified bit #.
-
-Copyright 1999, 2001, 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#include "mpfr-impl.h"
-
-/* return non-zero if the first n_bits bits of u, v are equal,
- 0 otherwise */
-int
-mpfr_eq (mpfr_srcptr u, mpfr_srcptr v, unsigned long int n_bits)
-{
- mpfr_limb_srcptr up, vp;
- mp_size_t usize, vsize, size, i;
- mpfr_exp_t uexp, vexp;
- int k;
-
- if (MPFR_ARE_SINGULAR(u, v))
- {
- if (MPFR_IS_NAN(u) || MPFR_IS_NAN(v))
- return 0; /* non equal */
- else if (MPFR_IS_INF(u) && MPFR_IS_INF(v))
- return (MPFR_SIGN(u) == MPFR_SIGN(v));
- else if (MPFR_IS_ZERO(u) && MPFR_IS_ZERO(v))
- return 1;
- else
- return 0;
- }
-
- /* 1. Are the signs different? */
- if (MPFR_SIGN(u) != MPFR_SIGN(v))
- return 0;
-
- uexp = MPFR_GET_EXP (u);
- vexp = MPFR_GET_EXP (v);
-
- /* 2. Are the exponents different? */
- if (uexp != vexp)
- return 0; /* no bit agree */
-
- usize = MPFR_LIMB_SIZE (u);
- vsize = MPFR_LIMB_SIZE (v);
-
- if (vsize > usize) /* exchange u and v */
- {
- up = MPFR_MANT(v);
- vp = MPFR_MANT(u);
- size = vsize;
- vsize = usize;
- usize = size;
- }
- else
- {
- up = MPFR_MANT(u);
- vp = MPFR_MANT(v);
- }
-
- /* now usize >= vsize */
- MPFR_ASSERTD(usize >= vsize);
-
- if (usize > vsize)
- {
- if ((unsigned long) vsize * GMP_NUMB_BITS < n_bits)
- {
- /* check if low min(PREC(u), n_bits) - (vsize * GMP_NUMB_BITS)
- bits from u are non-zero */
- unsigned long remains = n_bits - (vsize * GMP_NUMB_BITS);
- k = usize - vsize - 1;
- while (k >= 0 && remains >= GMP_NUMB_BITS && !up[k])
- {
- k--;
- remains -= GMP_NUMB_BITS;
- }
- /* now either k < 0: all low bits from u are zero
- or remains < GMP_NUMB_BITS: check high bits from up[k]
- or up[k] <> 0: different */
- if (k >= 0 && (((remains < GMP_NUMB_BITS) &&
- (up[k] >> (GMP_NUMB_BITS - remains))) ||
- (remains >= GMP_NUMB_BITS && up[k])))
- return 0; /* surely too different */
- }
- size = vsize;
- }
- else
- {
- size = usize;
- }
-
- /* now size = min (usize, vsize) */
-
- /* If size is too large wrt n_bits, reduce it to look only at the
- high n_bits bits.
- Otherwise, if n_bits > size * GMP_NUMB_BITS, reduce n_bits to
- size * GMP_NUMB_BITS, since the extra low bits of one of the
- operands have already been check above. */
- if ((unsigned long) size > 1 + (n_bits - 1) / GMP_NUMB_BITS)
- size = 1 + (n_bits - 1) / GMP_NUMB_BITS;
- else if (n_bits > (unsigned long) size * GMP_NUMB_BITS)
- n_bits = size * GMP_NUMB_BITS;
-
- up += usize - size;
- vp += vsize - size;
-
- for (i = size - 1; i > 0 && n_bits >= GMP_NUMB_BITS; i--)
- {
- if (up[i] != vp[i])
- return 0;
- n_bits -= GMP_NUMB_BITS;
- }
-
- /* now either i=0 or n_bits<GMP_NUMB_BITS */
-
- /* since n_bits <= size * GMP_NUMB_BITS before the above for-loop,
- we have the invariant n_bits <= (i+1) * GMP_NUMB_BITS, thus
- we always have n_bits <= GMP_NUMB_BITS here */
- MPFR_ASSERTD(n_bits <= GMP_NUMB_BITS);
-
- if (n_bits & (GMP_NUMB_BITS - 1))
- return (up[i] >> (GMP_NUMB_BITS - (n_bits & (GMP_NUMB_BITS - 1))) ==
- vp[i] >> (GMP_NUMB_BITS - (n_bits & (GMP_NUMB_BITS - 1))));
- else
- return (up[i] == vp[i]);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/erandom.c b/Build/source/libs/mpfr/mpfr-src/src/erandom.c
deleted file mode 100644
index 86c9c4ddc42..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/erandom.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* mpfr_erandom (rop, state, rnd_mode) -- Generate an exponential deviate with
- mean 1 and round it to the precision of rop according to the given rounding
- mode.
-
-Copyright 2013-2020 Free Software Foundation, Inc.
-Contributed by Charles Karney <charles@karney.com>, SRI International.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/*
- * Sampling from the exponential distribution with unit mean using the method
- * given in John von Neumann, Various techniques used in connection with random
- * digits, in A. S. Householder, G. E. Forsythe, and H. H. Germond, editors,
- * "Monte Carlo Method", number 12 in Applied Mathematics Series, pp. 36-38
- * (NBS, Washington, DC, 1951), Proceedings of a symposium held June 29-July 1,
- * 1949, in Los Angeles.
- *
- * A modification to this algorithm is given in:
- * Charles F. F. Karney,
- * "Sampling exactly from the normal distribution",
- * ACM Trans. Math. Software 42(1), 3:1-14 (Jan. 2016).
- * https://dx.doi.org/10.1145/2710016
- * http://arxiv.org/abs/1303.6257
- * Although this improves the bit efficiency, in practice, it results in
- * a slightly slower algorithm for MPFR. So here the original von Neumann
- * algorithm is used.
- *
- * There are a few "weasel words" regarding the accuracy of this
- * implementation. The algorithm produces exactly rounded exponential deviates
- * provided that gmp's random number engine delivers truly random bits. If it
- * did, the algorithm would be perfect; however, this implementation would have
- * problems, e.g., in that the integer part of the exponential deviate is
- * represented by an unsigned long, whereas in reality the integer part in
- * unbounded. In this implementation, asserts catch overflow in the integer
- * part and similar (very, very) unlikely events. In reality, of course, gmp's
- * random number engine has a finite internal state (19937 bits in the case of
- * the MT19937 method). This means that these unlikely events in fact won't
- * occur. If the asserts are triggered, then this is an indication that the
- * random number engine is defective. (Even if a hardware random number
- * generator were used, the most likely explanation for the triggering of the
- * asserts would be that the hardware generator was broken.)
- */
-
-#include "random_deviate.h"
-
-/* true with prob exp(-x) */
-static int
-E (mpfr_random_deviate_t x, gmp_randstate_t r,
- mpfr_random_deviate_t p, mpfr_random_deviate_t q)
-{
- /* p and q are temporaries */
- mpfr_random_deviate_reset (p);
- if (!mpfr_random_deviate_less (p, x, r))
- return 1;
- for (;;)
- {
- mpfr_random_deviate_reset (q);
- if (!mpfr_random_deviate_less (q, p, r))
- return 0;
- mpfr_random_deviate_reset (p);
- if (!mpfr_random_deviate_less (p, q, r))
- return 1;
- }
-}
-
-/* return an exponential random deviate with mean 1 as a MPFR */
-int
-mpfr_erandom (mpfr_t z, gmp_randstate_t r, mpfr_rnd_t rnd)
-{
- mpfr_random_deviate_t x, p, q;
- int inex;
- unsigned long k = 0;
-
- mpfr_random_deviate_init (x);
- mpfr_random_deviate_init (p);
- mpfr_random_deviate_init (q);
- while (!E(x, r, p, q))
- {
- ++k;
- /* Catch k wrapping around to 0; for a 32-bit unsigned long, the
- * probability of this is exp(-2^32)). */
- MPFR_ASSERTN (k != 0UL);
- mpfr_random_deviate_reset (x);
- }
- mpfr_random_deviate_clear (q);
- mpfr_random_deviate_clear (p);
- inex = mpfr_random_deviate_value (0, k, x, z, r, rnd);
- mpfr_random_deviate_clear (x);
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/erf.c b/Build/source/libs/mpfr/mpfr-src/src/erf.c
deleted file mode 100644
index 34884f4346d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/erf.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/* mpfr_erf -- error function of a floating-point number
-
-Copyright 2001, 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-static int mpfr_erf_0 (mpfr_ptr, mpfr_srcptr, double, mpfr_rnd_t);
-
-int
-mpfr_erf (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t xf;
- mp_limb_t xf_limb[(53 - 1) / GMP_NUMB_BITS + 1];
- int inex, large;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y, inex));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x)) /* erf(+inf) = +1, erf(-inf) = -1 */
- return mpfr_set_si (y, MPFR_INT_SIGN (x), MPFR_RNDN);
- else /* erf(+0) = +0, erf(-0) = -0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- return mpfr_set (y, x, MPFR_RNDN); /* should keep the sign of x */
- }
- }
-
- /* now x is neither NaN, Inf nor 0 */
-
- /* first try expansion at x=0 when x is small, or asymptotic expansion
- where x is large */
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* around x=0, we have erf(x) = 2x/sqrt(Pi) (1 - x^2/3 + ...),
- with 1 - x^2/3 <= sqrt(Pi)*erf(x)/2/x <= 1 for x >= 0. This means that
- if x^2/3 < 2^(-PREC(y)-1) we can decide of the correct rounding,
- unless we have a worst-case for 2x/sqrt(Pi). */
- if (MPFR_EXP(x) < - (mpfr_exp_t) (MPFR_PREC(y) / 2))
- {
- /* we use 2x/sqrt(Pi) (1 - x^2/3) <= erf(x) <= 2x/sqrt(Pi) for x > 0
- and 2x/sqrt(Pi) <= erf(x) <= 2x/sqrt(Pi) (1 - x^2/3) for x < 0.
- In both cases |2x/sqrt(Pi) (1 - x^2/3)| <= |erf(x)| <= |2x/sqrt(Pi)|.
- We will compute l and h such that l <= |2x/sqrt(Pi) (1 - x^2/3)|
- and |2x/sqrt(Pi)| <= h. If l and h round to the same value to
- precision PREC(y) and rounding rnd_mode, then we are done. */
- mpfr_t l, h; /* lower and upper bounds for erf(x) */
- int ok, inex2;
-
- mpfr_init2 (l, MPFR_PREC(y) + 17);
- mpfr_init2 (h, MPFR_PREC(y) + 17);
- /* first compute l */
- mpfr_sqr (l, x, MPFR_RNDU);
- mpfr_div_ui (l, l, 3, MPFR_RNDU); /* upper bound on x^2/3 */
- mpfr_ui_sub (l, 1, l, MPFR_RNDZ); /* lower bound on 1 - x^2/3 */
- mpfr_const_pi (h, MPFR_RNDU); /* upper bound of Pi */
- mpfr_sqrt (h, h, MPFR_RNDU); /* upper bound on sqrt(Pi) */
- mpfr_div (l, l, h, MPFR_RNDZ); /* lower bound on 1/sqrt(Pi) (1 - x^2/3) */
- mpfr_mul_2ui (l, l, 1, MPFR_RNDZ); /* 2/sqrt(Pi) (1 - x^2/3) */
- mpfr_mul (l, l, x, MPFR_RNDZ); /* |l| is a lower bound on
- |2x/sqrt(Pi) (1 - x^2/3)| */
- /* now compute h */
- mpfr_const_pi (h, MPFR_RNDD); /* lower bound on Pi */
- mpfr_sqrt (h, h, MPFR_RNDD); /* lower bound on sqrt(Pi) */
- mpfr_div_2ui (h, h, 1, MPFR_RNDD); /* lower bound on sqrt(Pi)/2 */
- /* since sqrt(Pi)/2 < 1, the following should not underflow */
- mpfr_div (h, x, h, MPFR_IS_POS(x) ? MPFR_RNDU : MPFR_RNDD);
- /* round l and h to precision PREC(y) */
- inex = mpfr_prec_round (l, MPFR_PREC(y), rnd_mode);
- inex2 = mpfr_prec_round (h, MPFR_PREC(y), rnd_mode);
- /* Caution: we also need inex=inex2 (inex might be 0). */
- ok = SAME_SIGN (inex, inex2) && mpfr_cmp (l, h) == 0;
- if (ok)
- mpfr_set (y, h, rnd_mode);
- mpfr_clear (l);
- mpfr_clear (h);
- if (ok)
- goto end;
- /* this test can still fail for small precision, for example
- for x=-0.100E-2 with a target precision of 3 bits, since
- the error term x^2/3 is not that small. */
- }
-
- MPFR_TMP_INIT1(xf_limb, xf, 53);
- mpfr_div (xf, x, __gmpfr_const_log2_RNDU, MPFR_RNDZ); /* round to zero
- ensures we get a lower bound of |x/log(2)| */
- mpfr_mul (xf, xf, x, MPFR_RNDZ);
- large = mpfr_cmp_ui (xf, MPFR_PREC (y) + 1) > 0;
-
- /* when x goes to infinity, we have erf(x) = 1 - 1/sqrt(Pi)/exp(x^2)/x + ...
- and |erf(x) - 1| <= exp(-x^2) is true for any x >= 0, thus if
- exp(-x^2) < 2^(-PREC(y)-1) the result is 1 or 1-epsilon.
- This rewrites as x^2/log(2) > p+1. */
- if (MPFR_UNLIKELY (large))
- /* |erf x| = 1 or 1- */
- {
- mpfr_rnd_t rnd2 = MPFR_IS_POS (x) ? rnd_mode : MPFR_INVERT_RND(rnd_mode);
- if (rnd2 == MPFR_RNDN || rnd2 == MPFR_RNDU || rnd2 == MPFR_RNDA)
- {
- inex = MPFR_INT_SIGN (x);
- mpfr_set_si (y, inex, rnd2);
- }
- else /* round to zero */
- {
- inex = -MPFR_INT_SIGN (x);
- mpfr_setmax (y, 0); /* warning: setmax keeps the old sign of y */
- MPFR_SET_SAME_SIGN (y, x);
- }
- }
- else /* use Taylor */
- {
- double xf2;
-
- /* FIXME: get rid of doubles/mpfr_get_d here */
- xf2 = mpfr_get_d (x, MPFR_RNDN);
- xf2 = xf2 * xf2; /* xf2 ~ x^2 */
- inex = mpfr_erf_0 (y, x, xf2, rnd_mode);
- }
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd_mode);
-}
-
-/* return x*2^e */
-static double
-mul_2exp (double x, mpfr_exp_t e)
-{
- /* Most of the times, the argument is negative */
- if (MPFR_UNLIKELY (e > 0))
- {
- while (e--)
- x *= 2.0;
- }
- else
- {
- while (e <= -16)
- {
- x *= (1.0 / 65536.0);
- e += 16;
- }
- while (e++)
- x *= 0.5;
- }
-
- return x;
-}
-
-/* evaluates erf(x) using the expansion at x=0:
-
- erf(x) = 2/sqrt(Pi) * sum((-1)^k*x^(2k+1)/k!/(2k+1), k=0..infinity)
-
- Assumes x is neither NaN nor infinite nor zero.
- Assumes also that e*x^2 <= n (target precision).
- */
-static int
-mpfr_erf_0 (mpfr_ptr res, mpfr_srcptr x, double xf2, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t n, m;
- mpfr_exp_t nuk, sigmak;
- mpfr_t y, s, t, u;
- unsigned int k;
- int inex;
- MPFR_GROUP_DECL (group);
- MPFR_ZIV_DECL (loop);
-
- n = MPFR_PREC (res); /* target precision */
-
- /* initial working precision */
- m = n + (mpfr_prec_t) (xf2 / LOG2) + 8 + MPFR_INT_CEIL_LOG2 (n);
-
- MPFR_GROUP_INIT_4(group, m, y, s, t, u);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_t tauk;
- mpfr_exp_t log2tauk;
-
- mpfr_sqr (y, x, MPFR_RNDU); /* err <= 1 ulp */
- mpfr_set_ui (s, 1, MPFR_RNDN);
- mpfr_set_ui (t, 1, MPFR_RNDN);
- mpfr_init2 (tauk, 53);
- mpfr_set_ui (tauk, 0, MPFR_RNDU);
-
- for (k = 1; ; k++)
- {
- mpfr_mul (t, y, t, MPFR_RNDU);
- mpfr_div_ui (t, t, k, MPFR_RNDU);
- mpfr_div_ui (u, t, 2 * k + 1, MPFR_RNDU);
- sigmak = MPFR_GET_EXP (s);
- if (k % 2)
- mpfr_sub (s, s, u, MPFR_RNDN);
- else
- mpfr_add (s, s, u, MPFR_RNDN);
- sigmak -= MPFR_GET_EXP(s);
- nuk = MPFR_GET_EXP(u) - MPFR_GET_EXP(s);
-
- if ((nuk < - (mpfr_exp_t) m) && (k >= xf2))
- break;
-
- /* tauk <- 1/2 + tauk * 2^sigmak + (1+8k)*2^nuk */
- mpfr_mul_2si (tauk, tauk, sigmak, MPFR_RNDU);
- mpfr_add_d (tauk, tauk, 0.5 + mul_2exp (1.0 + 8.0 * (double) k, nuk),
- MPFR_RNDU);
- }
-
- mpfr_mul (s, x, s, MPFR_RNDU);
- MPFR_SET_EXP (s, MPFR_GET_EXP (s) + 1);
-
- mpfr_const_pi (t, MPFR_RNDZ);
- mpfr_sqrt (t, t, MPFR_RNDZ);
- mpfr_div (s, s, t, MPFR_RNDN);
- /* tauk = 4 * tauk + 11: final ulp-error on s */
- mpfr_mul_2ui (tauk, tauk, 2, MPFR_RNDU);
- mpfr_add_ui (tauk, tauk, 11, MPFR_RNDU);
- /* In practice, one should not get an infinity, as it would require
- a huge precision and a lot of time, but just in case... */
- MPFR_ASSERTN (!MPFR_IS_INF (tauk));
- log2tauk = MPFR_GET_EXP (tauk);
- mpfr_clear (tauk);
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, m - log2tauk, n, rnd_mode)))
- break;
-
- /* Actualisation of the precision */
- MPFR_ZIV_NEXT (loop, m);
- MPFR_GROUP_REPREC_4 (group, m, y, s, t, u);
- }
- MPFR_ZIV_FREE (loop);
-
- inex = mpfr_set (res, s, rnd_mode);
-
- MPFR_GROUP_CLEAR (group);
-
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/erfc.c b/Build/source/libs/mpfr/mpfr-src/src/erfc.c
deleted file mode 100644
index 09111039e41..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/erfc.c
+++ /dev/null
@@ -1,277 +0,0 @@
-/* mpfr_erfc -- The Complementary Error Function of a floating-point number
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* erfc(x) = 1 - erf(x) */
-
-/* Put in y an approximation of erfc(x) for large x, using formulae 7.1.23 and
- 7.1.24 from Abramowitz and Stegun.
- Returns e such that the error is bounded by 2^e ulp(y),
- or returns 0 in case of underflow.
-*/
-static mpfr_exp_t
-mpfr_erfc_asympt (mpfr_ptr y, mpfr_srcptr x)
-{
- mpfr_t t, xx, err;
- unsigned long k;
- mpfr_prec_t prec = MPFR_PREC(y);
- mpfr_exp_t exp_err;
-
- mpfr_init2 (t, prec);
- mpfr_init2 (xx, prec);
- mpfr_init2 (err, 31);
- /* let u = 2^(1-p), and let us represent the error as (1+u)^err
- with a bound for err */
- mpfr_sqr (xx, x, MPFR_RNDD); /* err <= 1 */
- mpfr_ui_div (xx, 1, xx, MPFR_RNDU); /* upper bound for 1/(2x^2), err <= 2 */
- mpfr_div_2ui (xx, xx, 1, MPFR_RNDU); /* exact */
- mpfr_set_ui (t, 1, MPFR_RNDN); /* current term, exact */
- mpfr_set (y, t, MPFR_RNDN); /* current sum */
- mpfr_set_ui (err, 0, MPFR_RNDN);
- for (k = 1; ; k++)
- {
- mpfr_mul_ui (t, t, 2 * k - 1, MPFR_RNDU); /* err <= 4k-3 */
- mpfr_mul (t, t, xx, MPFR_RNDU); /* err <= 4k */
- /* for -1 < x < 1, and |nx| < 1, we have |(1+x)^n| <= 1+7/4|nx|.
- Indeed, for x>=0: log((1+x)^n) = n*log(1+x) <= n*x. Let y=n*x < 1,
- then exp(y) <= 1+7/4*y.
- For x<=0, let x=-x, we can prove by induction that (1-x)^n >= 1-n*x.*/
- mpfr_mul_2si (err, err, MPFR_GET_EXP (y) - MPFR_GET_EXP (t), MPFR_RNDU);
- mpfr_add_ui (err, err, 14 * k, MPFR_RNDU); /* 2^(1-p) * t <= 2 ulp(t) */
- mpfr_div_2si (err, err, MPFR_GET_EXP (y) - MPFR_GET_EXP (t), MPFR_RNDU);
- if (MPFR_GET_EXP (t) + (mpfr_exp_t) prec <= MPFR_GET_EXP (y))
- {
- /* the truncation error is bounded by |t| < ulp(y) */
- mpfr_add_ui (err, err, 1, MPFR_RNDU);
- break;
- }
- if (k & 1)
- mpfr_sub (y, y, t, MPFR_RNDN);
- else
- mpfr_add (y, y, t, MPFR_RNDN);
- }
- /* the error on y is bounded by err*ulp(y) */
- mpfr_sqr (t, x, MPFR_RNDU); /* rel. err <= 2^(1-p) */
- mpfr_div_2ui (err, err, 3, MPFR_RNDU); /* err/8 */
- mpfr_add (err, err, t, MPFR_RNDU); /* err/8 + xx */
- mpfr_mul_2ui (err, err, 3, MPFR_RNDU); /* err + 8*xx */
- mpfr_exp (t, t, MPFR_RNDU); /* err <= 1/2*ulp(t) + err(x*x)*t
- <= 1/2*ulp(t)+2*|x*x|*ulp(t)
- <= (2*|x*x|+1/2)*ulp(t) */
- mpfr_mul (t, t, x, MPFR_RNDN); /* err <= 1/2*ulp(t) + (4*|x*x|+1)*ulp(t)
- <= (4*|x*x|+3/2)*ulp(t) */
- mpfr_const_pi (xx, MPFR_RNDZ); /* err <= ulp(Pi) */
- mpfr_sqrt (xx, xx, MPFR_RNDN); /* err <= 1/2*ulp(xx) + ulp(Pi)/2/sqrt(Pi)
- <= 3/2*ulp(xx) */
- mpfr_mul (t, t, xx, MPFR_RNDN); /* err <= (8 |xx| + 13/2) * ulp(t) */
- mpfr_div (y, y, t, MPFR_RNDN); /* the relative error on input y is bounded
- by (1+u)^err with u = 2^(1-p), that on
- t is bounded by (1+u)^(8 |xx| + 13/2),
- thus that on output y is bounded by
- 8 |xx| + 7 + err. */
-
- if (MPFR_IS_ZERO(y))
- {
- /* If y is zero, most probably we have underflow. We check it directly
- using the fact that erfc(x) <= exp(-x^2)/sqrt(Pi)/x for x >= 0.
- We compute an upper approximation of exp(-x^2)/sqrt(Pi)/x.
- */
- mpfr_sqr (t, x, MPFR_RNDD); /* t <= x^2 */
- mpfr_neg (t, t, MPFR_RNDU); /* -x^2 <= t */
- mpfr_exp (t, t, MPFR_RNDU); /* exp(-x^2) <= t */
- mpfr_const_pi (xx, MPFR_RNDD); /* xx <= sqrt(Pi), cached */
- mpfr_mul (xx, xx, x, MPFR_RNDD); /* xx <= sqrt(Pi)*x */
- mpfr_div (y, t, xx, MPFR_RNDN); /* if y is zero, this means that the upper
- approximation of exp(-x^2)/sqrt(Pi)/x
- is nearer from 0 than from 2^(-emin-1),
- thus we have underflow. */
- exp_err = 0;
- }
- else
- {
- mpfr_add_ui (err, err, 7, MPFR_RNDU);
- exp_err = MPFR_GET_EXP (err);
- }
-
- mpfr_clear (t);
- mpfr_clear (xx);
- mpfr_clear (err);
- return exp_err;
-}
-
-int
-mpfr_erfc (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- int inex;
- mpfr_t tmp;
- mpfr_exp_t te, err;
- mpfr_prec_t prec;
- mpfr_exp_t emin = mpfr_get_emin ();
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y, inex));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- /* erfc(+inf) = 0+, erfc(-inf) = 2 erfc (0) = 1 */
- else if (MPFR_IS_INF (x))
- return mpfr_set_ui (y, MPFR_IS_POS (x) ? 0 : 2, rnd);
- else
- return mpfr_set_ui (y, 1, rnd);
- }
-
- if (MPFR_IS_POS (x))
- {
- /* by default, emin = 1-2^30, thus the smallest representable
- number is 1/2*2^emin = 2^(-2^30):
- for x >= 27282, erfc(x) < 2^(-2^30-1), and
- for x >= 1787897414, erfc(x) < 2^(-2^62-1).
- */
- if ((emin >= -1073741823 && mpfr_cmp_ui (x, 27282) >= 0) ||
- mpfr_cmp_ui (x, 1787897414) >= 0)
- {
- /* May be incorrect if MPFR_EMAX_MAX >= 2^62. */
- MPFR_STAT_STATIC_ASSERT ((MPFR_EMAX_MAX >> 31) >> 31 == 0);
- return mpfr_underflow (y, (rnd == MPFR_RNDN) ? MPFR_RNDZ : rnd, 1);
- }
- }
-
- /* Init stuff */
- MPFR_SAVE_EXPO_MARK (expo);
-
- if (MPFR_IS_NEG (x))
- {
- mpfr_exp_t e = MPFR_EXP(x);
- /* For x < 0 going to -infinity, erfc(x) tends to 2 by below.
- More precisely, we have 2 + 1/sqrt(Pi)/x/exp(x^2) < erfc(x) < 2.
- Thus log2 |2 - erfc(x)| <= -log2|x| - x^2 / log(2).
- If |2 - erfc(x)| < 2^(-PREC(y)) then the result is either 2 or
- nextbelow(2).
- For x <= -27282, -log2|x| - x^2 / log(2) <= -2^30.
- */
- if ((MPFR_PREC(y) <= 7 && e >= 2) || /* x <= -2 */
- (MPFR_PREC(y) <= 25 && e >= 3) || /* x <= -4 */
- (MPFR_PREC(y) <= 120 && mpfr_cmp_si (x, -9) <= 0) ||
- mpfr_cmp_si (x, -27282) <= 0)
- {
- near_two:
- mpfr_set_ui (y, 2, MPFR_RNDN);
- MPFR_SET_INEXFLAG ();
- if (rnd == MPFR_RNDZ || rnd == MPFR_RNDD)
- {
- mpfr_nextbelow (y);
- inex = -1;
- }
- else
- inex = 1;
- goto end;
- }
- else if (e >= 3) /* more accurate test */
- {
- mpfr_t t, u;
- int near_2;
- mpfr_init2 (t, 32);
- mpfr_init2 (u, 32);
- /* the following is 1/log(2) rounded to zero on 32 bits */
- mpfr_set_str_binary (t, "1.0111000101010100011101100101001");
- mpfr_sqr (u, x, MPFR_RNDZ);
- mpfr_mul (t, t, u, MPFR_RNDZ); /* t <= x^2/log(2) */
- mpfr_neg (u, x, MPFR_RNDZ); /* 0 <= u <= |x| */
- mpfr_log2 (u, u, MPFR_RNDZ); /* u <= log2(|x|) */
- mpfr_add (t, t, u, MPFR_RNDZ); /* t <= log2|x| + x^2 / log(2) */
- /* Taking into account that mpfr_exp_t >= mpfr_prec_t */
- mpfr_set_exp_t (u, MPFR_PREC (y), MPFR_RNDU);
- near_2 = mpfr_cmp (t, u) >= 0; /* 1 if PREC(y) <= u <= t <= ... */
- mpfr_clear (t);
- mpfr_clear (u);
- if (near_2)
- goto near_two;
- }
- }
-
- /* erfc(x) ~ 1, with error < 2^(EXP(x)+1) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, __gmpfr_one, - MPFR_GET_EXP (x) - 1,
- 0, MPFR_IS_NEG (x),
- rnd, inex = _inexact; goto end);
-
- prec = MPFR_PREC (y) + MPFR_INT_CEIL_LOG2 (MPFR_PREC (y)) + 3;
- if (MPFR_GET_EXP (x) > 0)
- prec += 2 * MPFR_GET_EXP(x);
-
- mpfr_init2 (tmp, prec);
-
- MPFR_ZIV_INIT (loop, prec); /* Initialize the ZivLoop controller */
- for (;;) /* Infinite loop */
- {
- /* use asymptotic formula only whenever x^2 >= p*log(2),
- otherwise it will not converge */
- if (MPFR_IS_POS (x) &&
- 2 * MPFR_GET_EXP (x) - 2 >= MPFR_INT_CEIL_LOG2 (prec))
- /* we have x^2 >= p in that case */
- {
- err = mpfr_erfc_asympt (tmp, x);
- if (err == 0) /* underflow case */
- {
- mpfr_clear (tmp);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (y, (rnd == MPFR_RNDN) ? MPFR_RNDZ : rnd, 1);
- }
- }
- else
- {
- mpfr_erf (tmp, x, MPFR_RNDN);
- MPFR_ASSERTD (!MPFR_IS_SINGULAR (tmp)); /* FIXME: 0 only for x=0 ? */
- te = MPFR_GET_EXP (tmp);
- mpfr_ui_sub (tmp, 1, tmp, MPFR_RNDN);
- /* See error analysis in algorithms.tex for details */
- if (MPFR_IS_ZERO (tmp))
- {
- prec *= 2;
- err = prec; /* ensures MPFR_CAN_ROUND fails */
- }
- else
- err = MAX (te - MPFR_GET_EXP (tmp), 0) + 1;
- }
- if (MPFR_LIKELY (MPFR_CAN_ROUND (tmp, prec - err, MPFR_PREC (y), rnd)))
- break;
- MPFR_ZIV_NEXT (loop, prec); /* Increase used precision */
- mpfr_set_prec (tmp, prec);
- }
- MPFR_ZIV_FREE (loop); /* Free the ZivLoop Controller */
-
- inex = mpfr_set (y, tmp, rnd); /* Set y to the computed value */
- mpfr_clear (tmp);
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/exceptions.c b/Build/source/libs/mpfr/mpfr-src/src/exceptions.c
deleted file mode 100644
index d197bd2c1f9..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/exceptions.c
+++ /dev/null
@@ -1,498 +0,0 @@
-/* Exception flags and utilities. Constructors and destructors (debug).
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_THREAD_VAR (mpfr_flags_t, __gmpfr_flags, 0)
-MPFR_THREAD_VAR (mpfr_exp_t, __gmpfr_emin, MPFR_EMIN_DEFAULT)
-MPFR_THREAD_VAR (mpfr_exp_t, __gmpfr_emax, MPFR_EMAX_DEFAULT)
-
-#undef mpfr_get_emin
-
-MPFR_COLD_FUNCTION_ATTR mpfr_exp_t
-mpfr_get_emin (void)
-{
- return __gmpfr_emin;
-}
-
-#undef mpfr_set_emin
-
-int
-mpfr_set_emin (mpfr_exp_t exponent)
-{
- if (MPFR_LIKELY (exponent >= MPFR_EMIN_MIN && exponent <= MPFR_EMIN_MAX))
- {
- __gmpfr_emin = exponent;
- return 0;
- }
- else
- {
- return 1;
- }
-}
-
-MPFR_COLD_FUNCTION_ATTR mpfr_exp_t
-mpfr_get_emin_min (void)
-{
- return MPFR_EMIN_MIN;
-}
-
-MPFR_COLD_FUNCTION_ATTR mpfr_exp_t
-mpfr_get_emin_max (void)
-{
- return MPFR_EMIN_MAX;
-}
-
-#undef mpfr_get_emax
-
-MPFR_COLD_FUNCTION_ATTR mpfr_exp_t
-mpfr_get_emax (void)
-{
- return __gmpfr_emax;
-}
-
-#undef mpfr_set_emax
-
-int
-mpfr_set_emax (mpfr_exp_t exponent)
-{
- if (MPFR_LIKELY (exponent >= MPFR_EMAX_MIN && exponent <= MPFR_EMAX_MAX))
- {
- __gmpfr_emax = exponent;
- return 0;
- }
- else
- {
- return 1;
- }
-}
-
-MPFR_COLD_FUNCTION_ATTR mpfr_exp_t
-mpfr_get_emax_min (void)
-{
- return MPFR_EMAX_MIN;
-}
-
-MPFR_COLD_FUNCTION_ATTR mpfr_exp_t
-mpfr_get_emax_max (void)
-{
- return MPFR_EMAX_MAX;
-}
-
-
-#undef mpfr_flags_clear
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_flags_clear (mpfr_flags_t mask)
-{
- __gmpfr_flags &= MPFR_FLAGS_ALL ^ mask;
-}
-
-#undef mpfr_flags_set
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_flags_set (mpfr_flags_t mask)
-{
- __gmpfr_flags |= mask;
-}
-
-#undef mpfr_flags_test
-
-MPFR_COLD_FUNCTION_ATTR mpfr_flags_t
-mpfr_flags_test (mpfr_flags_t mask)
-{
- return __gmpfr_flags & mask;
-}
-
-#undef mpfr_flags_save
-
-MPFR_COLD_FUNCTION_ATTR mpfr_flags_t
-mpfr_flags_save (void)
-{
- return __gmpfr_flags;
-}
-
-#undef mpfr_flags_restore
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_flags_restore (mpfr_flags_t flags, mpfr_flags_t mask)
-{
- __gmpfr_flags =
- (__gmpfr_flags & (MPFR_FLAGS_ALL ^ mask)) |
- (flags & mask);
-}
-
-
-#undef mpfr_clear_flags
-
-void
-mpfr_clear_flags (void)
-{
- __gmpfr_flags = 0;
-}
-
-#undef mpfr_clear_underflow
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_clear_underflow (void)
-{
- __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_UNDERFLOW;
-}
-
-#undef mpfr_clear_overflow
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_clear_overflow (void)
-{
- __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_OVERFLOW;
-}
-
-#undef mpfr_clear_divby0
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_clear_divby0 (void)
-{
- __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_DIVBY0;
-}
-
-#undef mpfr_clear_nanflag
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_clear_nanflag (void)
-{
- __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_NAN;
-}
-
-#undef mpfr_clear_inexflag
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_clear_inexflag (void)
-{
- __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_INEXACT;
-}
-
-#undef mpfr_clear_erangeflag
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_clear_erangeflag (void)
-{
- __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_ERANGE;
-}
-
-#undef mpfr_set_underflow
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_set_underflow (void)
-{
- __gmpfr_flags |= MPFR_FLAGS_UNDERFLOW;
-}
-
-#undef mpfr_set_overflow
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_set_overflow (void)
-{
- __gmpfr_flags |= MPFR_FLAGS_OVERFLOW;
-}
-
-#undef mpfr_set_divby0
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_set_divby0 (void)
-{
- __gmpfr_flags |= MPFR_FLAGS_DIVBY0;
-}
-
-#undef mpfr_set_nanflag
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_set_nanflag (void)
-{
- __gmpfr_flags |= MPFR_FLAGS_NAN;
-}
-
-#undef mpfr_set_inexflag
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_set_inexflag (void)
-{
- __gmpfr_flags |= MPFR_FLAGS_INEXACT;
-}
-
-#undef mpfr_set_erangeflag
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_set_erangeflag (void)
-{
- __gmpfr_flags |= MPFR_FLAGS_ERANGE;
-}
-
-
-#undef mpfr_check_range
-
-/* Note: It is possible that for pure FP numbers, EXP(x) < MPFR_EMIN_MIN,
- but the caller must make sure that the difference remains small enough
- to avoid reaching the special exponent values. */
-int
-mpfr_check_range (mpfr_ptr x, int t, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_LIKELY (! MPFR_IS_SINGULAR (x)))
- { /* x is a non-zero FP */
- mpfr_exp_t exp = MPFR_EXP (x); /* Do not use MPFR_GET_EXP */
-
- MPFR_ASSERTD (MPFR_IS_NORMALIZED (x));
- if (MPFR_UNLIKELY (exp < __gmpfr_emin))
- {
- /* The following test is necessary because in the rounding to the
- * nearest mode, mpfr_underflow always rounds away from 0. In
- * this rounding mode, we need to round to 0 if:
- * _ |x| < 2^(emin-2), or
- * _ |x| = 2^(emin-2) and the absolute value of the exact
- * result is <= 2^(emin-2).
- */
- if (rnd_mode == MPFR_RNDN &&
- (exp + 1 < __gmpfr_emin ||
- (mpfr_powerof2_raw(x) &&
- (MPFR_IS_NEG(x) ? t <= 0 : t >= 0))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (x, rnd_mode, MPFR_SIGN(x));
- }
- if (MPFR_UNLIKELY (exp > __gmpfr_emax))
- return mpfr_overflow (x, rnd_mode, MPFR_SIGN(x));
- }
- else if (MPFR_UNLIKELY (t != 0 && MPFR_IS_INF (x)))
- {
- /* We need to do the following because most MPFR functions are
- * implemented in the following way:
- * Ziv's loop:
- * | Compute an approximation to the result and an error bound.
- * | Possible underflow/overflow detection -> return.
- * | If can_round, break (exit the loop).
- * | Otherwise, increase the working precision and loop.
- * Round the approximation in the target precision. <== See below
- * Restore the flags (that could have been set due to underflows
- * or overflows during the internal computations).
- * Execute: return mpfr_check_range (...).
- * The problem is that an overflow could be generated when rounding the
- * approximation (in general, such an overflow could not be detected
- * earlier), and the overflow flag is lost when the flags are restored.
- * This can occur only when the rounding yields an exponent change
- * and the new exponent is larger than the maximum exponent, so that
- * an infinity is necessarily obtained.
- * So, the simplest solution is to detect this overflow case here in
- * mpfr_check_range, which is easy to do since the rounded result is
- * necessarily an inexact infinity.
- */
- __gmpfr_flags |= MPFR_FLAGS_OVERFLOW;
- }
- MPFR_RET (t); /* propagate inexact ternary value, unlike most functions */
-}
-
-
-#undef mpfr_underflow_p
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_underflow_p (void)
-{
- MPFR_STAT_STATIC_ASSERT (MPFR_FLAGS_UNDERFLOW <= INT_MAX);
- return __gmpfr_flags & MPFR_FLAGS_UNDERFLOW;
-}
-
-#undef mpfr_overflow_p
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_overflow_p (void)
-{
- MPFR_STAT_STATIC_ASSERT (MPFR_FLAGS_OVERFLOW <= INT_MAX);
- return __gmpfr_flags & MPFR_FLAGS_OVERFLOW;
-}
-
-#undef mpfr_divby0_p
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_divby0_p (void)
-{
- MPFR_STAT_STATIC_ASSERT (MPFR_FLAGS_DIVBY0 <= INT_MAX);
- return __gmpfr_flags & MPFR_FLAGS_DIVBY0;
-}
-
-#undef mpfr_nanflag_p
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_nanflag_p (void)
-{
- MPFR_STAT_STATIC_ASSERT (MPFR_FLAGS_NAN <= INT_MAX);
- return __gmpfr_flags & MPFR_FLAGS_NAN;
-}
-
-#undef mpfr_inexflag_p
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_inexflag_p (void)
-{
- MPFR_STAT_STATIC_ASSERT (MPFR_FLAGS_INEXACT <= INT_MAX);
- return __gmpfr_flags & MPFR_FLAGS_INEXACT;
-}
-
-#undef mpfr_erangeflag_p
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_erangeflag_p (void)
-{
- MPFR_STAT_STATIC_ASSERT (MPFR_FLAGS_ERANGE <= INT_MAX);
- return __gmpfr_flags & MPFR_FLAGS_ERANGE;
-}
-
-
-/* #undef mpfr_underflow */
-
-/* Note: In the rounding to the nearest mode, mpfr_underflow
- always rounds away from 0. In this rounding mode, you must call
- mpfr_underflow with rnd_mode = MPFR_RNDZ if the exact result
- is <= 2^(emin-2) in absolute value.
- We chose the default to round away from zero instead of toward zero
- because rounding away from zero (MPFR_RNDA) wasn't supported at that
- time (r1910), so that the caller had no way to change rnd_mode to
- this mode. */
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_underflow (mpfr_ptr x, mpfr_rnd_t rnd_mode, int sign)
-{
- int inex;
-
- MPFR_LOG_FUNC
- (("rnd=%d sign=%d", rnd_mode, sign),
- ("x[%Pu]=%.*Rg", mpfr_get_prec (x), mpfr_log_prec, x));
-
- MPFR_ASSERT_SIGN (sign);
-
- if (MPFR_IS_LIKE_RNDZ(rnd_mode, sign < 0))
- {
- MPFR_SET_ZERO(x);
- inex = -1;
- }
- else
- {
- mpfr_setmin (x, __gmpfr_emin);
- inex = 1;
- }
- MPFR_SET_SIGN(x, sign);
- __gmpfr_flags |= MPFR_FLAGS_INEXACT | MPFR_FLAGS_UNDERFLOW;
- return sign > 0 ? inex : -inex;
-}
-
-/* #undef mpfr_overflow */
-
-MPFR_COLD_FUNCTION_ATTR int
-mpfr_overflow (mpfr_ptr x, mpfr_rnd_t rnd_mode, int sign)
-{
- int inex;
-
- MPFR_LOG_FUNC
- (("rnd=%d sign=%d", rnd_mode, sign),
- ("x[%Pu]=%.*Rg", mpfr_get_prec (x), mpfr_log_prec, x));
-
- MPFR_ASSERT_SIGN (sign);
-
- if (MPFR_IS_LIKE_RNDZ(rnd_mode, sign < 0))
- {
- mpfr_setmax (x, __gmpfr_emax);
- inex = -1;
- }
- else
- {
- MPFR_SET_INF(x);
- inex = 1;
- }
- MPFR_SET_SIGN(x, sign);
- __gmpfr_flags |= MPFR_FLAGS_INEXACT | MPFR_FLAGS_OVERFLOW;
- return sign > 0 ? inex : -inex;
-}
-
-/**************************************************************************/
-
-/* Code related to constructors and destructors (for debugging) should
- be put here. The reason is that such code must be in an object file
- that will be kept by the linker for symbol resolution, and symbols
- __gmpfr_emin and __gmpfr_emax from this file will be used by every
- program calling a MPFR math function (where rounding is involved). */
-
-#if defined MPFR_DEBUG_PREDICTION
-
-/* Print prediction statistics at the end of a program.
- *
- * Code to debug branch prediction, based on Ulrich Drepper's paper
- * "What Every Programmer Should Know About Memory":
- * http://people.freebsd.org/~lstewart/articles/cpumemory.pdf
- */
-
-extern long int __start_predict_data;
-extern long int __stop_predict_data;
-extern long int __start_predict_line;
-extern const char *__start_predict_file;
-
-static void __attribute__ ((destructor))
-predprint (void)
-{
- long int *s = &__start_predict_data;
- long int *e = &__stop_predict_data;
- long int *sl = &__start_predict_line;
- const char **sf = &__start_predict_file;
-
- while (s < e)
- {
- printf("%s:%ld: incorrect=%ld, correct=%ld%s\n",
- *sf, *sl, s[0], s[1],
- s[0] > s[1] ? " <==== WARNING" : "");
- ++sl;
- ++sf;
- s += 2;
- }
-}
-
-#endif
-
-#if MPFR_WANT_ASSERT >= 2
-
-/* Similar to flags_out in tests/tests.c */
-
-void
-flags_fout (FILE *stream, mpfr_flags_t flags)
-{
- int none = 1;
-
- if (flags & MPFR_FLAGS_UNDERFLOW)
- none = 0, fprintf (stream, " underflow");
- if (flags & MPFR_FLAGS_OVERFLOW)
- none = 0, fprintf (stream, " overflow");
- if (flags & MPFR_FLAGS_NAN)
- none = 0, fprintf (stream, " nan");
- if (flags & MPFR_FLAGS_INEXACT)
- none = 0, fprintf (stream, " inexact");
- if (flags & MPFR_FLAGS_ERANGE)
- none = 0, fprintf (stream, " erange");
- if (none)
- fprintf (stream, " none");
- fprintf (stream, " (%u)\n", flags);
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/exp.c b/Build/source/libs/mpfr/mpfr-src/src/exp.c
deleted file mode 100644
index c431adb0a8c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/exp.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* mpfr_exp -- exponential of a floating-point number
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Cache for emin and emax bounds.
- Contrary to other caches, it uses a fixed size for the mantissa,
- so there is no dynamic allocation, and no need to free them. */
-static MPFR_THREAD_ATTR mpfr_exp_t previous_emin;
-static MPFR_THREAD_ATTR mp_limb_t bound_emin_limb[(32 - 1) / GMP_NUMB_BITS + 1];
-static MPFR_THREAD_ATTR mpfr_t bound_emin;
-static MPFR_THREAD_ATTR mpfr_exp_t previous_emax;
-static MPFR_THREAD_ATTR mp_limb_t bound_emax_limb[(32 - 1) / GMP_NUMB_BITS + 1];
-static MPFR_THREAD_ATTR mpfr_t bound_emax;
-
-int
-mpfr_exp (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t expx;
- mpfr_prec_t precy;
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(x) ))
- {
- if (MPFR_IS_NAN(x))
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF(x))
- {
- if (MPFR_IS_POS(x))
- MPFR_SET_INF(y);
- else
- MPFR_SET_ZERO(y);
- MPFR_SET_POS(y);
- MPFR_RET(0);
- }
- else
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(x));
- return mpfr_set_ui (y, 1, rnd_mode);
- }
- }
-
- /* First, let's detect most overflow and underflow cases. */
- /* emax bound is cached. Check if the value in cache is ok */
- if (MPFR_UNLIKELY (mpfr_get_emax() != previous_emax))
- {
- /* Recompute the emax bound */
- mp_limb_t e_limb[MPFR_EXP_LIMB_SIZE];
- mpfr_t e;
-
- /* We extend the exponent range and save the flags. */
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(e_limb, e, sizeof (mpfr_exp_t) * CHAR_BIT);
- MPFR_TMP_INIT1(bound_emax_limb, bound_emax, 32);
-
- inexact = mpfr_set_exp_t (e, expo.saved_emax, MPFR_RNDN);
- MPFR_ASSERTD (inexact == 0);
- mpfr_mul (bound_emax, expo.saved_emax < 0 ?
- __gmpfr_const_log2_RNDD : __gmpfr_const_log2_RNDU,
- e, MPFR_RNDU);
- previous_emax = expo.saved_emax;
- MPFR_SAVE_EXPO_FREE (expo);
- }
-
- /* mpfr_cmp works even in reduced emin,emax range */
- if (MPFR_UNLIKELY (mpfr_cmp (x, bound_emax) >= 0))
- {
- /* x > log(2^emax), thus exp(x) > 2^emax */
- return mpfr_overflow (y, rnd_mode, 1);
- }
-
- /* emin bound is cached. Check if the value in cache is ok */
- if (MPFR_UNLIKELY (mpfr_get_emin() != previous_emin))
- {
- mp_limb_t e_limb[MPFR_EXP_LIMB_SIZE];
- mpfr_t e;
-
- /* We extend the exponent range and save the flags. */
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* avoid using a full limb since arithmetic might be slower */
- MPFR_TMP_INIT1(e_limb, e, sizeof (mpfr_exp_t) * CHAR_BIT - 1);
- MPFR_TMP_INIT1(bound_emin_limb, bound_emin, 32);
-
- inexact = mpfr_set_exp_t (e, expo.saved_emin, MPFR_RNDN);
- MPFR_ASSERTD (inexact == 0);
- inexact = mpfr_sub_ui (e, e, 2, MPFR_RNDN);
- MPFR_ASSERTD (inexact == 0);
- mpfr_const_log2 (bound_emin, expo.saved_emin < 0 ? MPFR_RNDU : MPFR_RNDD);
- mpfr_mul (bound_emin, bound_emin, e, MPFR_RNDD);
- previous_emin = expo.saved_emin;
- MPFR_SAVE_EXPO_FREE (expo);
- }
-
- if (MPFR_UNLIKELY (mpfr_cmp (x, bound_emin) <= 0))
- {
- /* x < log(2^(emin - 2)), thus exp(x) < 2^(emin - 2) */
- return mpfr_underflow (y, rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode,
- 1);
- }
-
- expx = MPFR_GET_EXP (x);
- precy = MPFR_PREC (y);
-
- /* if x < 2^(-precy), then exp(x) gives 1 +/- 1 ulp(1) */
- if (MPFR_UNLIKELY (expx < 0 && (mpfr_uexp_t) (-expx) > precy))
- {
- mpfr_exp_t emin = __gmpfr_emin;
- mpfr_exp_t emax = __gmpfr_emax;
- int signx = MPFR_SIGN (x);
-
- /* Make sure that the exponent range is large enough:
- * [0,2] is sufficient in all precisions.
- */
- __gmpfr_emin = 0;
- __gmpfr_emax = 2;
-
- MPFR_SET_POS (y);
- if (MPFR_IS_NEG_SIGN (signx) && (rnd_mode == MPFR_RNDD ||
- rnd_mode == MPFR_RNDZ))
- {
- mpfr_setmax (y, 0); /* y = 1 - epsilon */
- inexact = -1;
- }
- else
- {
- mpfr_setmin (y, 1); /* y = 1 */
- if (MPFR_IS_POS_SIGN (signx) && (rnd_mode == MPFR_RNDU ||
- rnd_mode == MPFR_RNDA))
- {
- /* Warning: should work for precision 1 bit too! */
- mpfr_nextabove (y);
- inexact = 1;
- }
- else
- inexact = -MPFR_FROM_SIGN_TO_INT(signx);
- }
-
- __gmpfr_emin = emin;
- __gmpfr_emax = emax;
- }
- else /* General case */
- {
- if (MPFR_UNLIKELY (precy >= MPFR_EXP_THRESHOLD))
- /* mpfr_exp_3 saves the exponent range and flags itself, otherwise
- the flag changes in mpfr_exp_3 are lost */
- inexact = mpfr_exp_3 (y, x, rnd_mode); /* O(M(n) log(n)^2) */
- else
- {
- MPFR_SAVE_EXPO_MARK (expo);
- inexact = mpfr_exp_2 (y, x, rnd_mode); /* O(n^(1/3) M(n)) */
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- }
- }
-
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/exp10.c b/Build/source/libs/mpfr/mpfr-src/src/exp10.c
deleted file mode 100644
index 5ecb29a9079..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/exp10.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_exp10 -- power of 10 function 10^y
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_exp10 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- return mpfr_ui_pow (y, 10, x, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/exp2.c b/Build/source/libs/mpfr/mpfr-src/src/exp2.c
deleted file mode 100644
index 087275839c9..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/exp2.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* mpfr_exp2 -- power of 2 function 2^y
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The computation of y = 2^z is done by *
- * y = exp(z*log(2)). The result is exact iff z is an integer. */
-
-int
-mpfr_exp2 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int inexact, inex2;
- long xint;
- mpfr_t xfrac;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y,
- inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- if (MPFR_IS_POS (x))
- MPFR_SET_INF (y);
- else
- MPFR_SET_ZERO (y);
- MPFR_SET_POS (y);
- MPFR_RET (0);
- }
- else /* 2^0 = 1 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO(x));
- return mpfr_set_ui (y, 1, rnd_mode);
- }
- }
-
- /* Since the smallest representable non-zero float is 1/2 * 2^emin,
- if x <= emin - 2, the result is either 1/2 * 2^emin or 0.
- Warning, for emin - 2 < x < emin - 1, we cannot conclude, since 2^x
- might round to 2^(emin - 1) for rounding away or to nearest, and there
- might be no underflow, since we consider underflow "after rounding". */
-
- MPFR_STAT_STATIC_ASSERT (MPFR_EMIN_MIN >= LONG_MIN + 2);
- if (MPFR_UNLIKELY (mpfr_cmp_si (x, __gmpfr_emin - 2) <= 0))
- return mpfr_underflow (y, rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode, 1);
-
- MPFR_STAT_STATIC_ASSERT (MPFR_EMAX_MAX <= LONG_MAX);
- if (MPFR_UNLIKELY (mpfr_cmp_si (x, __gmpfr_emax) >= 0))
- return mpfr_overflow (y, rnd_mode, 1);
-
- /* We now know that emin - 2 < x < emax. Note that an underflow or
- overflow is still possible (we have eliminated only easy cases). */
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* 2^x = 1 + x*log(2) + O(x^2) for x near zero, and for |x| <= 1 we have
- |2^x - 1| <= x < 2^EXP(x). If x > 0 we must round away from 0 (dir=1);
- if x < 0 we must round toward 0 (dir=0). */
- MPFR_SMALL_INPUT_AFTER_SAVE_EXPO (y, __gmpfr_one, - MPFR_GET_EXP (x), 0,
- MPFR_IS_POS (x), rnd_mode, expo, {});
-
- xint = mpfr_get_si (x, MPFR_RNDZ);
- mpfr_init2 (xfrac, MPFR_PREC (x));
- MPFR_DBGRES (inexact = mpfr_sub_si (xfrac, x, xint, MPFR_RNDN));
- MPFR_ASSERTD (inexact == 0);
-
- if (MPFR_IS_ZERO (xfrac))
- {
- /* Here, emin - 1 <= x <= emax - 1, so that an underflow or overflow
- will not be possible. */
- mpfr_set_ui (y, 1, MPFR_RNDN);
- inexact = 0;
- }
- else
- {
- /* Declaration of the intermediary variable */
- mpfr_t t;
-
- /* Declaration of the size variable */
- mpfr_prec_t Ny = MPFR_PREC(y); /* target precision */
- mpfr_prec_t Nt; /* working precision */
- mpfr_exp_t err; /* error */
- MPFR_ZIV_DECL (loop);
-
- /* compute the precision of intermediary variable */
- /* the optimal number of bits : see algorithms.tex */
- Nt = Ny + 5 + MPFR_INT_CEIL_LOG2 (Ny);
-
- /* initialize of intermediary variable */
- mpfr_init2 (t, Nt);
-
- /* First computation */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- /* compute exp(x*ln(2))*/
- mpfr_const_log2 (t, MPFR_RNDU); /* ln(2) */
- mpfr_mul (t, xfrac, t, MPFR_RNDU); /* xfrac * ln(2) */
- err = Nt - (MPFR_GET_EXP (t) + 2); /* Estimate of the error */
- mpfr_exp (t, t, MPFR_RNDN); /* exp(xfrac * ln(2)) */
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- break;
-
- /* Actualisation of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (y, t, rnd_mode);
-
- mpfr_clear (t);
- }
-
- mpfr_clear (xfrac);
-
- if (MPFR_UNLIKELY (rnd_mode == MPFR_RNDN && xint == __gmpfr_emin - 1 &&
- MPFR_GET_EXP (y) == 0 && mpfr_powerof2_raw (y)))
- {
- /* y was rounded down to 1/2 and the rounded value with an unbounded
- exponent range would be 2^(emin-2), i.e. the midpoint between 0
- and the smallest positive FP number. This is a double rounding
- problem: we should not round to 0, but to (1/2) * 2^emin. */
- MPFR_SET_EXP (y, __gmpfr_emin);
- inexact = 1;
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_UNDERFLOW);
- }
- else
- {
- MPFR_CLEAR_FLAGS ();
- inex2 = mpfr_mul_2si (y, y, xint, rnd_mode);
- if (inex2 != 0) /* underflow or overflow */
- inexact = inex2;
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/exp3.c b/Build/source/libs/mpfr/mpfr-src/src/exp3.c
deleted file mode 100644
index 679f10305a1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/exp3.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/* mpfr_exp -- exponential of a floating-point number
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H /* for MPFR_MPZ_SIZEINBASE2 */
-#include "mpfr-impl.h"
-
-/* y <- exp(p/2^r) within 1 ulp, using 2^m terms from the series
- Assume |p/2^r| < 1.
- We use the following binary splitting formula:
- P(a,b) = p if a+1=b, P(a,c)*P(c,b) otherwise
- Q(a,b) = a*2^r if a+1=b [except Q(0,1)=1], Q(a,c)*Q(c,b) otherwise
- T(a,b) = P(a,b) if a+1=b, Q(c,b)*T(a,c)+P(a,c)*T(c,b) otherwise
- Then exp(p/2^r) ~ T(0,i)/Q(0,i) for i so that (p/2^r)^i/i! is small enough.
-
- Since P(a,b) = p^(b-a), and we consider only values of b-a of the form 2^j,
- we don't need to compute P(), we only precompute p^(2^j) in the ptoj[] array
- below.
-
- Since Q(a,b) is divisible by 2^(r*(b-a-1)), we don't compute the power of
- two part.
-*/
-static void
-mpfr_exp_rational (mpfr_ptr y, mpz_ptr p, long r, int m,
- mpz_t *Q, mpfr_prec_t *mult)
-{
- mp_bitcnt_t n, h, i, j; /* unsigned type, which is >= unsigned long */
- mpz_t *S, *ptoj;
- mpfr_prec_t *log2_nb_terms;
- mpfr_exp_t diff, expo;
- mpfr_prec_t precy = MPFR_PREC(y), prec_i_have, prec_ptoj;
- int k, l;
-
- MPFR_ASSERTN ((size_t) m < sizeof (long) * CHAR_BIT - 1);
-
- S = Q + (m+1);
- ptoj = Q + 2*(m+1); /* ptoj[i] = mantissa^(2^i) */
- log2_nb_terms = mult + (m+1);
-
- /* Normalize p */
- MPFR_ASSERTD (mpz_cmp_ui (p, 0) != 0);
- n = mpz_scan1 (p, 0); /* number of trailing zeros in p */
- MPFR_ASSERTN (n <= LONG_MAX); /* This is a limitation. */
- mpz_tdiv_q_2exp (p, p, n);
- r -= (long) n; /* since |p/2^r| < 1 and p >= 1, r >= 1 */
-
- /* Set initial var */
- mpz_set (ptoj[0], p);
- for (k = 1; k < m; k++)
- mpz_mul (ptoj[k], ptoj[k-1], ptoj[k-1]); /* ptoj[k] = p^(2^k) */
- mpz_set_ui (Q[0], 1);
- mpz_set_ui (S[0], 1);
- k = 0;
- mult[0] = 0; /* the multiplier P[k]/Q[k] for the remaining terms
- satisfies P[k]/Q[k] <= 2^(-mult[k]) */
- log2_nb_terms[0] = 0; /* log2(#terms) [exact in 1st loop where 2^k] */
- prec_i_have = 0;
-
- /* Main Loop */
- n = 1UL << m;
- MPFR_ASSERTN (n != 0); /* no overflow */
- for (i = 1; (prec_i_have < precy) && (i < n); i++)
- {
- /* invariant: Q[0]*Q[1]*...*Q[k] equals i! */
- k++;
- log2_nb_terms[k] = 0; /* 1 term */
- mpz_set_ui (Q[k], i + 1);
- mpz_set_ui (S[k], i + 1);
- j = i + 1; /* we have computed j = i+1 terms so far */
- l = 0;
- while ((j & 1) == 0) /* combine and reduce */
- {
- /* invariant: S[k] corresponds to 2^l consecutive terms */
- mpz_mul (S[k], S[k], ptoj[l]);
- mpz_mul (S[k-1], S[k-1], Q[k]);
- /* Q[k] corresponds to 2^l consecutive terms too.
- Since it does not contains the factor 2^(r*2^l),
- when going from l to l+1 we need to multiply
- by 2^(r*2^(l+1))/2^(r*2^l) = 2^(r*2^l) */
- mpz_mul_2exp (S[k-1], S[k-1], r << l);
- mpz_add (S[k-1], S[k-1], S[k]);
- mpz_mul (Q[k-1], Q[k-1], Q[k]);
- log2_nb_terms[k-1] ++; /* number of terms in S[k-1]
- is a power of 2 by construction */
- MPFR_MPZ_SIZEINBASE2 (prec_i_have, Q[k]);
- MPFR_MPZ_SIZEINBASE2 (prec_ptoj, ptoj[l]);
- mult[k-1] += prec_i_have + (r << l) - prec_ptoj - 1;
- prec_i_have = mult[k] = mult[k-1];
- /* since mult[k] >= mult[k-1] + nbits(Q[k]),
- we have Q[0]*...*Q[k] <= 2^mult[k] = 2^prec_i_have */
- l ++;
- j >>= 1;
- k --;
- }
- }
-
- /* accumulate all products in S[0] and Q[0]. Warning: contrary to above,
- here we do not have log2_nb_terms[k-1] = log2_nb_terms[k]+1. */
- h = 0; /* number of accumulated terms in the right part S[k]/Q[k] */
- while (k > 0)
- {
- j = log2_nb_terms[k-1];
- mpz_mul (S[k], S[k], ptoj[j]);
- mpz_mul (S[k-1], S[k-1], Q[k]);
- h += (mp_bitcnt_t) 1 << log2_nb_terms[k];
- mpz_mul_2exp (S[k-1], S[k-1], r * h);
- mpz_add (S[k-1], S[k-1], S[k]);
- mpz_mul (Q[k-1], Q[k-1], Q[k]);
- k--;
- }
-
- /* Q[0] now equals i! */
- MPFR_MPZ_SIZEINBASE2 (prec_i_have, S[0]);
- diff = (mpfr_exp_t) prec_i_have - 2 * (mpfr_exp_t) precy;
- expo = diff;
- if (diff >= 0)
- mpz_fdiv_q_2exp (S[0], S[0], diff);
- else
- mpz_mul_2exp (S[0], S[0], -diff);
-
- MPFR_MPZ_SIZEINBASE2 (prec_i_have, Q[0]);
- diff = (mpfr_exp_t) prec_i_have - (mpfr_prec_t) precy;
- expo -= diff;
- if (diff > 0)
- mpz_fdiv_q_2exp (Q[0], Q[0], diff);
- else
- mpz_mul_2exp (Q[0], Q[0], -diff);
-
- mpz_tdiv_q (S[0], S[0], Q[0]);
- mpfr_set_z (y, S[0], MPFR_RNDD);
- /* TODO: Check/prove that the following expression doesn't overflow. */
- expo = MPFR_GET_EXP (y) + expo - r * (i - 1);
- MPFR_SET_EXP (y, expo);
-}
-
-#define shift (GMP_NUMB_BITS/2)
-
-int
-mpfr_exp_3 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t t, x_copy, tmp;
- mpz_t uk;
- mpfr_exp_t ttt, shift_x;
- unsigned long twopoweri;
- mpz_t *P;
- mpfr_prec_t *mult;
- int i, k, loop;
- int prec_x;
- mpfr_prec_t realprec, Prec;
- int iter;
- int inexact = 0;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (ziv_loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y,
- inexact));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* decompose x */
- /* we first write x = 1.xxxxxxxxxxxxx
- ----- k bits -- */
- prec_x = MPFR_INT_CEIL_LOG2 (MPFR_PREC (x)) - MPFR_LOG2_GMP_NUMB_BITS;
- if (prec_x < 0)
- prec_x = 0;
-
- ttt = MPFR_GET_EXP (x);
- mpfr_init2 (x_copy, MPFR_PREC(x));
- mpfr_set (x_copy, x, MPFR_RNDD);
-
- /* we shift to get a number less than 1 */
- if (ttt > 0)
- {
- shift_x = ttt;
- mpfr_div_2ui (x_copy, x, ttt, MPFR_RNDN);
- ttt = MPFR_GET_EXP (x_copy);
- }
- else
- shift_x = 0;
- MPFR_ASSERTD (ttt <= 0);
-
- /* Init prec and vars */
- realprec = MPFR_PREC (y) + MPFR_INT_CEIL_LOG2 (prec_x + MPFR_PREC (y));
- Prec = realprec + shift + 2 + shift_x;
- mpfr_init2 (t, Prec);
- mpfr_init2 (tmp, Prec);
- mpz_init (uk);
-
- /* Main loop */
- MPFR_ZIV_INIT (ziv_loop, realprec);
- for (;;)
- {
- int scaled = 0;
- MPFR_BLOCK_DECL (flags);
-
- k = MPFR_INT_CEIL_LOG2 (Prec) - MPFR_LOG2_GMP_NUMB_BITS;
-
- /* now we have to extract */
- twopoweri = GMP_NUMB_BITS;
-
- /* Allocate tables */
- P = (mpz_t*) mpfr_allocate_func (3*(k+2)*sizeof(mpz_t));
- for (i = 0; i < 3*(k+2); i++)
- mpz_init (P[i]);
- mult = (mpfr_prec_t*) mpfr_allocate_func (2*(k+2)*sizeof(mpfr_prec_t));
-
- /* Particular case for i==0 */
- mpfr_extract (uk, x_copy, 0);
- MPFR_ASSERTD (mpz_cmp_ui (uk, 0) != 0);
- mpfr_exp_rational (tmp, uk, shift + twopoweri - ttt, k + 1, P, mult);
- for (loop = 0; loop < shift; loop++)
- mpfr_sqr (tmp, tmp, MPFR_RNDD);
- twopoweri *= 2;
-
- /* General case */
- iter = (k <= prec_x) ? k : prec_x;
- for (i = 1; i <= iter; i++)
- {
- mpfr_extract (uk, x_copy, i);
- if (MPFR_LIKELY (mpz_cmp_ui (uk, 0) != 0))
- {
- mpfr_exp_rational (t, uk, twopoweri - ttt, k - i + 1, P, mult);
- mpfr_mul (tmp, tmp, t, MPFR_RNDD);
- }
- MPFR_ASSERTN (twopoweri <= LONG_MAX/2);
- twopoweri *=2;
- }
-
- /* Clear tables */
- for (i = 0; i < 3*(k+2); i++)
- mpz_clear (P[i]);
- mpfr_free_func (P, 3*(k+2)*sizeof(mpz_t));
- mpfr_free_func (mult, 2*(k+2)*sizeof(mpfr_prec_t));
-
- if (shift_x > 0)
- {
- MPFR_BLOCK (flags, {
- for (loop = 0; loop < shift_x - 1; loop++)
- mpfr_sqr (tmp, tmp, MPFR_RNDD);
- mpfr_sqr (t, tmp, MPFR_RNDD);
- } );
-
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
- {
- /* tmp <= exact result, so that it is a real overflow. */
- inexact = mpfr_overflow (y, rnd_mode, 1);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- break;
- }
-
- if (MPFR_UNLIKELY (MPFR_UNDERFLOW (flags)))
- {
- /* This may be a spurious underflow. So, let's scale
- the result. */
- mpfr_mul_2ui (tmp, tmp, 1, MPFR_RNDD); /* no overflow, exact */
- mpfr_sqr (t, tmp, MPFR_RNDD);
- if (MPFR_IS_ZERO (t))
- {
- /* approximate result < 2^(emin - 3), thus
- exact result < 2^(emin - 2). */
- inexact = mpfr_underflow (y, (rnd_mode == MPFR_RNDN) ?
- MPFR_RNDZ : rnd_mode, 1);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_UNDERFLOW);
- break;
- }
- scaled = 1;
- }
- }
-
- if (MPFR_CAN_ROUND (shift_x > 0 ? t : tmp, realprec,
- MPFR_PREC(y), rnd_mode))
- {
- inexact = mpfr_set (y, shift_x > 0 ? t : tmp, rnd_mode);
- if (MPFR_UNLIKELY (scaled && MPFR_IS_PURE_FP (y)))
- {
- int inex2;
- mpfr_exp_t ey;
-
- /* The result has been scaled and needs to be corrected. */
- ey = MPFR_GET_EXP (y);
- inex2 = mpfr_mul_2si (y, y, -2, rnd_mode);
- if (inex2) /* underflow */
- {
- if (rnd_mode == MPFR_RNDN && inexact < 0 &&
- MPFR_IS_ZERO (y) && ey == __gmpfr_emin + 1)
- {
- /* Double rounding case: in MPFR_RNDN, the scaled
- result has been rounded downward to 2^emin.
- As the exact result is > 2^(emin - 2), correct
- rounding must be done upward. */
- /* TODO: make sure in coverage tests that this line
- is reached. */
- inexact = mpfr_underflow (y, MPFR_RNDU, 1);
- }
- else
- {
- /* No double rounding. */
- inexact = inex2;
- }
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_UNDERFLOW);
- }
- }
- break;
- }
-
- MPFR_ZIV_NEXT (ziv_loop, realprec);
- Prec = realprec + shift + 2 + shift_x;
- mpfr_set_prec (t, Prec);
- mpfr_set_prec (tmp, Prec);
- }
- MPFR_ZIV_FREE (ziv_loop);
-
- mpz_clear (uk);
- mpfr_clear (tmp);
- mpfr_clear (t);
- mpfr_clear (x_copy);
- MPFR_SAVE_EXPO_FREE (expo);
- return inexact;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/exp_2.c b/Build/source/libs/mpfr/mpfr-src/src/exp_2.c
deleted file mode 100644
index ebe721057e5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/exp_2.c
+++ /dev/null
@@ -1,456 +0,0 @@
-/* mpfr_exp_2 -- exponential of a floating-point number
- using algorithms in O(n^(1/2)*M(n)) and O(n^(1/3)*M(n))
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H /* MPFR_INT_CEIL_LOG2 */
-#include "mpfr-impl.h"
-
-static unsigned long
-mpfr_exp2_aux (mpz_t, mpfr_srcptr, mpfr_prec_t, mpfr_exp_t *);
-static unsigned long
-mpfr_exp2_aux2 (mpz_t, mpfr_srcptr, mpfr_prec_t, mpfr_exp_t *);
-static mpfr_exp_t
-mpz_normalize (mpz_t, mpz_t, mpfr_exp_t);
-static mpfr_exp_t
-mpz_normalize2 (mpz_t, mpz_t, mpfr_exp_t, mpfr_exp_t);
-
-/* if k = the number of bits of z > q, divides z by 2^(k-q) and returns k-q.
- Otherwise do nothing and return 0.
- */
-static mpfr_exp_t
-mpz_normalize (mpz_t rop, mpz_t z, mpfr_exp_t q)
-{
- size_t k;
-
- MPFR_MPZ_SIZEINBASE2 (k, z);
- MPFR_ASSERTD (k == (mpfr_uexp_t) k);
- if (MPFR_LIKELY(q < 0 || (mpfr_uexp_t) k > (mpfr_uexp_t) q))
- {
- mpz_fdiv_q_2exp (rop, z, (unsigned long) ((mpfr_uexp_t) k - q));
- return (mpfr_exp_t) k - q;
- }
- mpz_set (rop, z);
- return 0;
-}
-
-/* if expz > target, shift z by (expz-target) bits to the left.
- if expz < target, shift z by (target-expz) bits to the right.
- Returns target.
-*/
-static mpfr_exp_t
-mpz_normalize2 (mpz_t rop, mpz_t z, mpfr_exp_t expz, mpfr_exp_t target)
-{
- if (MPFR_LIKELY(target > expz))
- mpz_fdiv_q_2exp (rop, z, target - expz);
- else
- mpz_mul_2exp (rop, z, expz - target);
- return target;
-}
-
-/* use Brent's formula exp(x) = (1+r+r^2/2!+r^3/3!+...)^(2^K)*2^n
- where x = n*log(2)+(2^K)*r
- together with the Paterson-Stockmeyer O(t^(1/2)) algorithm for the
- evaluation of power series. The resulting complexity is O(n^(1/3)*M(n)).
- This function returns with the exact flags due to exp.
-*/
-int
-mpfr_exp_2 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- long n;
- unsigned long K, k, l, err; /* FIXME: Which type ? */
- int error_r;
- mpfr_exp_t exps, expx;
- mpfr_prec_t q, precy;
- int inexact;
- mpfr_t s, r;
- mpz_t ss;
- MPFR_GROUP_DECL(group);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y,
- inexact));
-
- expx = MPFR_GET_EXP (x);
- precy = MPFR_PREC(y);
-
- /* First perform argument reduction: if x' = x - n*log(2) we have
- exp(x) = exp(x)*2^n. We should take n near from x/log(2) but it does not
- need to be exact.
- Warning: we cannot use the 'double' type here, since on 64-bit machines
- x may be as large as 2^62*log(2) without overflow, and then x/log(2)
- is about 2^62: not every integer of that size can be represented as a
- 'double', thus the argument reduction would fail. */
- if (MPFR_UNLIKELY(expx <= -2))
- /* |x| <= 0.25, thus n = round(x/log(2)) = 0 */
- n = 0;
- else
- {
- mp_limb_t r_limb[(sizeof (long) -1) / sizeof(mp_limb_t) + 1];
- /* Note: we use precision sizeof (long) * CHAR_BIT - 1 here since it is
- more efficient that full limb precision.
- The value of n will depend on whether MPFR_LONG_WITHIN_LIMB is
- defined or not. For instance, for r = 0.111E0, one gets n = 0
- in the former case and n = 1 in the latter case. */
- MPFR_TMP_INIT1(r_limb, r, sizeof (long) * CHAR_BIT - 1);
- mpfr_div (r, x, __gmpfr_const_log2_RNDD, MPFR_RNDN);
-#ifdef MPFR_LONG_WITHIN_LIMB
- /* The following code assume an unsigned long can fit in a mp_limb_t */
- {
- mp_limb_t a;
- mpfr_exp_t exp;
- /* Read the long directly (faster than using mpfr_get_si
- since it fits, it is not singular, it can't be zero
- and there is no conversion to do) */
- MPFR_ASSERTD (MPFR_NOTZERO (r));
- exp = MPFR_GET_EXP (r);
- MPFR_ASSERTD (exp <= GMP_NUMB_BITS);
- if (exp >= 1)
- {
- a = MPFR_MANT(r)[0] >> (GMP_NUMB_BITS - exp);
- n = MPFR_IS_POS (r) ? a : a <= LONG_MAX ? - (long) a : LONG_MIN;
- }
- else
- n = 0;
- }
-#else
- /* Use generic way to get the long */
- n = mpfr_get_si (r, MPFR_RNDN);
-#endif
- }
- /* we have |x| <= (|n|+1)*log(2) */
- MPFR_LOG_MSG (("d(x)=%1.30e n=%ld\n", mpfr_get_d1(x), n));
-
- /* error_r bounds the cancelled bits in x - n*log(2) */
- if (MPFR_UNLIKELY (n == 0))
- error_r = 0;
- else
- {
- error_r = mpfr_nbits_ulong (SAFE_ABS (unsigned long, n) + 1);
- /* we have |x| <= 2^error_r * log(2) */
- }
-
- /* for the O(n^(1/2)*M(n)) method, the Taylor series computation of
- n/K terms costs about n/(2K) multiplications when computed in fixed
- point */
- K = (precy < MPFR_EXP_2_THRESHOLD) ? __gmpfr_isqrt ((precy + 1) / 2) + 3
- : __gmpfr_cuberoot (4*precy);
- l = (precy - 1) / K + 1;
- err = K + MPFR_INT_CEIL_LOG2 (2 * l + 18);
- /* add K extra bits, i.e. failure probability <= 1/2^K = O(1/precy) */
- q = precy + err + K + 10;
- /* if |x| >> 1, take into account the cancelled bits */
- if (expx > 0)
- q += expx;
-
- /* Even with to the mpfr_prec_round below, it is possible to use
- the MPFR_GROUP_* macros here because mpfr_prec_round is only
- called in a special case. */
- MPFR_GROUP_INIT_2(group, q + error_r, r, s);
- mpz_init (ss);
-
- /* the algorithm consists in computing an upper bound of exp(x) using
- a precision of q bits, and see if we can round to MPFR_PREC(y) taking
- into account the maximal error. Otherwise we increase q. */
- MPFR_ZIV_INIT (loop, q);
- for (;;)
- {
- MPFR_LOG_MSG (("n=%ld K=%lu l=%lu q=%lu error_r=%d\n",
- n, K, l, (unsigned long) q, error_r));
-
- /* First reduce the argument to r = x - n * log(2),
- so that r is small in absolute value. We want an upper
- bound on r to get an upper bound on exp(x). */
-
- /* if n<0, we have to get an upper bound of log(2)
- in order to get an upper bound of r = x-n*log(2) */
- mpfr_const_log2 (s, (n >= 0) ? MPFR_RNDZ : MPFR_RNDU);
- /* s is within 1 ulp(s) of log(2) */
-
- mpfr_mul_ui (r, s, (n < 0) ? -n : n, (n >= 0) ? MPFR_RNDZ : MPFR_RNDU);
- /* r is within 3 ulps of |n|*log(2) */
- if (n < 0)
- MPFR_CHANGE_SIGN (r);
- /* r <= n*log(2), within 3 ulps */
-
- MPFR_LOG_VAR (x);
- MPFR_LOG_VAR (r);
-
- mpfr_sub (r, x, r, MPFR_RNDU);
-
- while (MPFR_IS_PURE_FP(r) && MPFR_IS_NEG (r))
- { /* initial approximation n was too large */
- n--;
- mpfr_add (r, r, s, MPFR_RNDU);
- }
-
- /* if r is 0, we cannot round correctly */
- if (MPFR_LIKELY(MPFR_IS_PURE_FP (r)))
- {
- /* since there was a cancellation in x - n*log(2), the low error_r
- bits from r are zero and thus non significant, thus we can reduce
- the working precision */
- if (MPFR_LIKELY(error_r > 0))
- {
- MPFR_ASSERTD( MPFR_PREC(r) > q);
- /* since MPFR_PREC(r) > q, there is no reallocation to do,
- and it is safe to use it with MPFR_GROUP functions */
- mpfr_prec_round (r, q, MPFR_RNDU);
- }
- /* the error on r is at most 3 ulps (3 ulps if error_r = 0,
- and 1 + 3/2 if error_r > 0) */
- MPFR_LOG_VAR (r);
- MPFR_ASSERTD (MPFR_IS_POS (r));
- mpfr_div_2ui (r, r, K, MPFR_RNDU); /* r = (x-n*log(2))/2^K, exact */
-
- /* s <- 1 + r/1! + r^2/2! + ... + r^l/l! */
- MPFR_ASSERTD (MPFR_IS_PURE_FP (r) && MPFR_EXP (r) < 0);
- l = (precy < MPFR_EXP_2_THRESHOLD)
- ? mpfr_exp2_aux (ss, r, q, &exps) /* naive method */
- : mpfr_exp2_aux2 (ss, r, q, &exps); /* Paterson/Stockmeyer meth */
-
- MPFR_LOG_MSG (("l=%lu q=%lu (K+l)*q^2=%1.3e\n",
- l, (unsigned long) q, (K + l) * (double) q * q));
-
- for (k = 0; k < K; k++)
- {
- mpz_mul (ss, ss, ss);
- exps *= 2;
- exps += mpz_normalize (ss, ss, q);
- }
- mpfr_set_z_2exp (s, ss, exps, MPFR_RNDN);
-
- /* error is at most 2^K*l, plus 2 to take into account of
- the error of 3 ulps on r */
- err = K + MPFR_INT_CEIL_LOG2 (l) + 2;
-
- MPFR_LOG_MSG (("before mult. by 2^n:\n", 0));
- MPFR_LOG_VAR (s);
- MPFR_LOG_MSG (("err=%lu bits\n", K));
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, q - err, precy, rnd_mode)))
- {
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_mul_2si (y, s, n, rnd_mode);
- break;
- }
- }
- MPFR_ZIV_NEXT (loop, q);
- MPFR_GROUP_REPREC_2(group, q+error_r, r, s);
- }
- MPFR_ZIV_FREE (loop);
- mpz_clear (ss);
- MPFR_GROUP_CLEAR (group);
-
- return inexact;
-}
-
-/* s <- 1 + r/1! + r^2/2! + ... + r^l/l! while MPFR_EXP(r^l/l!)+MPFR_EXPR(r)>-q
- using naive method with O(l) multiplications.
- Return the number of iterations l.
- The absolute error on s is less than 3*l*(l+1)*2^(-q).
- Version using fixed-point arithmetic with mpz instead
- of mpfr for internal computations.
-*/
-static unsigned long
-mpfr_exp2_aux (mpz_t s, mpfr_srcptr r, mpfr_prec_t q, mpfr_exp_t *exps)
-{
- unsigned long l;
- mpfr_exp_t dif, expt, expr;
- mpz_t t, rr;
- mp_size_t sbit, tbit;
-
- MPFR_ASSERTD (MPFR_IS_PURE_FP (r));
-
- expt = 0;
- *exps = 1 - (mpfr_exp_t) q; /* s = 2^(q-1) */
- mpz_init (t);
- mpz_init (rr);
- mpz_set_ui (t, 1);
- mpz_set_ui (s, 1);
- mpz_mul_2exp (s, s, q-1);
- expr = mpfr_get_z_2exp (rr, r); /* no error here */
-
- l = 0;
- for (;;)
- {
- l++;
- mpz_mul(t, t, rr);
- expt += expr;
- MPFR_MPZ_SIZEINBASE2 (sbit, s);
- MPFR_MPZ_SIZEINBASE2 (tbit, t);
- dif = *exps + sbit - expt - tbit;
- /* truncates the bits of t which are < ulp(s) = 2^(1-q) */
- expt += mpz_normalize (t, t, (mpfr_exp_t) q - dif);
- /* error at most 2^(1-q) */
- if (l > 1)
- {
- /* GMP doesn't optimize the case of power of 2 */
- if (IS_POW2(l))
- {
- int bits = MPFR_INT_CEIL_LOG2(l);
- mpz_fdiv_q_2exp (t, t, bits); /* error at most 2^(1-q) */
- }
- else
- {
- mpz_fdiv_q_ui (t, t, l); /* error at most 2^(1-q) */
- }
- /* the error wrt t^l/l! is here at most 3*l*ulp(s) */
- MPFR_ASSERTD (expt == *exps);
- }
- if (mpz_sgn (t) == 0)
- break;
- mpz_add (s, s, t); /* no error here: exact */
- /* ensures rr has the same size as t: after several shifts, the error
- on rr is still at most ulp(t)=ulp(s) */
- MPFR_MPZ_SIZEINBASE2 (tbit, t);
- expr += mpz_normalize (rr, rr, tbit);
- }
-
- mpz_clear (t);
- mpz_clear (rr);
-
- return 3 * l * (l + 1);
-}
-
-/* s <- 1 + r/1! + r^2/2! + ... + r^l/l! while MPFR_EXP(r^l/l!)+MPFR_EXPR(r)>-q
- using Paterson-Stockmeyer algorithm with O(sqrt(l)) multiplications.
- Return l.
- Uses m multiplications of full size and 2l/m of decreasing size,
- i.e. a total equivalent to about m+l/m full multiplications,
- i.e. 2*sqrt(l) for m=sqrt(l).
- NOTE[VL]: The following sentence seems to be obsolete since MY_INIT_MPZ
- is no longer used (r6919); sizer was the number of limbs of r.
- Version using mpz. ss must have at least (sizer+1) limbs.
- The error is bounded by (l^2+4*l) ulps where l is the return value.
-*/
-static unsigned long
-mpfr_exp2_aux2 (mpz_t s, mpfr_srcptr r, mpfr_prec_t q, mpfr_exp_t *exps)
-{
- mpfr_exp_t expr, *expR, expt;
- mpfr_prec_t ql;
- unsigned long l, m, i;
- mpz_t t, *R, rr, tmp;
- mp_size_t sbit, rrbit;
- MPFR_TMP_DECL(marker);
-
- /* estimate value of l */
- MPFR_ASSERTD (MPFR_GET_EXP (r) < 0);
- l = q / (- MPFR_GET_EXP (r));
- m = __gmpfr_isqrt (l);
- /* we access R[2], thus we need m >= 2 */
- if (m < 2)
- m = 2;
-
- MPFR_TMP_MARK(marker);
- R = (mpz_t*) MPFR_TMP_ALLOC ((m + 1) * sizeof (mpz_t)); /* R[i] is r^i */
- expR = (mpfr_exp_t*) MPFR_TMP_ALLOC((m + 1) * sizeof (mpfr_exp_t));
- /* expR[i] is the exponent for R[i] */
- mpz_init (tmp);
- mpz_init (rr);
- mpz_init (t);
- mpz_set_ui (s, 0);
- *exps = 1 - q; /* 1 ulp = 2^(1-q) */
- for (i = 0 ; i <= m ; i++)
- mpz_init (R[i]);
- expR[1] = mpfr_get_z_2exp (R[1], r); /* exact operation: no error */
- expR[1] = mpz_normalize2 (R[1], R[1], expR[1], 1 - q); /* error <= 1 ulp */
- mpz_mul (t, R[1], R[1]); /* err(t) <= 2 ulps */
- mpz_fdiv_q_2exp (R[2], t, q - 1); /* err(R[2]) <= 3 ulps */
- expR[2] = 1 - q;
- for (i = 3 ; i <= m ; i++)
- {
- if ((i & 1) == 1)
- mpz_mul (t, R[i-1], R[1]); /* err(t) <= 2*i-2 */
- else
- mpz_mul (t, R[i/2], R[i/2]);
- mpz_fdiv_q_2exp (R[i], t, q - 1); /* err(R[i]) <= 2*i-1 ulps */
- expR[i] = 1 - q;
- }
- mpz_set_ui (R[0], 1);
- mpz_mul_2exp (R[0], R[0], q-1);
- expR[0] = 1-q; /* R[0]=1 */
- mpz_set_ui (rr, 1);
- expr = 0; /* rr contains r^l/l! */
- /* by induction: err(rr) <= 2*l ulps */
-
- l = 0;
- ql = q; /* precision used for current giant step */
- do
- {
- /* all R[i] must have exponent 1-ql */
- if (l != 0)
- for (i = 0 ; i < m ; i++)
- expR[i] = mpz_normalize2 (R[i], R[i], expR[i], 1 - ql);
- /* the absolute error on R[i]*rr is still 2*i-1 ulps */
- expt = mpz_normalize2 (t, R[m-1], expR[m-1], 1 - ql);
- /* err(t) <= 2*m-1 ulps */
- /* computes t = 1 + r/(l+1) + ... + r^(m-1)*l!/(l+m-1)!
- using Horner's scheme */
- for (i = m-1 ; i-- != 0 ; )
- {
- mpz_fdiv_q_ui (t, t, l+i+1); /* err(t) += 1 ulp */
- mpz_add (t, t, R[i]);
- }
- /* now err(t) <= (3m-2) ulps */
-
- /* now multiplies t by r^l/l! and adds to s */
- mpz_mul (t, t, rr);
- expt += expr;
- expt = mpz_normalize2 (t, t, expt, *exps);
- /* err(t) <= (3m-1) + err_rr(l) <= (3m-2) + 2*l */
- MPFR_ASSERTD (expt == *exps);
- mpz_add (s, s, t); /* no error here */
-
- /* updates rr, the multiplication of the factors l+i could be done
- using binary splitting too, but it is not sure it would save much */
- mpz_mul (t, rr, R[m]); /* err(t) <= err(rr) + 2m-1 */
- expr += expR[m];
- mpz_set_ui (tmp, 1);
- for (i = 1 ; i <= m ; i++)
- mpz_mul_ui (tmp, tmp, l + i);
- mpz_fdiv_q (t, t, tmp); /* err(t) <= err(rr) + 2m */
- l += m;
- if (MPFR_UNLIKELY (mpz_sgn (t) == 0))
- break;
- expr += mpz_normalize (rr, t, ql); /* err_rr(l+1) <= err_rr(l) + 2m+1 */
- if (MPFR_UNLIKELY (mpz_sgn (rr) == 0))
- rrbit = 1;
- else
- MPFR_MPZ_SIZEINBASE2 (rrbit, rr);
- MPFR_MPZ_SIZEINBASE2 (sbit, s);
- ql = q - *exps - sbit + expr + rrbit;
- /* TODO: Wrong cast. I don't want what is right, but this is
- certainly wrong */
- }
- while ((size_t) expr + rrbit > (size_t) -q);
-
- for (i = 0 ; i <= m ; i++)
- mpz_clear (R[i]);
- MPFR_TMP_FREE(marker);
- mpz_clear (rr);
- mpz_clear (t);
- mpz_clear (tmp);
-
- return l * (l + 4);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/expm1.c b/Build/source/libs/mpfr/mpfr-src/src/expm1.c
deleted file mode 100644
index cf67f24ca55..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/expm1.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* mpfr_expm1 -- Compute exp(x)-1
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
- /* The computation of expm1 is done by
- expm1(x)=exp(x)-1
- */
-
-int
-mpfr_expm1 (mpfr_ptr y, mpfr_srcptr x , mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_exp_t ex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- /* check for inf or -inf (expm1(-inf)=-1) */
- else if (MPFR_IS_INF (x))
- {
- if (MPFR_IS_POS (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_RET (0);
- }
- else
- return mpfr_set_si (y, -1, rnd_mode);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y); /* expm1(+/- 0) = +/- 0 */
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- }
-
- ex = MPFR_GET_EXP (x);
- if (ex < 0)
- {
- /* For -1 < x < 0, abs(expm1(x)-x) < x^2/2.
- For 0 < x < 1, abs(expm1(x)-x) < x^2. */
- if (MPFR_IS_POS (x))
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, - ex, 0, 1, rnd_mode, {});
- else
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, - ex, 1, 0, rnd_mode, {});
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- if (MPFR_IS_NEG (x) && ex > 5) /* x <= -32 */
- {
- mp_limb_t t_limb[(64 - 1) / GMP_NUMB_BITS + 1];
- mpfr_t t;
- mpfr_eexp_t err;
-
- MPFR_TMP_INIT1(t_limb, t, 64);
- /* since x < 0, to get an upper bound on x/log(2), we need to divide
- by an upper bound on log(2) */
- mpfr_div (t, x, __gmpfr_const_log2_RNDU, MPFR_RNDU); /* > x / ln(2) */
- err = mpfr_get_exp_t (t, MPFR_RNDU);
- MPFR_ASSERTD (err < 0);
- err = err < - MPFR_EXP_MAX ? MPFR_EXP_MAX : - err;
- /* err = -max(ceil(t),-MPFR_EXP_MAX). */
- MPFR_LOG_MSG (("err=%" MPFR_EXP_FSPEC "d\n", err));
- /* exp(x) = 2^(x/ln(2))
- <= 2^max(-MPFR_EXP_MAX,ceil(x/ln(2)+epsilon))
- with epsilon > 0 */
- MPFR_SMALL_INPUT_AFTER_SAVE_EXPO (y, __gmpfr_mone, (mpfr_exp_t) err,
- 0, 0, rnd_mode, expo, {});
- }
-
- /* General case */
- {
- /* Declaration of the intermediary variable */
- mpfr_t t;
- /* Declaration of the size variable */
- mpfr_prec_t Ny = MPFR_PREC(y); /* target precision */
- mpfr_prec_t Nt; /* working precision */
- mpfr_exp_t err, exp_te; /* error */
- MPFR_ZIV_DECL (loop);
-
- /* compute the precision of intermediary variable */
- /* the optimal number of bits : see algorithms.tex */
- Nt = Ny + MPFR_INT_CEIL_LOG2 (Ny) + 6;
-
- /* if |x| is smaller than 2^(-e), we will loose about e bits in the
- subtraction exp(x) - 1 */
- if (ex < 0)
- Nt += - ex;
-
- /* initialize auxiliary variable */
- mpfr_init2 (t, Nt);
-
- /* First computation of expm1 */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- /* exp(x) may overflow and underflow */
- MPFR_BLOCK (flags, mpfr_exp (t, x, MPFR_RNDN));
-
- if (MPFR_OVERFLOW (flags)) /* overflow case */
- {
- inexact = mpfr_overflow (y, rnd_mode, MPFR_SIGN_POS);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- break;
- }
-
- /* To get an underflow in exp(x), we need exp(x) < 0.5*2^MPFR_EMIN_MIN
- thus x/log(2) < MPFR_EMIN_MIN-1. But in that case the above
- MPFR_SMALL_INPUT_AFTER_SAVE_EXPO() will return the result. */
- MPFR_ASSERTD(!MPFR_UNDERFLOW (flags));
-
- exp_te = MPFR_GET_EXP (t);
- mpfr_sub_ui (t, t, 1, MPFR_RNDN); /* exp(x)-1 */
-
- /* error estimate */
- /*err=Nt-(__gmpfr_ceil_log2(1+pow(2,MPFR_EXP(te)-MPFR_EXP(t))));*/
- err = Nt - (MAX (exp_te - MPFR_GET_EXP (t), 0) + 1);
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- {
- inexact = mpfr_set (y, t, rnd_mode);
- break;
- }
-
- /* increase the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- mpfr_clear (t);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/extract.c b/Build/source/libs/mpfr/mpfr-src/src/extract.c
deleted file mode 100644
index 28b216e6f80..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/extract.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* mpfr_extract -- bit-extraction function for the binary splitting algorithm
-
-Copyright 2000-2002, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* given 0 <= |p| < 1, this function extracts limbs of p and puts them in y.
- It is mainly designed for the "binary splitting" algorithm.
-
- More precisely, if B = 2^GMP_NUMB_BITS:
- - for i=0, y = floor(p * B)
- - for i>0, y = (p * B^(2^i)) mod B^(2^(i-1))
- */
-
-void
-mpfr_extract (mpz_ptr y, mpfr_srcptr p, unsigned int i)
-{
- unsigned long two_i = 1UL << i;
- unsigned long two_i_2 = i ? two_i / 2 : 1;
- mp_size_t size_p = MPFR_LIMB_SIZE (p);
-
- MPFR_ASSERTN (two_i != 0 && two_i_2 <= INT_MAX); /* overflow check */
-
- /* as 0 <= |p| < 1, we don't have to care with infinities, NaN, ... */
- MPFR_ASSERTD (!MPFR_IS_SINGULAR (p));
-
- mpz_realloc2 (y, (mp_bitcnt_t) two_i_2 * GMP_NUMB_BITS);
- if (size_p < two_i)
- {
- MPN_ZERO (PTR(y), two_i_2);
- if (size_p >= two_i_2)
- MPN_COPY (PTR(y) + (two_i - size_p), MPFR_MANT(p), size_p - two_i_2);
- }
- else
- MPN_COPY (PTR(y), MPFR_MANT(p) + size_p - two_i, two_i_2);
-
- MPN_NORMALIZE (PTR(y), two_i_2);
- SIZ(y) = MPFR_IS_NEG (p) ? - (int) two_i_2 : (int) two_i_2;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/factorial.c b/Build/source/libs/mpfr/mpfr-src/src/factorial.c
deleted file mode 100644
index 49b45f355a5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/factorial.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* mpfr_fac_ui -- factorial of a nonnegative integer
-
-Copyright 2001, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
- /* The computation of n! is done by
-
- n!=prod^{n}_{i=1}i
- */
-
-/* FIXME: efficient problems with large arguments; see comments in gamma.c. */
-
-int
-mpfr_fac_ui (mpfr_ptr y, unsigned long int x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t t; /* Variable of Intermediary Calculation*/
- unsigned long i;
- int round, inexact;
-
- mpfr_prec_t Ny; /* Precision of output variable */
- mpfr_prec_t Nt; /* Precision of Intermediary Calculation variable */
- mpfr_prec_t err; /* Precision of error */
-
- mpfr_rnd_t rnd;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- /***** test x = 0 and x == 1******/
- if (MPFR_UNLIKELY (x <= 1))
- return mpfr_set_ui (y, 1, rnd_mode); /* 0! = 1 and 1! = 1 */
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Initialisation of the Precision */
- Ny = MPFR_PREC (y);
-
- /* compute the size of intermediary variable */
- Nt = Ny + 2 * MPFR_INT_CEIL_LOG2 (x) + 7;
-
- mpfr_init2 (t, Nt); /* initialize of intermediary variable */
-
- rnd = MPFR_RNDZ;
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- /* compute factorial */
- inexact = mpfr_set_ui (t, 1, rnd);
- for (i = 2 ; i <= x ; i++)
- {
- round = mpfr_mul_ui (t, t, i, rnd);
- /* assume the first inexact product gives the sign
- of difference: is that always correct? */
- if (inexact == 0)
- inexact = round;
- }
-
- err = Nt - 1 - MPFR_INT_CEIL_LOG2 (Nt);
-
- round = !inexact || MPFR_CAN_ROUND (t, err, Ny, rnd_mode);
-
- if (MPFR_LIKELY (round))
- {
- /* If inexact = 0, then t is exactly x!, so round is the
- correct inexact flag.
- Otherwise, t != x! since we rounded to zero or away. */
- round = mpfr_set (y, t, rnd_mode);
- if (inexact == 0)
- {
- inexact = round;
- break;
- }
- else if ((inexact < 0 && round <= 0)
- || (inexact > 0 && round >= 0))
- break;
- else /* inexact and round have opposite signs: we cannot
- compute the inexact flag. Restart using the
- symmetric rounding. */
- rnd = (rnd == MPFR_RNDZ) ? MPFR_RNDU : MPFR_RNDZ;
- }
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
-
-
-
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_intmax.c b/Build/source/libs/mpfr/mpfr-src/src/fits_intmax.c
deleted file mode 100644
index b00d2c37a2c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_intmax.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* mpfr_fits_intmax_p -- test whether an mpfr fits an intmax_t.
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-#ifdef _MPFR_H_HAVE_INTMAX_T
-
-/* We can't use fits_s.h as it uses mpfr_cmp_si */
-int
-mpfr_fits_intmax_p (mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- mpfr_flags_t saved_flags;
- mpfr_exp_t e;
- int prec;
- mpfr_t x, y;
- int neg;
- int res;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f)))
- /* Zero always fit */
- return MPFR_IS_ZERO (f) ? 1 : 0;
-
- /* now it fits if either
- (a) MINIMUM <= f <= MAXIMUM
- (b) or MINIMUM <= round(f, prec(slong), rnd) <= MAXIMUM */
-
- e = MPFR_EXP (f);
- if (e < 1)
- return 1; /* |f| < 1: always fits */
-
- neg = MPFR_IS_NEG (f);
-
- /* let EXTREMUM be MAXIMUM if f > 0, and MINIMUM if f < 0 */
-
- /* first compute prec(EXTREMUM), this could be done at configure time,
- but the result can depend on neg (the loop is moved inside the "if"
- to give the compiler a better chance to compute prec statically) */
- if (neg)
- {
- uintmax_t s;
- /* In C89, the division on negative integers isn't well-defined. */
- s = SAFE_ABS (uintmax_t, INTMAX_MIN);
- for (prec = 0; s != 0; s /= 2, prec ++);
- }
- else
- {
- intmax_t s;
- s = INTMAX_MAX;
- for (prec = 0; s != 0; s /= 2, prec ++);
- }
-
- /* EXTREMUM needs prec bits, i.e. 2^(prec-1) <= |EXTREMUM| < 2^prec */
-
- /* if e <= prec - 1, then f < 2^(prec-1) <= |EXTREMUM| */
- if (e <= prec - 1)
- return 1;
-
- /* if e >= prec + 1, then f >= 2^prec > |EXTREMUM| */
- if (e >= prec + 1)
- return 0;
-
- MPFR_ASSERTD (e == prec);
-
- /* hard case: first round to prec bits, then check */
- saved_flags = __gmpfr_flags;
- mpfr_init2 (x, prec);
- /* for RNDF, it is necessary and sufficient to check it fits when rounding
- away from zero */
- mpfr_set (x, f, (rnd == MPFR_RNDF) ? MPFR_RNDA : rnd);
-
- if (neg)
- {
- mpfr_init2 (y, prec);
- mpfr_set_sj (y, INTMAX_MIN, MPFR_RNDN);
- res = mpfr_cmp (x, y) >= 0;
- mpfr_clear (y);
- }
- else
- {
- /* Warning! Due to the rounding, x can be an infinity. Here we use
- the fact that singular numbers have a special exponent field,
- thus well-defined and different from e, in which case this means
- that the number does not fit. That's why we use MPFR_EXP, not
- MPFR_GET_EXP. */
- res = MPFR_EXP (x) == e;
- }
-
- mpfr_clear (x);
- __gmpfr_flags = saved_flags;
- return res;
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_s.h b/Build/source/libs/mpfr/mpfr-src/src/fits_s.h
deleted file mode 100644
index 7d713651cac..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_s.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* mpfr_fits_*_p -- test whether an mpfr fits a C signed type.
-
-Copyright 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* The original version of this file came from GMP's mpf/fits_s.h;
- it has been adapted for MPFR. In particular, the result can be
- rounded away from zero. */
-
-int
-FUNCTION (mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- mpfr_flags_t saved_flags;
- mpfr_exp_t e;
- int prec;
- mpfr_t x;
- int neg;
- int res;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f)))
- /* Zero always fit */
- return MPFR_IS_ZERO (f) ? 1 : 0;
-
- /* now it fits if either
- (a) MINIMUM <= f <= MAXIMUM
- (b) or MINIMUM <= round(f, prec(slong), rnd) <= MAXIMUM */
-
- e = MPFR_GET_EXP (f);
- if (e < 1)
- return 1; /* |f| < 1: always fits */
-
- neg = MPFR_IS_NEG (f);
-
- /* let EXTREMUM be MAXIMUM if f > 0, and MINIMUM if f < 0 */
-
- /* first compute prec(EXTREMUM), this could be done at configure time,
- but the result can depend on neg (the loop is moved inside the "if"
- to give the compiler a better chance to compute prec statically) */
- if (neg)
- {
- unsigned TYPE s;
- /* In C89, the division on negative integers isn't well-defined. */
- s = SAFE_ABS (unsigned TYPE, MINIMUM);
- for (prec = 0; s != 0; s /= 2, prec ++);
- }
- else
- {
- TYPE s;
- s = MAXIMUM;
- for (prec = 0; s != 0; s /= 2, prec ++);
- }
-
- /* EXTREMUM needs prec bits, i.e. 2^(prec-1) <= |EXTREMUM| < 2^prec */
-
- /* if e <= prec - 1, then f < 2^(prec-1) <= |EXTREMUM| */
- if (e <= prec - 1)
- return 1;
-
- /* if e >= prec + 1, then f >= 2^prec > |EXTREMUM| */
- if (e >= prec + 1)
- return 0;
-
- MPFR_ASSERTD (e == prec);
-
- /* hard case: first round to prec bits, then check */
- saved_flags = __gmpfr_flags;
- mpfr_init2 (x, prec);
- /* for RNDF, it suffices to check it fits when rounded away from zero */
- mpfr_set (x, f, (rnd == MPFR_RNDF) ? MPFR_RNDA : rnd);
- /* Warning! Due to the rounding, x can be an infinity. Here we use
- the fact that singular numbers have a special exponent field,
- thus well-defined and different from e, in which case this means
- that the number does not fit. That's why we use MPFR_EXP, not
- MPFR_GET_EXP. */
- res = neg ? (mpfr_cmp_si (x, MINIMUM) >= 0) : (MPFR_EXP (x) == e);
- mpfr_clear (x);
- __gmpfr_flags = saved_flags;
- return res;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_sint.c b/Build/source/libs/mpfr/mpfr-src/src/fits_sint.c
deleted file mode 100644
index 4a091757633..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_sint.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* mpfr_fits_sint_p -- test whether an mpfr fits an int.
-
-Copyright 2003, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define FUNCTION mpfr_fits_sint_p
-#define MAXIMUM INT_MAX
-#define MINIMUM INT_MIN
-#define TYPE int
-
-#include "fits_s.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_slong.c b/Build/source/libs/mpfr/mpfr-src/src/fits_slong.c
deleted file mode 100644
index a2a54100c2e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_slong.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* mpfr_fits_slong_p -- test whether an mpfr fits a long.
-
-Copyright 2003, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define FUNCTION mpfr_fits_slong_p
-#define MAXIMUM LONG_MAX
-#define MINIMUM LONG_MIN
-#define TYPE long
-
-#include "fits_s.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_sshort.c b/Build/source/libs/mpfr/mpfr-src/src/fits_sshort.c
deleted file mode 100644
index 7c1c848d7d2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_sshort.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* mpfr_fits_sshort_p -- test whether an mpfr fits a short.
-
-Copyright 2003, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define FUNCTION mpfr_fits_sshort_p
-#define MAXIMUM SHRT_MAX
-#define MINIMUM SHRT_MIN
-#define TYPE short
-
-#include "fits_s.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_u.h b/Build/source/libs/mpfr/mpfr-src/src/fits_u.h
deleted file mode 100644
index 7a24cac9887..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_u.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* mpfr_fits_*_p -- test whether an mpfr fits a C unsigned type.
-
-Copyright 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-FUNCTION (mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- mpfr_flags_t saved_flags;
- mpfr_exp_t e;
- int prec;
- TYPE s;
- mpfr_t x;
- int res;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f)))
- return MPFR_IS_ZERO (f) ? 1 : 0; /* Zero always fits */
-
- e = MPFR_GET_EXP (f);
-
- if (MPFR_IS_NEG (f))
- return e >= 1 ? 0 /* f <= -1 does not fit */
- : rnd != MPFR_RNDN ? MPFR_IS_LIKE_RNDU (rnd, -1) /* directed mode */
- : e < 0 ? 1 /* f > -1/2 fits in MPFR_RNDN */
- : mpfr_powerof2_raw(f); /* -1/2 fits, -1 < f < -1/2 don't */
-
- /* Now it fits if
- (a) f <= MAXIMUM
- (b) round(f, prec(slong), rnd) <= MAXIMUM */
-
- /* first compute prec(MAXIMUM); fits in an int */
- for (s = MAXIMUM, prec = 0; s != 0; s /= 2, prec ++);
-
- /* MAXIMUM needs prec bits, i.e. MAXIMUM = 2^prec - 1 */
-
- /* if e <= prec - 1, then f < 2^(prec-1) < MAXIMUM */
- if (e <= prec - 1)
- return 1;
-
- /* if e >= prec + 1, then f >= 2^prec > MAXIMUM */
- if (e >= prec + 1)
- return 0;
-
- MPFR_ASSERTD (e == prec);
-
- /* hard case: first round to prec bits, then check */
- saved_flags = __gmpfr_flags;
- mpfr_init2 (x, prec);
- /* For MPFR_RNDF, if f > 0 fits with RNDU, it will also fit with RNDD. */
- mpfr_set (x, f, (rnd != MPFR_RNDF) ? rnd : MPFR_RNDU);
- /* Warning! Due to the rounding, x can be an infinity. Here we use
- the fact that singular numbers have a special exponent field,
- thus well-defined and different from e, in which case this means
- that the number does not fit. That's why we use MPFR_EXP, not
- MPFR_GET_EXP. */
- res = MPFR_EXP (x) == e;
- mpfr_clear (x);
- __gmpfr_flags = saved_flags;
- return res;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_uint.c b/Build/source/libs/mpfr/mpfr-src/src/fits_uint.c
deleted file mode 100644
index f002e2e9c85..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_uint.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* mpfr_fits_uint_p -- test whether an mpfr fits an unsigned int.
-
-Copyright 2003, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define FUNCTION mpfr_fits_uint_p
-#define MAXIMUM UINT_MAX
-#define TYPE unsigned int
-
-#include "fits_u.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_uintmax.c b/Build/source/libs/mpfr/mpfr-src/src/fits_uintmax.c
deleted file mode 100644
index e100be19052..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_uintmax.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* mpfr_fits_uintmax_p -- test whether an mpfr fits an uintmax_t.
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-/* Note: though mpfr-impl.h is included in fits_u.h, we also include it
- above so that it gets included even when _MPFR_H_HAVE_INTMAX_T is not
- defined; this is necessary to avoid an empty translation unit, which
- is forbidden by ISO C. Without this, a failing test can be reproduced
- by creating an invalid stdint.h somewhere in the default include path
- and by compiling MPFR with "gcc -ansi -pedantic-errors". */
-
-#ifdef _MPFR_H_HAVE_INTMAX_T
-
-#define FUNCTION mpfr_fits_uintmax_p
-#define MAXIMUM UINTMAX_MAX
-#define TYPE uintmax_t
-
-#include "fits_u.h"
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_ulong.c b/Build/source/libs/mpfr/mpfr-src/src/fits_ulong.c
deleted file mode 100644
index c2afa3f27c0..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_ulong.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* mpfr_fits_ulong_p -- test whether an mpfr fits an unsigned long.
-
-Copyright 2003, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define FUNCTION mpfr_fits_ulong_p
-#define MAXIMUM ULONG_MAX
-#define TYPE unsigned long
-
-#include "fits_u.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fits_ushort.c b/Build/source/libs/mpfr/mpfr-src/src/fits_ushort.c
deleted file mode 100644
index 654a21105b7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fits_ushort.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* mpfr_fits_ushort_p -- test whether an mpfr fits an unsigned short.
-
-Copyright 2003, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define FUNCTION mpfr_fits_ushort_p
-#define MAXIMUM USHRT_MAX
-#define TYPE unsigned short
-
-#include "fits_u.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fma.c b/Build/source/libs/mpfr/mpfr-src/src/fma.c
deleted file mode 100644
index 44a50553b2b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fma.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/* mpfr_fma -- Floating multiply-add
-
-Copyright 2001-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The fused-multiply-add (fma) of x, y and z is defined by:
- fma(x,y,z)= x*y + z
-*/
-
-/* this function deals with all cases where inputs are singular, i.e.,
- either NaN, Inf or zero */
-static int
-mpfr_fma_singular (mpfr_ptr s, mpfr_srcptr x, mpfr_srcptr y, mpfr_srcptr z,
- mpfr_rnd_t rnd_mode)
-{
- if (MPFR_IS_NAN(x) || MPFR_IS_NAN(y) || MPFR_IS_NAN(z))
- {
- MPFR_SET_NAN(s);
- MPFR_RET_NAN;
- }
- /* now neither x, y or z is NaN */
- else if (MPFR_IS_INF(x) || MPFR_IS_INF(y))
- {
- /* cases Inf*0+z, 0*Inf+z, Inf-Inf */
- if ((MPFR_IS_ZERO(y)) ||
- (MPFR_IS_ZERO(x)) ||
- (MPFR_IS_INF(z) &&
- ((MPFR_MULT_SIGN(MPFR_SIGN(x), MPFR_SIGN(y))) != MPFR_SIGN(z))))
- {
- MPFR_SET_NAN(s);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF(z)) /* case Inf-Inf already checked above */
- {
- MPFR_SET_INF(s);
- MPFR_SET_SAME_SIGN(s, z);
- MPFR_RET(0);
- }
- else /* z is finite */
- {
- MPFR_SET_INF(s);
- MPFR_SET_SIGN(s, MPFR_MULT_SIGN(MPFR_SIGN(x) , MPFR_SIGN(y)));
- MPFR_RET(0);
- }
- }
- /* now x and y are finite */
- else if (MPFR_IS_INF(z))
- {
- MPFR_SET_INF(s);
- MPFR_SET_SAME_SIGN(s, z);
- MPFR_RET(0);
- }
- else if (MPFR_IS_ZERO(x) || MPFR_IS_ZERO(y))
- {
- if (MPFR_IS_ZERO(z))
- {
- int sign_p;
- sign_p = MPFR_MULT_SIGN( MPFR_SIGN(x) , MPFR_SIGN(y) );
- MPFR_SET_SIGN(s, (rnd_mode != MPFR_RNDD ?
- (MPFR_IS_NEG_SIGN(sign_p) && MPFR_IS_NEG(z) ?
- MPFR_SIGN_NEG : MPFR_SIGN_POS) :
- (MPFR_IS_POS_SIGN(sign_p) && MPFR_IS_POS(z) ?
- MPFR_SIGN_POS : MPFR_SIGN_NEG)));
- MPFR_SET_ZERO(s);
- MPFR_RET(0);
- }
- else
- return mpfr_set (s, z, rnd_mode);
- }
- else /* necessarily z is zero here */
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(z));
- return mpfr_mul (s, x, y, rnd_mode);
- }
-}
-
-/* s <- x*y + z */
-int
-mpfr_fma (mpfr_ptr s, mpfr_srcptr x, mpfr_srcptr y, mpfr_srcptr z,
- mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t u;
- mp_size_t n;
- mpfr_exp_t e;
- mpfr_prec_t precx, precy;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_GROUP_DECL(group);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg y[%Pu]=%.*Rg z[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x,
- mpfr_get_prec (y), mpfr_log_prec, y,
- mpfr_get_prec (z), mpfr_log_prec, z, rnd_mode),
- ("s[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (s), mpfr_log_prec, s, inexact));
-
- /* particular cases */
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(x) || MPFR_IS_SINGULAR(y) ||
- MPFR_IS_SINGULAR(z) ))
- return mpfr_fma_singular (s, x, y, z, rnd_mode);
-
- e = MPFR_GET_EXP (x) + MPFR_GET_EXP (y);
-
- precx = MPFR_PREC (x);
- precy = MPFR_PREC (y);
-
- /* First deal with special case where prec(x) = prec(y) and x*y does
- not overflow nor underflow. Do it only for small sizes since for large
- sizes x*y is faster using Mulders' algorithm (as a rule of thumb,
- we assume mpn_mul_n is faster up to 4*MPFR_MUL_THRESHOLD).
- Since |EXP(x)|, |EXP(y)| < 2^(k-2) on a k-bit computer,
- |EXP(x)+EXP(y)| < 2^(k-1), thus cannot overflow nor underflow. */
- if (precx == precy && e <= __gmpfr_emax && e > __gmpfr_emin)
- {
- if (precx < GMP_NUMB_BITS &&
- MPFR_PREC(z) == precx &&
- MPFR_PREC(s) == precx)
- {
- mp_limb_t umant[2], zmant[2];
- mpfr_t zz;
- int inex;
-
- umul_ppmm (umant[1], umant[0], MPFR_MANT(x)[0], MPFR_MANT(y)[0]);
- MPFR_PREC(u) = MPFR_PREC(zz) = 2 * precx;
- MPFR_MANT(u) = umant;
- MPFR_MANT(zz) = zmant;
- MPFR_SIGN(u) = MPFR_MULT_SIGN( MPFR_SIGN(x) , MPFR_SIGN(y) );
- MPFR_SIGN(zz) = MPFR_SIGN(z);
- MPFR_EXP(zz) = MPFR_EXP(z);
- if (MPFR_PREC(zz) <= GMP_NUMB_BITS) /* zz fits in one limb */
- {
- if ((umant[1] & MPFR_LIMB_HIGHBIT) == 0)
- {
- umant[0] = umant[1] << 1;
- MPFR_EXP(u) = e - 1;
- }
- else
- {
- umant[0] = umant[1];
- MPFR_EXP(u) = e;
- }
- zmant[0] = MPFR_MANT(z)[0];
- }
- else
- {
- zmant[1] = MPFR_MANT(z)[0];
- zmant[0] = MPFR_LIMB_ZERO;
- if ((umant[1] & MPFR_LIMB_HIGHBIT) == 0)
- {
- umant[1] = (umant[1] << 1) |
- (umant[0] >> (GMP_NUMB_BITS - 1));
- umant[0] = umant[0] << 1;
- MPFR_EXP(u) = e - 1;
- }
- else
- MPFR_EXP(u) = e;
- }
- inex = mpfr_add (u, u, zz, rnd_mode);
- /* mpfr_set_1_2 requires PREC(u) = 2*PREC(s),
- thus we need PREC(s) = PREC(x) = PREC(y) = PREC(z) */
- return mpfr_set_1_2 (s, u, rnd_mode, inex);
- }
- else if ((n = MPFR_LIMB_SIZE(x)) <= 4 * MPFR_MUL_THRESHOLD)
- {
- mpfr_limb_ptr up;
- mp_size_t un = n + n;
- MPFR_TMP_DECL(marker);
-
- MPFR_TMP_MARK(marker);
- MPFR_TMP_INIT (up, u, un * GMP_NUMB_BITS, un);
- up = MPFR_MANT(u);
- /* multiply x*y exactly into u */
- mpn_mul_n (up, MPFR_MANT(x), MPFR_MANT(y), n);
- if (MPFR_LIMB_MSB (up[un - 1]) == 0)
- {
- mpn_lshift (up, up, un, 1);
- MPFR_EXP(u) = e - 1;
- }
- else
- MPFR_EXP(u) = e;
- MPFR_SIGN(u) = MPFR_MULT_SIGN( MPFR_SIGN(x) , MPFR_SIGN(y) );
- /* The above code does not generate any exception.
- The exceptions will come only from mpfr_add. */
- inexact = mpfr_add (s, u, z, rnd_mode);
- MPFR_TMP_FREE(marker);
- return inexact;
- }
- }
-
- /* If we take prec(u) >= prec(x) + prec(y), the product u <- x*y
- is exact, except in case of overflow or underflow. */
- MPFR_ASSERTN (precx + precy <= MPFR_PREC_MAX);
- MPFR_GROUP_INIT_1 (group, precx + precy, u);
- MPFR_SAVE_EXPO_MARK (expo);
-
- if (MPFR_UNLIKELY (mpfr_mul (u, x, y, MPFR_RNDN)))
- {
- /* overflow or underflow - this case is regarded as rare, thus
- does not need to be very efficient (even if some tests below
- could have been done earlier).
- It is an overflow iff u is an infinity (since MPFR_RNDN was used).
- Alternatively, we could test the overflow flag, but in this case,
- mpfr_clear_flags would have been necessary. */
-
- if (MPFR_IS_INF (u)) /* overflow */
- {
- int sign_u = MPFR_SIGN (u);
-
- MPFR_LOG_MSG (("Overflow on x*y\n", 0));
- MPFR_GROUP_CLEAR (group); /* we no longer need u */
-
- /* Let's eliminate the obvious case where x*y and z have the
- same sign. No possible cancellation -> real overflow.
- Also, we know that |z| < 2^emax. If E(x) + E(y) >= emax+3,
- then |x*y| >= 2^(emax+1), and |x*y + z| > 2^emax. This case
- is also an overflow. */
- if (sign_u == MPFR_SIGN (z) || e >= __gmpfr_emax + 3)
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_overflow (s, rnd_mode, sign_u);
- }
- }
- else /* underflow: one has |x*y| < 2^(emin-1). */
- {
- MPFR_LOG_MSG (("Underflow on x*y\n", 0));
-
- /* Easy cases: when 2^(emin-1) <= 1/2 * min(ulp(z),ulp(s)),
- one can replace x*y by sign(x*y) * 2^(emin-1). Note that
- this is even true in case of equality for MPFR_RNDN thanks
- to the even-rounding rule.
- The + 1 on MPFR_PREC (s) is necessary because the exponent
- of the result can be EXP(z) - 1. */
- if (MPFR_GET_EXP (z) - __gmpfr_emin >=
- MAX (MPFR_PREC (z), MPFR_PREC (s) + 1))
- {
- MPFR_PREC (u) = MPFR_PREC_MIN;
- mpfr_setmin (u, __gmpfr_emin);
- MPFR_SET_SIGN (u, MPFR_MULT_SIGN (MPFR_SIGN (x),
- MPFR_SIGN (y)));
- mpfr_clear_flags ();
- goto add;
- }
-
- MPFR_GROUP_CLEAR (group); /* we no longer need u */
- }
-
- /* Let's use UBF to resolve the overflow/underflow issues. */
- {
- mpfr_ubf_t uu;
- mp_size_t un;
- mpfr_limb_ptr up;
- MPFR_TMP_DECL(marker);
-
- MPFR_LOG_MSG (("Use UBF\n", 0));
-
- MPFR_TMP_MARK (marker);
- un = MPFR_LIMB_SIZE (x) + MPFR_LIMB_SIZE (y);
- MPFR_TMP_INIT (up, uu, (mpfr_prec_t) un * GMP_NUMB_BITS, un);
- mpfr_ubf_mul_exact (uu, x, y);
- mpfr_clear_flags ();
- inexact = mpfr_add (s, (mpfr_srcptr) uu, z, rnd_mode);
- MPFR_UBF_CLEAR_EXP (uu);
- MPFR_TMP_FREE (marker);
- }
- }
- else
- {
- add:
- inexact = mpfr_add (s, u, z, rnd_mode);
- MPFR_GROUP_CLEAR (group);
- }
-
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (s, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fmma.c b/Build/source/libs/mpfr/mpfr-src/src/fmma.c
deleted file mode 100644
index 492e545e58f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fmma.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* mpfr_fmma, mpfr_fmms -- Compute a*b +/- c*d
-
-Copyright 2014-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* compute a*b+c*d if neg=0 (fmma), a*b-c*d otherwise (fmms) */
-static int
-mpfr_fmma_aux (mpfr_ptr z, mpfr_srcptr a, mpfr_srcptr b, mpfr_srcptr c,
- mpfr_srcptr d, mpfr_rnd_t rnd, int neg)
-{
- mpfr_ubf_t u, v;
- mpfr_t zz;
- mpfr_prec_t prec_z = MPFR_PREC(z);
- mp_size_t un, vn;
- mpfr_limb_ptr up, vp, zp;
- int inex;
- MPFR_TMP_DECL(marker);
-
- MPFR_LOG_FUNC
- (("a[%Pu]=%.*Rg b[%Pu]=%.*Rg c[%Pu]=%.*Rg d[%Pu]=%.*Rg rnd=%d neg=%d",
- mpfr_get_prec (a), mpfr_log_prec, a,
- mpfr_get_prec (b), mpfr_log_prec, b,
- mpfr_get_prec (c), mpfr_log_prec, c,
- mpfr_get_prec (d), mpfr_log_prec, d, rnd, neg),
- ("z[%Pu]=%.*Rg inex=%d",
- mpfr_get_prec (z), mpfr_log_prec, z, inex));
-
- MPFR_TMP_MARK (marker);
-
- un = MPFR_LIMB_SIZE (a) + MPFR_LIMB_SIZE (b);
- vn = MPFR_LIMB_SIZE (c) + MPFR_LIMB_SIZE (d);
- MPFR_TMP_INIT (up, u, (mpfr_prec_t) un * GMP_NUMB_BITS, un);
- MPFR_TMP_INIT (vp, v, (mpfr_prec_t) vn * GMP_NUMB_BITS, vn);
-
- mpfr_ubf_mul_exact (u, a, b);
- mpfr_ubf_mul_exact (v, c, d);
- if (prec_z == MPFR_PREC(a) && prec_z == MPFR_PREC(b) &&
- prec_z == MPFR_PREC(c) && prec_z == MPFR_PREC(d) &&
- un == MPFR_PREC2LIMBS(2 * prec_z))
- {
- MPFR_TMP_INIT (zp, zz, 2 * prec_z, un);
- MPFR_PREC(u) = MPFR_PREC(v) = 2 * prec_z;
- inex = (neg == 0) ? mpfr_add (zz, (mpfr_srcptr) u, (mpfr_srcptr) v, rnd)
- : mpfr_sub (zz, (mpfr_srcptr) u, (mpfr_srcptr) v, rnd);
- inex = mpfr_set_1_2 (z, zz, rnd, inex);
- }
- else
- inex = (neg == 0) ? mpfr_add (z, (mpfr_srcptr) u, (mpfr_srcptr) v, rnd)
- : mpfr_sub (z, (mpfr_srcptr) u, (mpfr_srcptr) v, rnd);
-
- MPFR_UBF_CLEAR_EXP (u);
- MPFR_UBF_CLEAR_EXP (v);
-
- MPFR_TMP_FREE (marker);
-
- return inex;
-}
-
-/* z <- a*b + c*d */
-int
-mpfr_fmma (mpfr_ptr z, mpfr_srcptr a, mpfr_srcptr b, mpfr_srcptr c,
- mpfr_srcptr d, mpfr_rnd_t rnd)
-{
- return mpfr_fmma_aux (z, a, b, c, d, rnd, 0);
-}
-
-/* z <- a*b - c*d */
-int
-mpfr_fmms (mpfr_ptr z, mpfr_srcptr a, mpfr_srcptr b, mpfr_srcptr c,
- mpfr_srcptr d, mpfr_rnd_t rnd)
-{
- return mpfr_fmma_aux (z, a, b, c, d, rnd, 1);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fms.c b/Build/source/libs/mpfr/mpfr-src/src/fms.c
deleted file mode 100644
index c3fc311c14c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fms.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* mpfr_fms -- Floating multiply-subtract
-
-Copyright 2001-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* The fused-multiply-subtract (fms) of x, y and z is defined by:
- fms(x,y,z)= x*y - z
- Note: this is neither in IEEE 754-2008, nor in LIA-2, but both the
- PowerPC and the Itanium define fms as x*y - z.
-*/
-int
-mpfr_fms (mpfr_ptr s, mpfr_srcptr x, mpfr_srcptr y, mpfr_srcptr z,
- mpfr_rnd_t rnd_mode)
-{
- mpfr_t minus_z;
-
- MPFR_ALIAS (minus_z, z, -MPFR_SIGN(z), MPFR_EXP(z));
- return mpfr_fma (s, x, y, minus_z, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/fpif.c b/Build/source/libs/mpfr/mpfr-src/src/fpif.c
deleted file mode 100644
index df775dbd7ae..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/fpif.c
+++ /dev/null
@@ -1,634 +0,0 @@
-/* mpfr_fpif -- Binary export & import of MPFR numbers
- (floating-point interchange format)
-
-Copyright 2012-2020 Free Software Foundation, Inc.
-Contributed by Olivier Demengeon.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#if !defined (HAVE_BIG_ENDIAN) && !defined (HAVE_LITTLE_ENDIAN)
-#error "Endianness is unknown. Not supported yet."
-#endif
-
-/* The format is described as follows. Any multi-byte number is encoded
- in little endian.
-
- 1. We first store the precision p (this format is able to represent
- any precision from 1 to 2^64 + 248).
- Let B be the first byte (0 <= B <= 255).
- * If B >= 8, the precision p is B-7.
- Here, the condition is equivalent to 1 <= p <= 248.
- * If B <= 7, the next B+1 bytes contain p-249.
- Here, the condition is equivalent to 249 <= p <= 2^64 + 248.
- We will use the following macros:
- * MPFR_MAX_PRECSIZE = 7
- * MPFR_MAX_EMBEDDED_PRECISION = 255 - 7 = 248
-
- 2. Then we store the sign bit and exponent related information
- (possibly a special value). We first have byte A = [seeeeeee],
- where s is the sign bit and E = [eeeeeee] such that:
- * If 0 <= E <= 94, then the exponent e is E-47 (-47 <= e <= 47).
- * If 95 <= E <= 110, the exponent is stored in the next E-94 bytes
- (1 to 16 bytes) in sign + absolute value representation,
- where the absolute value is increased by 47 (e <= -47 or 47 <= e).
- * If 111 <= E <= 118, the exponent size S is stored in the next
- E-110 bytes (1 to 8), then the exponent itself is stored in the
- next S bytes. [Not implemented yet]
- * If 119 <= E <= 127, we have a special value:
- E = 119 (MPFR_KIND_ZERO) for a signed zero;
- E = 120 (MPFR_KIND_INF) for a signed infinity;
- E = 121 (MPFR_KIND_NAN) for NaN.
-
- 3. Then we store the significand (for regular values).
-
- The sign bit is preserved by the import/export functions, even for NaN.
-
- Note: When a size is stored, it must be minimal, i.e. a number cannot
- start with a null byte. Otherwise the import may fail.
-*/
-
-#define MPFR_MAX_PRECSIZE 7
-#define MPFR_MAX_EMBEDDED_PRECISION (255 - MPFR_MAX_PRECSIZE)
-
-#define MPFR_KIND_ZERO 119
-#define MPFR_KIND_INF 120
-#define MPFR_KIND_NAN 121
-#define MPFR_MAX_EMBEDDED_EXPONENT 47
-#define MPFR_EXTERNAL_EXPONENT 94
-
-/* Begin: Low level helper functions */
-
-/* storage must have an unsigned type */
-#define COUNT_NB_BYTE(storage, size) \
- do \
- { \
- (storage) >>= 8; \
- (size)++; \
- } \
- while ((storage) != 0)
-
-#define ALLOC_RESULT(buffer, buffer_size, wanted_size) \
- do \
- { \
- if ((buffer) == NULL || *(buffer_size) < (wanted_size)) \
- { \
- (buffer) = (unsigned char *) mpfr_reallocate_func \
- ((buffer), *(buffer_size), (wanted_size)); \
- MPFR_ASSERTN((buffer) != 0); \
- } \
- *(buffer_size) = (wanted_size); \
- } \
- while (0)
-
-/*
- * size in byte of a MPFR number in a binary object of a variable size
- */
-#define MAX_VARIABLE_STORAGE(exponent_size, precision) \
- ((size_t)(((precision) >> 3) + (exponent_size) + \
- ((precision) > 248 ? sizeof(mpfr_prec_t) : 0) + 3))
-
-/* copy in result[] the values in data[] with a different endianness,
- where data_size might be smaller than data_max_size, so that we only
- copy data_size bytes from the end of data[]. */
-static void
-#if defined (HAVE_BIG_ENDIAN)
-putLittleEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#elif defined (HAVE_LITTLE_ENDIAN)
-putBigEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#endif
-{
- size_t j;
-
- MPFR_ASSERTD (data_size <= data_max_size);
- for (j = 0; j < data_size; j++)
- result[j] = data[data_max_size - j - 1];
-}
-
-/* copy in result[] the values in data[] with the same endianness */
-static void
-#if defined (HAVE_BIG_ENDIAN)
-putBigEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#elif defined (HAVE_LITTLE_ENDIAN)
-putLittleEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#endif
-{
- MPFR_ASSERTD (data_size <= data_max_size);
- memcpy (result, data, data_size);
-}
-
-/* copy in result[] the values in data[] with a different endianness;
- the data are written at the end of the result[] buffer (if
- data_size < data_max_size, the first bytes of result[] are
- left untouched). */
-static void
-#if defined (HAVE_BIG_ENDIAN)
-getLittleEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#elif defined (HAVE_LITTLE_ENDIAN)
-getBigEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#endif
-{
- size_t j;
-
- MPFR_ASSERTD (data_size <= data_max_size);
- for (j = 0; j < data_size; j++)
- result[data_max_size - j - 1] = data[j];
-}
-
-/* copy in result[] the values in data[] with the same endianness */
-static void
-#if defined (HAVE_BIG_ENDIAN)
-getBigEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#elif defined (HAVE_LITTLE_ENDIAN)
-getLittleEndianData (unsigned char *result, unsigned char *data,
- size_t data_max_size, size_t data_size)
-#endif
-{
- MPFR_ASSERTD (data_size <= data_max_size);
- memcpy (result, data, data_size);
-}
-
-/* End: Low level helper functions */
-
-/* Internal Function */
-/*
- * buffer : OUT : store the precision in binary format, can be null
- * (may be reallocated if too small)
- * buffer_size : IN/OUT : size of the buffer => size used in the buffer
- * precision : IN : precision to store
- * return pointer to a buffer storing the precision in binary format
- */
-static unsigned char *
-mpfr_fpif_store_precision (unsigned char *buffer, size_t *buffer_size,
- mpfr_prec_t precision)
-{
- unsigned char *result;
- size_t size_precision;
-
- MPFR_ASSERTD (precision >= 1);
- size_precision = 0;
-
- if (precision > MPFR_MAX_EMBEDDED_PRECISION)
- {
- mpfr_uprec_t copy_precision;
-
- copy_precision = precision - (MPFR_MAX_EMBEDDED_PRECISION + 1);
- COUNT_NB_BYTE(copy_precision, size_precision);
- }
-
- result = buffer;
- ALLOC_RESULT(result, buffer_size, size_precision + 1);
-
- if (precision > MPFR_MAX_EMBEDDED_PRECISION)
- {
- result[0] = size_precision - 1;
- precision -= (MPFR_MAX_EMBEDDED_PRECISION + 1);
- putLittleEndianData (result + 1, (unsigned char *) &precision,
- sizeof(mpfr_prec_t), size_precision);
- }
- else
- result[0] = precision + MPFR_MAX_PRECSIZE;
-
- return result;
-}
-
-#define BUFFER_SIZE 8
-
-/*
- * fh : IN : file handler
- * return the precision stored in the binary buffer, 0 in case of error
- */
-static mpfr_prec_t
-mpfr_fpif_read_precision_from_file (FILE *fh)
-{
- mpfr_prec_t precision;
- size_t precision_size;
- unsigned char buffer[BUFFER_SIZE];
-
- if (fh == NULL)
- return 0;
-
- if (fread (buffer, 1, 1, fh) != 1)
- return 0;
-
- precision_size = buffer[0];
- if (precision_size > MPFR_MAX_PRECSIZE)
- return precision_size - MPFR_MAX_PRECSIZE;
-
- precision_size++;
- MPFR_ASSERTD (precision_size <= BUFFER_SIZE);
-
- /* Read the precision in little-endian format. */
- if (fread (buffer, precision_size, 1, fh) != 1)
- return 0;
-
- /* Justification of the #if below. */
- MPFR_ASSERTD (precision_size <= MPFR_MAX_PRECSIZE + 1);
-
-#if (MPFR_MAX_PRECSIZE + 1) * CHAR_BIT > MPFR_PREC_BITS
- while (precision_size > sizeof(mpfr_prec_t))
- {
- if (buffer[precision_size-1] != 0)
- return 0; /* the read precision doesn't fit in a mpfr_prec_t */
- precision_size--;
- }
-#endif
-
- /* To detect bugs affecting particular platforms (thus MPFR_ASSERTN)... */
- MPFR_ASSERTN (precision_size <= sizeof(mpfr_prec_t));
-
- /* Since mpfr_prec_t is signed, one also needs to check that the
- most significant bit of the corresponding unsigned value is 0. */
- if (precision_size == sizeof(mpfr_prec_t) &&
- buffer[precision_size-1] >= 0x80)
- return 0; /* the read precision doesn't fit in a mpfr_prec_t */
-
- precision = 0; /* to pad with 0's if data_size < data_max_size */
-
- /* On big-endian machines, the data must be copied at the end of the
- precision object in the memory; thus data_max_size (3rd argument)
- must be sizeof(mpfr_prec_t). */
- getLittleEndianData ((unsigned char *) &precision, buffer,
- sizeof(mpfr_prec_t), precision_size);
-
- return precision + (MPFR_MAX_EMBEDDED_PRECISION + 1);
-}
-
-/*
- * buffer : OUT : store the kind of the MPFR number x, its sign, the size of
- * its exponent and its exponent value in a binary format,
- * can be null (may be reallocated if too small)
- * buffer_size : IN/OUT : size of the buffer => size used in the buffer
- * x : IN : MPFR number
- * return pointer to a buffer storing the kind of the MPFR number x, its sign,
- * the size of its exponent and its exponent value in a binary format,
- */
-/* TODO
- * Exponents that use more than 16 bytes are not managed (not an issue
- * until one has integer types larger than 128 bits).
- */
-static unsigned char*
-mpfr_fpif_store_exponent (unsigned char *buffer, size_t *buffer_size, mpfr_t x)
-{
- unsigned char *result;
- mpfr_uexp_t uexp;
- size_t exponent_size;
-
- exponent_size = 0;
-
- if (MPFR_IS_PURE_FP (x))
- {
- mpfr_exp_t exponent = MPFR_GET_EXP (x);
-
- if (exponent > MPFR_MAX_EMBEDDED_EXPONENT ||
- exponent < -MPFR_MAX_EMBEDDED_EXPONENT)
- {
- mpfr_uexp_t copy_exponent, exp_sign_bit;
-
- uexp = SAFE_ABS (mpfr_uexp_t, exponent)
- - MPFR_MAX_EMBEDDED_EXPONENT;
-
- /* Shift uexp to take the sign bit of the exponent into account.
- Because of constraints on the valid exponents, this cannot
- overflow (check with an MPFR_ASSERTD). */
- copy_exponent = uexp << 1;
- MPFR_ASSERTD (copy_exponent > uexp);
- COUNT_NB_BYTE(copy_exponent, exponent_size);
- MPFR_ASSERTN (exponent_size <= 16); /* see TODO */
-
- /* Sign bit of the exponent. */
- exp_sign_bit = (mpfr_uexp_t) 1 << (8 * exponent_size - 1);
- MPFR_ASSERTD (uexp < exp_sign_bit);
- if (exponent < 0)
- uexp |= exp_sign_bit;
- }
- else
- uexp = exponent + MPFR_MAX_EMBEDDED_EXPONENT;
- }
-
- result = buffer;
- ALLOC_RESULT(result, buffer_size, exponent_size + 1);
-
- if (MPFR_IS_PURE_FP (x))
- {
- if (exponent_size == 0)
- result[0] = uexp;
- else
- {
- result[0] = MPFR_EXTERNAL_EXPONENT + exponent_size;
-
- putLittleEndianData (result + 1, (unsigned char *) &uexp,
- sizeof(mpfr_exp_t), exponent_size);
- }
- }
- else if (MPFR_IS_ZERO (x))
- result[0] = MPFR_KIND_ZERO;
- else if (MPFR_IS_INF (x))
- result[0] = MPFR_KIND_INF;
- else
- {
- MPFR_ASSERTD (MPFR_IS_NAN (x));
- result[0] = MPFR_KIND_NAN;
- }
-
- /* Set the sign, even for NaN. */
- if (MPFR_IS_NEG (x))
- result[0] |= 0x80;
-
- return result;
-}
-
-/*
- * x : OUT : MPFR number extracted from the binary buffer
- * fh : IN : file handler (should not be NULL)
- * return 0 if successful
- */
-/* TODO
- * Exponents that use more than 16 bytes are not managed (this is not
- * an issue if the data were written by MPFR with mpfr_exp_t not larger
- * than 128 bits).
- */
-static int
-mpfr_fpif_read_exponent_from_file (mpfr_t x, FILE * fh)
-{
- mpfr_exp_t exponent;
- mpfr_uexp_t uexp;
- size_t exponent_size;
- int sign;
- unsigned char buffer[sizeof(mpfr_exp_t)];
-
- MPFR_ASSERTD(fh != NULL);
-
- if (fread (buffer, 1, 1, fh) != 1)
- return 1;
-
- /* sign value that can be used with MPFR_SET_SIGN,
- mpfr_set_zero and mpfr_set_inf */
- sign = (buffer[0] & 0x80) ? MPFR_SIGN_NEG : MPFR_SIGN_POS;
- /* Set the sign, even for NaN. */
- MPFR_SET_SIGN (x, sign);
-
- exponent = buffer[0] & 0x7F;
- exponent_size = 1;
-
- if (exponent > MPFR_EXTERNAL_EXPONENT && exponent < MPFR_KIND_ZERO)
- {
- mpfr_uexp_t exp_sign_bit;
-
- exponent_size = exponent - MPFR_EXTERNAL_EXPONENT;
-
- /* A failure is acceptable when the exponent starts with leading zeros,
- even if it would fit in mpfr_exp_t (see format description). */
- if (MPFR_UNLIKELY (exponent_size > 16 /* see TODO */ ||
- exponent_size > sizeof(mpfr_exp_t)))
- return 1;
-
- if (MPFR_UNLIKELY (fread (buffer, exponent_size, 1, fh) != 1))
- return 1;
-
- uexp = 0;
- getLittleEndianData ((unsigned char *) &uexp, buffer,
- sizeof(mpfr_exp_t), exponent_size);
-
- /* Sign bit of the exponent. */
- exp_sign_bit = uexp & ((mpfr_uexp_t) 1 << (8 * exponent_size - 1));
-
- uexp &= ~exp_sign_bit;
- uexp += MPFR_MAX_EMBEDDED_EXPONENT;
- if (MPFR_UNLIKELY (uexp > MPFR_EMAX_MAX && uexp > -MPFR_EMIN_MIN))
- return 1;
-
- exponent = exp_sign_bit ? - (mpfr_exp_t) uexp : (mpfr_exp_t) uexp;
- if (MPFR_UNLIKELY (! MPFR_EXP_IN_RANGE (exponent)))
- return 1;
- MPFR_SET_EXP (x, exponent);
-
- exponent_size++;
- }
- else if (exponent == MPFR_KIND_ZERO)
- MPFR_SET_ZERO (x);
- else if (exponent == MPFR_KIND_INF)
- MPFR_SET_INF (x);
- else if (exponent == MPFR_KIND_NAN)
- MPFR_SET_NAN (x);
- else if (exponent <= MPFR_EXTERNAL_EXPONENT)
- {
- exponent -= MPFR_MAX_EMBEDDED_EXPONENT;
- if (MPFR_UNLIKELY (! MPFR_EXP_IN_RANGE (exponent)))
- return 1;
- MPFR_SET_EXP (x, exponent);
- }
- else
- return 1;
-
- return 0;
-}
-
-/*
- * buffer : OUT : store the limb of the MPFR number x in a binary format,
- * can be null (may be reallocated if too small)
- * buffer_size : IN/OUT : size of the buffer => size used in the buffer
- * x : IN : MPFR number
- * return pointer to a buffer storing the limb of the MPFR number x in a binary
- * format
- */
-static unsigned char*
-mpfr_fpif_store_limbs (unsigned char *buffer, size_t *buffer_size, mpfr_t x)
-{
- unsigned char *result;
- mpfr_prec_t precision;
- size_t nb_byte;
- size_t nb_limb, mp_bytes_per_limb;
- size_t nb_partial_byte;
- size_t i, j;
-
- precision = mpfr_get_prec (x);
- nb_byte = (precision + 7) >> 3;
- mp_bytes_per_limb = mp_bits_per_limb >> 3;
- nb_partial_byte = nb_byte % mp_bytes_per_limb;
- nb_limb = (nb_byte + mp_bytes_per_limb - 1) / mp_bytes_per_limb;
-
- result = buffer;
- ALLOC_RESULT(result, buffer_size, nb_byte);
-
- putBigEndianData (result, (unsigned char*) MPFR_MANT(x),
- sizeof(mp_limb_t), nb_partial_byte);
- for (i = nb_partial_byte, j = (nb_partial_byte == 0) ? 0 : 1; j < nb_limb;
- i += mp_bytes_per_limb, j++)
- putLittleEndianData (result + i, (unsigned char*) (MPFR_MANT(x) + j),
- sizeof(mp_limb_t), sizeof(mp_limb_t));
-
- return result;
-}
-
-/*
- * x : OUT : MPFR number extracted from the binary buffer, should have the same
- * precision than the number in the binary format
- * buffer : IN : limb of the MPFR number x in a binary format
- * nb_byte : IN : size of the buffer (in bytes)
- * Assume buffer is not NULL.
- */
-static void
-mpfr_fpif_read_limbs (mpfr_t x, unsigned char *buffer, size_t nb_byte)
-{
- size_t mp_bytes_per_limb;
- size_t nb_partial_byte;
- size_t i, j;
-
- MPFR_ASSERTD (buffer != NULL);
-
- mp_bytes_per_limb = mp_bits_per_limb >> 3;
- nb_partial_byte = nb_byte % mp_bytes_per_limb;
-
- if (nb_partial_byte > 0)
- {
- memset (MPFR_MANT(x), 0, sizeof(mp_limb_t));
- getBigEndianData ((unsigned char*) MPFR_MANT(x), buffer,
- sizeof(mp_limb_t), nb_partial_byte);
- }
- for (i = nb_partial_byte, j = (nb_partial_byte == 0) ? 0 : 1; i < nb_byte;
- i += mp_bytes_per_limb, j++)
- getLittleEndianData ((unsigned char*) (MPFR_MANT(x) + j), buffer + i,
- sizeof(mp_limb_t), sizeof(mp_limb_t));
-}
-
-/* External Function */
-/*
- * fh : IN : file handler
- * x : IN : MPFR number to put in the file
- * return 0 if successful
- */
-int
-mpfr_fpif_export (FILE *fh, mpfr_t x)
-{
- int status;
- unsigned char *buf;
- unsigned char *bufResult;
- size_t used_size, buf_size;
-
- if (fh == NULL)
- return -1;
-
- buf_size = MAX_VARIABLE_STORAGE(sizeof(mpfr_exp_t), mpfr_get_prec (x));
- buf = (unsigned char*) mpfr_allocate_func (buf_size);
- MPFR_ASSERTN(buf != NULL);
-
- used_size = buf_size;
- buf = mpfr_fpif_store_precision (buf, &used_size, mpfr_get_prec (x));
- used_size > buf_size ? buf_size = used_size : 0;
- status = fwrite (buf, used_size, 1, fh);
- if (status != 1)
- {
- mpfr_free_func (buf, buf_size);
- return -1;
- }
- used_size = buf_size;
- bufResult = mpfr_fpif_store_exponent (buf, &used_size, x);
- /* bufResult cannot be NULL: if reallocation failed in
- mpfr_fpif_store_exponent, an assertion failed */
- buf = bufResult;
- used_size > buf_size ? buf_size = used_size : 0;
- status = fwrite (buf, used_size, 1, fh);
- if (status != 1)
- {
- mpfr_free_func (buf, buf_size);
- return -1;
- }
-
- if (mpfr_regular_p (x))
- {
- used_size = buf_size;
- buf = mpfr_fpif_store_limbs (buf, &used_size, x);
- used_size > buf_size ? buf_size = used_size : 0;
- status = fwrite (buf, used_size, 1, fh);
- if (status != 1)
- {
- mpfr_free_func (buf, buf_size);
- return -1;
- }
- }
-
- mpfr_free_func (buf, buf_size);
- return 0;
-}
-
-/*
- * x : IN/OUT : MPFR number extracted from the file, its precision is reset to
- * be able to hold the number
- * fh : IN : file handler
- * Return 0 if the import was successful.
- */
-int
-mpfr_fpif_import (mpfr_t x, FILE *fh)
-{
- int status;
- mpfr_prec_t precision;
- unsigned char *buffer;
- size_t used_size;
-
- precision = mpfr_fpif_read_precision_from_file (fh);
- if (precision == 0) /* precision = 0 means an error */
- return -1;
- MPFR_ASSERTD(fh != NULL); /* checked by mpfr_fpif_read_precision_from_file */
- if (precision > MPFR_PREC_MAX)
- return -1;
- MPFR_STAT_STATIC_ASSERT (MPFR_PREC_MIN == 1); /* as specified */
- mpfr_set_prec (x, precision);
-
- status = mpfr_fpif_read_exponent_from_file (x, fh);
- if (status != 0)
- {
- mpfr_set_nan (x);
- return -1;
- }
-
- /* Warning! The significand of x is not set yet. Thus use MPFR_IS_SINGULAR
- for the test. */
- if (!MPFR_IS_SINGULAR (x))
- {
- /* For portability, we need to consider bytes with only 8 significant
- bits in the interchange format. That's OK because CHAR_BIT >= 8.
- But the implementation is currently not clear when CHAR_BIT > 8.
- This may have never been tested. For safety, require CHAR_BIT == 8,
- and test/adapt the code if this ever fails. */
- MPFR_STAT_STATIC_ASSERT (CHAR_BIT == 8);
- MPFR_STAT_STATIC_ASSERT ((MPFR_PREC_MAX + 7) >> 3 <= (size_t) -1);
- used_size = (precision + 7) >> 3; /* ceil(precision/8) */
- buffer = (unsigned char*) mpfr_allocate_func (used_size);
- MPFR_ASSERTN(buffer != NULL);
- status = fread (buffer, used_size, 1, fh);
- if (status != 1)
- {
- mpfr_free_func (buffer, used_size);
- mpfr_set_nan (x);
- return -1;
- }
- mpfr_fpif_read_limbs (x, buffer, used_size);
- mpfr_free_func (buffer, used_size);
- }
-
- return 0;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/frac.c b/Build/source/libs/mpfr/mpfr-src/src/frac.c
deleted file mode 100644
index bf82cc6d46b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/frac.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* mpfr_frac -- Fractional part of a floating-point number.
-
-Copyright 2002-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Optimization note: it is not a good idea to call mpfr_integer_p,
- as some cases will take longer (the number may be parsed twice). */
-
-int
-mpfr_frac (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t re, ue;
- mpfr_prec_t uq;
- mp_size_t un, tn, t0;
- mp_limb_t *up, *tp, k;
- int sh;
- mpfr_t tmp;
- mpfr_ptr t;
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Special cases */
- if (MPFR_UNLIKELY(MPFR_IS_NAN(u)))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- else if (MPFR_UNLIKELY(MPFR_IS_INF(u) || mpfr_integer_p (u)))
- {
- MPFR_SET_SAME_SIGN(r, u);
- MPFR_SET_ZERO(r);
- MPFR_RET(0); /* zero is exact */
- }
-
- ue = MPFR_GET_EXP (u);
- if (ue <= 0) /* |u| < 1 */
- return mpfr_set (r, u, rnd_mode);
-
- /* Now |u| >= 1, meaning that an overflow is not possible. */
-
- uq = MPFR_PREC(u);
- un = (uq - 1) / GMP_NUMB_BITS; /* index of most significant limb */
- un -= (mp_size_t) (ue / GMP_NUMB_BITS);
- /* now the index of the MSL containing bits of the fractional part */
-
- up = MPFR_MANT(u);
- sh = ue % GMP_NUMB_BITS;
- k = up[un] << sh;
- /* the first bit of the fractional part is the MSB of k */
-
- if (k != 0)
- {
- int cnt;
-
- count_leading_zeros(cnt, k);
- /* first bit 1 of the fractional part -> MSB of the number */
- re = -cnt;
- sh += cnt;
- MPFR_ASSERTN (sh < GMP_NUMB_BITS);
- k <<= cnt;
- }
- else
- {
- re = sh - GMP_NUMB_BITS;
- /* searching for the first bit 1 (exists since u isn't an integer) */
- while (up[--un] == 0)
- re -= GMP_NUMB_BITS;
- MPFR_ASSERTN(un >= 0);
- k = up[un];
- count_leading_zeros(sh, k);
- re -= sh;
- k <<= sh;
- }
- /* The exponent of r will be re */
- /* un: index of the limb of u that contains the first bit 1 of the FP */
-
- t = (mp_size_t) (MPFR_PREC(r) - 1) / GMP_NUMB_BITS < un ?
- (mpfr_init2 (tmp, (un + 1) * GMP_NUMB_BITS), tmp) : r;
- /* t has enough precision to contain the fractional part of u */
- /* If we use a temporary variable, we take the non-significant bits
- of u into account, because of the mpn_lshift below. */
- MPFR_SET_SAME_SIGN(t, u);
-
- /* Put the fractional part of u into t */
- tn = (MPFR_PREC(t) - 1) / GMP_NUMB_BITS;
- MPFR_ASSERTN(tn >= un);
- t0 = tn - un;
- tp = MPFR_MANT(t);
- if (sh == 0)
- mpn_copyd (tp + t0, up, un + 1);
- else /* warning: un may be 0 here */
- tp[tn] = k | ((un) ? mpn_lshift (tp + t0, up, un, sh) : MPFR_LIMB_ZERO);
- if (t0 > 0)
- MPN_ZERO(tp, t0);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- if (t != r)
- { /* t is tmp */
- MPFR_EXP (t) = 0; /* should be re, but not necessarily in the range */
- inex = mpfr_set (r, t, rnd_mode); /* no underflow */
- mpfr_clear (t);
- MPFR_EXP (r) += re;
- }
- else
- { /* There may be remaining non-significant bits in t (= r). */
- int carry;
-
- MPFR_EXP (r) = re;
- carry = mpfr_round_raw (tp, tp,
- (mpfr_prec_t) (tn + 1) * GMP_NUMB_BITS,
- MPFR_IS_NEG (r), MPFR_PREC (r), rnd_mode,
- &inex);
- if (carry)
- {
- tp[tn] = MPFR_LIMB_HIGHBIT;
- MPFR_EXP (r) ++;
- }
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inex, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/free_cache.c b/Build/source/libs/mpfr/mpfr-src/src/free_cache.c
deleted file mode 100644
index 7671949a337..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/free_cache.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* mpfr_free_cache... - Free cache/pool memory used by MPFR.
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* These caches may be global to all threads or local to the current one. */
-static void
-mpfr_free_const_caches (void)
-{
-#ifndef MPFR_USE_LOGGING
- mpfr_clear_cache (__gmpfr_cache_const_pi);
- mpfr_clear_cache (__gmpfr_cache_const_log2);
-#else
- mpfr_clear_cache (__gmpfr_normal_pi);
- mpfr_clear_cache (__gmpfr_normal_log2);
- mpfr_clear_cache (__gmpfr_logging_pi);
- mpfr_clear_cache (__gmpfr_logging_log2);
-#endif
- mpfr_clear_cache (__gmpfr_cache_const_euler);
- mpfr_clear_cache (__gmpfr_cache_const_catalan);
-}
-
-/* These caches/pools are always local to a thread. */
-static void
-mpfr_free_local_cache (void)
-{
- /* Before freeing the mpz_t pool, we need to free any cache of
- mpz_t numbers, since freeing such a cache may add entries to
- the mpz_t pool. */
- mpfr_bernoulli_freecache ();
- mpfr_free_pool ();
-}
-
-void
-mpfr_free_cache (void)
-{
- mpfr_free_local_cache ();
- mpfr_free_const_caches ();
-}
-
-void
-mpfr_free_cache2 (mpfr_free_cache_t way)
-{
- if ((unsigned int) way & MPFR_FREE_LOCAL_CACHE)
- {
- mpfr_free_local_cache ();
-#if !defined(MPFR_WANT_SHARED_CACHE)
- mpfr_free_const_caches ();
-#endif
- }
- if ((unsigned int) way & MPFR_FREE_GLOBAL_CACHE)
- {
-#if defined(MPFR_WANT_SHARED_CACHE)
- mpfr_free_const_caches ();
-#endif
- }
-}
-
-/* Function an application should call before mp_set_memory_functions().
- This is currently equivalent to freeing the caches (and pools) since
- they are allocated with GMP's current allocator. But this might change
- in the future to avoid the drawback of having to free the caches just
- because the allocators are changed: the caches could optionally be
- allocated with malloc().
- This function returns 0 in case of success, non-zero in case of error.
- Errors are currently not possible. But let's avoid a prototype change
- in the future, in case errors would be possible. */
-int
-mpfr_mp_memory_cleanup (void)
-{
- mpfr_free_cache ();
- return 0;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/frexp.c b/Build/source/libs/mpfr/mpfr-src/src/frexp.c
deleted file mode 100644
index 17470429cb4..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/frexp.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* mpfr_frexp -- convert to integral and fractional parts
-
-Copyright 2011-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_frexp (mpfr_exp_t *exp, mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- int inex;
- mpfr_flags_t saved_flags = __gmpfr_flags;
- MPFR_BLOCK_DECL (flags);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("y[%Pu]=%.*Rg exp=%" MPFR_EXP_FSPEC "d inex=%d", mpfr_get_prec (y),
- mpfr_log_prec, y, (mpfr_eexp_t) *exp, inex));
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)))
- {
- if (MPFR_IS_NAN(x))
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN; /* exp is unspecified */
- }
- else if (MPFR_IS_INF(x))
- {
- MPFR_SET_INF(y);
- MPFR_SET_SAME_SIGN(y,x);
- MPFR_RET(0); /* exp is unspecified */
- }
- else
- {
- MPFR_SET_ZERO(y);
- MPFR_SET_SAME_SIGN(y,x);
- *exp = 0;
- MPFR_RET(0);
- }
- }
-
- MPFR_BLOCK (flags, inex = mpfr_set (y, x, rnd));
- __gmpfr_flags = saved_flags;
-
- /* Possible overflow due to the rounding, no possible underflow. */
-
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
- {
- int inex2;
-
- /* An overflow here means that the exponent of y would be larger than
- the one of x, thus x would be rounded to the next power of 2, and
- the returned y should be 1/2 in absolute value, rounded (i.e. with
- possible underflow or overflow). This also implies that x and y are
- different objects, so that the exponent of x has not been lost. */
- MPFR_LOG_MSG (("Internal overflow\n", 0));
- MPFR_ASSERTD (x != y);
- *exp = MPFR_GET_EXP (x) + 1;
- inex2 = mpfr_set_si_2exp (y, MPFR_INT_SIGN (x), -1, rnd);
- MPFR_LOG_MSG (("inex=%d inex2=%d\n", inex, inex2));
- if (inex2 != 0)
- inex = inex2;
- MPFR_RET (inex);
- }
-
- *exp = MPFR_GET_EXP (y);
- /* Do not use MPFR_SET_EXP because the range has not been checked yet. */
- MPFR_EXP (y) = 0;
- return mpfr_check_range (y, inex, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/gamma.c b/Build/source/libs/mpfr/mpfr-src/src/gamma.c
deleted file mode 100644
index 861bb0dfaaa..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/gamma.c
+++ /dev/null
@@ -1,481 +0,0 @@
-/* mpfr_gamma -- gamma function
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#define IS_GAMMA
-#include "lngamma.c"
-#undef IS_GAMMA
-
-/* return a sufficient precision such that 2-x is exact, assuming x < 0
- and x is not an integer */
-static mpfr_prec_t
-mpfr_gamma_2_minus_x_exact (mpfr_srcptr x)
-{
- /* Since x < 0, 2-x = 2+y with y := -x.
- If y < 2, a precision w >= PREC(y) + EXP(2)-EXP(y) = PREC(y) + 2 - EXP(y)
- is enough, since no overlap occurs in 2+y, so no carry happens.
- If y >= 2, either ULP(y) <= 2, and we need w >= PREC(y)+1 since a
- carry can occur, or ULP(y) > 2, and we need w >= EXP(y)-1:
- (a) if EXP(y) <= 1, w = PREC(y) + 2 - EXP(y)
- (b) if EXP(y) > 1 and EXP(y)-PREC(y) <= 1, w = PREC(y) + 1
- (c) if EXP(y) > 1 and EXP(y)-PREC(y) > 1, w = EXP(y) - 1.
-
- Note: case (c) cannot happen in practice since this would imply that
- y is integer, thus x is negative integer */
- return (MPFR_GET_EXP(x) <= 1) ? MPFR_PREC(x) + 2 - MPFR_GET_EXP(x)
- : MPFR_PREC(x) + 1;
-}
-
-/* return a sufficient precision such that 1-x is exact, assuming x < 1
- and x is not an integer */
-static mpfr_prec_t
-mpfr_gamma_1_minus_x_exact (mpfr_srcptr x)
-{
- if (MPFR_IS_POS(x))
- return MPFR_PREC(x) - MPFR_GET_EXP(x);
- else if (MPFR_GET_EXP(x) <= 0)
- return MPFR_PREC(x) + 1 - MPFR_GET_EXP(x);
- else /* necessarily MPFR_PREC(x) > MPFR_GET_EXP(x) since otherwise
- x would be an integer */
- return MPFR_PREC(x) + 1;
-}
-
-/* returns a lower bound of the number of significant bits of n!
- (not counting the low zero bits).
- We know n! >= (n/e)^n*sqrt(2*Pi*n) for n >= 1, and the number of zero bits
- is floor(n/2) + floor(n/4) + floor(n/8) + ...
- This approximation is exact for n <= 500000, except for n = 219536, 235928,
- 298981, 355854, 464848, 493725, 498992 where it returns a value 1 too small.
-*/
-static unsigned long
-bits_fac (unsigned long n)
-{
- mpfr_t x, y;
- unsigned long r, k;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_ASSERTD (n >= 1);
-
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_init2 (x, 38);
- mpfr_init2 (y, 38);
- mpfr_set_ui (x, n, MPFR_RNDZ);
- mpfr_set_str_binary (y, "10.101101111110000101010001011000101001"); /* upper bound of e */
- mpfr_div (x, x, y, MPFR_RNDZ);
- mpfr_pow_ui (x, x, n, MPFR_RNDZ);
- mpfr_const_pi (y, MPFR_RNDZ);
- mpfr_mul_ui (y, y, 2 * n, MPFR_RNDZ);
- mpfr_sqrt (y, y, MPFR_RNDZ);
- mpfr_mul (x, x, y, MPFR_RNDZ);
- mpfr_log2 (x, x, MPFR_RNDZ);
- r = mpfr_get_ui (x, MPFR_RNDU); /* lower bound on ceil(x) */
- for (k = 2; k <= n; k *= 2)
- {
- /* Note: the approximation is accurate enough so that the
- subtractions do not wrap. */
- MPFR_ASSERTD (r >= n / k);
- r -= n / k;
- }
- mpfr_clear (x);
- mpfr_clear (y);
- MPFR_SAVE_EXPO_FREE (expo);
-
- return r;
-}
-
-/* We use the reflection formula
- Gamma(1+t) Gamma(1-t) = - Pi t / sin(Pi (1 + t))
- in order to treat the case x <= 1,
- i.e. with x = 1-t, then Gamma(x) = -Pi*(1-x)/sin(Pi*(2-x))/GAMMA(2-x)
-*/
-int
-mpfr_gamma (mpfr_ptr gamma, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t xp, GammaTrial, tmp, tmp2;
- mpz_t fact;
- mpfr_prec_t realprec;
- int compared, is_integer;
- int inex = 0; /* 0 means: result gamma not set yet */
- MPFR_GROUP_DECL (group);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("gamma[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (gamma), mpfr_log_prec, gamma, inex));
-
- /* Trivial cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (gamma);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- if (MPFR_IS_NEG (x))
- {
- /* gamma(x) has a pole at negative integers, thus even if it goes to zero
- for other values, we return NaN */
- MPFR_SET_NAN (gamma);
- MPFR_RET_NAN;
- }
- else
- {
- MPFR_SET_INF (gamma);
- MPFR_SET_POS (gamma);
- MPFR_RET (0); /* exact */
- }
- }
- else /* x is zero */
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(x));
- MPFR_SET_INF(gamma);
- MPFR_SET_SAME_SIGN(gamma, x);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0); /* exact */
- }
- }
-
- /* Check for tiny arguments, where gamma(x) ~ 1/x - euler + ... can be
- approximated by 1/x, with some error term ~= - euler.
- We need to make sure that there are no breakpoints (discontinuity
- points of the rounding function) between gamma(x) and 1/x (included),
- where the possible breakpoints (for all rounding modes) are the numbers
- that fit on PREC(gamma)+1 bits. There will be a special case when |x|
- is a power of two, since such values are breakpoints. We will choose n
- minimum such that x fits on n bits and the breakpoints fit on n+1 bits,
- thus
- n = MAX(MPFR_PREC(x), MPFR_PREC(gamma)).
- We know from "Bound on Runs of Zeros and Ones for Algebraic Functions",
- Proceedings of Arith15, T. Lang and J.-M. Muller, 2001, that the maximal
- number of consecutive zeroes or ones after the round bit for 1/x is n-1
- for an input x of n bits [this is an actually much older result!].
- But we need a more precise lower bound. Assume that 1/x is near a
- breakpoint y. From the definition of n, the input x fits on n bits
- and the breakpoint y fits on of n+1 bits. We can write x = X*2^e,
- y = Y/2^f with X, Y integers of n and n+1 bits respectively.
- Thus X*Y^2^(e-f) is near 1, i.e., X*Y is near the integer 2^(f-e).
- Two cases can happen:
- (i) either X*Y is exactly 2^(f-e), but this can happen only if X and Y
- are themselves powers of two, i.e., x is a power of two;
- (ii) or X*Y is at distance at least one from 2^(f-e), thus
- |xy-1| >= 2^(e-f), or |y-1/x| >= 2^(e-f)/x = 2^(-f)/X >= 2^(-f-n).
- Since ufp(y) = 2^(n-f) [ufp = unit in first place], this means
- that the distance |y-1/x| >= 2^(-2n) ufp(y).
- Now, assuming |gamma(x)-1/x| < 1, which is true for 0 < x <= 1,
- if 2^(-2n) ufp(y) >= 1, then gamma(x) and 1/x round in the same
- way, so that rounding 1/x gives the correct result and correct
- (nonzero) ternary value.
- If x < 2^E, then y >= 2^(-E), thus ufp(y) >= 2^(-E).
- A sufficient condition is thus EXP(x) <= -2n, where
- n = MAX(MPFR_PREC(x), MPFR_PREC(gamma)).
- */
- /* TODO: The above proof uses the same precision for input and output.
- Without this assumption, one might obtain a bound like
- PREC(x) + PREC(y) instead of 2 MAX(PREC(x),PREC(y)). */
- /* TODO: Handle the very small arguments that do not satisfy the condition,
- by using the approximation 1/x - euler and a Ziv loop. Otherwise, after
- some tests, even Gamma(1+x)/x would be faster than the generic code. */
- if (MPFR_GET_EXP (x)
- <= -2 * (mpfr_exp_t) MAX(MPFR_PREC(x), MPFR_PREC(gamma)))
- {
- int sign = MPFR_SIGN (x); /* retrieve sign before possible override */
- int special;
- MPFR_BLOCK_DECL (flags);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* for overflow cases, see below; this needs to be done
- before x possibly gets overridden. */
- special =
- MPFR_GET_EXP (x) == 1 - MPFR_EMAX_MAX &&
- MPFR_IS_POS_SIGN (sign) &&
- MPFR_IS_LIKE_RNDD (rnd_mode, sign) &&
- mpfr_powerof2_raw (x);
-
- MPFR_BLOCK (flags, inex = mpfr_ui_div (gamma, 1, x, rnd_mode));
- if (inex == 0) /* |x| is a power of two */
- {
- /* return RND(1/x - euler) = RND(+/- 2^k - eps) with eps > 0 */
- if (rnd_mode == MPFR_RNDN || MPFR_IS_LIKE_RNDU (rnd_mode, sign))
- inex = 1;
- else
- {
- mpfr_nextbelow (gamma);
- inex = -1;
- }
- }
- else if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
- {
- /* Overflow in the division 1/x. This is a real overflow, except
- in RNDZ or RNDD when 1/x = 2^emax, i.e. x = 2^(-emax): due to
- the "- euler", the rounded value in unbounded exponent range
- is 0.111...11 * 2^emax (not an overflow). */
- if (!special)
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, flags);
- }
- MPFR_SAVE_EXPO_FREE (expo);
- /* Note: an overflow is possible with an infinite result;
- in this case, the overflow flag will automatically be
- restored by mpfr_check_range. */
- return mpfr_check_range (gamma, inex, rnd_mode);
- }
-
- is_integer = mpfr_integer_p (x);
- /* gamma(x) for x a negative integer gives NaN */
- if (is_integer && MPFR_IS_NEG(x))
- {
- MPFR_SET_NAN (gamma);
- MPFR_RET_NAN;
- }
-
- compared = mpfr_cmp_ui (x, 1);
- if (compared == 0)
- return mpfr_set_ui (gamma, 1, rnd_mode);
-
- /* if x is an integer that fits into an unsigned long, use mpfr_fac_ui
- if argument is not too large.
- If precision is p, fac_ui costs O(u*p), whereas gamma costs O(p*M(p)),
- so for u <= M(p), fac_ui should be faster.
- We approximate here M(p) by p*log(p)^2, which is not a bad guess.
- Warning: since the generic code does not handle exact cases,
- we want all cases where gamma(x) is exact to be treated here.
- */
- if (is_integer && mpfr_fits_ulong_p (x, MPFR_RNDN))
- {
- unsigned long int u;
- mpfr_prec_t p = MPFR_PREC(gamma);
- u = mpfr_get_ui (x, MPFR_RNDN);
- MPFR_ASSERTD (u >= 2);
- if (u < 44787929UL && bits_fac (u - 1) <= p + (rnd_mode == MPFR_RNDN))
- /* bits_fac: lower bound on the number of bits of m,
- where gamma(x) = (u-1)! = m*2^e with m odd. */
- return mpfr_fac_ui (gamma, u - 1, rnd_mode);
- /* if bits_fac(...) > p (resp. p+1 for rounding to nearest),
- then gamma(x) cannot be exact in precision p (resp. p+1).
- FIXME: remove the test u < 44787929UL after changing bits_fac
- to return a mpz_t or mpfr_t. */
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* check for overflow: according to (6.1.37) in Abramowitz & Stegun,
- gamma(x) >= exp(-x) * x^(x-1/2) * sqrt(2*Pi)
- >= 2 * (x/e)^x / x for x >= 1 */
- if (compared > 0)
- {
- mpfr_t yp, zp;
- mpfr_exp_t expxp;
- MPFR_BLOCK_DECL (flags);
- MPFR_GROUP_DECL (group);
-
- /* quick test for the default exponent range */
- if (mpfr_get_emax () >= 1073741823UL && MPFR_GET_EXP(x) <= 25)
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_gamma_aux (gamma, x, rnd_mode);
- }
-
- MPFR_GROUP_INIT_3 (group, 53, xp, yp, zp);
- /* 1/e rounded down to 53 bits */
- mpfr_set_str_binary (zp,
- "0.010111100010110101011000110110001011001110111100111");
- mpfr_mul (xp, x, zp, MPFR_RNDZ);
- mpfr_sub_ui (yp, x, 2, MPFR_RNDZ);
- mpfr_pow (xp, xp, yp, MPFR_RNDZ); /* (x/e)^(x-2) */
- mpfr_mul (xp, xp, zp, MPFR_RNDZ); /* x^(x-2) / e^(x-1) */
- mpfr_mul (xp, xp, zp, MPFR_RNDZ); /* x^(x-2) / e^x */
- mpfr_mul (xp, xp, x, MPFR_RNDZ); /* lower bound on x^(x-1) / e^x */
- MPFR_BLOCK (flags, mpfr_mul_2ui (xp, xp, 1, MPFR_RNDZ));
- expxp = MPFR_GET_EXP (xp);
- MPFR_GROUP_CLEAR (group);
- MPFR_SAVE_EXPO_FREE (expo);
- return MPFR_OVERFLOW (flags) || expxp > __gmpfr_emax ?
- mpfr_overflow (gamma, rnd_mode, 1) :
- mpfr_gamma_aux (gamma, x, rnd_mode);
- }
-
- /* now compared < 0 */
-
- /* check for underflow: for x < 1,
- gamma(x) = Pi*(x-1)/sin(Pi*(2-x))/gamma(2-x).
- Since gamma(2-x) >= 2 * ((2-x)/e)^(2-x) / (2-x), we have
- |gamma(x)| <= Pi*(1-x)*(2-x)/2/((2-x)/e)^(2-x) / |sin(Pi*(2-x))|
- <= 12 * ((2-x)/e)^x / |sin(Pi*(2-x))|.
- To avoid an underflow in ((2-x)/e)^x, we compute the logarithm.
- */
- if (MPFR_IS_NEG(x))
- {
- int underflow = 0, sgn, ck;
- mpfr_prec_t w;
-
- mpfr_init2 (xp, 53);
- mpfr_init2 (tmp, 53);
- mpfr_init2 (tmp2, 53);
- /* we want an upper bound for x * [log(2-x)-1].
- since x < 0, we need a lower bound on log(2-x) */
- mpfr_ui_sub (xp, 2, x, MPFR_RNDD);
- mpfr_log (xp, xp, MPFR_RNDD);
- mpfr_sub_ui (xp, xp, 1, MPFR_RNDD);
- mpfr_mul (xp, xp, x, MPFR_RNDU);
-
- /* we need an upper bound on 1/|sin(Pi*(2-x))|,
- thus a lower bound on |sin(Pi*(2-x))|.
- If 2-x is exact, then the error of Pi*(2-x) is (1+u)^2 with u = 2^(-p)
- thus the error on sin(Pi*(2-x)) is less than 1/2ulp + 3Pi(2-x)u,
- assuming u <= 1, thus <= u + 3Pi(2-x)u */
-
- w = mpfr_gamma_2_minus_x_exact (x); /* 2-x is exact for prec >= w */
- w += 17; /* to get tmp2 small enough */
- mpfr_set_prec (tmp, w);
- mpfr_set_prec (tmp2, w);
- MPFR_DBGRES (ck = mpfr_ui_sub (tmp, 2, x, MPFR_RNDN));
- MPFR_ASSERTD (ck == 0); /* tmp = 2-x exactly */
- mpfr_const_pi (tmp2, MPFR_RNDN);
- mpfr_mul (tmp2, tmp2, tmp, MPFR_RNDN); /* Pi*(2-x) */
- mpfr_sin (tmp, tmp2, MPFR_RNDN); /* sin(Pi*(2-x)) */
- sgn = mpfr_sgn (tmp);
- mpfr_abs (tmp, tmp, MPFR_RNDN);
- mpfr_mul_ui (tmp2, tmp2, 3, MPFR_RNDU); /* 3Pi(2-x) */
- mpfr_add_ui (tmp2, tmp2, 1, MPFR_RNDU); /* 3Pi(2-x)+1 */
- mpfr_div_2ui (tmp2, tmp2, mpfr_get_prec (tmp), MPFR_RNDU);
- /* if tmp2<|tmp|, we get a lower bound */
- if (mpfr_cmp (tmp2, tmp) < 0)
- {
- mpfr_sub (tmp, tmp, tmp2, MPFR_RNDZ); /* low bnd on |sin(Pi*(2-x))| */
- mpfr_ui_div (tmp, 12, tmp, MPFR_RNDU); /* upper bound */
- mpfr_log2 (tmp, tmp, MPFR_RNDU);
- mpfr_add (xp, tmp, xp, MPFR_RNDU);
- /* The assert below checks that expo.saved_emin - 2 always
- fits in a long. FIXME if we want to allow mpfr_exp_t to
- be a long long, for instance. */
- MPFR_ASSERTN (MPFR_EMIN_MIN - 2 >= LONG_MIN);
- underflow = mpfr_cmp_si (xp, expo.saved_emin - 2) <= 0;
- }
-
- mpfr_clear (xp);
- mpfr_clear (tmp);
- mpfr_clear (tmp2);
- if (underflow) /* the sign is the opposite of that of sin(Pi*(2-x)) */
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (gamma, (rnd_mode == MPFR_RNDN) ? MPFR_RNDZ : rnd_mode, -sgn);
- }
- }
-
- realprec = MPFR_PREC (gamma);
- /* we want both 1-x and 2-x to be exact */
- {
- mpfr_prec_t w;
- w = mpfr_gamma_1_minus_x_exact (x);
- if (realprec < w)
- realprec = w;
- w = mpfr_gamma_2_minus_x_exact (x);
- if (realprec < w)
- realprec = w;
- }
- realprec = realprec + MPFR_INT_CEIL_LOG2 (realprec) + 20;
- MPFR_ASSERTD(realprec >= 5);
-
- MPFR_GROUP_INIT_4 (group, realprec + MPFR_INT_CEIL_LOG2 (realprec) + 20,
- xp, tmp, tmp2, GammaTrial);
- mpz_init (fact);
- MPFR_ZIV_INIT (loop, realprec);
- for (;;)
- {
- mpfr_exp_t err_g;
- int ck;
- MPFR_GROUP_REPREC_4 (group, realprec, xp, tmp, tmp2, GammaTrial);
-
- /* reflection formula: gamma(x) = Pi*(x-1)/sin(Pi*(2-x))/gamma(2-x) */
-
- ck = mpfr_ui_sub (xp, 2, x, MPFR_RNDN); /* 2-x, exact */
- MPFR_ASSERTD(ck == 0); (void) ck; /* use ck to avoid a warning */
- mpfr_gamma (tmp, xp, MPFR_RNDN); /* gamma(2-x), error (1+u) */
- mpfr_const_pi (tmp2, MPFR_RNDN); /* Pi, error (1+u) */
- mpfr_mul (GammaTrial, tmp2, xp, MPFR_RNDN); /* Pi*(2-x), error (1+u)^2 */
- err_g = MPFR_GET_EXP(GammaTrial);
- mpfr_sin (GammaTrial, GammaTrial, MPFR_RNDN); /* sin(Pi*(2-x)) */
- /* If tmp is +Inf, we compute exp(lngamma(x)). */
- if (mpfr_inf_p (tmp))
- {
- inex = mpfr_explgamma (gamma, x, &expo, tmp, tmp2, rnd_mode);
- if (inex)
- goto end;
- else
- goto ziv_next;
- }
- err_g = err_g + 1 - MPFR_GET_EXP(GammaTrial);
- /* let g0 the true value of Pi*(2-x), g the computed value.
- We have g = g0 + h with |h| <= |(1+u^2)-1|*g.
- Thus sin(g) = sin(g0) + h' with |h'| <= |(1+u^2)-1|*g.
- The relative error is thus bounded by |(1+u^2)-1|*g/sin(g)
- <= |(1+u^2)-1|*2^err_g. <= 2.25*u*2^err_g for |u|<=1/4.
- With the rounding error, this gives (0.5 + 2.25*2^err_g)*u. */
- ck = mpfr_sub_ui (xp, x, 1, MPFR_RNDN); /* x-1, exact */
- MPFR_ASSERTD(ck == 0); (void) ck; /* use ck to avoid a warning */
- mpfr_mul (xp, tmp2, xp, MPFR_RNDN); /* Pi*(x-1), error (1+u)^2 */
- mpfr_mul (GammaTrial, GammaTrial, tmp, MPFR_RNDN);
- /* [1 + (0.5 + 2.25*2^err_g)*u]*(1+u)^2 = 1 + (2.5 + 2.25*2^err_g)*u
- + (0.5 + 2.25*2^err_g)*u*(2u+u^2) + u^2.
- For err_g <= realprec-2, we have (0.5 + 2.25*2^err_g)*u <=
- 0.5*u + 2.25/4 <= 0.6875 and u^2 <= u/4, thus
- (0.5 + 2.25*2^err_g)*u*(2u+u^2) + u^2 <= 0.6875*(2u+u/4) + u/4
- <= 1.8*u, thus the rel. error is bounded by (4.5 + 2.25*2^err_g)*u. */
- mpfr_div (GammaTrial, xp, GammaTrial, MPFR_RNDN);
- /* the error is of the form (1+u)^3/[1 + (4.5 + 2.25*2^err_g)*u].
- For realprec >= 5 and err_g <= realprec-2, [(4.5 + 2.25*2^err_g)*u]^2
- <= 0.71, and for |y|<=0.71, 1/(1-y) can be written 1+a*y with a<=4.
- (1+u)^3 * (1+4*(4.5 + 2.25*2^err_g)*u)
- = 1 + (21 + 9*2^err_g)*u + (57+27*2^err_g)*u^2 + (55+27*2^err_g)*u^3
- + (18+9*2^err_g)*u^4
- <= 1 + (21 + 9*2^err_g)*u + (57+27*2^err_g)*u^2 + (56+28*2^err_g)*u^3
- <= 1 + (21 + 9*2^err_g)*u + (59+28*2^err_g)*u^2
- <= 1 + (23 + 10*2^err_g)*u.
- The final error is thus bounded by (23 + 10*2^err_g) ulps,
- which is <= 2^6 for err_g<=2, and <= 2^(err_g+4) for err_g >= 2. */
- err_g = (err_g <= 2) ? 6 : err_g + 4;
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (GammaTrial, realprec - err_g,
- MPFR_PREC(gamma), rnd_mode)))
- break;
-
- ziv_next:
- MPFR_ZIV_NEXT (loop, realprec);
- }
-
- end:
- MPFR_ZIV_FREE (loop);
-
- if (inex == 0)
- inex = mpfr_set (gamma, GammaTrial, rnd_mode);
- MPFR_GROUP_CLEAR (group);
- mpz_clear (fact);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (gamma, inex, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/gamma_inc.c b/Build/source/libs/mpfr/mpfr-src/src/gamma_inc.c
deleted file mode 100644
index ec9bda4fdc3..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/gamma_inc.c
+++ /dev/null
@@ -1,504 +0,0 @@
-/* mpfr_gamma_inc -- incomplete gamma function
-
-Copyright 2016-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The incomplete gamma function is defined for x >= 0 and a not a negative
- integer by:
-
- gamma_inc(a,x) := Gamma(a,x) = int(t^(a-1) * exp(-t), t=x..infinity)
-
- = Gamma(a) - gamma(a,x) with:
-
- gamma(a,x) = int(t^(a-1) * exp(-t), t=0..x).
-
- The function gamma(a,x) satisfies the Taylor expansions (we use the second
- one in the code below):
-
- gamma(a,x) = x^a * sum((-x)^k/k!/(a+k), k=0..infinity)
-
- gamma(a,x) = x^a * exp(-x) * sum(x^k/(a*(a+1)*...*(a+k)), k=0..infinity)
-*/
-
-static int
-mpfr_gamma_inc_negint (mpfr_ptr y, mpfr_srcptr a, mpfr_srcptr x, mpfr_rnd_t r);
-
-int
-mpfr_gamma_inc (mpfr_ptr y, mpfr_srcptr a, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- mpfr_prec_t w;
- mpfr_t s, t, u;
- int inex;
- unsigned long k;
- mpfr_exp_t e0, e1, e2, err;
- MPFR_GROUP_DECL(group);
- MPFR_ZIV_DECL(loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_ARE_SINGULAR (a, x))
- {
- /* if a or x is NaN, return NaN */
- if (MPFR_IS_NAN (a) || MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
-
- /* Note: for x < 0, gamma_inc (a, x) is a complex number */
-
- if (MPFR_IS_INF (a) || MPFR_IS_INF (x))
- {
- if (MPFR_IS_INF (a) && MPFR_IS_INF (x))
- {
- if ((MPFR_IS_POS (a) && MPFR_IS_POS (x)) || MPFR_IS_NEG (x))
- {
- /* (a) gamma_inc(+Inf,+Inf) = NaN because
- gamma_inc(x,x) tends to +Inf but
- gamma_inc(x,x^2) tends to +0.
- (b) gamma_inc(+/-Inf,-Inf) = NaN, for example
- gamma_inc (a, -a) is a complex number
- for a not an integer */
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else
- {
- /* gamma_inc(-Inf,+Inf) = +0 */
- MPFR_SET_ZERO (y);
- MPFR_SET_POS (y);
- MPFR_RET (0); /* exact */
- }
- }
- else /* only one of a, x is infinite */
- {
- if (MPFR_IS_INF (a))
- {
- MPFR_ASSERTD (MPFR_IS_INF (a) && MPFR_IS_FP (x));
- if (MPFR_IS_POS (a))
- {
- /* gamma_inc(+Inf, x) = +Inf */
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_RET (0); /* exact */
- }
- else /* a = -Inf */
- {
- /* gamma_inc(-Inf, x) = NaN for x <= 0
- +Inf for 0 < x < 1
- +0 for 1 <= x */
- if (mpfr_cmp_ui (x, 0) <= 0)
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (mpfr_cmp_ui (x, 1) < 0)
- {
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_RET (0); /* exact */
- }
- else
- {
- MPFR_SET_ZERO (y);
- MPFR_SET_POS (y);
- MPFR_RET (0); /* exact */
- }
- }
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_FP (a) && MPFR_IS_INF (x));
- if (MPFR_IS_POS (x))
- {
- /* x is +Inf: integral tends to zero */
- MPFR_SET_ZERO (y);
- MPFR_SET_POS (y);
- MPFR_RET (0); /* exact */
- }
- else /* NaN for x < 0 */
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- }
- }
- }
-
- if (MPFR_IS_ZERO (a) || MPFR_IS_ZERO (x))
- {
- if (MPFR_IS_ZERO (a))
- {
- if (mpfr_cmp_ui (x, 0) < 0)
- {
- /* gamma_inc(a,x) = NaN for x < 0 */
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_ZERO (x))
- /* gamma_inc(a,0) = gamma(a) */
- return mpfr_gamma (y, a, rnd); /* a=+0->+Inf, a=-0->-Inf */
- else
- {
- /* gamma_inc (0, x) = int (exp(-t), t=x..infinity) = E1(x) */
- mpfr_t minus_x;
- MPFR_TMP_INIT_NEG(minus_x, x);
- /* mpfr_eint(x) for x < 0 returns -E1(-x) */
- inex = mpfr_eint (y, minus_x, MPFR_INVERT_RND(rnd));
- MPFR_CHANGE_SIGN(y);
- return -inex;
- }
- }
- else /* x = 0: gamma_inc(a,0) = gamma(a) */
- return mpfr_gamma (y, a, rnd);
- }
- }
-
- /* for x < 0 return NaN */
- if (MPFR_SIGN(x) < 0)
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
-
- if (mpfr_integer_p (a) && MPFR_SIGN(a) < 0)
- return mpfr_gamma_inc_negint (y, a, x, rnd);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- w = MPFR_PREC(y) + 13; /* working precision */
-
- MPFR_GROUP_INIT_2(group, w, s, t);
- mpfr_init2 (u, 2); /* u is special (see below) */
- MPFR_ZIV_INIT (loop, w);
- for (;;)
- {
- mpfr_exp_t expu, precu, exps;
- mpfr_t s_abs;
- mpfr_exp_t decay = 0;
- MPFR_BLOCK_DECL (flags);
-
- /* Note: in the error analysis below, theta represents any value of
- absolute value less than 2^(-w) where w is the working precision (two
- instances of theta may represent different values), cf Higham's book.
- */
-
- /* to ensure that u = a + k is exact, we have three cases:
- (1) EXP(a) <= 0, then we need PREC(u) >= 1 - EXP(a) + PREC(a)
- (2) EXP(a) - PREC(a) <= 0 < E(a), then PREC(u) >= PREC(a)
- (3) 0 < EXP(a) - PREC(a), then PREC(u) >= EXP(a) */
- precu = MPFR_GET_EXP(a) <= 0 ?
- MPFR_ADD_PREC (MPFR_PREC(a), 1 - MPFR_EXP(a))
- : (MPFR_EXP(a) <= MPFR_PREC(a)) ? MPFR_PREC(a) : MPFR_EXP(a);
- MPFR_ASSERTD (precu + 1 <= MPFR_PREC_MAX);
- mpfr_set_prec (u, precu + 1);
- expu = (MPFR_EXP(a) > 0) ? MPFR_EXP(a) : 1;
-
- /* estimate Taylor series */
- mpfr_ui_div (t, 1, a, MPFR_RNDA); /* t = 1/a * (1 + theta) */
- mpfr_set (s, t, MPFR_RNDA); /* s = 1/a * (1 + theta) */
- if (MPFR_IS_NEG(a))
- {
- mpfr_init2 (s_abs, 32);
- mpfr_abs (s_abs, s, MPFR_RNDU);
- }
- for (k = 1;; k++)
- {
- mpfr_mul (t, t, x, MPFR_RNDU); /* t = x^k/(a * ... * (a+k-1))
- * (1 + theta)^(2k) */
- inex = mpfr_add_ui (u, a, k, MPFR_RNDZ); /* u = a+k exactly */
- MPFR_ASSERTD(inex == 0);
- mpfr_div (t, t, u, MPFR_RNDA); /* t = x^k/(a * ... * (a+k))
- * (1 + theta)^(2k+1) */
- mpfr_add (s, s, t, MPFR_RNDZ);
- /* when s is zero, we consider ulp(s) = ulp(t) */
- exps = (MPFR_IS_ZERO(s)) ? MPFR_GET_EXP(t) : MPFR_GET_EXP(s);
- if (MPFR_IS_NEG(a))
- {
- if (MPFR_IS_POS(t))
- mpfr_add (s_abs, s_abs, t, MPFR_RNDU);
- else
- mpfr_sub (s_abs, s_abs, t, MPFR_RNDU);
- }
- /* we stop when |t| < ulp(s), u > 0 and |x/u| < 1/2, which ensures
- that the tail is at most 2*ulp(s) */
- MPFR_ASSERTD (MPFR_NOTZERO(t));
- if (MPFR_GET_EXP(t) + w <= exps && MPFR_IS_POS(u) &&
- MPFR_GET_EXP(x) + 1 < MPFR_GET_EXP(u))
- break;
-
- /* if there was an exponent shift in u, increase the precision of
- u so that mpfr_add_ui (u, a, k) remains exact */
- if (MPFR_EXP(u) > expu) /* exponent shift in u */
- {
- MPFR_ASSERTD(MPFR_EXP(u) == expu + 1);
- expu = MPFR_EXP(u);
- mpfr_set_prec (u, mpfr_get_prec (u) + 1);
- }
- }
- if (MPFR_IS_NEG(a))
- {
- decay = MPFR_GET_EXP(s_abs) - MPFR_GET_EXP(s);
- mpfr_clear (s_abs);
- }
- /* For a > 0, since all terms are positive, we have
- s = S * (1 + theta)^(2k+3) with S being the infinite Taylor series.
- For a < 0, the error is bounded by that on the sum s_abs of absolute
- values of the terms, i.e., S_abs * [(1 + theta)^(2k+3) - 1]. Thus we
- can simply use the same error analysis as for a > 0, adding an error
- corresponding to the decay of exponent between s_abs and s. */
-
- /* multiply by exp(-x) */
- mpfr_exp (t, x, MPFR_RNDZ); /* t = exp(x) * (1+theta) */
- mpfr_div (s, s, t, MPFR_RNDZ); /* s = <exact value> * (1+theta)^(2k+5) */
-
- /* multiply by x^a */
- mpfr_pow (t, x, a, MPFR_RNDZ); /* t = x^a * (1+theta) */
- mpfr_mul (s, s, t, MPFR_RNDZ); /* s = Gamma(a,x) * (1+theta)^(2k+7) */
-
- /* Since |theta| < 2^(-w) using the Taylor expansion of log(1+x)
- we have log(1+theta) = theta1 with |theta1| < 1.16*2^(-w) for w >= 2,
- thus (1+theta)^(2k+7) = exp((2k+7)*theta1).
- Assuming 2k+7 = t*2^w for |t| < 0.5, we have
- |(2k+7)*theta1| = |t*2^w*theta1| < 0.58.
- For |u| < 0.58 we have |exp(u)-1| < 1.36*|u|
- thus |(1+theta)^(2k+7) - 1| < 1.36*0.58*(2k+7)/2^w < 0.79*(2k+7)/2^w.
- Since one ulp is at worst a relative error of 2^(1-w),
- the error on s is at most 2^(decay+1)*(2k+7) ulps. */
-
- /* subtract from gamma(a) */
- MPFR_BLOCK (flags, mpfr_gamma (t, a, MPFR_RNDZ));
- MPFR_ASSERTN (!MPFR_OVERFLOW (flags)); /* FIXME: support overflow */
- /* t = gamma(a) * (1+theta) */
- e0 = MPFR_GET_EXP (t);
- e1 = (MPFR_IS_ZERO(s)) ? __gmpfr_emin : MPFR_GET_EXP (s);
- mpfr_sub (s, t, s, MPFR_RNDZ);
- /* if s is zero, we can assume ulp(s) = ulp(t), but anyway we won't
- be able to round */
- e2 = (MPFR_IS_ZERO(s)) ? e0 : MPFR_GET_EXP (s);
- /* the final error is at most 1 ulp (for the final subtraction)
- + 2^(e0-e2) ulps # for the error in t
- + 2^(decay+1)*(2k+7) ulps * 2^(e1-e2) # for the error in gamma(a,x) */
-
- e1 += decay + 1 + MPFR_INT_CEIL_LOG2 (2*k+7);
- /* Now the error is <= 1 + 2^(e0-e2) + 2^(e1-e2).
- Since the formula is symmetric in e0 and e1, we can assume without
- loss of generality e0 >= e1, then:
- if e0 = e1: err <= 1 + 2*2^(e0-e2) <= 2^(e0-e2+2)
- if e0 > e1: err <= 1 + 1.5*2^(e0-e2)
- <= 2^(e0-e2+1) if e0 > e2
- <= 2^2 otherwise */
- if (e0 == e1)
- {
- /* Check that e0 - e2 + 2 <= MPFR_EXP_MAX */
- MPFR_ASSERTD (e2 >= 2 || e0 <= (MPFR_EXP_MAX - 2) + e2);
- /* Check that e0 - e2 + 2 >= MPFR_EXP_MIN */
- MPFR_ASSERTD (e2 <= 2 || e0 >= MPFR_EXP_MIN + (e2 - 2));
- err = e0 - e2 + 2;
- }
- else
- {
- e0 = (e0 > e1) ? e0 : e1; /* max(e0,e1) */
- MPFR_ASSERTD (e0 <= e2 || e2 >= 1 || e0 <= (MPFR_EXP_MAX - 1) + e2);
- err = (e0 > e2) ? e0 - e2 + 1 : 2;
- }
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, w - err, MPFR_PREC(y), rnd)))
- break;
-
- MPFR_ZIV_NEXT (loop, w);
- MPFR_GROUP_REPREC_2(group, w, s, t);
- }
- MPFR_ZIV_FREE (loop);
- mpfr_clear (u);
-
- inex = mpfr_set (y, s, rnd);
- MPFR_GROUP_CLEAR(group);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd);
-}
-
-/* For a negative integer, we have (formula 6.5.19):
-
- gamma(-n,x) = (-1)^n/n! [E_1(x) - exp(-x) sum((-1)^j*j!/x^(j+1), j=0..n-1)]
-
- See also http://arxiv.org/pdf/1407.0349v1.pdf.
-
- Assumes 'a' is a negative integer.
-*/
-static int
-mpfr_gamma_inc_negint (mpfr_ptr y, mpfr_srcptr a, mpfr_srcptr x,
- mpfr_rnd_t rnd)
-{
- mpfr_t s, t, abs_a, neg_x;
- unsigned long j;
- mpfr_prec_t w;
- int inex;
- mpfr_exp_t exp_s, new_exp_s, exp_t, err_s, logj;
- MPFR_GROUP_DECL(group);
- MPFR_ZIV_DECL(loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_ASSERTD(mpfr_integer_p (a));
- MPFR_ASSERTD(mpfr_cmp_ui (a, 0) < 0);
-
- MPFR_TMP_INIT_ABS(abs_a, a);
-
- /* below, theta represents any value such that |theta| <= 2^(-w) */
-
- w = MPFR_PREC(y) + 10; /* initial working precision */
-
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_GROUP_INIT_2(group, w, s, t);
- MPFR_ZIV_INIT (loop, w);
- for (;;)
- {
- /* we require |a| <= 2^(w-3) for the error analysis below */
- if (MPFR_GET_EXP(a) + 3 > w)
- w = MPFR_GET_EXP(a) + 3;
-
- mpfr_ui_div (t, 1, x, MPFR_RNDN); /* t = 1/x * (1 + theta) */
- mpfr_set (s, t, MPFR_RNDN);
- MPFR_ASSERTD (MPFR_NOTZERO(s));
- exp_t = exp_s = MPFR_GET_EXP(s); /* max. exponent of s/t during loop */
- new_exp_s = exp_s;
-
- for (j = 1; mpfr_cmp_ui (abs_a, j) > 0; j++)
- {
- /* invariant: t = (-1)^(j-1)*(j-1)!/x^j * (1 + theta)^(2j-1) */
- mpfr_mul_ui (t, t, j, MPFR_RNDN);
- mpfr_neg (t, t, MPFR_RNDN); /* exact */
- mpfr_div (t, t, x, MPFR_RNDN);
- /* now t = (-1)^j*j!/x^(j+1) * (1 + theta)^(2j+1).
- We have (1 + theta)^(2j+1) = exp((2j+1)*log(1+theta)).
- For |u| <= 1/2, we have |log(1+u)| <= 1.4 |u| thus:
- |(1+theta)^(2j+1)-1| <= max |exp(1.4*(2j+1)*u)-1| for |u|<=2^(-w).
- Now for |v| <= 1/2 we have |exp(v)-1| <= 0.7*|v| thus:
- |(1+theta)^(2j+1) - 1| <= 2*(2j+1)*2^(-w)
- as long as 1.4*(2j+1)*2^(-w) <= 1/2, which is true when j<2^(w-3).
- Since j < |a| it suffices that |a| <= 2^(w-3).
- In that case the rel. error on t is bounded by 2*(2j+1)*2^(-w),
- thus the error in ulps is bounded by 2*(2j+1) ulp(t). */
- if (MPFR_IS_ZERO(t)) /* underflow on t */
- break;
- if (MPFR_GET_EXP(t) > exp_t)
- exp_t = MPFR_GET_EXP(t);
- mpfr_add (s, s, t, MPFR_RNDN);
- /* if s is zero, we can assume its ulp is that of t */
- new_exp_s = (MPFR_IS_ZERO(s)) ? MPFR_GET_EXP(t) : MPFR_GET_EXP(s);
- if (new_exp_s > exp_s)
- exp_s = new_exp_s;
- }
-
- /* the error on s is bounded by (j-1) * 2^(exp_s - EXP(s)) * 1/2
- for the mpfr_add roundings, plus
- sum(2*(2i+1), i=1..j-1) * 2^(exp_t - EXP(s)) for the error on t.
- The latter sum is (2*j^2-2) * 2^(exp_t - EXP(s)). */
-
- logj = MPFR_INT_CEIL_LOG2(j);
- exp_s += logj - 1;
- exp_t += 1 + 2 * logj;
-
- /* now the error on s is bounded by 2^(exp_s-EXP(s))+2^(exp_t-EXP(s)) */
-
- exp_s = (exp_s >= exp_t) ? exp_s + 1 : exp_t + 1;
- err_s = exp_s - new_exp_s;
-
- /* now the error on the sum S := sum((-1)^j*j!/x^(j+1), j=0..n-1)
- is bounded by 2^err_s ulp(s) */
-
- MPFR_TMP_INIT_NEG(neg_x, x);
-
- mpfr_exp (t, neg_x, MPFR_RNDN); /* t = exp(-x) * (1 + theta) */
- mpfr_mul (s, s, t, MPFR_RNDN);
- if (MPFR_IS_ZERO(s))
- {
- MPFR_ASSERTD (MPFR_NOTZERO(t));
- new_exp_s += MPFR_GET_EXP(t);
- }
- /* s = exp(-x) * (S +/- 2^err_s ulp(S)) * (1 + theta)^2.
- = exp(-x) * (S +/- 2^err_s ulp(S)) * (1 +/- 3 ulp(1))
- The error on s is bounded by:
- exp(-x) * [2^err_s*ulp(S) + S*3*ulp(1) + 2^err_s*ulp(S)*3*ulp(1)]
- <= ulp(s) * [2^(err_s+1) + 6 + 1]
- <= ulp(s) * 2^(err_s+2) as long as err_s >= 2. */
-
- err_s = (err_s >= 2) ? err_s + 2 : 4;
- /* now the error on s is bounded by 2^err_s ulp(s) */
-
- mpfr_eint (t, neg_x, MPFR_RNDN); /* t = -E1(-x) * (1 + theta) */
- mpfr_neg (t, t, MPFR_RNDN); /* exact */
-
- exp_s = (MPFR_IS_ZERO(s)) ? new_exp_s : MPFR_GET_EXP(s);
- MPFR_ASSERTD (MPFR_NOTZERO(t));
- exp_t = MPFR_GET_EXP(t);
- mpfr_sub (s, t, s, MPFR_RNDN); /* E_1(x) - exp(-x) * S */
- if (MPFR_IS_ZERO(s)) /* cancellation: increase working precision */
- goto next_w;
-
- /* err(s) <= 1/2 * ulp(s) [mpfr_sub]
- + 2^err_s * 2^(exp_s-EXP(s)) * ulp(s) [previous error on s]
- + 1/2 * 2^(exp_t-EXP(s)) * ulp(s) [error on t] */
-
- exp_s += err_s;
- exp_t -= 1;
- exp_s = (exp_s >= exp_t) ? exp_s + 1 : exp_t + 1;
- MPFR_ASSERTD (MPFR_NOTZERO(s));
- err_s = exp_s - MPFR_GET_EXP(s);
- /* err(s) <= 1/2 * ulp(s) + 2^err_s * ulp(s) */
-
- /* divide by n! */
- mpfr_gamma (t, abs_a, MPFR_RNDN); /* t = (n-1)! * (1 + theta) */
- mpfr_mul (t, t, abs_a, MPFR_RNDN); /* t = n! * (1 + theta)^2 */
- mpfr_div (s, s, t, MPFR_RNDN);
- /* since (1 + theta)^2 converts to an error of at most 3 ulps
- for w >= 2, the final error is at most:
- 2 * (1/2 + 2^err_s) * ulp(s) [error on previous s]
- + 2 * 3 * ulp(s) [error on t]
- + 1 * ulp(s) [product of errors]
- = ulp(s) * (2^(err_s+1) + 8) */
- err_s = (err_s >= 2) ? err_s + 1 : 4;
-
- /* the final error is bounded by 2^err_s * ulp(s) */
-
- /* Is there a better way to compute (-1)^n? */
- mpfr_set_si (t, -1, MPFR_RNDN);
- mpfr_pow (t, t, abs_a, MPFR_RNDN);
- if (MPFR_IS_NEG(t))
- mpfr_neg (s, s, MPFR_RNDN);
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, w - err_s, MPFR_PREC(y), rnd)))
- break;
-
- next_w:
- MPFR_ZIV_NEXT (loop, w);
- MPFR_GROUP_REPREC_2(group, w, s, t);
- }
- MPFR_ZIV_FREE (loop);
-
- inex = mpfr_set (y, s, rnd);
- MPFR_GROUP_CLEAR(group);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/gammaonethird.c b/Build/source/libs/mpfr/mpfr-src/src/gammaonethird.c
deleted file mode 100644
index 0804fda60f8..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/gammaonethird.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* Functions for evaluating Gamma(1/3) and Gamma(2/3). Used by mpfr_ai.
-
-Copyright 2010-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#define MPFR_ACC_OR_MUL(v) \
- do \
- { \
- if (v <= ULONG_MAX / acc) \
- acc *= v; \
- else \
- { \
- mpfr_mul_ui (y, y, acc, mode); acc = v; \
- } \
- } \
- while (0)
-
-#define MPFR_ACC_OR_DIV(v) \
- do \
- { \
- if (v <= ULONG_MAX / acc) \
- acc *= v; \
- else \
- { \
- mpfr_div_ui (y, y, acc, mode); acc = v; \
- } \
- } \
- while (0)
-
-static void
-mpfr_mul_ui5 (mpfr_ptr y, mpfr_srcptr x,
- unsigned long int v1, unsigned long int v2,
- unsigned long int v3, unsigned long int v4,
- unsigned long int v5, mpfr_rnd_t mode)
-{
- unsigned long int acc = v1;
- mpfr_set (y, x, mode);
- MPFR_ACC_OR_MUL (v2);
- MPFR_ACC_OR_MUL (v3);
- MPFR_ACC_OR_MUL (v4);
- MPFR_ACC_OR_MUL (v5);
- mpfr_mul_ui (y, y, acc, mode);
-}
-
-void
-mpfr_div_ui2 (mpfr_ptr y, mpfr_srcptr x,
- unsigned long int v1, unsigned long int v2, mpfr_rnd_t mode)
-{
- unsigned long int acc = v1;
- mpfr_set (y, x, mode);
- MPFR_ACC_OR_DIV (v2);
- mpfr_div_ui (y, y, acc, mode);
-}
-
-static void
-mpfr_div_ui8 (mpfr_ptr y, mpfr_srcptr x,
- unsigned long int v1, unsigned long int v2,
- unsigned long int v3, unsigned long int v4,
- unsigned long int v5, unsigned long int v6,
- unsigned long int v7, unsigned long int v8, mpfr_rnd_t mode)
-{
- unsigned long int acc = v1;
- mpfr_set (y, x, mode);
- MPFR_ACC_OR_DIV (v2);
- MPFR_ACC_OR_DIV (v3);
- MPFR_ACC_OR_DIV (v4);
- MPFR_ACC_OR_DIV (v5);
- MPFR_ACC_OR_DIV (v6);
- MPFR_ACC_OR_DIV (v7);
- MPFR_ACC_OR_DIV (v8);
- mpfr_div_ui (y, y, acc, mode);
-}
-
-
-/* Gives an approximation of omega = Gamma(1/3)^6 * sqrt(10) / (12pi^4) */
-/* using C. H. Brown's formula. */
-/* The computed value s satisfies |s-omega| <= 2^{1-prec}*omega */
-/* As usual, the variable s is supposed to be initialized. */
-static void
-mpfr_Browns_const (mpfr_ptr s, mpfr_prec_t prec)
-{
- mpfr_t uk;
- unsigned long int k;
-
- mpfr_prec_t working_prec = prec + 10 + MPFR_INT_CEIL_LOG2 (2 + prec / 10);
-
- mpfr_init2 (uk, working_prec);
- mpfr_set_prec (s, working_prec);
-
- mpfr_set_ui (uk, 1, MPFR_RNDN);
- mpfr_set (s, uk, MPFR_RNDN);
- k = 1;
-
- /* Invariants: uk ~ u(k-1) and s ~ sum(i=0..k-1, u(i)) */
- for (;;)
- {
- mpfr_mul_ui5 (uk, uk, 6 * k - 5, 6 * k - 4, 6 * k - 3, 6 * k - 2,
- 6 * k - 1, MPFR_RNDN);
- mpfr_div_ui8 (uk, uk, k, k, 3 * k - 2, 3 * k - 1, 3 * k, 80, 160, 160,
- MPFR_RNDN);
- MPFR_CHANGE_SIGN (uk);
-
- mpfr_add (s, s, uk, MPFR_RNDN);
- k++;
- if (MPFR_GET_EXP (uk) + prec <= MPFR_GET_EXP (s) + 7)
- break;
- }
-
- mpfr_clear (uk);
- return;
-}
-
-/* Returns y such that |Gamma(1/3)-y| <= 2^{1-prec}*Gamma(1/3) */
-static void
-mpfr_gamma_one_third (mpfr_ptr y, mpfr_prec_t prec)
-{
- mpfr_t tmp, tmp2, tmp3;
-
- mpfr_init2 (tmp, prec + 9);
- mpfr_init2 (tmp2, prec + 9);
- mpfr_init2 (tmp3, prec + 4);
- mpfr_set_prec (y, prec + 2);
-
- mpfr_const_pi (tmp, MPFR_RNDN);
- mpfr_sqr (tmp, tmp, MPFR_RNDN);
- mpfr_sqr (tmp, tmp, MPFR_RNDN);
- mpfr_mul_ui (tmp, tmp, 12, MPFR_RNDN);
-
- mpfr_Browns_const (tmp2, prec + 9);
- mpfr_mul (tmp, tmp, tmp2, MPFR_RNDN);
-
- mpfr_set_ui (tmp2, 10, MPFR_RNDN);
- mpfr_sqrt (tmp2, tmp2, MPFR_RNDN);
- mpfr_div (tmp, tmp, tmp2, MPFR_RNDN);
-
- mpfr_sqrt (tmp3, tmp, MPFR_RNDN);
- mpfr_cbrt (y, tmp3, MPFR_RNDN);
-
- mpfr_clear (tmp);
- mpfr_clear (tmp2);
- mpfr_clear (tmp3);
- return;
-}
-
-/* Computes y1 and y2 such that: */
-/* |y1-Gamma(1/3)| <= 2^{1-prec}Gamma(1/3) */
-/* and |y2-Gamma(2/3)| <= 2^{1-prec}Gamma(2/3) */
-/* */
-/* Uses the formula Gamma(z)Gamma(1-z) = pi / sin(pi*z) */
-/* to compute Gamma(2/3) from Gamma(1/3). */
-void
-mpfr_gamma_one_and_two_third (mpfr_ptr y1, mpfr_ptr y2, mpfr_prec_t prec)
-{
- mpfr_t temp;
-
- mpfr_init2 (temp, prec + 4);
- mpfr_set_prec (y2, prec + 4);
-
- mpfr_gamma_one_third (y1, prec + 4);
-
- mpfr_set_ui (temp, 3, MPFR_RNDN);
- mpfr_sqrt (temp, temp, MPFR_RNDN);
- mpfr_mul (temp, y1, temp, MPFR_RNDN);
-
- mpfr_const_pi (y2, MPFR_RNDN);
- mpfr_mul_2ui (y2, y2, 1, MPFR_RNDN);
-
- mpfr_div (y2, y2, temp, MPFR_RNDN);
-
- mpfr_clear (temp);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/gen_inverse.h b/Build/source/libs/mpfr/mpfr-src/src/gen_inverse.h
deleted file mode 100644
index a1761019f68..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/gen_inverse.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* generic inverse of a function.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#ifndef ACTION_SPECIAL
-#define ACTION_SPECIAL
-#endif
-
-#ifndef ACTION_TINY
-#define ACTION_TINY
-#endif
-
-/* example of use:
-#define FUNCTION mpfr_sec
-#define INVERSE mpfr_cos
-#define ACTION_NAN(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_INF(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_ZERO(y) return mpfr_set_ui (y, 1, MPFR_RNDN)
-#include "gen_inverse.h"
-*/
-
-int
-FUNCTION (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t precy; /* target precision */
- mpfr_prec_t m; /* working precision */
- mpfr_t z; /* temporary variable to store INVERSE(x) */
- int inexact; /* inexact flag */
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)))
- {
- if (MPFR_IS_NAN(x))
- ACTION_NAN(y);
- else if (MPFR_IS_INF(x))
- ACTION_INF(y);
- else /* x = 0 */
- ACTION_ZERO(y,x);
- }
-
- /* x is neither NaN, Inf nor zero */
- MPFR_SAVE_EXPO_MARK (expo);
- ACTION_TINY (y, x, rnd_mode); /* special case for very small input x */
- precy = MPFR_PREC(y);
- m = precy + MPFR_INT_CEIL_LOG2 (precy) + 3;
- mpfr_init2 (z, m);
-
- MPFR_ZIV_INIT (loop, m);
- for(;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- MPFR_BLOCK (flags, INVERSE (z, x, MPFR_RNDZ)); /* error k_u < 1 ulp */
- /* FIXME: the following assumes that if an overflow happens with
- MPFR_EMAX_MAX, then necessarily an underflow happens with
- __gmpfr_emin */
- if (MPFR_OVERFLOW (flags))
- {
- int s = MPFR_SIGN(z);
- MPFR_ZIV_FREE (loop);
- mpfr_clear (z);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (y, (rnd_mode == MPFR_RNDN) ?
- MPFR_RNDZ : rnd_mode, s);
- }
- mpfr_ui_div (z, 1, z, MPFR_RNDN);
- /* the error is less than c_w + 2*c_u*k_u (see algorithms.tex),
- where c_w = 1/2, c_u = 1 since z was rounded toward zero,
- thus 1/2 + 2 < 4 */
- if (MPFR_LIKELY (MPFR_CAN_ROUND (z, m - 2, precy, rnd_mode)))
- break;
- ACTION_SPECIAL;
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (z, m);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (y, z, rnd_mode);
- mpfr_clear (z);
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/generic/coverage/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/generic/coverage/mparam.h
deleted file mode 100644
index 37c23e2c6b6..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/generic/coverage/mparam.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* mparam tuned for coverage test */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,-1,-1,-1,-1,-1,0,0,0,0,8,9,10,11, \
- 10,11,12,13,0,13,14,13,14,15,16,17,16,16,18,19, \
- 19,19,20,19,28,28,28,28,28,28,28,28,28,28,28,30, \
- 32,32,32,32,34,34,36,34,36,36,36,36,36,40,38,38, \
- 40,38,40,40,56,56,56,56,56,56,56,56,56,56,56,56, \
- 56,56,56,56,56,56,56,56,60,56,60,64,64,64,56,56, \
- 56,64,64,56,60,64,60,64,64,64,64,68,68,64,68,84, \
- 84,86,84,84,87,84,87,84,87,84,84,84,84,84,84,84, \
- 87,87,86,87,87,87,92,93,92,93,93,93,93,99,96,93, \
- 99,99,99,99,99,98,99,99,102,99,105,104,105,105,108,108, \
- 110,108,108,111,114,114,116,117,117, \
- 117,117,117,124,124,124,124, \
- 124,124,124,132,132,132,132,124,132,\
- 132,132,132,132,132,132,132, \
- 140,140,140,140,123,140,124,124,124,\
- 124,132,128,132,132,132,132, \
- 132,132,132,132,132,132,140,140,132,140,140,140,140,140,148,147, \
- 140,148,148,147,148,148,148,156,148,156,156,156,156,156,156,155, \
- 156,160,156,156,164,164,164,156,164,164,164,164,164,164,164,164, \
- 164,217,220,220,220,220,220,220,220,220,220,220,220,220,220,220, \
- 220,220,220,220,220,220,220,220,220,220,224,220,220,220,220,220, \
- 220,220,220,220,220,220,220,220,220,224,220,220,220,224,220,220, \
- 220,220,220,224,224,224,224,236,220,236,235,236,235,235,234,236, \
- 236,235,236,236,235,236,236,236,236,236,236,252,236,251,236,251, \
- 252,252,252,252,236,235,252,252,252,252,252,251,268,252,252,252, \
- 268,251,268,268,252,252,268,268,268,268,267,268,268,268,267,268, \
- 268,252,268,268,268,267,268,268,268,252,268,252,252,252,251,268, \
- 252,268,252,268,268,268,268,268,267,268,268,268,268,268,268,268, \
- 268,268,268,268,268,268,332,332,330,268,332,332,332,332,330,331, \
- 332,332,332,332,344,331,344,344,344,344,344,332,342,332,344,332, \
- 332,332,344,332,344,344,342,344,344,342,344,344,344,344,344,342, \
- 344,344,344,344,344,344,344,368,344,342,344,344,368,344,344,344, \
- 344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344, \
- 344,344,368,344,344,368,344,363,368,367,368,368,368,368,368,366, \
- 366,368,368,368,368,368,368,368,368,368,368,368,368,368,380,368, \
- 368,368,368,368,368,392,392,392,392,392,392,392,392,392,392,392, \
- 392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392, \
- 392,391,392,392,392,392,392,416,392,416,416,416,416,412,416,392, \
- 416,416,416,416,416,416,416,416,416,416,416,428,416,416,416,428, \
- 416,440,416,480,480,480,480,480,480,480,504,503,504,504,504,504, \
- 504,504,504,503,504,504,504,504,504,504,504,504,504,503,504,504, \
- 480,504,504,504,504,504,504,480,504,488,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,536,536,536,536,536,536,536, \
- 536,536,536,536,535,536,536,536,536,536,536,536,536,535,536,536, \
- 536,536,536,535,536,535,536,536,536,536,536,536,536,536,536,536, \
- 536,568,536,536,536,536,536,536,568,536,535,536,536,536,536,536, \
- 536,536,536,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,664,664,664,664,664,664,664, \
- 664,663,664,664,664,664,664,664,664,664,664,663,664,664,664,663, \
- 664,663,664,664,664,664,664,664,664,663,664,664,664,663,664,664, \
- 664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,664, \
- 664,664,664,663,664,664,664,664,664,664,664,663,664,664,664,664, \
- 664,688,664,664,688,688,664,664,688,664,664,664,664,664,664,664, \
- 664,680,688,688,688,688,688,688,688,688,688,688,688,688,688,688, \
- 688,688,712,712,688,688,688,712,712,711,712,712,736,728,736,728, \
- 728,728,736,728,736,736,736,736,728,736,736,736,728,736,736,736, \
- 735,736,736,736,736,736,736,736,736,736,736,736,736,728,736,736, \
- 728,736,736,736,736,735,736,736,735,736,736,736,736,735,736,736, \
- 736,728,736,736,736,736,736,736,736,736,736,736,736,736,736,784, \
- 736,784,783,736,784,735,784,735,784,735,736,736,736,736,736,736, \
- 736,736,784,735,736,784,736,784,784,736,736,736,736,784,784,784, \
- 784,784,784,783,784,784,784,736,784,784,784,784,784,784,784,784, \
- 784,784,784,784,783,784,784,784,784,784,784,784,784,784,784,784, \
- 784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,783, \
- 736,784,784,784,784,784,783,784,784,831,784,832,832,832,832,832 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,-1,-1,-1,-1,-1,7,7,7,8,9,10,11, \
- 11,11,11,11,12,13,13,15,15,15,15,15,17,17,19,19, \
- 19,19,19,19,20,20,23,21,23,23,24,23,27,25,26,27, \
- 26,27,27,34,34,34,34,34,34,34,34,34,34,38,34,38, \
- 38,38,38,40,40,42,42,44,42,42,46,42,42,46,46,42, \
- 42,42,44,44,46,46,46,46,46,46,50,50,50,50,50,50, \
- 54,54,54,56,54,56,58,58,68,68,68,68,68,68,68,68, \
- 68,68,68,72,68,68,68,68,68,68,72,72,76,76,76,76, \
- 76,76,76,76,84,84,84,84,76,84,84,84,84,84,88,92, \
- 84,84,92,92,84,76,92,88,80,80,80,80,84,84,84,84, \
- 84,88,84,84,84,92,92,92,92,88,92,96,92,96,92,96, \
- 92,96,100,104,100,100,96,100,100,100,108,104,117,104,117,108, \
- 117,117,117,123,122,122,120,117,122,117,122,123,122,123,122,123, \
- 126,123,126,129,126,129,135,123,132,135,132,135,134,135,134,135, \
- 138,129,132,123,144,144,134,135,140,129,146,135,132,147,146,147, \
- 146,135,138,147,138,135,140,141,144,147,146,147,146,147,150,152, \
- 152,153,152,153,156,153,138,135,140,141,138,144,146,147,147,147, \
- 147,146,146,146,150,150,150,147,147,159,156,159,158,156,153,159, \
- 159,159,159,158,201,201,201,201,170,201,170,201,171,201,168,201, \
- 200,201,201,201,201,200,201,201,200,201,201,201,201,200,201,201, \
- 201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201, \
- 201,201,201,201,201,201,201,201,201,213,201,212,213,225,213,225, \
- 225,225,225,225,225,225,225,225,225,224,225,225,225,225,224,225, \
- 225,225,225,225,225,225,225,225,225,225,225,225,237,225,237,225, \
- 249,249,249,249,249,249,249,249,249,249,248,249,249,249,261,249, \
- 261,249,261,261,261,249,249,261,260,261,248,261,261,273,248,249, \
- 249,261,261,249,249,273,249,248,249,249,249,273,261,273,273,249, \
- 273,249,273,272,273,273,261,273,273,273,273,273,273,261,273,273, \
- 273,273,273,276,285,273,273,273,273,273,273,273,273,261,285,285, \
- 285,285,273,261,261,285,273,297,285,273,273,273,272,273,273,273, \
- 273,273,273,273,273,273,273,276,273,273,273,273,285,273,273,285, \
- 351,351,351,351,351,351,297,351,351,366,351,351,351,297,366,366, \
- 351,351,351,351,366,363,351,362,364,366,366,366,364,351,351,351, \
- 351,351,366,366,351,366,366,366,366,366,363,366,360,363,366,366, \
- 366,363,366,366,366,366,366,366,366,351,366,366,351,351,351,384, \
- 366,366,366,366,366,384,366,366,363,364,366,363,366,366,366,363, \
- 366,366,366,366,366,366,366,366,366,365,366,366,366,384,366,366, \
- 384,366,384,366,366,366,384,366,366,366,366,366,366,384,366,402, \
- 393,384,366,402,402,402,384,402,402,402,384,401,402,402,351,402, \
- 351,351,402,402,402,351,402,402,366,363,365,366,366,363,366,366, \
- 365,360,366,366,366,351,366,363,365,363,366,366,366,366,363,365, \
- 366,366,366,366,366,366,366,366,366,366,366,363,366,366,366,363, \
- 365,366,402,402,366,402,384,384,381,402,384,384,384,384,384,384, \
- 402,384,387,384,402,401,402,391,402,393,399,402,402,402,401,399, \
- 401,402,402,402,402,402,402,402,402,402,402,402,402,402,399,402, \
- 401,402,402,402,402,402,402,402,402,438,402,438,438,437,402,437, \
- 438,437,438,438,438,441,438,438,438,438,438,438,438,438,437,438, \
- 438,438,456,435,437,437,438,438,438,435,438,437,438,456,456,438, \
- 455,456,456,456,474,456,474,456,456,474,456,456,512,456,512,512, \
- 512,512,512,512,512,512,512,474,512,512,512,512,512,512,512,512, \
- 512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, \
- 512,512,512,512,512,512,512,536,512,512,536,522,512,536,536,512, \
- 512,512,512,536,536,524,536,531,536,536,536,536,536,536,536,536, \
- 535,512,536,534,512,536,512,536,536,535,536,536,535,534,534,536, \
- 536,536,536,535,536,535,534,536,536,536,536,536,536,534,536,536, \
- 536,536,536,536,536,560,560,535,536,560,536,535,584,536,536,572, \
- 583,584,584,584,536,572,560,584,584,584,584,584,583,584,584,584, \
- 584,583,584,570,584,584,572,584,584,584,584,584,584,583,584,584, \
- 584,584,584,560,584,584,584,584,584,584,584,584,584,584,584,584, \
- 584,584,584,584,584,632,696,632,584,582,696,696,696,696,584,696, \
- 694,696,695,696,695,696,694,695,695,696,696,696,695,696,696,695, \
- 696,696,695,696,696,696,696,696,695,695,696,695,696,695,696,695, \
- 696,695,696,695,696,695,696,695,696,696,696,696,696,695,696,696, \
- 695,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0, /*64-79*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56, /*80-95*/ \
- 56,56,60,58,59,56,59,59,56,59,60,58,56,64,60,60, /*96-111*/ \
- 63,64,64,60,63,60,64,64,64,66,67,66,68,66,72,66, /*112-127*/ \
- 67,67,71,68,68,71,71,70,76,74,74,76,76,72,75,80, /*128-143*/ \
- 76,76,76,76,78,76,79,77,80,78,79,80,82,80,83,83, /*144-159*/ \
- 83,85,86,91,85,88,87,85,87,90,112,91,112,89,112,112, /*160-175*/ \
- 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, /*176-191*/ \
- 112,112,118,112,112,112,112,112,112,112,120,120,112,112,112,120, /*192-207*/ \
- 112,112,112,112,112,120,112,119,112,112,114,112,124,120,120,116, /*208-223*/ \
- 120,118,123,128,124,120,120,123,120,128,128,120,128,134,128,127, /*224-239*/ \
- 126,128,136,134,136,128,126,127,136,128,134,136,136,128,136,132, /*240-255*/ \
- 136,136,134,132,136,136,135,136,136,134,136,136,136,140,144,142, /*256-271*/ \
- 143,144,144,143,144,143,150,144,144,143,144,144,156,144,152,151, /*272-287*/ \
- 166,149,152,152,156,152,168,160,152,168,168,168,152,160,168,168, /*288-303*/ \
- 168,172,166,168,168,180,166,166,165,165,168,168,168,164,174,167, /*304-319*/ \
- 168,166,174,168,168,168,174,176,180,172,174,182,180,172,184,178, /*320-335*/ \
- 184,183,184,186,182,182,183,185,174,224,176,224,224,224,196,191, /*336-351*/ \
- 192,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, /*352-367*/ \
- 224,224,224,224,224,224,224,224,224,224,228,224,224,224,233,224, /*368-383*/ \
- 224,224,224,240,224,232,224,224,224,224,224,224,224,224,224,224, /*384-399*/ \
- 224,224,224,224,228,224,224,224,224,224,224,224,224,225,224,224, /*400-415*/ \
- 224,224,224,224,224,224,224,224,233,232,224,240,224,240,224,223, /*416-431*/ \
- 224,224,224,224,224,232,224,232,228,233,224,224,228,240,230,240, /*432-447*/ \
- 240,240,242,239,240,247,240,239,248,240,239,242,256,232,256,254, /*448-463*/ \
- 256,256,256,256,256,256,256,256,256,240,264,256,264,264,256,263, /*464-479*/ \
- 272,272,256,248,254,272,256,256,254,256,256,255,254,272,272,256, /*480-495*/ \
- 256,272,264,256,255,271,272,264,256,272,272,272,272,256,272,272, /*496-511*/ \
- 278,280,272,272,280,287,280,280,287,280,270,272,272,264,272,272, /*512-527*/ \
- 271,269,270,280,272,272,271,272,272,270,272,272,272,272,288,273, /*528-543*/ \
- 278,276,288,286,280,288,287,285,280,286,288,280,280,288,288,296, /*544-559*/ \
- 288,288,288,289,288,288,287,287,288,296,288,288,296,302,312,294, /*560-575*/ \
- 310,304,303,304,304,312,303,320,304,300,312,296,305,310,304,304, /*576-591*/ \
- 304,302,303,312,302,304,304,304,302,336,304,304,328,311,312,328, /*592-607*/ \
- 310,312,316,336,336,320,312,320,336,320,319,336,336,328,328,325, /*608-623*/ \
- 320,328,328,336,320,336,320,324,336,348,320,336,343,320,336,336, /*624-639*/ \
- 336,334,335,344,341,328,342,336,328,335,336,336,336,336,335,336, /*640-655*/ \
- 336,343,336,344,336,336,348,360,344,359,344,360,360,360,344,348, /*656-671*/ \
- 344,347,348,360,348,360,360,360,360,367,368,368,448,360,448,372, /*672-687*/ \
- 360,360,448,368,448,448,448,448,448,448,448,448,448,448,448,448, /*688-703*/ \
- 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*704-719*/ \
- 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*720-735*/ \
- 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*736-751*/ \
- 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*752-767*/ \
- 448,448,448,448,448,448,448,448,448,448,448,448,448,467,448,468, /*768-783*/ \
- 448,468,448,466,448,464,468,448,464,464,448,448,448,448,464,448, /*784-799*/ \
- 480,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*800-815*/ \
- 448,448,448,448,448,448,448,448,448,448,480,448,448,448,447,448, /*816-831*/ \
- 448,448,448,464,448,448,448,448,448,448,448,448,448,447,448,448, /*832-847*/ \
- 448,448,448,448,447,448,448,448,448,456,448,448,448,456,448,448, /*848-863*/ \
- 448,448,448,448,448,448,448,448,448,448,464,464,448,467,448,448, /*864-879*/ \
- 448,448,448,464,448,447,468,464,448,464,464,448,448,468,472,472, /*880-895*/ \
- 466,462,464,469,468,464,463,480,472,479,496,480,472,512,472,479, /*896-911*/ \
- 512,464,495,512,496,495,480,496,488,472,492,512,512,480,512,479, /*912-927*/ \
- 512,480,504,480,480,496,512,480,472,480,512,496,480,512,536,496, /*928-943*/ \
- 512,512,512,512,496,512,512,515,496,480,512,496,512,480,510,543, /*944-959*/ \
- 512,496,512,496,528,528,496,512,512,528,527,496,512,508,512,528, /*960-975*/ \
- 512,512,512,512,512,512,512,512,528,528,512,512,512,512,528,528, /*976-991*/ \
- 512,528,526,527,528,511,508,511,512,512,528,527,528,528,510,512, /*992-1007*/ \
- 528,544,544,536,536,520,511,536,536,543,512,528,544,512,542,543 /*1008-1023*/ \
-
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/generic/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/generic/mparam.h
deleted file mode 100644
index 18b28654972..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/generic/mparam.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef MPFR_MULHIGH_TAB
-# define MPFR_MULHIGH_TAB -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0
-#endif
-
-#ifndef MPFR_SQRHIGH_TAB
-# define MPFR_SQRHIGH_TAB -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0
-#endif
-
-#ifndef MPFR_DIVHIGH_TAB
-/* the value of divhigh_ktab[n] should be 0 or < n-1 */
-# define MPFR_DIVHIGH_TAB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-#endif
-
-#ifndef MPFR_MUL_THRESHOLD
-# define MPFR_MUL_THRESHOLD 20 /* limbs */
-#endif
-
-#ifndef MPFR_SQR_THRESHOLD
-# define MPFR_SQR_THRESHOLD 20 /* limbs */
-#endif
-
-#ifndef MPFR_DIV_THRESHOLD
-# define MPFR_DIV_THRESHOLD 25 /* limbs */
-#endif
-
-#ifndef MPFR_EXP_2_THRESHOLD
-# define MPFR_EXP_2_THRESHOLD 100 /* bits */
-#endif
-
-#ifndef MPFR_EXP_THRESHOLD
-# define MPFR_EXP_THRESHOLD 25000 /* bits */
-#endif
-
-#ifndef MPFR_SINCOS_THRESHOLD
-# define MPFR_SINCOS_THRESHOLD 30000 /* bits */
-#endif
-
-#ifndef MPFR_AI_THRESHOLD1
-# define MPFR_AI_THRESHOLD1 -13107 /* threshold for negative input of mpfr_ai */
-#endif
-
-#ifndef MPFR_AI_THRESHOLD2
-# define MPFR_AI_THRESHOLD2 1311
-#endif
-
-#ifndef MPFR_AI_THRESHOLD3
-# define MPFR_AI_THRESHOLD3 19661
-#endif
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_d.c b/Build/source/libs/mpfr/mpfr-src/src/get_d.c
deleted file mode 100644
index 8721c023543..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_d.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/* mpfr_get_d, mpfr_get_d_2exp -- convert a multiple precision floating-point
- number to a machine double precision float
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h>
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#include "ieee_floats.h"
-
-/* Assumes IEEE-754 double precision; otherwise, only an approximated
- result will be returned, without any guaranty (and special cases
- such as NaN must be avoided if not supported). */
-
-double
-mpfr_get_d (mpfr_srcptr src, mpfr_rnd_t rnd_mode)
-{
- double d;
- int negative;
- mpfr_exp_t e;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (src)))
- {
- if (MPFR_IS_NAN (src))
- return MPFR_DBL_NAN;
-
- negative = MPFR_IS_NEG (src);
-
- if (MPFR_IS_INF (src))
- return negative ? MPFR_DBL_INFM : MPFR_DBL_INFP;
-
- MPFR_ASSERTD (MPFR_IS_ZERO(src));
- return negative ? DBL_NEG_ZERO : 0.0;
- }
-
- e = MPFR_GET_EXP (src);
- negative = MPFR_IS_NEG (src);
-
- if (MPFR_UNLIKELY(rnd_mode == MPFR_RNDA))
- rnd_mode = negative ? MPFR_RNDD : MPFR_RNDU;
-
- /* the smallest normalized number is 2^(-1022)=0.1e-1021, and the smallest
- subnormal is 2^(-1074)=0.1e-1073 */
- if (MPFR_UNLIKELY (e < -1073))
- {
- /* Note: Avoid using a constant expression DBL_MIN * DBL_EPSILON
- as this gives 0 instead of the correct result with gcc on some
- Alpha machines. */
- d = negative ?
- (rnd_mode == MPFR_RNDD ||
- (rnd_mode == MPFR_RNDN && mpfr_cmp_si_2exp(src, -1, -1075) < 0)
- ? -DBL_MIN : DBL_NEG_ZERO) :
- (rnd_mode == MPFR_RNDU ||
- (rnd_mode == MPFR_RNDN && mpfr_cmp_si_2exp(src, 1, -1075) > 0)
- ? DBL_MIN : 0.0);
- if (d != 0.0) /* we multiply DBL_MIN = 2^(-1022) by DBL_EPSILON = 2^(-52)
- to get +-2^(-1074) */
- d *= DBL_EPSILON;
- }
- /* the largest normalized number is 2^1024*(1-2^(-53))=0.111...111e1024 */
- else if (MPFR_UNLIKELY (e > 1024))
- {
- d = negative ?
- (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDU ?
- -DBL_MAX : MPFR_DBL_INFM) :
- (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDD ?
- DBL_MAX : MPFR_DBL_INFP);
- }
- else
- {
- int nbits;
- mp_limb_t tp[ MPFR_LIMBS_PER_DOUBLE ];
- int carry;
-
- nbits = IEEE_DBL_MANT_DIG; /* 53 */
- if (MPFR_UNLIKELY (e < -1021))
- /*In the subnormal case, compute the exact number of significant bits*/
- {
- nbits += 1021 + e;
- MPFR_ASSERTD (1 <= nbits && nbits < IEEE_DBL_MANT_DIG);
- }
- carry = mpfr_round_raw_4 (tp, MPFR_MANT(src), MPFR_PREC(src), negative,
- nbits, rnd_mode);
- if (MPFR_UNLIKELY(carry))
- d = 1.0;
- else
- {
-#if MPFR_LIMBS_PER_DOUBLE == 1
- d = (double) tp[0] / MP_BASE_AS_DOUBLE;
-#else
- mp_size_t np, i;
- MPFR_ASSERTD (nbits <= IEEE_DBL_MANT_DIG);
- np = MPFR_PREC2LIMBS (nbits);
- MPFR_ASSERTD ( np <= MPFR_LIMBS_PER_DOUBLE );
- /* The following computations are exact thanks to the previous
- mpfr_round_raw. */
- d = (double) tp[0] / MP_BASE_AS_DOUBLE;
- for (i = 1 ; i < np ; i++)
- d = (d + tp[i]) / MP_BASE_AS_DOUBLE;
- /* d is the mantissa (between 1/2 and 1) of the argument rounded
- to 53 bits */
-#endif
- }
- d = mpfr_scale2 (d, e);
- if (negative)
- d = -d;
- }
-
- return d;
-}
-
-#undef mpfr_get_d1
-double
-mpfr_get_d1 (mpfr_srcptr src)
-{
- return mpfr_get_d (src, __gmpfr_default_rounding_mode);
-}
-
-double
-mpfr_get_d_2exp (long *expptr, mpfr_srcptr src, mpfr_rnd_t rnd_mode)
-{
- double ret;
- mpfr_exp_t exp;
- mpfr_t tmp;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (src)))
- {
- int negative;
- *expptr = 0;
- if (MPFR_IS_NAN (src))
- return MPFR_DBL_NAN;
- negative = MPFR_IS_NEG (src);
- if (MPFR_IS_INF (src))
- return negative ? MPFR_DBL_INFM : MPFR_DBL_INFP;
- MPFR_ASSERTD (MPFR_IS_ZERO(src));
- return negative ? DBL_NEG_ZERO : 0.0;
- }
-
- MPFR_ALIAS (tmp, src, MPFR_SIGN (src), 0);
- ret = mpfr_get_d (tmp, rnd_mode);
-
- exp = MPFR_GET_EXP (src);
-
- /* rounding can give 1.0, adjust back to 0.5 <= abs(ret) < 1.0 */
- if (ret == 1.0)
- {
- ret = 0.5;
- exp++;
- }
- else if (ret == -1.0)
- {
- ret = -0.5;
- exp++;
- }
-
- MPFR_ASSERTN ((ret >= 0.5 && ret < 1.0)
- || (ret <= -0.5 && ret > -1.0));
- MPFR_ASSERTN (exp >= LONG_MIN && exp <= LONG_MAX);
-
- *expptr = exp;
- return ret;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_d128.c b/Build/source/libs/mpfr/mpfr-src/src/get_d128.c
deleted file mode 100644
index 69b1d206458..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_d128.c
+++ /dev/null
@@ -1,441 +0,0 @@
-/* mpfr_get_decimal128 -- convert a multiple precision floating-point number
- to an IEEE 754-2008 decimal128 float
-
-See https://gcc.gnu.org/legacy-ml/gcc/2006-06/msg00691.html,
-https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html,
-and TR 24732 <http://www.open-std.org/jtc1/sc22/wg14/www/projects#24732>.
-
-Copyright 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-#include "ieee_floats.h"
-
-#define ISDIGIT(c) ('0' <= c && c <= '9')
-
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-
-#ifndef DEC128_MAX
-# define DEC128_MAX 9.999999999999999999999999999999999E6144dl
-#endif
-
-/* construct a decimal128 NaN */
-static _Decimal128
-get_decimal128_nan (void)
-{
- return (_Decimal128) MPFR_DBL_NAN;
-}
-
-/* construct the decimal128 Inf with given sign */
-static _Decimal128
-get_decimal128_inf (int negative)
-{
- return (_Decimal128) (negative ? MPFR_DBL_INFM : MPFR_DBL_INFP);
-}
-
-/* construct the decimal128 zero with given sign */
-static _Decimal128
-get_decimal128_zero (int negative)
-{
- _Decimal128 zero = 0;
- return (_Decimal128) (negative ? -zero : zero);
-}
-
-/* construct the decimal128 smallest non-zero with given sign:
- it is 10^emin * 10^(1-p). Since emax = 6144, emin = 1-emax = -6143,
- and p = 34, we get 10^(-6176) */
-static _Decimal128
-get_decimal128_min (int negative)
-{
- return negative ? - 1E-6176dl : 1E-6176dl;
-}
-
-/* construct the decimal128 largest finite number with given sign */
-static _Decimal128
-get_decimal128_max (int negative)
-{
- return negative ? - DEC128_MAX : DEC128_MAX;
-}
-
-/* one-to-one conversion:
- s is a decimal string representing a number x = m * 10^e which must be
- exactly representable in the decimal128 format, i.e.
- (a) the mantissa m has at most 34 decimal digits
- (b1) -6143 <= e <= 6144 with m integer multiple of 10^(-33), |m| < 10
- (b2) or -6176 <= e <= 6111 with m integer, |m| < 10^34.
- Assumes s is neither NaN nor +Inf nor -Inf.
- s = [-][0-9]+E[-][0-9]+
-
- The decimal128 format (cf table 3.6 of IEEE 754-2008) has the following
- parameters:
- * k = 128 (number of bits of storage)
- * p = 34 (precision in digits)
- * emax = 6144
- * bias = E-q = 6176
- * sign bit has 1 bit
- * w+5 = 17 bits (combination field width)
- * t = 110 bits (trailing significand width)
- We have k = 1 + 5 + w + t = 128.
-*/
-static _Decimal128
-string_to_Decimal128 (char *s) /* portable version */
-{
- long int exp = 0;
- char m[35];
- long n = 0; /* mantissa length */
- char *endptr[1];
- _Decimal128 x = 0;
- int sign = 0;
-
- /* read sign */
- if (*s == '-')
- {
- sign = 1;
- s ++;
- }
- /* read mantissa */
- while (ISDIGIT (*s))
- m[n++] = *s++;
-
- /* as constructed in mpfr_get_decimal128, s cannot have any '.' separator */
-
- /* we will consider an integer mantissa m*10^exp */
- MPFR_ASSERTN(n <= 34);
- /* s always has an exponent separator 'E' */
- MPFR_ASSERTN(*s == 'E');
- exp = strtol (s + 1, endptr, 10);
- MPFR_ASSERTN(**endptr == '\0');
- MPFR_ASSERTN(-6176 <= exp && exp <= (long) (6145 - n));
- while (n < 34)
- {
- m[n++] = '0';
- exp --;
- }
- /* now n=34 and -6176 <= exp <= 6111, cf (b2) */
- m[n] = '\0';
-
- /* the number to convert is m[] * 10^exp where the mantissa is a 34-digit
- integer */
-
- /* compute biased exponent */
- exp += 6176;
-
- MPFR_ASSERTN(exp >= -33);
- if (exp < 0)
- {
- int i;
- n = -exp;
- /* check the last n digits of the mantissa are zero */
- for (i = 1; i <= n; i++)
- MPFR_ASSERTN(m[34 - n] == '0');
- /* shift the first (34-n) digits to the right */
- for (i = 34 - n - 1; i >= 0; i--)
- m[i + n] = m[i];
- /* zero the first n digits */
- for (i = 0; i < n; i ++)
- m[i] = '0';
- exp = 0;
- }
-
- /* the number to convert is m[] * 10^(exp-6176) */
- exp -= 6176;
-
- for (n = 0; n < 34; n++)
- x = (_Decimal128) 10 * x + (_Decimal128) (m[n] - '0');
-
- /* multiply by 10^exp */
- if (exp > 0)
- {
- _Decimal128 ten = 10;
- _Decimal128 ten2 = ten * ten;
- _Decimal128 ten4 = ten2 * ten2;
- _Decimal128 ten8 = ten4 * ten4;
- _Decimal128 ten16 = ten8 * ten8;
- _Decimal128 ten32 = ten16 * ten16;
- _Decimal128 ten64 = ten32 * ten32;
- _Decimal128 ten128 = ten64 * ten64;
- _Decimal128 ten256 = ten128 * ten128;
- _Decimal128 ten512 = ten256 * ten256;
- _Decimal128 ten1024 = ten512 * ten512;
- _Decimal128 ten2048 = ten1024 * ten1024;
- _Decimal128 ten4096 = ten2048 * ten2048;
-
- if (exp >= 4096)
- {
- x *= ten4096;
- exp -= 4096;
- }
- if (exp >= 2048)
- {
- x *= ten2048;
- exp -= 2048;
- }
- if (exp >= 1024)
- {
- x *= ten1024;
- exp -= 1024;
- }
- if (exp >= 512)
- {
- x *= ten512;
- exp -= 512;
- }
- if (exp >= 256)
- {
- x *= ten256;
- exp -= 256;
- }
- if (exp >= 128)
- {
- x *= ten128;
- exp -= 128;
- }
- if (exp >= 64)
- {
- x *= ten64;
- exp -= 64;
- }
- if (exp >= 32)
- {
- x *= ten32;
- exp -= 32;
- }
- if (exp >= 16)
- {
- x *= ten16;
- exp -= 16;
- }
- if (exp >= 8)
- {
- x *= ten8;
- exp -= 8;
- }
- if (exp >= 4)
- {
- x *= ten4;
- exp -= 4;
- }
- if (exp >= 2)
- {
- x *= ten2;
- exp -= 2;
- }
- if (exp >= 1)
- {
- x *= ten;
- exp -= 1;
- }
- }
- else if (exp < 0)
- {
- _Decimal128 ten = 10;
- _Decimal128 ten2 = ten * ten;
- _Decimal128 ten4 = ten2 * ten2;
- _Decimal128 ten8 = ten4 * ten4;
- _Decimal128 ten16 = ten8 * ten8;
- _Decimal128 ten32 = ten16 * ten16;
- _Decimal128 ten64 = ten32 * ten32;
- _Decimal128 ten128 = ten64 * ten64;
- _Decimal128 ten256 = ten128 * ten128;
- _Decimal128 ten512 = ten256 * ten256;
- _Decimal128 ten1024 = ten512 * ten512;
- _Decimal128 ten2048 = ten1024 * ten1024;
- _Decimal128 ten4096 = ten2048 * ten2048;
-
- if (exp <= -4096)
- {
- x /= ten4096;
- exp += 4096;
- }
- if (exp <= -2048)
- {
- x /= ten2048;
- exp += 2048;
- }
- if (exp <= -1024)
- {
- x /= ten1024;
- exp += 1024;
- }
- if (exp <= -512)
- {
- x /= ten512;
- exp += 512;
- }
- if (exp <= -256)
- {
- x /= ten256;
- exp += 256;
- }
- if (exp <= -128)
- {
- x /= ten128;
- exp += 128;
- }
- if (exp <= -64)
- {
- x /= ten64;
- exp += 64;
- }
- if (exp <= -32)
- {
- x /= ten32;
- exp += 32;
- }
- if (exp <= -16)
- {
- x /= ten16;
- exp += 16;
- }
- if (exp <= -8)
- {
- x /= ten8;
- exp += 8;
- }
- if (exp <= -4)
- {
- x /= ten4;
- exp += 4;
- }
- if (exp <= -2)
- {
- x /= ten2;
- exp += 2;
- }
- if (exp <= -1)
- {
- x /= ten;
- exp += 1;
- }
- }
-
- if (sign)
- x = -x;
-
- return x;
-}
-
-_Decimal128
-mpfr_get_decimal128 (mpfr_srcptr src, mpfr_rnd_t rnd_mode)
-{
- int negative;
- mpfr_exp_t e;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (src)))
- {
- if (MPFR_IS_NAN (src))
- return get_decimal128_nan ();
-
- negative = MPFR_IS_NEG (src);
-
- if (MPFR_IS_INF (src))
- return get_decimal128_inf (negative);
-
- MPFR_ASSERTD (MPFR_IS_ZERO(src));
- return get_decimal128_zero (negative);
- }
-
- e = MPFR_GET_EXP (src);
- negative = MPFR_IS_NEG (src);
-
- MPFR_UPDATE2_RND_MODE (rnd_mode, MPFR_SIGN (src));
-
- /* now rnd_mode is RNDN, RNDF, RNDA or RNDZ */
-
- /* the smallest decimal128 number is 10^(-6176),
- with 2^(-20517) < 10^(-6176) < 2^(-20516) */
- if (MPFR_UNLIKELY (e < -20517)) /* src <= 2^(-20518) < 1/2*10^(-6176) */
- {
- if (rnd_mode != MPFR_RNDA)
- return get_decimal128_zero (negative);
- else /* RNDA: return the smallest non-zero number */
- return get_decimal128_min (negative);
- }
- /* the largest decimal128 number is just below 10^6145 < 2^20414 */
- else if (MPFR_UNLIKELY (e > 20414)) /* then src >= 2^20414 */
- {
- if (rnd_mode == MPFR_RNDZ)
- return get_decimal128_max (negative);
- else /* RNDN, RNDA, RNDF: round away */
- return get_decimal128_inf (negative);
- }
- else
- {
- /* we need to store the sign (1 character), the significand (at most 34
- characters), the exponent part (at most 6 characters for "E-6176"),
- and the terminating null character, thus we need at least 42
- characters in s. */
- char s[42];
- mpfr_get_str (s, &e, 10, 34, src, rnd_mode);
- /* the smallest normal number is 1.000...000E-6143,
- which corresponds to s=[0.]1000...000 and e=-6142 */
- if (e < -6142)
- {
- /* the smallest subnormal number is 0.000...001E-6143 = 1E-6176,
- which corresponds to s=[0.]1000...000 and e=-6175 */
- if (e < -6175)
- {
- if (rnd_mode == MPFR_RNDN && e == -6176)
- {
- /* If 0.5E-6176 < |src| < 1E-6176 (smallest subnormal),
- src should round to +/- 1E-6176 in MPFR_RNDN. */
- mpfr_get_str (s, &e, 10, 1, src, MPFR_RNDA);
- return e == -6176 && s[negative] <= '5' ?
- get_decimal128_zero (negative) :
- get_decimal128_min (negative);
- }
- if (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDN)
- return get_decimal128_zero (negative);
- else /* RNDA or RNDF: return the smallest non-zero number */
- return get_decimal128_min (negative);
- }
- else
- {
- mpfr_exp_t e2;
- long digits = 34 - (-6142 - e);
- /* if e = -6175 then 34 - (-6142 - e) = 1 */
- mpfr_get_str (s, &e2, 10, digits, src, rnd_mode);
- /* Warning: we can have e2 = e + 1 here, when rounding to
- nearest or away from zero. */
- s[negative + digits] = 'E';
- sprintf (s + negative + digits + 1, "%ld",
- (long int)e2 - digits);
- return string_to_Decimal128 (s);
- }
- }
- /* the largest number is 9.999...999E+6144,
- which corresponds to s=[0.]9999...999 and e=6145 */
- else if (e > 6145)
- {
- if (rnd_mode == MPFR_RNDZ)
- return get_decimal128_max (negative);
- else /* RNDN, RNDA, RNDF: round away */
- return get_decimal128_inf (negative);
- }
- else /* -6142 <= e <= 6145 */
- {
- s[34 + negative] = 'E';
- sprintf (s + 35 + negative, "%ld", (long int) e - 34);
- return string_to_Decimal128 (s);
- }
- }
-}
-
-#endif /* MPFR_WANT_DECIMAL_FLOATS */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_d64.c b/Build/source/libs/mpfr/mpfr-src/src/get_d64.c
deleted file mode 100644
index 2f030314f65..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_d64.c
+++ /dev/null
@@ -1,612 +0,0 @@
-/* mpfr_get_decimal64 -- convert a multiple precision floating-point number
- to an IEEE 754-2008 decimal64 float
-
-See https://gcc.gnu.org/legacy-ml/gcc/2006-06/msg00691.html,
-https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html,
-and TR 24732 <http://www.open-std.org/jtc1/sc22/wg14/www/projects#24732>.
-
-Copyright 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#define ISDIGIT(c) ('0' <= c && c <= '9')
-
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-
-#if ! _MPFR_IEEE_FLOATS
-#include "ieee_floats.h"
-#endif
-
-#ifndef DEC64_MAX
-# define DEC64_MAX 9.999999999999999E384dd
-#endif
-
-#ifdef DECIMAL_DPD_FORMAT
-static const int T[1000] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 10, 11, 42, 43, 74, 75, 106, 107, 78, 79, 26, 27,
- 58, 59, 90, 91, 122, 123, 94, 95, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 138, 139, 170,
- 171, 202, 203, 234, 235, 206, 207, 154, 155, 186, 187, 218, 219, 250, 251,
- 222, 223, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 320, 321, 322,
- 323, 324, 325, 326, 327, 328, 329, 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 368, 369, 370,
- 371, 372, 373, 374, 375, 376, 377, 266, 267, 298, 299, 330, 331, 362, 363,
- 334, 335, 282, 283, 314, 315, 346, 347, 378, 379, 350, 351, 384, 385, 386,
- 387, 388, 389, 390, 391, 392, 393, 400, 401, 402, 403, 404, 405, 406, 407,
- 408, 409, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 432, 433, 434,
- 435, 436, 437, 438, 439, 440, 441, 448, 449, 450, 451, 452, 453, 454, 455,
- 456, 457, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 480, 481, 482,
- 483, 484, 485, 486, 487, 488, 489, 496, 497, 498, 499, 500, 501, 502, 503,
- 504, 505, 394, 395, 426, 427, 458, 459, 490, 491, 462, 463, 410, 411, 442,
- 443, 474, 475, 506, 507, 478, 479, 512, 513, 514, 515, 516, 517, 518, 519,
- 520, 521, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 544, 545, 546,
- 547, 548, 549, 550, 551, 552, 553, 560, 561, 562, 563, 564, 565, 566, 567,
- 568, 569, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 592, 593, 594,
- 595, 596, 597, 598, 599, 600, 601, 608, 609, 610, 611, 612, 613, 614, 615,
- 616, 617, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 522, 523, 554,
- 555, 586, 587, 618, 619, 590, 591, 538, 539, 570, 571, 602, 603, 634, 635,
- 606, 607, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 672, 673, 674, 675, 676, 677, 678, 679,
- 680, 681, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 704, 705, 706,
- 707, 708, 709, 710, 711, 712, 713, 720, 721, 722, 723, 724, 725, 726, 727,
- 728, 729, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 752, 753, 754,
- 755, 756, 757, 758, 759, 760, 761, 650, 651, 682, 683, 714, 715, 746, 747,
- 718, 719, 666, 667, 698, 699, 730, 731, 762, 763, 734, 735, 768, 769, 770,
- 771, 772, 773, 774, 775, 776, 777, 784, 785, 786, 787, 788, 789, 790, 791,
- 792, 793, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 816, 817, 818,
- 819, 820, 821, 822, 823, 824, 825, 832, 833, 834, 835, 836, 837, 838, 839,
- 840, 841, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 864, 865, 866,
- 867, 868, 869, 870, 871, 872, 873, 880, 881, 882, 883, 884, 885, 886, 887,
- 888, 889, 778, 779, 810, 811, 842, 843, 874, 875, 846, 847, 794, 795, 826,
- 827, 858, 859, 890, 891, 862, 863, 896, 897, 898, 899, 900, 901, 902, 903,
- 904, 905, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 928, 929, 930,
- 931, 932, 933, 934, 935, 936, 937, 944, 945, 946, 947, 948, 949, 950, 951,
- 952, 953, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 976, 977, 978,
- 979, 980, 981, 982, 983, 984, 985, 992, 993, 994, 995, 996, 997, 998, 999,
- 1000, 1001, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 906,
- 907, 938, 939, 970, 971, 1002, 1003, 974, 975, 922, 923, 954, 955, 986,
- 987, 1018, 1019, 990, 991, 12, 13, 268, 269, 524, 525, 780, 781, 46, 47, 28,
- 29, 284, 285, 540, 541, 796, 797, 62, 63, 44, 45, 300, 301, 556, 557, 812,
- 813, 302, 303, 60, 61, 316, 317, 572, 573, 828, 829, 318, 319, 76, 77,
- 332, 333, 588, 589, 844, 845, 558, 559, 92, 93, 348, 349, 604, 605, 860,
- 861, 574, 575, 108, 109, 364, 365, 620, 621, 876, 877, 814, 815, 124, 125,
- 380, 381, 636, 637, 892, 893, 830, 831, 14, 15, 270, 271, 526, 527, 782,
- 783, 110, 111, 30, 31, 286, 287, 542, 543, 798, 799, 126, 127, 140, 141,
- 396, 397, 652, 653, 908, 909, 174, 175, 156, 157, 412, 413, 668, 669, 924,
- 925, 190, 191, 172, 173, 428, 429, 684, 685, 940, 941, 430, 431, 188, 189,
- 444, 445, 700, 701, 956, 957, 446, 447, 204, 205, 460, 461, 716, 717, 972,
- 973, 686, 687, 220, 221, 476, 477, 732, 733, 988, 989, 702, 703, 236, 237,
- 492, 493, 748, 749, 1004, 1005, 942, 943, 252, 253, 508, 509, 764, 765,
- 1020, 1021, 958, 959, 142, 143, 398, 399, 654, 655, 910, 911, 238, 239, 158,
- 159, 414, 415, 670, 671, 926, 927, 254, 255};
-#endif
-
-/* construct a decimal64 NaN */
-/* FIXME: In the _MPFR_IEEE_FLOATS case, possible issue due to the fact
- that not all bitfields are initialized. Moreover, is there an advantage
- of this code compared to the generic one? */
-static _Decimal64
-get_decimal64_nan (void)
-{
-#if _MPFR_IEEE_FLOATS
- union mpfr_ieee_double_extract x;
- union ieee_double_decimal64 y;
-
- x.s.exp = 1984; /* G[0]..G[4] = 11111: quiet NaN */
- y.d = x.d;
- return y.d64;
-#else
- return (_Decimal64) MPFR_DBL_NAN;
-#endif
-}
-
-/* construct the decimal64 Inf with given sign */
-/* FIXME: In the _MPFR_IEEE_FLOATS case, possible issue due to the fact
- that not all bitfields are initialized. Moreover, is there an advantage
- of this code compared to the generic one? */
-static _Decimal64
-get_decimal64_inf (int negative)
-{
-#if _MPFR_IEEE_FLOATS
- union mpfr_ieee_double_extract x;
- union ieee_double_decimal64 y;
-
- x.s.sig = (negative) ? 1 : 0;
- x.s.exp = 1920; /* G[0]..G[4] = 11110: Inf */
- y.d = x.d;
- return y.d64;
-#else
- return (_Decimal64) (negative ? MPFR_DBL_INFM : MPFR_DBL_INFP);
-#endif
-}
-
-/* construct the decimal64 zero with given sign */
-static _Decimal64
-get_decimal64_zero (int negative)
-{
- return negative ? -0.0dd : 0.0dd;
-}
-
-/* construct the decimal64 smallest non-zero with given sign:
- it is 10^emin * 10^(1-p). Since emax = 384, emin = 1-emax = -383,
- and p = 16, we get 10^(-398) */
-static _Decimal64
-get_decimal64_min (int negative)
-{
- return negative ? - 1E-398dd : 1E-398dd;
-}
-
-/* construct the decimal64 largest finite number with given sign */
-static _Decimal64
-get_decimal64_max (int negative)
-{
- return negative ? - DEC64_MAX : DEC64_MAX;
-}
-
-/* one-to-one conversion:
- s is a decimal string representing a number x = m * 10^e which must be
- exactly representable in the decimal64 format, i.e.
- (a) the mantissa m has at most 16 decimal digits
- (b1) -383 <= e <= 384 with m integer multiple of 10^(-15), |m| < 10
- (b2) or -398 <= e <= 369 with m integer, |m| < 10^16.
- Assumes s is neither NaN nor +Inf nor -Inf.
- s = [-][0-9]+E[-][0-9]+
-*/
-
-#if _MPFR_IEEE_FLOATS && !defined(DECIMAL_GENERIC_CODE)
-
-static _Decimal64
-string_to_Decimal64 (char *s)
-{
- long int exp;
- char m[17];
- long n = 0; /* mantissa length */
- char *endptr[1];
- union mpfr_ieee_double_extract x;
- union ieee_double_decimal64 y;
-#ifdef DECIMAL_DPD_FORMAT
- unsigned int G, d1, d2, d3, d4, d5;
-#endif
-
- /* read sign */
- if (*s == '-')
- {
- x.s.sig = 1;
- s ++;
- }
- else
- x.s.sig = 0;
- /* read mantissa */
- while (ISDIGIT (*s))
- m[n++] = *s++;
- exp = n;
-
- /* as constructed in mpfr_get_decimal64, s cannot have any '.' separator */
-
- /* we have exp digits before decimal point, and a total of n digits */
- exp -= n; /* we will consider an integer mantissa */
- MPFR_ASSERTN(n <= 16);
- /* s always have an exponent separator 'E' */
- MPFR_ASSERTN(*s == 'E');
- exp += strtol (s + 1, endptr, 10);
- MPFR_ASSERTN(**endptr == '\0');
- MPFR_ASSERTN(-398 <= exp && exp <= (long) (385 - n));
- while (n < 16)
- {
- m[n++] = '0';
- exp --;
- }
- /* now n=16 and -398 <= exp <= 369 */
- m[n] = '\0';
-
- /* compute biased exponent */
- exp += 398;
-
- MPFR_ASSERTN(exp >= -15);
- if (exp < 0)
- {
- int i;
- n = -exp;
- /* check the last n digits of the mantissa are zero */
- for (i = 1; i <= n; i++)
- MPFR_ASSERTN(m[16 - n] == '0');
- /* shift the first (16-n) digits to the right */
- for (i = 16 - n - 1; i >= 0; i--)
- m[i + n] = m[i];
- /* zero the first n digits */
- for (i = 0; i < n; i ++)
- m[i] = '0';
- exp = 0;
- }
-
- /* now convert to DPD or BID */
-#ifdef DECIMAL_DPD_FORMAT
-#define CH(d) (d - '0')
- if (m[0] >= '8')
- G = (3 << 11) | ((exp & 768) << 1) | ((CH(m[0]) & 1) << 8);
- else
- G = ((exp & 768) << 3) | (CH(m[0]) << 8);
- /* now the most 5 significant bits of G are filled */
- G |= exp & 255;
- d1 = T[100 * CH(m[1]) + 10 * CH(m[2]) + CH(m[3])]; /* 10-bit encoding */
- d2 = T[100 * CH(m[4]) + 10 * CH(m[5]) + CH(m[6])]; /* 10-bit encoding */
- d3 = T[100 * CH(m[7]) + 10 * CH(m[8]) + CH(m[9])]; /* 10-bit encoding */
- d4 = T[100 * CH(m[10]) + 10 * CH(m[11]) + CH(m[12])]; /* 10-bit encoding */
- d5 = T[100 * CH(m[13]) + 10 * CH(m[14]) + CH(m[15])]; /* 10-bit encoding */
- x.s.exp = G >> 2;
- x.s.manh = ((G & 3) << 18) | (d1 << 8) | (d2 >> 2);
- x.s.manl = (d2 & 3) << 30;
- x.s.manl |= (d3 << 20) | (d4 << 10) | d5;
-#else /* BID */
- {
- unsigned int rp[2]; /* rp[0] and rp[1] should contain at least 32 bits */
-#define NLIMBS (64 / GMP_NUMB_BITS)
- mp_limb_t sp[NLIMBS];
- mp_size_t sn;
- int case_i = strcmp (m, "9007199254740992") < 0;
-
- for (n = 0; n < 16; n++)
- m[n] -= '0';
- sn = mpn_set_str (sp, (unsigned char *) m, 16, 10);
- while (sn < NLIMBS)
- sp[sn++] = 0;
- /* now convert {sp, sn} to {rp, 2} */
-#if GMP_NUMB_BITS >= 64
- MPFR_ASSERTD(sn <= 1);
- rp[0] = sp[0] & 4294967295UL;
- rp[1] = sp[0] >> 32;
-#elif GMP_NUMB_BITS == 32
- MPFR_ASSERTD(sn <= 2);
- rp[0] = sp[0];
- rp[1] = sp[1];
-#elif GMP_NUMB_BITS == 16
- rp[0] = sp[0] | ((unsigned int) sp[1] << 16);
- rp[1] = sp[2] | ((unsigned int) sp[3] << 16);
-#elif GMP_NUMB_BITS == 8
- rp[0] = sp[0] | ((unsigned int) sp[1] << 8)
- | ((unsigned int) sp[2] << 16) | ((unsigned int) sp[3] << 24);
- rp[1] = sp[4] | ((unsigned int) sp[5] << 8)
- | ((unsigned int) sp[6] << 16) | ((unsigned int) sp[7] << 24);
-#else
-#error "GMP_NUMB_BITS should be 8, 16, 32, or >= 64"
-#endif
- if (case_i)
- { /* s < 2^53: case i) */
- x.s.exp = exp << 1;
- x.s.manl = rp[0]; /* 32 bits */
- x.s.manh = rp[1] & 1048575; /* 20 low bits */
- x.s.exp |= rp[1] >> 20; /* 1 bit */
- }
- else /* s >= 2^53: case ii) */
- {
- x.s.exp = 1536 | (exp >> 1);
- x.s.manl = rp[0];
- x.s.manh = (rp[1] ^ 2097152) | ((exp & 1) << 19);
- }
- }
-#endif /* DPD or BID */
- y.d = x.d;
- return y.d64;
-}
-
-#else /* portable version */
-
-static _Decimal64
-string_to_Decimal64 (char *s)
-{
- long int exp = 0;
- char m[17];
- long n = 0; /* mantissa length */
- char *endptr[1];
- _Decimal64 x = 0;
- int sign = 0;
-
- /* read sign */
- if (*s == '-')
- {
- sign = 1;
- s ++;
- }
- /* read mantissa */
- while (ISDIGIT (*s))
- m[n++] = *s++;
-
- /* as constructed in mpfr_get_decimal64, s cannot have any '.' separator */
-
- /* we will consider an integer mantissa m*10^exp */
- MPFR_ASSERTN(n <= 16);
- /* s always has an exponent separator 'E' */
- MPFR_ASSERTN(*s == 'E');
- exp = strtol (s + 1, endptr, 10);
- MPFR_ASSERTN(**endptr == '\0');
- MPFR_ASSERTN(-398 <= exp && exp <= (long) (385 - n));
- while (n < 16)
- {
- m[n++] = '0';
- exp --;
- }
- /* now n=16 and -398 <= exp <= 369 */
- m[n] = '\0';
-
- /* the number to convert is m[] * 10^exp where the mantissa is a 16-digit
- integer */
-
- /* compute biased exponent */
- exp += 398;
-
- MPFR_ASSERTN(exp >= -15);
- if (exp < 0)
- {
- int i;
- n = -exp;
- /* check the last n digits of the mantissa are zero */
- for (i = 1; i <= n; i++)
- MPFR_ASSERTN(m[16 - n] == '0');
- /* shift the first (16-n) digits to the right */
- for (i = 16 - n - 1; i >= 0; i--)
- m[i + n] = m[i];
- /* zero the first n digits */
- for (i = 0; i < n; i ++)
- m[i] = '0';
- exp = 0;
- }
-
- /* the number to convert is m[] * 10^(exp-398) */
- exp -= 398;
-
- for (n = 0; n < 16; n++)
- x = (_Decimal64) 10.0 * x + (_Decimal64) (m[n] - '0');
-
- /* multiply by 10^exp */
- if (exp > 0)
- {
- _Decimal64 ten16 = (double) 1e16; /* 10^16 is exactly representable
- in binary64 */
- _Decimal64 ten32 = ten16 * ten16;
- _Decimal64 ten64 = ten32 * ten32;
- _Decimal64 ten128 = ten64 * ten64;
- _Decimal64 ten256 = ten128 * ten128;
- if (exp >= 256)
- {
- x *= ten256;
- exp -= 256;
- }
- if (exp >= 128)
- {
- x *= ten128;
- exp -= 128;
- }
- if (exp >= 64)
- {
- x *= ten64;
- exp -= 64;
- }
- if (exp >= 32)
- {
- x *= ten32;
- exp -= 32;
- }
- if (exp >= 16)
- {
- x *= (_Decimal64) 10000000000000000.0;
- exp -= 16;
- }
- if (exp >= 8)
- {
- x *= (_Decimal64) 100000000.0;
- exp -= 8;
- }
- if (exp >= 4)
- {
- x *= (_Decimal64) 10000.0;
- exp -= 4;
- }
- if (exp >= 2)
- {
- x *= (_Decimal64) 100.0;
- exp -= 2;
- }
- if (exp >= 1)
- {
- x *= (_Decimal64) 10.0;
- exp -= 1;
- }
- }
- else if (exp < 0)
- {
- _Decimal64 ten16 = (double) 1e16; /* 10^16 is exactly representable
- in binary64 */
- _Decimal64 ten32 = ten16 * ten16;
- _Decimal64 ten64 = ten32 * ten32;
- _Decimal64 ten128 = ten64 * ten64;
- _Decimal64 ten256 = ten128 * ten128;
- if (exp <= -256)
- {
- x /= ten256;
- exp += 256;
- }
- if (exp <= -128)
- {
- x /= ten128;
- exp += 128;
- }
- if (exp <= -64)
- {
- x /= ten64;
- exp += 64;
- }
- if (exp <= -32)
- {
- x /= ten32;
- exp += 32;
- }
- if (exp <= -16)
- {
- x /= (_Decimal64) 10000000000000000.0;
- exp += 16;
- }
- if (exp <= -8)
- {
- x /= (_Decimal64) 100000000.0;
- exp += 8;
- }
- if (exp <= -4)
- {
- x /= (_Decimal64) 10000.0;
- exp += 4;
- }
- if (exp <= -2)
- {
- x /= (_Decimal64) 100.0;
- exp += 2;
- }
- if (exp <= -1)
- {
- x /= (_Decimal64) 10.0;
- exp += 1;
- }
- }
-
- if (sign)
- x = -x;
-
- return x;
-}
-
-#endif /* definition of string_to_Decimal64 (DPD, BID, or portable) */
-
-_Decimal64
-mpfr_get_decimal64 (mpfr_srcptr src, mpfr_rnd_t rnd_mode)
-{
- int negative;
- mpfr_exp_t e;
-
- /* the encoding of NaN, Inf, zero is the same under DPD or BID */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (src)))
- {
- if (MPFR_IS_NAN (src))
- return get_decimal64_nan ();
-
- negative = MPFR_IS_NEG (src);
-
- if (MPFR_IS_INF (src))
- return get_decimal64_inf (negative);
-
- MPFR_ASSERTD (MPFR_IS_ZERO(src));
- return get_decimal64_zero (negative);
- }
-
- e = MPFR_GET_EXP (src);
- negative = MPFR_IS_NEG (src);
-
- MPFR_UPDATE2_RND_MODE (rnd_mode, MPFR_SIGN (src));
-
- /* now rnd_mode is RNDN, RNDF, RNDA or RNDZ */
-
- /* the smallest decimal64 number is 10^(-398),
- with 2^(-1323) < 10^(-398) < 2^(-1322) */
- if (MPFR_UNLIKELY (e < -1323)) /* src <= 2^(-1324) < 1/2*10^(-398) */
- {
- if (rnd_mode != MPFR_RNDA)
- return get_decimal64_zero (negative);
- else /* RNDA: return the smallest non-zero number */
- return get_decimal64_min (negative);
- }
- /* the largest decimal64 number is just below 10^385 < 2^1279 */
- else if (MPFR_UNLIKELY (e > 1279)) /* then src >= 2^1279 */
- {
- if (rnd_mode == MPFR_RNDZ)
- return get_decimal64_max (negative);
- else /* RNDN, RNDA, RNDF: round away */
- return get_decimal64_inf (negative);
- }
- else
- {
- /* we need to store the sign (1 character), the significand (at most 16
- characters), the exponent part (at most 5 characters for "E-398"),
- and the terminating character, thus we need at least 23 characters */
- char s[23];
- mpfr_get_str (s, &e, 10, 16, src, rnd_mode);
- /* the smallest normal number is 1.000...000E-383,
- which corresponds to s=[0.]1000...000 and e=-382 */
- if (e < -382)
- {
- /* the smallest subnormal number is 0.000...001E-383 = 1E-398,
- which corresponds to s=[0.]1000...000 and e=-397 */
- if (e < -397)
- {
- if (rnd_mode == MPFR_RNDN && e == -398)
- {
- /* If 0.5E-398 < |src| < 1E-398 (smallest subnormal),
- src should round to +/- 1E-398 in MPFR_RNDN. */
- mpfr_get_str (s, &e, 10, 1, src, MPFR_RNDA);
- return e == -398 && s[negative] <= '5' ?
- get_decimal64_zero (negative) :
- get_decimal64_min (negative);
- }
- if (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDN)
- return get_decimal64_zero (negative);
- else /* RNDA or RNDF: return the smallest non-zero number */
- return get_decimal64_min (negative);
- }
- else
- {
- mpfr_exp_t e2;
- long digits = 16 - (-382 - e);
- /* if e = -397 then 16 - (-382 - e) = 1 */
- mpfr_get_str (s, &e2, 10, digits, src, rnd_mode);
- /* Warning: we can have e2 = e + 1 here, when rounding to
- nearest or away from zero. */
- s[negative + digits] = 'E';
- sprintf (s + negative + digits + 1, "%ld",
- (long int)e2 - digits);
- return string_to_Decimal64 (s);
- }
- }
- /* the largest number is 9.999...999E+384,
- which corresponds to s=[0.]9999...999 and e=385 */
- else if (e > 385)
- {
- if (rnd_mode == MPFR_RNDZ)
- return get_decimal64_max (negative);
- else /* RNDN, RNDA, RNDF: round away */
- return get_decimal64_inf (negative);
- }
- else /* -382 <= e <= 385 */
- {
- s[16 + negative] = 'E';
- sprintf (s + 17 + negative, "%ld", (long int)e - 16);
- return string_to_Decimal64 (s);
- }
- }
-}
-
-#endif /* MPFR_WANT_DECIMAL_FLOATS */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_exp.c b/Build/source/libs/mpfr/mpfr-src/src/get_exp.c
deleted file mode 100644
index a766994379a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_exp.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* mpfr_get_exp - get the exponent of a floating-point number
-
-Copyright 2002-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#undef mpfr_get_exp
-mpfr_exp_t
-mpfr_get_exp (mpfr_srcptr x)
-{
- MPFR_ASSERTN(MPFR_IS_PURE_FP(x));
- return MPFR_EXP(x); /* do not use MPFR_GET_EXP of course... */
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_f.c b/Build/source/libs/mpfr/mpfr-src/src/get_f.c
deleted file mode 100644
index afe4e5c8b1e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_f.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* mpfr_get_f -- convert a MPFR number to a GNU MPF number
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_MPF_INTERNALS
-#include "mpfr-impl.h"
-
-#ifndef MPFR_USE_MINI_GMP
-/* Since MPFR-3.0, return the usual inexact value.
- The erange flag is set if an error occurred in the conversion
- (y is NaN, +Inf, or -Inf that have no equivalent in mpf)
-*/
-int
-mpfr_get_f (mpf_ptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode)
-{
- int inex;
- mp_size_t sx, sy;
- mpfr_prec_t precx, precy;
- mp_limb_t *xp;
- int sh;
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(y)))
- {
- if (MPFR_IS_ZERO(y))
- {
- mpf_set_ui (x, 0);
- return 0;
- }
- else if (MPFR_IS_NAN (y))
- {
- MPFR_SET_ERANGEFLAG ();
- return 0;
- }
- else /* y is plus infinity (resp. minus infinity), set x to the maximum
- value (resp. the minimum value) in precision PREC(x) */
- {
- int i;
- mp_limb_t *xp;
-
- MPFR_SET_ERANGEFLAG ();
-
- /* To this day, [mp_exp_t] and mp_size_t are #defined as the same
- type */
- EXP (x) = MP_SIZE_T_MAX;
-
- sx = PREC (x);
- SIZ (x) = sx;
- xp = PTR (x);
- for (i = 0; i < sx; i++)
- xp[i] = MPFR_LIMB_MAX;
-
- if (MPFR_IS_POS (y))
- return -1;
- else
- {
- mpf_neg (x, x);
- return +1;
- }
- }
- }
-
- sx = PREC(x); /* number of limbs of the mantissa of x */
-
- precy = MPFR_PREC(y);
- precx = (mpfr_prec_t) sx * GMP_NUMB_BITS;
- sy = MPFR_LIMB_SIZE (y);
-
- xp = PTR (x);
-
- /* since mpf numbers are represented in base 2^GMP_NUMB_BITS,
- we loose -EXP(y) % GMP_NUMB_BITS bits in the most significant limb */
- sh = MPFR_GET_EXP(y) % GMP_NUMB_BITS;
- sh = sh <= 0 ? - sh : GMP_NUMB_BITS - sh;
- MPFR_ASSERTD (sh >= 0);
- if (precy + sh <= precx) /* we can copy directly */
- {
- mp_size_t ds;
-
- MPFR_ASSERTN (sx >= sy);
- ds = sx - sy;
-
- if (sh != 0)
- {
- mp_limb_t out;
- out = mpn_rshift (xp + ds, MPFR_MANT(y), sy, sh);
- MPFR_ASSERTN (ds > 0 || out == 0);
- if (ds > 0)
- xp[--ds] = out;
- }
- else
- MPN_COPY (xp + ds, MPFR_MANT (y), sy);
- if (ds > 0)
- MPN_ZERO (xp, ds);
- EXP(x) = (MPFR_GET_EXP(y) + sh) / GMP_NUMB_BITS;
- inex = 0;
- }
- else /* we have to round to precx - sh bits */
- {
- mpfr_t z;
- mp_size_t sz;
-
- /* Recall that precx = (mpfr_prec_t) sx * GMP_NUMB_BITS, thus removing
- sh bits (sh < GMP_NUMB_BITSS) won't reduce the number of limbs. */
- mpfr_init2 (z, precx - sh);
- sz = MPFR_LIMB_SIZE (z);
- MPFR_ASSERTN (sx == sz);
-
- inex = mpfr_set (z, y, rnd_mode);
- /* warning, sh may change due to rounding, but then z is a power of two,
- thus we can safely ignore its last bit which is 0 */
- sh = MPFR_GET_EXP(z) % GMP_NUMB_BITS;
- sh = sh <= 0 ? - sh : GMP_NUMB_BITS - sh;
- MPFR_ASSERTD (sh >= 0);
- if (sh != 0)
- {
- mp_limb_t out;
- out = mpn_rshift (xp, MPFR_MANT(z), sz, sh);
- /* If sh hasn't changed, it is the number of the non-significant
- bits in the lowest limb of z. Therefore out == 0. */
- MPFR_ASSERTD (out == 0); (void) out; /* avoid a warning */
- }
- else
- MPN_COPY (xp, MPFR_MANT(z), sz);
- EXP(x) = (MPFR_GET_EXP(z) + sh) / GMP_NUMB_BITS;
- mpfr_clear (z);
- }
-
- /* set size and sign */
- SIZ(x) = (MPFR_FROM_SIGN_TO_INT(MPFR_SIGN(y)) < 0) ? -sx : sx;
-
- return inex;
-}
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_float128.c b/Build/source/libs/mpfr/mpfr-src/src/get_float128.c
deleted file mode 100644
index 981f9ca82b6..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_float128.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* mpfr_get_float128 -- convert a multiple precision floating-point
- number to a _Float128 number
-
-Copyright 2012-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#ifdef MPFR_WANT_FLOAT128
-
-/* generic code */
-_Float128
-mpfr_get_float128 (mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return (_Float128) mpfr_get_d (x, rnd_mode);
- else /* now x is a normal non-zero number */
- {
- _Float128 r; /* result */
- _Float128 m;
- mpfr_exp_t e; /* exponent of x (before rounding) */
- mpfr_exp_t sh; /* exponent shift, so that x/2^sh is in the double range */
- const int emin = -16381;
- const int esub = emin - IEEE_FLOAT128_MANT_DIG;
- int sign;
-
- sign = MPFR_SIGN (x);
- e = MPFR_GET_EXP (x);
-
- if (MPFR_UNLIKELY (e <= esub))
- {
- if (MPFR_IS_LIKE_RNDZ (rnd_mode, sign < 0) ||
- (rnd_mode == MPFR_RNDN && (e < esub || mpfr_powerof2_raw (x))))
- return sign < 0 ? -0.0 : 0.0;
- r = 1.0;
- sh = esub;
- }
- else
- {
- mpfr_t y;
- mp_limb_t *yp;
- int prec, i; /* small enough to fit in an int */
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* First round x to the target _Float128 precision, taking the
- reduced precision of the subnormals into account, so that all
- subsequent operations are exact (this avoids double rounding
- problems). */
- prec = e < emin ? e - esub : IEEE_FLOAT128_MANT_DIG;
- MPFR_ASSERTD (prec >= MPFR_PREC_MIN);
- mpfr_init2 (y, prec);
-
- mpfr_set (y, x, rnd_mode);
- sh = MPFR_GET_EXP (y);
- MPFR_SET_EXP (y, 0);
- MPFR_SET_POS (y);
- yp = MPFR_MANT (y);
-
- r = 0.0;
- for (i = 0; i < MPFR_LIMB_SIZE (y); i++)
- {
- /* Note: MPFR_LIMB_MAX is avoided below as it might not
- always work if GMP_NUMB_BITS > IEEE_FLOAT128_MANT_DIG.
- MPFR_LIMB_HIGHBIT has the advantage to fit on 1 bit. */
- r += yp[i];
- r *= 1 / (2 * (_Float128) MPFR_LIMB_HIGHBIT);
- }
-
- mpfr_clear (y);
-
- MPFR_SAVE_EXPO_FREE (expo);
- }
-
- /* we now have to multiply r by 2^sh */
- MPFR_ASSERTD (r > 0);
- if (sh != 0)
- {
- /* An overflow may occur (example: 0.5*2^1024) */
- while (r < 1.0)
- {
- r += r;
- sh--;
- }
-
- if (sh > 0)
- m = 2.0;
- else
- {
- m = 0.5;
- sh = -sh;
- }
-
- for (;;)
- {
- if (sh % 2)
- r = r * m;
- sh >>= 1;
- if (sh == 0)
- break;
- m = m * m;
- }
- }
- if (sign < 0)
- r = -r;
- return r;
- }
-}
-
-#endif /* MPFR_WANT_FLOAT128 */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_flt.c b/Build/source/libs/mpfr/mpfr-src/src/get_flt.c
deleted file mode 100644
index 1b8685e1c60..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_flt.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* mpfr_get_flt -- convert a mpfr_t to a machine single precision float
-
-Copyright 2009-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h> /* for FLT_MIN */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#include "ieee_floats.h"
-
-#define FLT_NEG_ZERO ((float) DBL_NEG_ZERO)
-#define MPFR_FLT_INFM ((float) MPFR_DBL_INFM)
-#define MPFR_FLT_INFP ((float) MPFR_DBL_INFP)
-
-float
-mpfr_get_flt (mpfr_srcptr src, mpfr_rnd_t rnd_mode)
-{
- int negative;
- mpfr_exp_t e;
- float d;
-
- /* in case of NaN, +Inf, -Inf, +0, -0, the conversion from double to float
- is exact */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (src)))
- return (float) mpfr_get_d (src, rnd_mode);
-
- e = MPFR_GET_EXP (src);
- negative = MPFR_IS_NEG (src);
-
- if (MPFR_UNLIKELY(rnd_mode == MPFR_RNDA))
- rnd_mode = negative ? MPFR_RNDD : MPFR_RNDU;
-
- /* FIXME: The code below assumes the IEEE-754 binary32 format
- with subnormal support. Fix it by converting to double, then
- to float, and in case of binary radix (for which we want
- correct rounding), handle double-rounding issues somewhere
- in the code? */
-
- /* the smallest positive normal float number is 2^(-126) = 0.5*2^(-125),
- and the smallest positive subnormal number is 2^(-149) = 0.5*2^(-148) */
- if (MPFR_UNLIKELY (e < -148))
- {
- /* |src| < 2^(-149), i.e., |src| is smaller than the smallest positive
- subnormal number.
- In round-to-nearest mode, 2^(-150) is rounded to zero.
- */
- d = negative ?
- (rnd_mode == MPFR_RNDD ||
- (rnd_mode == MPFR_RNDN && mpfr_cmp_si_2exp (src, -1, -150) < 0)
- ? -FLT_MIN : FLT_NEG_ZERO) :
- (rnd_mode == MPFR_RNDU ||
- (rnd_mode == MPFR_RNDN && mpfr_cmp_si_2exp (src, 1, -150) > 0)
- ? FLT_MIN : 0.0);
- if (d != 0.0) /* we multiply FLT_MIN = 2^(-126) by FLT_EPSILON = 2^(-23)
- to get +-2^(-149) */
- d *= FLT_EPSILON;
- }
- /* the largest normal number is 2^128*(1-2^(-24)) = 0.111...111e128 */
- else if (MPFR_UNLIKELY (e > 128))
- {
- d = negative ?
- (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDU ?
- -FLT_MAX : MPFR_FLT_INFM) :
- (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDD ?
- FLT_MAX : MPFR_FLT_INFP);
- }
- else /* -148 <= e <= 127 */
- {
- int nbits;
- mp_limb_t tp[MPFR_LIMBS_PER_FLT];
- int carry;
- double dd;
-
- nbits = IEEE_FLT_MANT_DIG; /* 24 */
- if (MPFR_UNLIKELY (e < -125))
- /*In the subnormal case, compute the exact number of significant bits*/
- {
- nbits += 125 + e;
- MPFR_ASSERTD (1 <= nbits && nbits < 24);
- }
- carry = mpfr_round_raw_4 (tp, MPFR_MANT(src), MPFR_PREC(src), negative,
- nbits, rnd_mode);
- /* we perform the reconstruction using the 'double' type here,
- knowing the result is exactly representable as 'float' */
- if (MPFR_UNLIKELY(carry))
- dd = 1.0;
- else
- {
-#if MPFR_LIMBS_PER_FLT == 1
- dd = (double) tp[0] / MP_BASE_AS_DOUBLE;
-#else
- mp_size_t np, i;
- np = MPFR_PREC2LIMBS (nbits);
- MPFR_ASSERTD(np <= MPFR_LIMBS_PER_FLT);
- /* The following computations are exact thanks to the previous
- mpfr_round_raw. */
- dd = (double) tp[0] / MP_BASE_AS_DOUBLE;
- for (i = 1 ; i < np ; i++)
- dd = (dd + tp[i]) / MP_BASE_AS_DOUBLE;
- /* dd is the mantissa (between 1/2 and 1) of the argument rounded
- to 24 bits */
-#endif
- }
- dd = mpfr_scale2 (dd, e);
- if (negative)
- dd = -dd;
-
- /* convert (exactly) to float */
- d = (float) dd;
- }
-
- return d;
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_ld.c b/Build/source/libs/mpfr/mpfr-src/src/get_ld.c
deleted file mode 100644
index 6b6a5b9df6c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_ld.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/* mpfr_get_ld, mpfr_get_ld_2exp -- convert a multiple precision floating-point
- number to a machine long double
-
-Copyright 2002-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h> /* needed so that MPFR_LDBL_MANT_DIG is correctly defined */
-
-#include "mpfr-impl.h"
-
-#if defined(HAVE_LDOUBLE_IS_DOUBLE)
-
-/* special code when "long double" is the same format as "double" */
-long double
-mpfr_get_ld (mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- return (long double) mpfr_get_d (x, rnd_mode);
-}
-
-#elif defined(HAVE_LDOUBLE_IEEE_EXT_LITTLE)
-
-/* Note: The code will return a result with a 64-bit precision, even
- if the rounding precision is only 53 bits like on FreeBSD and
- NetBSD 6- (or with GCC's -mpc64 option to simulate this on other
- platforms). This is consistent with how strtold behaves in these
- cases, for instance. */
-
-/* special code for IEEE 754 little-endian extended format */
-long double
-mpfr_get_ld (mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_long_double_t ld;
- mpfr_t tmp;
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- mpfr_init2 (tmp, MPFR_LDBL_MANT_DIG);
- inex = mpfr_set (tmp, x, rnd_mode);
-
- mpfr_set_emin (-16381-63); /* emin=-16444, see below */
- mpfr_set_emax (16384);
- mpfr_subnormalize (tmp, mpfr_check_range (tmp, inex, rnd_mode), rnd_mode);
- mpfr_prec_round (tmp, 64, MPFR_RNDZ); /* exact */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (tmp)))
- ld.ld = (long double) mpfr_get_d (tmp, rnd_mode);
- else
- {
- mp_limb_t *tmpmant;
- mpfr_exp_t e, denorm;
-
- tmpmant = MPFR_MANT (tmp);
- e = MPFR_GET_EXP (tmp);
- /* The smallest positive normal number is 2^(-16382), which is
- 0.5*2^(-16381) in MPFR, thus any exponent <= -16382 corresponds to a
- subnormal number. The smallest positive subnormal number is 2^(-16445)
- which is 0.5*2^(-16444) in MPFR thus 0 <= denorm <= 63. */
- denorm = MPFR_UNLIKELY (e <= -16382) ? - e - 16382 + 1 : 0;
- MPFR_ASSERTD (0 <= denorm && denorm < 64);
-#if GMP_NUMB_BITS >= 64
- ld.s.manl = (tmpmant[0] >> denorm);
- ld.s.manh = (tmpmant[0] >> denorm) >> 32;
-#elif GMP_NUMB_BITS == 32
- if (MPFR_LIKELY (denorm == 0))
- {
- ld.s.manl = tmpmant[0];
- ld.s.manh = tmpmant[1];
- }
- else if (denorm < 32)
- {
- ld.s.manl = (tmpmant[0] >> denorm) | (tmpmant[1] << (32 - denorm));
- ld.s.manh = tmpmant[1] >> denorm;
- }
- else /* 32 <= denorm < 64 */
- {
- ld.s.manl = tmpmant[1] >> (denorm - 32);
- ld.s.manh = 0;
- }
-#elif GMP_NUMB_BITS == 16
- if (MPFR_LIKELY (denorm == 0))
- {
- /* manl = tmpmant[1] | tmpmant[0]
- manh = tmpmant[3] | tmpmant[2] */
- ld.s.manl = tmpmant[0] | ((unsigned long) tmpmant[1] << 16);
- ld.s.manh = tmpmant[2] | ((unsigned long) tmpmant[3] << 16);
- }
- else if (denorm < 16)
- {
- /* manl = low(mant[2],denorm) | mant[1] | high(mant[0],16-denorm)
- manh = mant[3] | high(mant[2],16-denorm) */
- ld.s.manl = (tmpmant[0] >> denorm)
- | ((unsigned long) tmpmant[1] << (16 - denorm))
- | ((unsigned long) tmpmant[2] << (32 - denorm));
- ld.s.manh = (tmpmant[2] >> denorm)
- | ((unsigned long) tmpmant[3] << (16 - denorm));
- }
- else if (denorm == 16)
- {
- /* manl = tmpmant[2] | tmpmant[1]
- manh = 0000000000 | tmpmant[3] */
- ld.s.manl = tmpmant[1] | ((unsigned long) tmpmant[2] << 16);
- ld.s.manh = tmpmant[3];
- }
- else if (denorm < 32)
- {
- /* manl = low(mant[3],denorm-16) | mant[2] | high(mant[1],32-denorm)
- manh = high(mant[3],32-denorm) */
- ld.s.manl = (tmpmant[1] >> (denorm - 16))
- | ((unsigned long) tmpmant[2] << (32 - denorm))
- | ((unsigned long) tmpmant[3] << (48 - denorm));
- ld.s.manh = tmpmant[3] >> (denorm - 16);
- }
- else if (denorm == 32)
- {
- /* manl = tmpmant[3] | tmpmant[2]
- manh = 0 */
- ld.s.manl = tmpmant[2] | ((unsigned long) tmpmant[3] << 16);
- ld.s.manh = 0;
- }
- else if (denorm < 48)
- {
- /* manl = zero(denorm-32) | tmpmant[3] | high(tmpmant[2],48-denorm)
- manh = 0 */
- ld.s.manl = (tmpmant[2] >> (denorm - 32))
- | ((unsigned long) tmpmant[3] << (48 - denorm));
- ld.s.manh = 0;
- }
- else /* 48 <= denorm < 64 */
- {
- /* we assume a right shift of 0 is identity */
- ld.s.manl = tmpmant[3] >> (denorm - 48);
- ld.s.manh = 0;
- }
-#elif GMP_NUMB_BITS == 8
- {
- unsigned long long mant = 0;
- int i;
- for (i = 0; i < 8; i++)
- mant |= ((unsigned long) tmpmant[i] << (8*i));
- mant >>= denorm;
- ld.s.manl = mant;
- ld.s.manh = mant >> 32;
- }
-#else
-# error "GMP_NUMB_BITS must be 16, 32 or >= 64"
- /* Other values have never been supported anyway. */
-#endif
- if (MPFR_LIKELY (denorm == 0))
- {
- ld.s.exph = (e + 0x3FFE) >> 8;
- ld.s.expl = (e + 0x3FFE);
- }
- else
- ld.s.exph = ld.s.expl = 0;
- ld.s.sign = MPFR_IS_NEG (x);
- }
-
- mpfr_clear (tmp);
- MPFR_SAVE_EXPO_FREE (expo);
- return ld.ld;
-}
-
-#else
-
-/* generic code */
-long double
-mpfr_get_ld (mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return (long double) mpfr_get_d (x, rnd_mode);
- else /* now x is a normal non-zero number */
- {
- long double r; /* result */
- double s; /* part of result */
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
-#if defined(HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE)
- if (MPFR_LDBL_MANT_DIG == 106)
- {
- /* Assume double-double format (as found with the PowerPC ABI).
- The generic code below isn't used because numbers with
- precision > 106 would not be supported. */
- s = mpfr_get_d (x, MPFR_RNDN); /* high part of x */
- /* Let's first consider special cases separately. The test for
- infinity is really needed to avoid a NaN result. The test
- for NaN is mainly for optimization. The test for 0 is useful
- to get the correct sign (assuming mpfr_get_d supports signed
- zeros on the implementation). */
- if (s == 0 || DOUBLE_ISNAN (s) || DOUBLE_ISINF (s))
- r = (long double) s;
- else
- {
- mpfr_t y, z;
-
- mpfr_init2 (y, mpfr_get_prec (x));
- mpfr_init2 (z, IEEE_DBL_MANT_DIG); /* keep the precision small */
- mpfr_set_d (z, s, MPFR_RNDN); /* exact */
- mpfr_sub (y, x, z, MPFR_RNDN); /* exact */
- /* Add the second part of y (in the correct rounding mode). */
- r = (long double) s + (long double) mpfr_get_d (y, rnd_mode);
- mpfr_clear (z);
- mpfr_clear (y);
- }
- }
- else
-#endif
- {
- long double m;
- mpfr_exp_t sh; /* exponent shift -> x/2^sh is in the double range */
- mpfr_t y, z;
- int sign;
-
- /* First round x to the target long double precision, so that
- all subsequent operations are exact (this avoids double rounding
- problems). However if the format contains numbers that have more
- precision, MPFR won't be able to generate such numbers. */
- mpfr_init2 (y, MPFR_LDBL_MANT_DIG);
- mpfr_init2 (z, MPFR_LDBL_MANT_DIG);
- /* Note about the precision of z: even though IEEE_DBL_MANT_DIG is
- sufficient, z has been set to the same precision as y so that
- the mpfr_sub below calls mpfr_sub1sp, which is faster than the
- generic subtraction, even in this particular case (from tests
- done by Patrick Pelissier on a 64-bit Core2 Duo against r7285).
- But here there is an important cancellation in the subtraction.
- TODO: get more information about what has been tested. */
-
- mpfr_set (y, x, rnd_mode);
- sh = MPFR_GET_EXP (y);
- sign = MPFR_SIGN (y);
- MPFR_SET_EXP (y, 0);
- MPFR_SET_POS (y);
-
- r = 0.0;
- do
- {
- s = mpfr_get_d (y, MPFR_RNDN); /* high part of y */
- r += (long double) s;
- mpfr_set_d (z, s, MPFR_RNDN); /* exact */
- mpfr_sub (y, y, z, MPFR_RNDN); /* exact */
- }
- while (!MPFR_IS_ZERO (y));
-
- mpfr_clear (z);
- mpfr_clear (y);
-
- /* we now have to multiply back by 2^sh */
- MPFR_ASSERTD (r > 0);
- if (sh != 0)
- {
- /* An overflow may occur (example: 0.5*2^1024) */
- while (r < 1.0)
- {
- r += r;
- sh--;
- }
-
- if (sh > 0)
- m = 2.0;
- else
- {
- m = 0.5;
- sh = -sh;
- }
-
- for (;;)
- {
- if (sh % 2)
- r = r * m;
- sh >>= 1;
- if (sh == 0)
- break;
- m = m * m;
- }
- }
- if (sign < 0)
- r = -r;
- }
- MPFR_SAVE_EXPO_FREE (expo);
- return r;
- }
-}
-
-#endif
-
-/* contributed by Damien Stehle */
-long double
-mpfr_get_ld_2exp (long *expptr, mpfr_srcptr src, mpfr_rnd_t rnd_mode)
-{
- long double ret;
- mpfr_exp_t exp;
- mpfr_t tmp;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (src)))
- return (long double) mpfr_get_d_2exp (expptr, src, rnd_mode);
-
- MPFR_ALIAS (tmp, src, MPFR_SIGN (src), 0);
- ret = mpfr_get_ld (tmp, rnd_mode);
-
- exp = MPFR_GET_EXP (src);
-
- /* rounding can give 1.0, adjust back to 0.5 <= abs(ret) < 1.0 */
- if (ret == 1.0)
- {
- ret = 0.5;
- exp ++;
- }
- else if (ret == -1.0)
- {
- ret = -0.5;
- exp ++;
- }
-
- MPFR_ASSERTN ((ret >= 0.5 && ret < 1.0)
- || (ret <= -0.5 && ret > -1.0));
- MPFR_ASSERTN (exp >= LONG_MIN && exp <= LONG_MAX);
-
- *expptr = exp;
- return ret;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_q.c b/Build/source/libs/mpfr/mpfr-src/src/get_q.c
deleted file mode 100644
index a7c659b5639..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_q.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* mpfr_get_q -- get a multiple-precision rational from
- a floating-point number
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#ifndef MPFR_USE_MINI_GMP
-/* part of the code was copied from get_z.c */
-void
-mpfr_get_q (mpq_ptr q, mpfr_srcptr f)
-{
- mpfr_exp_t exp;
- mpz_ptr u = mpq_numref (q);
- mpz_ptr v = mpq_denref (q);
-
- /* v is set to 1 and will not be changed directly.
- This ensures that q will be canonical. */
- mpz_set_ui (v, 1);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f)))
- {
- if (MPFR_UNLIKELY (MPFR_NOTZERO (f)))
- MPFR_SET_ERANGEFLAG ();
- mpz_set_ui (u, 0);
- /* The ternary value is 0 even for infinity. Giving the rounding
- direction in this case would not make much sense anyway, and
- the direction would not necessarily match rnd. */
- }
- else
- {
- exp = mpfr_get_z_2exp (u, f);
- if (exp >= 0)
- {
- MPFR_ASSERTN (exp <= (mp_bitcnt_t) -1);
- mpz_mul_2exp (u, u, exp);
- }
- else /* exp < 0 */
- {
- MPFR_ASSERTN (-exp <= (mp_bitcnt_t) -1);
- mpq_div_2exp (q, q, -exp);
- }
- }
-}
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_si.c b/Build/source/libs/mpfr/mpfr-src/src/get_si.c
deleted file mode 100644
index a78b4a4fde7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_si.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* mpfr_get_si -- convert a floating-point number to a signed long.
-
-Copyright 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-long
-mpfr_get_si (mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- mpfr_prec_t prec;
- long s;
- mpfr_t x;
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY (!mpfr_fits_slong_p (f, rnd)))
- {
- MPFR_SET_ERANGEFLAG ();
- return MPFR_IS_NAN (f) ? 0 :
- MPFR_IS_NEG (f) ? LONG_MIN : LONG_MAX;
- }
-
- if (MPFR_IS_ZERO (f))
- return (long) 0;
-
- /* Determine the precision of long. |LONG_MIN| may have one more bit
- as an integer, but in this case, this is a power of 2, thus fits
- in a precision-prec floating-point number. */
- for (s = LONG_MAX, prec = 0; s != 0; s /= 2, prec++)
- { }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* first round to prec bits */
- mpfr_init2 (x, prec);
- mpfr_rint (x, f, rnd);
-
- /* The flags from mpfr_rint are the wanted ones. In particular,
- it sets the inexact flag when necessary. */
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- /* warning: if x=0, taking its exponent is illegal */
- if (MPFR_IS_ZERO (x))
- s = 0;
- else
- {
- unsigned long u = 0;
- mp_size_t n;
- mpfr_exp_t exp;
-
- exp = MPFR_GET_EXP (x);
- MPFR_ASSERTD (exp >= 1); /* since |x| >= 1 */
- n = MPFR_LIMB_SIZE (x);
-#ifdef MPFR_LONG_WITHIN_LIMB
- MPFR_ASSERTD (exp <= GMP_NUMB_BITS);
-#else
- while (exp > GMP_NUMB_BITS)
- {
- MPFR_ASSERTD (n > 0);
- u += (unsigned long) MPFR_MANT(x)[n - 1] << (exp - GMP_NUMB_BITS);
- n--;
- exp -= GMP_NUMB_BITS;
- }
-#endif
- MPFR_ASSERTD (n > 0);
- u += MPFR_MANT(x)[n - 1] >> (GMP_NUMB_BITS - exp);
- s = MPFR_IS_POS (f) ? u : u <= LONG_MAX ? - (long) u : LONG_MIN;
- }
-
- mpfr_clear (x);
-
- MPFR_SAVE_EXPO_FREE (expo);
-
- return s;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_sj.c b/Build/source/libs/mpfr/mpfr-src/src/get_sj.c
deleted file mode 100644
index 05274848c24..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_sj.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* mpfr_get_sj -- convert a MPFR number to a huge machine signed integer
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-#ifdef _MPFR_H_HAVE_INTMAX_T
-
-intmax_t
-mpfr_get_sj (mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- intmax_t r;
- mpfr_prec_t prec;
- mpfr_t x;
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY (!mpfr_fits_intmax_p (f, rnd)))
- {
- MPFR_SET_ERANGEFLAG ();
- return MPFR_IS_NAN (f) ? 0 :
- MPFR_IS_NEG (f) ? INTMAX_MIN : INTMAX_MAX;
- }
-
- if (MPFR_IS_ZERO (f))
- return (intmax_t) 0;
-
- /* Determine the precision of intmax_t. |INTMAX_MIN| may have one
- more bit as an integer, but in this case, this is a power of 2,
- thus fits in a precision-prec floating-point number. */
- for (r = INTMAX_MAX, prec = 0; r != 0; r /= 2, prec++)
- { }
-
- MPFR_ASSERTD (r == 0);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- mpfr_init2 (x, prec);
- mpfr_rint (x, f, rnd);
- MPFR_ASSERTN (MPFR_IS_FP (x));
-
- /* The flags from mpfr_rint are the wanted ones. In particular,
- it sets the inexact flag when necessary. */
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- if (MPFR_NOTZERO (x))
- {
- mp_limb_t *xp;
- int sh; /* An int should be sufficient in this context. */
-
- xp = MPFR_MANT (x);
- sh = MPFR_GET_EXP (x);
- MPFR_ASSERTN ((mpfr_prec_t) sh <= prec + 1);
- if (INTMAX_MIN + INTMAX_MAX != 0
- && MPFR_UNLIKELY ((mpfr_prec_t) sh > prec))
- {
- /* 2's complement and x <= INTMAX_MIN: in the case mp_limb_t
- has the same size as intmax_t, we cannot use the code in
- the for loop since the operations would be performed in
- unsigned arithmetic. */
- MPFR_ASSERTD (MPFR_IS_NEG (x) && mpfr_powerof2_raw (x));
- r = INTMAX_MIN;
- }
- /* sh is the number of bits that remain to be considered in {xp, xn} */
- else
- {
-#ifdef MPFR_INTMAX_WITHIN_LIMB
- MPFR_ASSERTD (sh > 0 && sh < GMP_NUMB_BITS);
- r = xp[0] >> (GMP_NUMB_BITS - sh);
-#else
- int n;
-
- /* Note: testing the condition sh > 0 is necessary to avoid
- an undefined behavior on xp[n] >> S when S >= GMP_NUMB_BITS
- (even though xp[n] == 0 in such a case). This can happen if
- sizeof(mp_limb_t) < sizeof(intmax_t) and |x| is small enough
- because of the trailing bits due to its normalization. */
- for (n = MPFR_LIMB_SIZE (x) - 1; n >= 0 && sh > 0; n--)
- {
- sh -= GMP_NUMB_BITS;
- /* Note the concerning the casts below:
- When sh >= 0, the cast must be performed before the shift
- for the case sizeof(intmax_t) > sizeof(mp_limb_t).
- When sh < 0, the cast must be performed after the shift
- for the case sizeof(intmax_t) == sizeof(mp_limb_t), as
- mp_limb_t is unsigned, therefore not representable as an
- intmax_t when the MSB is 1 (this is the case here). */
- MPFR_ASSERTD (-sh < GMP_NUMB_BITS);
- /* each limb should be shifted by sh bits to the left if sh>=0,
- and by sh bits to the right if sh < 0 */
- r += sh >= 0
- ? (intmax_t) xp[n] << sh
- : (intmax_t) (xp[n] >> (-sh));
- }
-#endif
- if (MPFR_IS_NEG(x))
- r = -r;
- }
- }
-
- mpfr_clear (x);
-
- MPFR_SAVE_EXPO_FREE (expo);
-
- return r;
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_str.c b/Build/source/libs/mpfr/mpfr-src/src/get_str.c
deleted file mode 100644
index 7c530ec7a61..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_str.c
+++ /dev/null
@@ -1,2902 +0,0 @@
-/* mpfr_get_str -- output a floating-point number to a string
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-static int mpfr_get_str_aux (char *const, mpfr_exp_t *const, mp_limb_t *const,
- mp_size_t, mpfr_exp_t, long, int, size_t, mpfr_rnd_t);
-
-/* The implicit \0 is useless, but we do not write num_to_text[62] otherwise
- g++ complains. */
-static const char num_to_text36[] = "0123456789abcdefghijklmnopqrstuvwxyz";
-static const char num_to_text62[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz";
-
-/* copy most important limbs of {op, n2} in {rp, n1} */
-/* if n1 > n2 put 0 in low limbs of {rp, n1} */
-#define MPN_COPY2(rp, n1, op, n2) \
- if ((n1) <= (n2)) \
- { \
- MPN_COPY ((rp), (op) + (n2) - (n1), (n1)); \
- } \
- else \
- { \
- MPN_COPY ((rp) + (n1) - (n2), (op), (n2)); \
- MPN_ZERO ((rp), (n1) - (n2)); \
- }
-
-#define MPFR_ROUND_FAILED 3
-
-/* Input: an approximation r*2^f to a real Y, with |r*2^f - Y| <= 2^(e+f).
-
- If rounding is possible, returns:
- - in s: a string representing the significand corresponding to
- the integer nearest to Y, within the direction rnd;
- - in exp: the exponent.
-
- n is the number of limbs of r.
- e represents the maximal error in the approximation to Y (see above),
- (e < 0 means that the approximation is known to be exact, i.e.,
- r*2^f = Y).
- b is the wanted base (2 <= b <= 62 or -36 <= b <= -2).
- m is the number of wanted digits in the significand.
- rnd is the rounding mode.
- It is assumed that b^(m-1) <= Y < b^(m+1), thus the returned value
- satisfies b^(m-1) <= rnd(Y) < b^(m+1).
-
- Rounding may fail for two reasons:
- - the error is too large to determine the integer N nearest to Y
- - either the number of digits of N in base b is too large (m+1),
- N=2*N1+(b/2) and the rounding mode is to nearest. This can
- only happen when b is even.
-
- Return value:
- - the direction of rounding (-1, 0, 1) if rounding is possible
- - -MPFR_ROUND_FAILED if rounding not possible because m+1 digits
- - MPFR_ROUND_FAILED otherwise (too large error)
-*/
-static int
-mpfr_get_str_aux (char *const str, mpfr_exp_t *const exp, mp_limb_t *const r,
- mp_size_t n, mpfr_exp_t f, long e, int b, size_t m,
- mpfr_rnd_t rnd)
-{
- const char *num_to_text;
- int b0 = b; /* initial base (might be negative) */
- int dir; /* direction of the rounded result */
- mp_limb_t ret = 0; /* possible carry in addition */
- mp_size_t i0, j0; /* number of limbs and bits of Y */
- unsigned char *str1; /* string of m+2 characters */
- size_t size_s1; /* length of str1 */
- mpfr_rnd_t rnd1;
- size_t i;
- int exact = (e < 0);
- MPFR_TMP_DECL(marker);
-
- /* if f > 0, then the maximal error 2^(e+f) is larger than 2 so we can't
- determine the integer Y */
- MPFR_ASSERTN(f <= 0);
- /* if f is too small, then r*2^f is smaller than 1 */
- MPFR_ASSERTN(f > (-n * GMP_NUMB_BITS));
-
- MPFR_TMP_MARK(marker);
-
- num_to_text = (2 <= b0 && b0 <= 36) ? num_to_text36 : num_to_text62;
- b = (b0 > 0) ? b0 : -b0;
-
- /* R = 2^f sum r[i]K^(i)
- r[i] = (r_(i,k-1)...r_(i,0))_2
- R = sum r(i,j)2^(j+ki+f)
- the bits from R are referenced by pairs (i,j) */
-
- /* check if is possible to round r with rnd mode
- where |r*2^f - Y| <= 2^(e+f)
- the exponent of R is: f + n*GMP_NUMB_BITS
- we must have e + f == f + n*GMP_NUMB_BITS - err
- err = n*GMP_NUMB_BITS - e
- R contains exactly -f bits after the integer point:
- to determine the nearest integer, we thus need a precision of
- n * GMP_NUMB_BITS + f */
-
- if (exact || mpfr_round_p (r, n, n * GMP_NUMB_BITS - e,
- n * GMP_NUMB_BITS + f + (rnd == MPFR_RNDN)))
- {
- /* compute the nearest integer to R */
-
- /* bit of weight 0 in R has position j0 in limb r[i0] */
- i0 = (-f) / GMP_NUMB_BITS;
- j0 = (-f) % GMP_NUMB_BITS;
-
- ret = mpfr_round_raw (r + i0, r, n * GMP_NUMB_BITS, 0,
- n * GMP_NUMB_BITS + f, rnd, &dir);
- MPFR_ASSERTD(dir != MPFR_ROUND_FAILED);
-
- if (ret) /* Y is a power of 2 */
- {
- if (j0)
- r[n - 1] = MPFR_LIMB_HIGHBIT >> (j0 - 1);
- else /* j0=0, necessarily i0 >= 1 otherwise f=0 and r is exact */
- {
- r[n - 1] = ret;
- r[--i0] = 0; /* set to zero the new low limb */
- }
- }
- else /* shift r to the right by (-f) bits (i0 already done) */
- {
- if (j0)
- mpn_rshift (r + i0, r + i0, n - i0, j0);
- }
-
- /* now the rounded value Y is in {r+i0, n-i0} */
-
- /* convert r+i0 into base b: we use b0 which might be in -36..-2 */
- str1 = (unsigned char*) MPFR_TMP_ALLOC (m + 3); /* need one extra character for mpn_get_str */
- size_s1 = mpn_get_str (str1, b, r + i0, n - i0);
-
- /* round str1 */
- MPFR_ASSERTN(size_s1 >= m);
- *exp = size_s1 - m; /* number of superfluous characters */
-
- /* if size_s1 = m + 2, necessarily we have b^(m+1) as result,
- and the result will not change */
-
- /* so we have to double-round only when size_s1 = m + 1 and
- (i) the result is inexact
- (ii) or the last digit is non-zero */
- if ((size_s1 == m + 1) && ((dir != 0) || (str1[size_s1 - 1] != 0)))
- {
- /* rounding mode */
- rnd1 = rnd;
-
- /* round to nearest case */
- if (rnd == MPFR_RNDN)
- {
- if (2 * str1[size_s1 - 1] == b)
- {
- if (dir == 0 && exact) /* exact: even rounding */
- {
- rnd1 = ((str1[size_s1 - 2] & 1) == 0)
- ? MPFR_RNDD : MPFR_RNDU;
- }
- else
- {
- /* otherwise we cannot round correctly: for example
- if b=10, we might have a mantissa of
- xxxxxxx5.00000000 which can be rounded to nearest
- to 8 digits but not to 7 */
- dir = -MPFR_ROUND_FAILED;
- MPFR_ASSERTD(dir != MPFR_EVEN_INEX);
- goto free_and_return;
- }
- }
- else if (2 * str1[size_s1 - 1] < b)
- rnd1 = MPFR_RNDD;
- else
- rnd1 = MPFR_RNDU;
- }
-
- /* now rnd1 is either
- MPFR_RNDD or MPFR_RNDZ -> truncate, or
- MPFR_RNDU or MPFR_RNDA -> round toward infinity */
-
- /* round away from zero */
- if (rnd1 == MPFR_RNDU || rnd1 == MPFR_RNDA)
- {
- if (str1[size_s1 - 1] != 0)
- {
- /* the carry cannot propagate to the whole string, since
- Y = x*b^(m-g) < 2*b^m <= b^(m+1)-b
- where x is the input float */
- MPFR_ASSERTN(size_s1 >= 2);
- i = size_s1 - 2;
- while (str1[i] == b - 1)
- {
- MPFR_ASSERTD(i > 0);
- str1[i--] = 0;
- }
- str1[i]++;
- }
- dir = 1;
- }
- /* round toward zero (truncate) */
- else
- dir = -1;
- }
-
- /* copy str1 into str and convert to characters (digits and
- lowercase letters from the source character set) */
- for (i = 0; i < m; i++)
- str[i] = num_to_text[(int) str1[i]]; /* str1[i] is an unsigned char */
- str[m] = 0;
- }
- /* mpfr_can_round_raw failed: rounding is not possible */
- else
- {
- dir = MPFR_ROUND_FAILED; /* should be different from MPFR_EVEN_INEX */
- MPFR_ASSERTD(dir != MPFR_EVEN_INEX);
- }
-
- free_and_return:
- MPFR_TMP_FREE(marker);
-
- return dir;
-}
-
-/***************************************************************************
- * __gmpfr_l2b[b-2][0] is a 23-bit upper approximation to log(b)/log(2), *
- * __gmpfr_l2b[b-2][1] is a 77-bit upper approximation to log(2)/log(b). *
- * The following code is generated by tests/tl2b (with an argument). *
- ***************************************************************************/
-
-#ifndef UINT64_C
-# define UINT64_C(c) c
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x00, 0x00, 0x80 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x0000, 0x8000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_2_0__tab[] = { UINT64_C(0x8000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x800000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_2_1__tab[] = { UINT64_C(0x0000000000000000), UINT64_C(0x8000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x800000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x80000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_3_0__tab[] = { 0x0e, 0xe0, 0xca };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_3_0__tab[] = { 0x0e00, 0xcae0 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_3_0__tab[] = { UINT64_C(0xcae00e0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x48, 0x04, 0x4e, 0xe9, 0xa9, 0xa9, 0xc1, 0x9c, 0x84, 0xa1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_3_1__tab[] = { UINT64_C(0x0448000000000000), UINT64_C(0xa1849cc1a9a9e94e) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e04480000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x00, 0x00, 0x80 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x0000, 0x8000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_4_0__tab[] = { UINT64_C(0x8000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x800000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_4_1__tab[] = { UINT64_C(0x0000000000000000), UINT64_C(0x8000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x800000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x80000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x7a, 0x9a, 0x94 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x7a00, 0x949a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_5_0__tab[] = { UINT64_C(0x949a7a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xb8, 0x67, 0x28, 0x97, 0x7b, 0x28, 0x48, 0xa3, 0x81, 0xdc };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_5_1__tab[] = { UINT64_C(0x67b8000000000000), UINT64_C(0xdc81a348287b9728) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_6_0__tab[] = { 0x08, 0x70, 0xa5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_6_0__tab[] = { 0x0800, 0xa570 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_6_0__tab[] = { UINT64_C(0xa570080000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa57008000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_6_1__tab[] = { 0x10, 0xff, 0xe9, 0xf9, 0x54, 0xe0, 0x36, 0x92, 0x11, 0xc6 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_6_1__tab[] = { UINT64_C(0xff10000000000000), UINT64_C(0xc6119236e054f9e9) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff100000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb4, 0xab, 0xb3 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb400, 0xb3ab };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_7_0__tab[] = { UINT64_C(0xb3abb40000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb4000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb8, 0x37, 0x11, 0xa7, 0x4d, 0x75, 0xd6, 0xc9, 0x60, 0xb6 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_7_1__tab[] = { UINT64_C(0x37b8000000000000), UINT64_C(0xb660c9d6754da711) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_8_0__tab[] = { 0x00, 0x00, 0xc0 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_8_0__tab[] = { 0x0000, 0xc000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_8_0__tab[] = { UINT64_C(0xc000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc00000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xb0, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab00000, 0xaaaaaaaa, 0xaaaaaaaa };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_8_1__tab[] = { UINT64_C(0xaab0000000000000), UINT64_C(0xaaaaaaaaaaaaaaaa) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab00000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab0000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_9_0__tab[] = { 0x0e, 0xe0, 0xca };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_9_0__tab[] = { 0x0e00, 0xcae0 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_9_0__tab[] = { UINT64_C(0xcae00e0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x48, 0x04, 0x4e, 0xe9, 0xa9, 0xa9, 0xc1, 0x9c, 0x84, 0xa1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_9_1__tab[] = { UINT64_C(0x0448000000000000), UINT64_C(0xa1849cc1a9a9e94e) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e04480000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_10_0__tab[] = { 0x7a, 0x9a, 0xd4 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_10_0__tab[] = { 0x7a00, 0xd49a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_10_0__tab[] = { UINT64_C(0xd49a7a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x90, 0x8f, 0x98, 0xf7, 0xcf, 0xfb, 0x84, 0x9a, 0x20, 0x9a };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f90, 0xf798, 0xfbcf, 0x9a84, 0x9a20 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f900000, 0xfbcff798, 0x9a209a84 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_10_1__tab[] = { UINT64_C(0x8f90000000000000), UINT64_C(0x9a209a84fbcff798) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f900000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f90000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f9000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_11_0__tab[] = { 0x54, 0x67, 0xdd };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_11_0__tab[] = { 0x5400, 0xdd67 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_11_0__tab[] = { UINT64_C(0xdd67540000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd6754000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd67540000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x70, 0xe1, 0x10, 0x9d, 0x22, 0xeb, 0x0e, 0x4e, 0x00, 0x94 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe170, 0x9d10, 0xeb22, 0x4e0e, 0x9400 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe1700000, 0xeb229d10, 0x94004e0e };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_11_1__tab[] = { UINT64_C(0xe170000000000000), UINT64_C(0x94004e0eeb229d10) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e1700000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e170000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e17000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_12_0__tab[] = { 0x08, 0x70, 0xe5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_12_0__tab[] = { 0x0800, 0xe570 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_12_0__tab[] = { UINT64_C(0xe570080000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe57008000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe570080000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x28, 0xfe, 0x24, 0x1c, 0x03, 0x0b, 0x1a, 0x9c, 0xd1, 0x8e };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe28, 0x1c24, 0x0b03, 0x9c1a, 0x8ed1 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe280000, 0x0b031c24, 0x8ed19c1a };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_12_1__tab[] = { UINT64_C(0xfe28000000000000), UINT64_C(0x8ed19c1a0b031c24) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe280000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe28000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe2800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_13_0__tab[] = { 0x02, 0xd4, 0xec };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_13_0__tab[] = { 0x0200, 0xecd4 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_13_0__tab[] = { UINT64_C(0xecd4020000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd402000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd4020000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_13_1__tab[] = { 0xf8, 0x57, 0xb4, 0xf7, 0x20, 0xcb, 0xc6, 0xa7, 0x5c, 0x8a };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f8, 0xf7b4, 0xcb20, 0xa7c6, 0x8a5c };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f80000, 0xcb20f7b4, 0x8a5ca7c6 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_13_1__tab[] = { UINT64_C(0x57f8000000000000), UINT64_C(0x8a5ca7c6cb20f7b4) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xb4, 0xab, 0xf3 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xb400, 0xf3ab };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_14_0__tab[] = { UINT64_C(0xf3abb40000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb4000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb40000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_14_1__tab[] = { 0xa8, 0x85, 0xab, 0x5c, 0xb5, 0x96, 0xf6, 0xff, 0x79, 0x86 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a8, 0x5cab, 0x96b5, 0xfff6, 0x8679 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a80000, 0x96b55cab, 0x8679fff6 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_14_1__tab[] = { UINT64_C(0x85a8000000000000), UINT64_C(0x8679fff696b55cab) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_15_0__tab[] = { 0x80, 0x0a, 0xfa };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_15_0__tab[] = { 0x8000, 0xfa0a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_15_0__tab[] = { UINT64_C(0xfa0a800000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a80000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a800000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x80, 0x6f, 0xaa, 0xa6, 0xf0, 0x69, 0x23, 0xee, 0x0c, 0x83 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f80, 0xa6aa, 0x69f0, 0xee23, 0x830c };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f800000, 0x69f0a6aa, 0x830cee23 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_15_1__tab[] = { UINT64_C(0x6f80000000000000), UINT64_C(0x830cee2369f0a6aa) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f800000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f80000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f8000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x00, 0x00, 0x80 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x0000, 0x8000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_16_0__tab[] = { UINT64_C(0x8000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x800000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_16_1__tab[] = { UINT64_C(0x0000000000000000), UINT64_C(0x8000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x800000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x80000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x80, 0xcc, 0x82 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x8000, 0x82cc };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_17_0__tab[] = { UINT64_C(0x82cc800000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc80000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc800000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x20, 0x87, 0x9b, 0x25, 0xc4, 0x62, 0xf5, 0xab, 0x85, 0xfa };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x8720, 0x259b, 0x62c4, 0xabf5, 0xfa85 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x87200000, 0x62c4259b, 0xfa85abf5 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_17_1__tab[] = { UINT64_C(0x8720000000000000), UINT64_C(0xfa85abf562c4259b) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b87200000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b8720000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b872000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x08, 0x70, 0x85 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x0800, 0x8570 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_18_0__tab[] = { UINT64_C(0x8570080000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x857008000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x8570080000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x98, 0x36, 0x78, 0x13, 0x37, 0x55, 0x34, 0x66, 0x91, 0xf5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x3698, 0x1378, 0x5537, 0x6634, 0xf591 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x36980000, 0x55371378, 0xf5916634 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_18_1__tab[] = { UINT64_C(0x3698000000000000), UINT64_C(0xf591663455371378) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf59166345537137836980000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf5916634553713783698000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf591663455371378369800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x06, 0xef, 0x87 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x0600, 0x87ef };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_19_0__tab[] = { UINT64_C(0x87ef060000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef06000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef060000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xb8, 0x0d, 0x8c, 0x55, 0xed, 0x62, 0xc0, 0x08, 0x0f, 0xf1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db8, 0x558c, 0x62ed, 0x08c0, 0xf10f };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db80000, 0x62ed558c, 0xf10f08c0 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_19_1__tab[] = { UINT64_C(0x0db8000000000000), UINT64_C(0xf10f08c062ed558c) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x3e, 0x4d, 0x8a };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x3e00, 0x8a4d };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_20_0__tab[] = { UINT64_C(0x8a4d3e0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x40, 0x0b, 0x1c, 0xa7, 0xc1, 0x1c, 0x0a, 0x69, 0xee, 0xec };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b40, 0xa71c, 0x1cc1, 0x690a, 0xecee };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b400000, 0x1cc1a71c, 0xecee690a };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_20_1__tab[] = { UINT64_C(0x0b40000000000000), UINT64_C(0xecee690a1cc1a71c) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b400000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b40000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b4000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_21_0__tab[] = { 0xde, 0x8d, 0x8c };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_21_0__tab[] = { 0xde00, 0x8c8d };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_21_0__tab[] = { UINT64_C(0x8c8dde0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x08, 0x41, 0x26, 0x6b, 0xd0, 0xb3, 0xc1, 0x63, 0x22, 0xe9 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x4108, 0x6b26, 0xb3d0, 0x63c1, 0xe922 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x41080000, 0xb3d06b26, 0xe92263c1 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_21_1__tab[] = { UINT64_C(0x4108000000000000), UINT64_C(0xe92263c1b3d06b26) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b2641080000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b264108000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b26410800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_22_0__tab[] = { 0xaa, 0xb3, 0x8e };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_22_0__tab[] = { 0xaa00, 0x8eb3 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_22_0__tab[] = { UINT64_C(0x8eb3aa0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe8, 0xdb, 0x61, 0xf0, 0xb9, 0x60, 0x4d, 0x2c, 0xa0, 0xe5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe8, 0xf061, 0x60b9, 0x2c4d, 0xe5a0 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe80000, 0x60b9f061, 0xe5a02c4d };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_22_1__tab[] = { UINT64_C(0xdbe8000000000000), UINT64_C(0xe5a02c4d60b9f061) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x06, 0xc1, 0x90 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x0600, 0x90c1 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_23_0__tab[] = { UINT64_C(0x90c1060000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c106000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c1060000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe0, 0xc3, 0x6a, 0x58, 0xb9, 0x46, 0xdd, 0xca, 0x5e, 0xe2 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e0, 0x586a, 0x46b9, 0xcadd, 0xe25e };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e00000, 0x46b9586a, 0xe25ecadd };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_23_1__tab[] = { UINT64_C(0xc3e0000000000000), UINT64_C(0xe25ecadd46b9586a) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e00000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e0000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x04, 0xb8, 0x92 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x0400, 0x92b8 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_24_0__tab[] = { UINT64_C(0x92b8040000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b804000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b8040000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x68, 0x36, 0x63, 0x72, 0xc6, 0xc7, 0x44, 0xbb, 0x56, 0xdf };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x3668, 0x7263, 0xc7c6, 0xbb44, 0xdf56 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x36680000, 0xc7c67263, 0xdf56bb44 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_24_1__tab[] = { UINT64_C(0x3668000000000000), UINT64_C(0xdf56bb44c7c67263) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c6726336680000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c672633668000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c67263366800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x7a, 0x9a, 0x94 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x7a00, 0x949a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_25_0__tab[] = { UINT64_C(0x949a7a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xb8, 0x67, 0x28, 0x97, 0x7b, 0x28, 0x48, 0xa3, 0x81, 0xdc };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_25_1__tab[] = { UINT64_C(0x67b8000000000000), UINT64_C(0xdc81a348287b9728) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x02, 0x6a, 0x96 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x0200, 0x966a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_26_0__tab[] = { UINT64_C(0x966a020000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a02000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a020000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x58, 0x64, 0xa4, 0x78, 0x83, 0x75, 0xf9, 0x19, 0xda, 0xd9 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x6458, 0x78a4, 0x7583, 0x19f9, 0xd9da };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x64580000, 0x758378a4, 0xd9da19f9 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_26_1__tab[] = { UINT64_C(0x6458000000000000), UINT64_C(0xd9da19f9758378a4) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a464580000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a46458000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a4645800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x0a, 0x28, 0x98 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x0a00, 0x9828 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_27_0__tab[] = { UINT64_C(0x98280a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x08, 0x5b, 0xbd, 0xe1, 0x37, 0xe2, 0xac, 0x7b, 0x5b, 0xd7 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b08, 0xe1bd, 0xe237, 0x7bac, 0xd75b };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b080000, 0xe237e1bd, 0xd75b7bac };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_27_1__tab[] = { UINT64_C(0x5b08000000000000), UINT64_C(0xd75b7bace237e1bd) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b080000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b08000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b0800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_28_0__tab[] = { 0xda, 0xd5, 0x99 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_28_0__tab[] = { 0xda00, 0x99d5 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_28_0__tab[] = { UINT64_C(0x99d5da0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xb8, 0xde, 0xb8, 0xe8, 0xdf, 0x71, 0x58, 0xc7, 0x01, 0xd5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb8, 0xe8b8, 0x71df, 0xc758, 0xd501 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb80000, 0x71dfe8b8, 0xd501c758 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_28_1__tab[] = { UINT64_C(0xdeb8000000000000), UINT64_C(0xd501c75871dfe8b8) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x96, 0x74, 0x9b };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9600, 0x9b74 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_29_0__tab[] = { UINT64_C(0x9b74960000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b7496000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b74960000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xc8, 0xcc, 0xb3, 0x62, 0x6c, 0x9c, 0x15, 0x83, 0xc9, 0xd2 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc8, 0x62b3, 0x9c6c, 0x8315, 0xd2c9 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc80000, 0x9c6c62b3, 0xd2c98315 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_29_1__tab[] = { UINT64_C(0xccc8000000000000), UINT64_C(0xd2c983159c6c62b3) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x40, 0x05, 0x9d };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x4000, 0x9d05 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_30_0__tab[] = { UINT64_C(0x9d05400000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d0540000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d05400000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x88, 0x35, 0x32, 0x17, 0xad, 0x5c, 0x19, 0xa6, 0xaf, 0xd0 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x3588, 0x1732, 0x5cad, 0xa619, 0xd0af };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x35880000, 0x5cad1732, 0xd0afa619 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_30_1__tab[] = { UINT64_C(0x3588000000000000), UINT64_C(0xd0afa6195cad1732) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad173235880000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad17323588000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad1732358800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_31_0__tab[] = { 0xc8, 0x88, 0x9e };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_31_0__tab[] = { 0xc800, 0x9e88 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_31_0__tab[] = { UINT64_C(0x9e88c80000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c8000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c80000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_31_1__tab[] = { 0x78, 0xd5, 0xca, 0xf7, 0xee, 0x63, 0xe6, 0x86, 0xb1, 0xce };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd578, 0xf7ca, 0x63ee, 0x86e6, 0xceb1 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd5780000, 0x63eef7ca, 0xceb186e6 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_31_1__tab[] = { UINT64_C(0xd578000000000000), UINT64_C(0xceb186e663eef7ca) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad5780000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad578000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad57800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_32_0__tab[] = { 0x00, 0x00, 0xa0 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_32_0__tab[] = { 0x0000, 0xa000 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_32_0__tab[] = { UINT64_C(0xa000000000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa00000000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa000000000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xd0, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd0, 0xcccc, 0xcccc, 0xcccc, 0xcccc };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd00000, 0xcccccccc, 0xcccccccc };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_32_1__tab[] = { UINT64_C(0xccd0000000000000), UINT64_C(0xcccccccccccccccc) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd00000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd0000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xae, 0x6b, 0xa1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xae00, 0xa16b };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_33_0__tab[] = { UINT64_C(0xa16bae0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x88, 0x08, 0x87, 0xa1, 0x04, 0x53, 0x04, 0x64, 0xff, 0xca };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x0888, 0xa187, 0x5304, 0x6404, 0xcaff };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x08880000, 0x5304a187, 0xcaff6404 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_33_1__tab[] = { UINT64_C(0x0888000000000000), UINT64_C(0xcaff64045304a187) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a18708880000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a1870888000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a187088800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_34_0__tab[] = { 0x80, 0xcc, 0xa2 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_34_0__tab[] = { 0x8000, 0xa2cc };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_34_0__tab[] = { UINT64_C(0xa2cc800000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc80000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc800000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_34_1__tab[] = { 0x50, 0xfb, 0xca, 0x17, 0x79, 0x5a, 0xd8, 0x73, 0x47, 0xc9 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb50, 0x17ca, 0x5a79, 0x73d8, 0xc947 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb500000, 0x5a7917ca, 0xc94773d8 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_34_1__tab[] = { UINT64_C(0xfb50000000000000), UINT64_C(0xc94773d85a7917ca) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb500000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb50000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb5000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_35_0__tab[] = { 0x18, 0x23, 0xa4 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_35_0__tab[] = { 0x1800, 0xa423 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_35_0__tab[] = { UINT64_C(0xa423180000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa42318000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa423180000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x60, 0x69, 0xc2, 0x18, 0x37, 0x60, 0x7c, 0x56, 0xa3, 0xc7 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x6960, 0x18c2, 0x6037, 0x567c, 0xc7a3 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x69600000, 0x603718c2, 0xc7a3567c };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_35_1__tab[] = { UINT64_C(0x6960000000000000), UINT64_C(0xc7a3567c603718c2) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c269600000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c26960000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c2696000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_36_0__tab[] = { 0x08, 0x70, 0xa5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_36_0__tab[] = { 0x0800, 0xa570 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_36_0__tab[] = { UINT64_C(0xa570080000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa57008000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_36_1__tab[] = { 0x10, 0xff, 0xe9, 0xf9, 0x54, 0xe0, 0x36, 0x92, 0x11, 0xc6 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_36_1__tab[] = { UINT64_C(0xff10000000000000), UINT64_C(0xc6119236e054f9e9) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff100000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xd8, 0xb3, 0xa6 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xd800, 0xa6b3 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_37_0__tab[] = { UINT64_C(0xa6b3d80000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d8000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d80000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x18, 0x16, 0x36, 0x6b, 0xd7, 0x70, 0xa2, 0xd3, 0x90, 0xc4 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x1618, 0x6b36, 0x70d7, 0xd3a2, 0xc490 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x16180000, 0x70d76b36, 0xc490d3a2 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_37_1__tab[] = { UINT64_C(0x1618000000000000), UINT64_C(0xc490d3a270d76b36) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b3616180000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b361618000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b36161800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_38_0__tab[] = { 0x06, 0xef, 0xa7 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_38_0__tab[] = { 0x0600, 0xa7ef };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_38_0__tab[] = { UINT64_C(0xa7ef060000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef06000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef060000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xe0, 0xa3, 0x05, 0x95, 0x82, 0x51, 0xd2, 0xe8, 0x1f, 0xc3 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e0, 0x9505, 0x5182, 0xe8d2, 0xc31f };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e00000, 0x51829505, 0xc31fe8d2 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_38_1__tab[] = { UINT64_C(0xa3e0000000000000), UINT64_C(0xc31fe8d251829505) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e00000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e0000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_39_0__tab[] = { 0x04, 0x22, 0xa9 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_39_0__tab[] = { 0x0400, 0xa922 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_39_0__tab[] = { UINT64_C(0xa922040000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa92204000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa922040000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xf8, 0xfc, 0xb5, 0xf1, 0xca, 0x10, 0x32, 0xbd, 0xbd, 0xc1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf8, 0xf1b5, 0x10ca, 0xbd32, 0xc1bd };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf80000, 0x10caf1b5, 0xc1bdbd32 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_39_1__tab[] = { UINT64_C(0xfcf8000000000000), UINT64_C(0xc1bdbd3210caf1b5) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_40_0__tab[] = { 0x3e, 0x4d, 0xaa };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_40_0__tab[] = { 0x3e00, 0xaa4d };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_40_0__tab[] = { UINT64_C(0xaa4d3e0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xe8, 0xdc, 0x48, 0x49, 0xf7, 0xef, 0xff, 0x55, 0x69, 0xc0 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce8, 0x4948, 0xeff7, 0x55ff, 0xc069 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce80000, 0xeff74948, 0xc06955ff };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_40_1__tab[] = { UINT64_C(0xdce8000000000000), UINT64_C(0xc06955ffeff74948) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_41_0__tab[] = { 0x12, 0x71, 0xab };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_41_0__tab[] = { 0x1200, 0xab71 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_41_0__tab[] = { UINT64_C(0xab71120000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab7112000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab71120000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_41_1__tab[] = { 0x28, 0xdc, 0xef, 0x7c, 0x95, 0xf6, 0x47, 0xcf, 0x21, 0xbf };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc28, 0x7cef, 0xf695, 0xcf47, 0xbf21 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc280000, 0xf6957cef, 0xbf21cf47 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_41_1__tab[] = { UINT64_C(0xdc28000000000000), UINT64_C(0xbf21cf47f6957cef) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc280000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc28000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc2800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xde, 0x8d, 0xac };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xde00, 0xac8d };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_42_0__tab[] = { UINT64_C(0xac8dde0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_42_1__tab[] = { 0x10, 0xba, 0x25, 0x71, 0x9b, 0x93, 0x4a, 0x59, 0xe6, 0xbd };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba10, 0x7125, 0x939b, 0x594a, 0xbde6 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba100000, 0x939b7125, 0xbde6594a };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_42_1__tab[] = { UINT64_C(0xba10000000000000), UINT64_C(0xbde6594a939b7125) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba100000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba10000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba1000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xf6, 0xa3, 0xad };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xf600, 0xada3 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_43_0__tab[] = { UINT64_C(0xada3f60000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f6000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f60000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x60, 0x95, 0xb5, 0x2a, 0x18, 0x91, 0x3d, 0x36, 0xb6, 0xbc };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x9560, 0x2ab5, 0x9118, 0x363d, 0xbcb6 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x95600000, 0x91182ab5, 0xbcb6363d };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_43_1__tab[] = { UINT64_C(0x9560000000000000), UINT64_C(0xbcb6363d91182ab5) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab595600000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab59560000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab5956000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaa, 0xb3, 0xae };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaa00, 0xaeb3 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_44_0__tab[] = { UINT64_C(0xaeb3aa0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x90, 0x15, 0x90, 0x4e, 0x3d, 0x3a, 0x59, 0xb8, 0x90, 0xbb };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x1590, 0x4e90, 0x3a3d, 0xb859, 0xbb90 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x15900000, 0x3a3d4e90, 0xbb90b859 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_44_1__tab[] = { UINT64_C(0x1590000000000000), UINT64_C(0xbb90b8593a3d4e90) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e9015900000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e901590000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e90159000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_45_0__tab[] = { 0x44, 0xbd, 0xaf };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_45_0__tab[] = { 0x4400, 0xafbd };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_45_0__tab[] = { UINT64_C(0xafbd440000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd44000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd440000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x78, 0x1e, 0xf5, 0x76, 0x10, 0x10, 0x26, 0x40, 0x75, 0xba };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e78, 0x76f5, 0x1010, 0x4026, 0xba75 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e780000, 0x101076f5, 0xba754026 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_45_1__tab[] = { UINT64_C(0x1e78000000000000), UINT64_C(0xba754026101076f5) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e780000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e78000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e7800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_46_0__tab[] = { 0x06, 0xc1, 0xb0 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_46_0__tab[] = { 0x0600, 0xb0c1 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_46_0__tab[] = { UINT64_C(0xb0c1060000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c106000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c1060000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_46_1__tab[] = { 0x70, 0xb6, 0x12, 0x05, 0xaa, 0x69, 0x01, 0x3b, 0x63, 0xb9 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb670, 0x0512, 0x69aa, 0x3b01, 0xb963 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb6700000, 0x69aa0512, 0xb9633b01 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_46_1__tab[] = { UINT64_C(0xb670000000000000), UINT64_C(0xb9633b0169aa0512) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b6700000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b670000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b67000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_47_0__tab[] = { 0x32, 0xbf, 0xb1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_47_0__tab[] = { 0x3200, 0xb1bf };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_47_0__tab[] = { UINT64_C(0xb1bf320000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf32000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf320000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x18, 0x51, 0x33, 0x41, 0xe4, 0xfb, 0xd0, 0x21, 0x5a, 0xb8 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x5118, 0x4133, 0xfbe4, 0x21d0, 0xb85a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x51180000, 0xfbe44133, 0xb85a21d0 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_47_1__tab[] = { UINT64_C(0x5118000000000000), UINT64_C(0xb85a21d0fbe44133) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe4413351180000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe441335118000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe44133511800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_48_0__tab[] = { 0x04, 0xb8, 0xb2 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_48_0__tab[] = { 0x0400, 0xb2b8 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_48_0__tab[] = { UINT64_C(0xb2b8040000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b804000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b8040000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x90, 0x04, 0x3d, 0x66, 0x0d, 0x96, 0xde, 0x77, 0x59, 0xb7 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x0490, 0x663d, 0x960d, 0x77de, 0xb759 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x04900000, 0x960d663d, 0xb75977de };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_48_1__tab[] = { UINT64_C(0x0490000000000000), UINT64_C(0xb75977de960d663d) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d04900000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d0490000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d049000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb4, 0xab, 0xb3 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb400, 0xb3ab };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_49_0__tab[] = { UINT64_C(0xb3abb40000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb4000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb8, 0x37, 0x11, 0xa7, 0x4d, 0x75, 0xd6, 0xc9, 0x60, 0xb6 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_49_1__tab[] = { UINT64_C(0x37b8000000000000), UINT64_C(0xb660c9d6754da711) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_50_0__tab[] = { 0x7a, 0x9a, 0xb4 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_50_0__tab[] = { 0x7a00, 0xb49a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_50_0__tab[] = { UINT64_C(0xb49a7a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xf0, 0x27, 0x32, 0xe5, 0x44, 0x73, 0xe3, 0xac, 0x6f, 0xb5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f0, 0xe532, 0x7344, 0xace3, 0xb56f };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f00000, 0x7344e532, 0xb56face3 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_50_1__tab[] = { UINT64_C(0x27f0000000000000), UINT64_C(0xb56face37344e532) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f00000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f0000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_51_0__tab[] = { 0x84, 0x84, 0xb5 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_51_0__tab[] = { 0x8400, 0xb584 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_51_0__tab[] = { UINT64_C(0xb584840000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb58484000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb584840000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x00, 0x40, 0xa9, 0xe9, 0x8a, 0x0f, 0xe5, 0xbd, 0x85, 0xb4 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x4000, 0xe9a9, 0x0f8a, 0xbde5, 0xb485 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x40000000, 0x0f8ae9a9, 0xb485bde5 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_51_1__tab[] = { UINT64_C(0x4000000000000000), UINT64_C(0xb485bde50f8ae9a9) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a940000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a94000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a9400000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_52_0__tab[] = { 0x02, 0x6a, 0xb6 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_52_0__tab[] = { 0x0200, 0xb66a };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_52_0__tab[] = { UINT64_C(0xb66a020000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a02000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a020000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x08, 0x46, 0xb3, 0xfc, 0xcf, 0xee, 0xbb, 0xa0, 0xa2, 0xb3 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x4608, 0xfcb3, 0xeecf, 0xa0bb, 0xb3a2 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x46080000, 0xeecffcb3, 0xb3a2a0bb };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_52_1__tab[] = { UINT64_C(0x4608000000000000), UINT64_C(0xb3a2a0bbeecffcb3) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb346080000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb34608000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb3460800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_53_0__tab[] = { 0x20, 0x4b, 0xb7 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_53_0__tab[] = { 0x2000, 0xb74b };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_53_0__tab[] = { UINT64_C(0xb74b200000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b20000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b200000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_53_1__tab[] = { 0x60, 0xa3, 0xcb, 0x8c, 0x5f, 0xeb, 0xa9, 0xff, 0xc5, 0xb2 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa360, 0x8ccb, 0xeb5f, 0xffa9, 0xb2c5 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa3600000, 0xeb5f8ccb, 0xb2c5ffa9 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_53_1__tab[] = { UINT64_C(0xa360000000000000), UINT64_C(0xb2c5ffa9eb5f8ccb) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba3600000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba360000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba36000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_54_0__tab[] = { 0x0a, 0x28, 0xb8 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_54_0__tab[] = { 0x0a00, 0xb828 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_54_0__tab[] = { UINT64_C(0xb8280a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_54_1__tab[] = { 0x68, 0xf3, 0x40, 0xe9, 0x86, 0x3e, 0xc3, 0x8a, 0xef, 0xb1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf368, 0xe940, 0x3e86, 0x8ac3, 0xb1ef };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf3680000, 0x3e86e940, 0xb1ef8ac3 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_54_1__tab[] = { UINT64_C(0xf368000000000000), UINT64_C(0xb1ef8ac33e86e940) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f3680000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f368000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f36800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xe8, 0x00, 0xb9 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xe800, 0xb900 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_55_0__tab[] = { UINT64_C(0xb900e80000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e8000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e80000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x40, 0x7a, 0x8e, 0xd1, 0xb5, 0xa4, 0x6e, 0xf7, 0x1e, 0xb1 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a40, 0xd18e, 0xa4b5, 0xf76e, 0xb11e };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a400000, 0xa4b5d18e, 0xb11ef76e };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_55_1__tab[] = { UINT64_C(0x7a40000000000000), UINT64_C(0xb11ef76ea4b5d18e) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a400000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a40000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a4000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xda, 0xd5, 0xb9 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xda00, 0xb9d5 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_56_0__tab[] = { UINT64_C(0xb9d5da0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_56_1__tab[] = { 0x18, 0xe8, 0x7b, 0x4c, 0x2c, 0xaa, 0xf2, 0xff, 0x53, 0xb0 };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe818, 0x4c7b, 0xaa2c, 0xfff2, 0xb053 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe8180000, 0xaa2c4c7b, 0xb053fff2 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_56_1__tab[] = { UINT64_C(0xe818000000000000), UINT64_C(0xb053fff2aa2c4c7b) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be8180000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be818000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be81800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_57_0__tab[] = { 0x0a, 0xa7, 0xba };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_57_0__tab[] = { 0x0a00, 0xbaa7 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_57_0__tab[] = { UINT64_C(0xbaa70a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xb0, 0xef, 0x4f, 0x81, 0x2f, 0x8e, 0x0e, 0x63, 0x8e, 0xaf };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb0, 0x814f, 0x8e2f, 0x630e, 0xaf8e };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb00000, 0x8e2f814f, 0xaf8e630e };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_57_1__tab[] = { UINT64_C(0xefb0000000000000), UINT64_C(0xaf8e630e8e2f814f) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb00000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb0000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_58_0__tab[] = { 0x96, 0x74, 0xbb };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_58_0__tab[] = { 0x9600, 0xbb74 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_58_0__tab[] = { UINT64_C(0xbb74960000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb7496000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb74960000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x18, 0x5d, 0xa1, 0x41, 0x14, 0x61, 0x9d, 0xe3, 0xcd, 0xae };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d18, 0x41a1, 0x6114, 0xe39d, 0xaecd };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d180000, 0x611441a1, 0xaecde39d };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_58_1__tab[] = { UINT64_C(0x5d18000000000000), UINT64_C(0xaecde39d611441a1) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d180000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d18000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d1800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_59_0__tab[] = { 0x9e, 0x3e, 0xbc };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_59_0__tab[] = { 0x9e00, 0xbc3e };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_59_0__tab[] = { UINT64_C(0xbc3e9e0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_59_1__tab[] = { 0x00, 0xd0, 0xdf, 0x97, 0x97, 0x2f, 0x42, 0x48, 0x12, 0xae };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd000, 0x97df, 0x2f97, 0x4842, 0xae12 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd0000000, 0x2f9797df, 0xae124842 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_59_1__tab[] = { UINT64_C(0xd000000000000000), UINT64_C(0xae1248422f9797df) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd0000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd00000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_60_0__tab[] = { 0x40, 0x05, 0xbd };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_60_0__tab[] = { 0x4000, 0xbd05 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_60_0__tab[] = { UINT64_C(0xbd05400000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd0540000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd05400000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_60_1__tab[] = { 0x58, 0xfe, 0x6d, 0x20, 0x55, 0x35, 0x1c, 0x5b, 0x5b, 0xad };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe58, 0x206d, 0x3555, 0x5b1c, 0xad5b };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe580000, 0x3555206d, 0xad5b5b1c };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_60_1__tab[] = { UINT64_C(0xfe58000000000000), UINT64_C(0xad5b5b1c3555206d) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe580000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe58000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe5800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_61_0__tab[] = { 0x9a, 0xc8, 0xbd };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_61_0__tab[] = { 0x9a00, 0xbdc8 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_61_0__tab[] = { UINT64_C(0xbdc89a0000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a0000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xf8, 0x4d, 0x57, 0x77, 0xcb, 0x31, 0x82, 0xe9, 0xa8, 0xac };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df8, 0x7757, 0x31cb, 0xe982, 0xaca8 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df80000, 0x31cb7757, 0xaca8e982 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_61_1__tab[] = { UINT64_C(0x4df8000000000000), UINT64_C(0xaca8e98231cb7757) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df800000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xc8, 0x88, 0xbe };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xc800, 0xbe88 };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_62_0__tab[] = { UINT64_C(0xbe88c80000000000) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c8000000000000000000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800000000000000000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c80000000000000000000000000000000000000000000000000000000000 };
-#endif
-
-#if 0
-#elif GMP_NUMB_BITS == 8
-const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xf8, 0x74, 0x05, 0xf9, 0x31, 0x18, 0xc4, 0xc3, 0xfa, 0xab };
-#elif GMP_NUMB_BITS == 16
-const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f8, 0xf905, 0x1831, 0xc3c4, 0xabfa };
-#elif GMP_NUMB_BITS == 32
-const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f80000, 0x1831f905, 0xabfac3c4 };
-#elif GMP_NUMB_BITS == 64
-const mp_limb_t mpfr_l2b_62_1__tab[] = { UINT64_C(0x74f8000000000000), UINT64_C(0xabfac3c41831f905) };
-#elif GMP_NUMB_BITS == 96
-const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f80000 };
-#elif GMP_NUMB_BITS == 128
-const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f8000000000000 };
-#elif GMP_NUMB_BITS == 256
-const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f800000000000000000000000000000000000000000000 };
-#endif
-
-const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = {
- { { 23, 1, 1, (mp_limb_t *) mpfr_l2b_2_0__tab },
- { 77, 1, 1, (mp_limb_t *) mpfr_l2b_2_1__tab } },
- { { 23, 1, 1, (mp_limb_t *) mpfr_l2b_3_0__tab },
- { 77, 1, 0, (mp_limb_t *) mpfr_l2b_3_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_4_0__tab },
- { 77, 1, 0, (mp_limb_t *) mpfr_l2b_4_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_5_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_5_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_6_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_6_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_7_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_7_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_8_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_8_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_9_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_9_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_10_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_10_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_11_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_11_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_12_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_12_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_13_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_13_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_14_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_14_1__tab } },
- { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_15_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_15_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_16_0__tab },
- { 77, 1, -1, (mp_limb_t *) mpfr_l2b_16_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_17_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_17_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_18_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_18_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_19_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_19_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_20_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_20_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_21_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_21_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_22_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_22_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_23_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_23_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_24_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_24_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_25_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_25_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_26_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_26_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_27_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_27_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_28_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_28_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_29_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_29_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_30_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_30_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_31_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_31_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_32_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_32_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_33_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_33_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_34_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_34_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_35_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_35_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_36_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_36_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_37_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_37_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_38_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_38_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_39_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_39_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_40_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_40_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_41_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_41_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_42_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_42_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_43_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_43_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_44_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_44_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_45_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_45_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_46_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_46_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_47_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_47_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_48_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_48_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_49_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_49_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_50_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_50_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_51_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_51_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_52_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_52_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_53_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_53_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_54_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_54_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_55_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_55_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_56_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_56_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_57_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_57_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_58_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_58_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_59_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_59_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_60_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_60_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_61_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_61_1__tab } },
- { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_62_0__tab },
- { 77, 1, -2, (mp_limb_t *) mpfr_l2b_62_1__tab } } };
-
-/***************************************************************************/
-
-/* returns ceil(e * log2(b)^((-1)^i)), or ... + 1.
- For i=0, uses a 23-bit upper approximation to log(beta)/log(2).
- For i=1, uses a 77-bit upper approximation to log(2)/log(beta).
- Note: this function should be called only in the extended exponent range.
-*/
-mpfr_exp_t
-mpfr_ceil_mul (mpfr_exp_t e, int beta, int i)
-{
- mpfr_srcptr p;
- mpfr_t t;
- mpfr_exp_t r;
- mp_limb_t tmpmant[MPFR_EXP_LIMB_SIZE];
-
- p = &__gmpfr_l2b[beta-2][i];
- MPFR_TMP_INIT1(tmpmant, t, sizeof (mpfr_exp_t) * CHAR_BIT - 1);
- mpfr_set_exp_t (t, e, MPFR_RNDU);
- mpfr_mul (t, t, p, MPFR_RNDU);
- r = mpfr_get_exp_t (t, MPFR_RNDU);
- return r;
-}
-
-/* take at least 1 + ceil(p*log(2)/log(b)) digits, where p is the
- number of bits of the mantissa, to ensure back conversion from
- the output gives the same floating-point.
-
- Warning: if b = 2^k, this may be too large. The worst case is when
- the first base-b digit contains only one bit, so we take
- 1 + ceil((p-1)/k) instead.
-*/
-size_t
-mpfr_get_str_ndigits (int b, mpfr_prec_t p)
-{
- MPFR_ASSERTN (2 <= b && b <= 62);
-
- /* deal first with power of two bases, since even for those, mpfr_ceil_mul
- might return a value too large by 1 */
- if (IS_POW2(b)) /* 1 + ceil((p-1)/k) = 2 + floor((p-2)/k) */
- {
- int k;
-
- count_leading_zeros (k, (mp_limb_t) b);
- k = GMP_NUMB_BITS - k - 1; /* now b = 2^k */
- return 1 + (p + k - 2) / k;
- }
-
- /* the value returned by mpfr_ceil_mul is guaranteed to be
- 1 + ceil(p*log(2)/log(b)) for p < 186564318007 (it returns one more
- for p=186564318007 and b=7 or 49) */
- MPFR_STAT_STATIC_ASSERT (MPFR_PREC_BITS >= 64 || MPFR_PREC_BITS <= 32);
-#if MPFR_PREC_BITS >= 64
- /* 64-bit numbers are supported by the C implementation, so that we can
- use the large constant below. If MPFR_PREC_BITS <= 32, the condition
- is always satisfied, so that we do not need any test. */
- if (MPFR_LIKELY (p < 186564318007))
-#endif
- return 1 + mpfr_ceil_mul (IS_POW2(b) ? p - 1 : p, b, 1);
-
- /* Now p is large and b is not a power of two. The code below works for any
- value of p and b, as long as b is not a power of two. Indeed, in such a
- case, p*log(2)/log(b) cannot be exactly an integer, and thus Ziv's loop
- will terminate. */
- {
- mpfr_prec_t w = 77; /* mpfr_ceil_mul used a 77-bit upper approximation of
- log(2)/log(b) */
- mpfr_t d, u;
- size_t ret = 0;
- while (ret == 0)
- {
- w = 2 * w;
- mpfr_init2 (d, w); /* lower approximation */
- mpfr_init2 (u, w); /* upper approximation */
- mpfr_set_ui (d, b, MPFR_RNDU);
- mpfr_set_ui (u, b, MPFR_RNDD);
- mpfr_log2 (d, d, MPFR_RNDU);
- mpfr_log2 (u, u, MPFR_RNDD);
- /* The code below requires that the precision fit in an unsigned long,
- which we currently guarantee (see _MPFR_PREC_FORMAT). */
- MPFR_STAT_STATIC_ASSERT (MPFR_PREC_MAX <= ULONG_MAX);
- /* u <= log(b)/log(2) <= d (***) */
- mpfr_ui_div (d, p, d, MPFR_RNDD);
- mpfr_ui_div (u, p, u, MPFR_RNDU);
- /* d <= p*log(2)/log(b) <= u */
- mpfr_ceil (d, d);
- mpfr_ceil (u, u);
- if (mpfr_cmp (d, u) == 0)
- ret = mpfr_get_ui (d, MPFR_RNDU);
- mpfr_clear (d);
- mpfr_clear (u);
- }
- return 1 + ret;
- }
-}
-
-/* prints the mantissa of x in the string s, and writes the corresponding
- exponent in e.
- x is rounded with direction rnd, m is the number of digits of the mantissa,
- |b| is the given base (2 <= b <= 62 or -36 <= b <= -2).
- This follows GMP's mpf_get_str specification.
-
- Return value:
- if s=NULL, allocates a string to store the mantissa, with
- m characters, plus a final '\0', plus a possible minus sign
- (thus m+1 or m+2 characters).
-
- Important: when you call this function with s=NULL, don't forget to free
- the memory space allocated, with mpfr_free_str.
-*/
-char *
-mpfr_get_str (char *s, mpfr_exp_t *e, int b, size_t m, mpfr_srcptr x,
- mpfr_rnd_t rnd)
-{
- const char *num_to_text;
- int exact; /* exact result */
- mpfr_exp_t exp, g;
- mpfr_exp_t prec; /* precision of the computation */
- long err;
- mp_limb_t *a;
- mpfr_exp_t exp_a;
- mp_limb_t *result;
- mp_limb_t *xp;
- mp_limb_t *reste;
- size_t nx, nx1;
- size_t n, i;
- char *s0;
- int neg;
- int ret; /* return value of mpfr_get_str_aux */
- int b0 = b; /* initial base argument, might be negative */
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_TMP_DECL (marker);
-
- /* if exact = 1 then err is undefined */
- /* otherwise err is such that |x*b^(m-g)-a*2^exp_a| < 2^(err+exp_a) */
-
- MPFR_LOG_FUNC
- (("b=%d m=%zu x[%Pu]=%.*Rg rnd=%d",
- b, m, mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("flags=%lx", (unsigned long) __gmpfr_flags));
-
- /* Is the base argument valid? Valid values are -36 to -2 and 2 to 62. */
- if (b < -36 || (-2 < b && b < 2) || 62 < b)
- return NULL;
-
- num_to_text = (2 <= b && b <= 36) ? num_to_text36 : num_to_text62;
-
- b = (b > 0) ? b : -b;
-
- /* now b is positive */
-
- /* map RNDF to RNDN, to avoid problems with specification of mpfr_can_round
- or mpfr_can_round_raw */
- if (rnd == MPFR_RNDF)
- rnd = MPFR_RNDN;
-
- if (MPFR_UNLIKELY (MPFR_IS_NAN (x)))
- {
- if (s == NULL)
- s = (char *) mpfr_allocate_func (6);
- strcpy (s, "@NaN@");
- MPFR_LOG_MSG (("%s\n", s));
- __gmpfr_flags |= MPFR_FLAGS_NAN;
- return s;
- }
-
- neg = MPFR_IS_NEG (x); /* 0 if positive, 1 if negative */
-
- if (MPFR_UNLIKELY (MPFR_IS_INF (x)))
- {
- if (s == NULL)
- s = (char *) mpfr_allocate_func (neg + 6);
- strcpy (s, (neg) ? "-@Inf@" : "@Inf@");
- MPFR_LOG_MSG (("%s\n", s));
- return s;
- }
-
- MPFR_SAVE_EXPO_MARK (expo); /* needed for mpfr_ceil_mul (at least) */
-
- if (m == 0)
- m = mpfr_get_str_ndigits (b, MPFR_PREC(x));
-
- MPFR_LOG_MSG (("m=%zu\n", m));
-
- /* The code below works for m=1, both for power-of-two and non-power-of-two
- bases; this is important for the internal use of mpfr_get_str. */
-
- /* x is a floating-point number */
-
- if (s == NULL)
- s = (char *) mpfr_allocate_func (neg + m + 1);
- s0 = s;
- if (neg)
- *s++ = '-';
-
- if (MPFR_IS_ZERO (x))
- {
- memset (s, '0', m);
- s[m] = '\0';
- *e = 0; /* a bit like frexp() in ISO C99 */
- MPFR_SAVE_EXPO_FREE (expo);
- return s0; /* strlen(s0) = neg + m */
- }
-
- xp = MPFR_MANT (x);
-
- if (IS_POW2 (b))
- {
- int pow2;
- mpfr_exp_t f, r;
- mp_limb_t *x1;
- mp_size_t nb;
- int inexp;
-
- count_leading_zeros (pow2, (mp_limb_t) b);
- pow2 = GMP_NUMB_BITS - pow2 - 1; /* b = 2^pow2 */
-
- /* set MPFR_EXP(x) = f*pow2 + r, 1 <= r <= pow2 */
- f = (MPFR_GET_EXP (x) - 1) / pow2;
- r = MPFR_GET_EXP (x) - f * pow2;
- if (r <= 0)
- {
- f --;
- r += pow2;
- }
-
- /* the first digit will contain only r bits */
- prec = (m - 1) * pow2 + r; /* total number of bits */
- /* if m=1 then 1 <= prec <= pow2, and since prec=1 is now valid in MPFR,
- the power-of-two code also works for m=1 */
- n = MPFR_PREC2LIMBS (prec);
-
- MPFR_TMP_MARK (marker);
- x1 = MPFR_TMP_LIMBS_ALLOC (n + 1);
- nb = n * GMP_NUMB_BITS - prec;
- /* round xp to the precision prec, and put it into x1
- put the carry into x1[n] */
- if ((x1[n] = mpfr_round_raw (x1, xp, MPFR_PREC(x),
- MPFR_IS_STRICTNEG(x),
- prec, rnd, &inexp)))
- {
- /* overflow when rounding x: x1 = 2^prec */
- if (r == pow2) /* prec = m * pow2,
- 2^prec will need (m+1) digits in base 2^pow2 */
- {
- /* divide x1 by 2^pow2, and increase the exponent */
- mpn_rshift (x1, x1, n + 1, pow2);
- f ++;
- }
- else /* 2^prec needs still m digits, but x1 may need n+1 limbs */
- n ++;
- }
-
- /* it remains to shift x1 by nb limbs to the right, since mpn_get_str
- expects a right-normalized number */
- if (nb != 0)
- {
- mpn_rshift (x1, x1, n, nb);
- /* the most significant word may be zero */
- if (x1[n - 1] == 0)
- n --;
- }
-
- mpn_get_str ((unsigned char *) s, b, x1, n);
- for (i = 0; i < m; i++)
- s[i] = num_to_text[(int) s[i]];
- s[m] = 0;
-
- /* the exponent of s is f + 1 */
- *e = f + 1;
-
- MPFR_LOG_MSG (("e=%" MPFR_EXP_FSPEC "d\n", (mpfr_eexp_t) *e));
-
- MPFR_TMP_FREE (marker);
- MPFR_SAVE_EXPO_FREE (expo);
- return s0;
- }
-
- /* if x < 0, reduce to x > 0 */
- if (neg)
- rnd = MPFR_INVERT_RND (rnd);
-
- g = mpfr_ceil_mul (MPFR_GET_EXP (x) - 1, b, 1);
- exact = 1;
- /* prec is the radix-2 precision necessary to get m digits in radix b */
- prec = mpfr_ceil_mul (m, b, 0) + 1;
- exp = ((mpfr_exp_t) m < g) ? g - (mpfr_exp_t) m : (mpfr_exp_t) m - g;
- prec += MPFR_INT_CEIL_LOG2 (prec); /* number of guard bits */
- if (exp != 0) /* add maximal exponentiation error */
- prec += 3 * (mpfr_exp_t) MPFR_INT_CEIL_LOG2 (exp);
-
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- MPFR_TMP_MARK (marker);
-
- exact = 1;
-
- /* number of limbs */
- n = MPFR_PREC2LIMBS (prec);
-
- /* a will contain the approximation of the mantissa */
- a = MPFR_TMP_LIMBS_ALLOC (n);
-
- nx = MPFR_LIMB_SIZE (x);
-
- if ((mpfr_exp_t) m == g) /* final exponent is 0, no multiplication or
- division to perform */
- {
- if (nx > n)
- exact = mpn_scan1 (xp, 0) >= (nx - n) * GMP_NUMB_BITS;
- err = !exact;
- MPN_COPY2 (a, n, xp, nx);
- exp_a = MPFR_GET_EXP (x) - n * GMP_NUMB_BITS;
- }
- else if ((mpfr_exp_t) m > g) /* we have to multiply x by b^exp */
- {
- mp_limb_t *x1;
-
- /* a2*2^exp_a = b^e */
- err = mpfr_mpn_exp (a, &exp_a, b, exp, n);
- /* here, the error on a is at most 2^err ulps */
- exact = (err == -1);
-
- /* x = x1*2^(n*GMP_NUMB_BITS) */
- x1 = (nx >= n) ? xp + nx - n : xp;
- nx1 = (nx >= n) ? n : nx; /* nx1 = min(n, nx) */
-
- /* test if exact */
- if (nx > n)
- exact = (exact &&
- ((mpn_scan1 (xp, 0) >= (nx - n) * GMP_NUMB_BITS)));
-
- /* we loose one more bit in the multiplication,
- except when err=0 where we loose two bits */
- err = (err <= 0) ? 2 : err + 1;
-
- /* result = a * x */
- result = MPFR_TMP_LIMBS_ALLOC (n + nx1);
- mpn_mul (result, a, n, x1, nx1);
- exp_a += MPFR_GET_EXP (x);
- if (mpn_scan1 (result, 0) < (nx1 * GMP_NUMB_BITS))
- exact = 0;
-
- /* normalize a and truncate */
- if ((result[n + nx1 - 1] & MPFR_LIMB_HIGHBIT) == 0)
- {
- mpn_lshift (a, result + nx1, n , 1);
- a[0] |= result[nx1 - 1] >> (GMP_NUMB_BITS - 1);
- exp_a --;
- }
- else
- MPN_COPY (a, result + nx1, n);
- }
- else /* m < g: divide by b^exp */
- {
- mp_limb_t *x1;
-
- /* a2*2^exp_a = b^e */
- err = mpfr_mpn_exp (a, &exp_a, b, exp, n);
- exact = (err == -1);
-
- /* allocate memory for x1, result and reste */
- result = MPFR_TMP_LIMBS_ALLOC (n + 1);
- reste = MPFR_TMP_LIMBS_ALLOC (n);
-
- if (2 * n <= nx)
- {
- x1 = xp + nx - 2 * n;
- /* we ignored the low nx - 2 * n limbs from x */
- if (exact && mpn_scan1 (xp, 0) < (nx - 2 * n) * GMP_NUMB_BITS)
- exact = 0;
- }
- else
- {
- /* copy the nx most significant limbs of x into those of x1 */
- x1 = MPFR_TMP_LIMBS_ALLOC (2 * n);
- MPN_ZERO (x1, 2 * n - nx);
- MPN_COPY (x1 + 2 * n - nx, xp, nx);
- }
-
- /* result = x / a */
- mpn_tdiv_qr (result, reste, 0, x1, 2 * n, a, n);
- exp_a = MPFR_GET_EXP (x) - exp_a - 2 * n * GMP_NUMB_BITS;
-
- /* test if division was exact */
- if (exact)
- exact = mpn_popcount (reste, n) == 0;
-
- /* normalize the result and copy into a */
- if (result[n] == 1)
- {
- mpn_rshift (a, result, n, 1);
- a[n - 1] |= MPFR_LIMB_HIGHBIT;;
- exp_a ++;
- }
- else
- MPN_COPY (a, result, n);
-
- err = (err == -1) ? 2 : err + 2;
- }
-
- /* check if rounding is possible */
- if (exact)
- err = -1;
-
- ret = mpfr_get_str_aux (s, e, a, n, exp_a, err, b0, m, rnd);
-
- MPFR_TMP_FREE (marker);
-
- if (ret == MPFR_ROUND_FAILED)
- {
- /* too large error: increment the working precision */
- MPFR_ZIV_NEXT (loop, prec);
- }
- else if (ret == - MPFR_ROUND_FAILED)
- {
- /* too many digits in mantissa: exp = |m-g| */
- if ((mpfr_exp_t) m > g) /* exp = m - g, multiply by b^exp */
- {
- g ++;
- exp --;
- }
- else /* exp = g - m, divide by b^exp */
- {
- g ++;
- exp ++;
- }
- }
- else
- {
- if (ret != 0)
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_INEXACT);
- break;
- }
- }
- MPFR_ZIV_FREE (loop);
-
- *e += g;
-
- MPFR_LOG_MSG (("e=%" MPFR_EXP_FSPEC "d\n", (mpfr_eexp_t) *e));
-
- MPFR_SAVE_EXPO_FREE (expo);
- return s0;
-}
-
-void mpfr_free_str (char *str)
-{
- mpfr_free_func (str, strlen (str) + 1);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_ui.c b/Build/source/libs/mpfr/mpfr-src/src/get_ui.c
deleted file mode 100644
index 3bed73c8586..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_ui.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* mpfr_get_ui -- convert a floating-point number to an unsigned long.
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-unsigned long
-mpfr_get_ui (mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- mpfr_prec_t prec;
- unsigned long s;
- mpfr_t x;
- mp_size_t n;
- mpfr_exp_t exp;
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY (!mpfr_fits_ulong_p (f, rnd)))
- {
- MPFR_SET_ERANGEFLAG ();
- return MPFR_IS_NAN (f) || MPFR_IS_NEG (f) ?
- (unsigned long) 0 : ULONG_MAX;
- }
-
- if (MPFR_IS_ZERO (f))
- return (unsigned long) 0;
-
- for (s = ULONG_MAX, prec = 0; s != 0; s /= 2, prec ++)
- { }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* first round to prec bits */
- mpfr_init2 (x, prec);
- mpfr_rint (x, f, rnd);
-
- /* The flags from mpfr_rint are the wanted ones. In particular,
- it sets the inexact flag when necessary. */
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- /* warning: if x=0, taking its exponent is illegal */
- if (MPFR_NOTZERO (x))
- {
- exp = MPFR_GET_EXP (x);
- MPFR_ASSERTD (exp >= 1); /* since |x| >= 1 */
- n = MPFR_LIMB_SIZE (x);
-#ifdef MPFR_LONG_WITHIN_LIMB
- MPFR_ASSERTD (exp <= GMP_NUMB_BITS);
-#else
- while (exp > GMP_NUMB_BITS)
- {
- MPFR_ASSERTD (n > 0);
- s += (unsigned long) MPFR_MANT(x)[n - 1] << (exp - GMP_NUMB_BITS);
- n--;
- exp -= GMP_NUMB_BITS;
- }
-#endif
- MPFR_ASSERTD (n > 0);
- s += MPFR_MANT(x)[n - 1] >> (GMP_NUMB_BITS - exp);
- }
-
- mpfr_clear (x);
-
- MPFR_SAVE_EXPO_FREE (expo);
-
- return s;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_uj.c b/Build/source/libs/mpfr/mpfr-src/src/get_uj.c
deleted file mode 100644
index ca6c16829ee..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_uj.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* mpfr_get_uj -- convert a MPFR number to a huge machine unsigned integer
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-#ifdef _MPFR_H_HAVE_INTMAX_T
-
-uintmax_t
-mpfr_get_uj (mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- uintmax_t r;
- mpfr_prec_t prec;
- mpfr_t x;
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY (!mpfr_fits_uintmax_p (f, rnd)))
- {
- MPFR_SET_ERANGEFLAG ();
- return MPFR_IS_NAN (f) || MPFR_IS_NEG (f) ?
- (uintmax_t) 0 : UINTMAX_MAX;
- }
-
- if (MPFR_IS_ZERO (f))
- return (uintmax_t) 0;
-
- /* determine the precision of uintmax_t */
- for (r = UINTMAX_MAX, prec = 0; r != 0; r /= 2, prec++)
- { }
-
- MPFR_ASSERTD (r == 0);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- mpfr_init2 (x, prec);
- mpfr_rint (x, f, rnd);
- MPFR_ASSERTN (MPFR_IS_FP (x));
-
- /* The flags from mpfr_rint are the wanted ones. In particular,
- it sets the inexact flag when necessary. */
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- if (MPFR_NOTZERO (x))
- {
- mp_limb_t *xp;
- int sh, n; /* An int should be sufficient in this context. */
-
- MPFR_ASSERTN (MPFR_IS_POS (x));
- xp = MPFR_MANT (x);
- sh = MPFR_GET_EXP (x);
- MPFR_ASSERTN ((mpfr_prec_t) sh <= prec);
- for (n = MPFR_LIMB_SIZE(x) - 1; n >= 0; n--)
- {
- sh -= GMP_NUMB_BITS;
- r += (sh >= 0
- ? (uintmax_t) xp[n] << sh
- : (uintmax_t) xp[n] >> (- sh));
- }
- }
-
- mpfr_clear (x);
-
- MPFR_SAVE_EXPO_FREE (expo);
-
- return r;
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_z.c b/Build/source/libs/mpfr/mpfr-src/src/get_z.c
deleted file mode 100644
index ce55183f0d2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_z.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* mpfr_get_z -- get a multiple-precision integer from
- a floating-point number
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_get_z (mpz_ptr z, mpfr_srcptr f, mpfr_rnd_t rnd)
-{
- int inex;
- mpfr_t r;
- mpfr_exp_t exp;
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f)))
- {
- if (MPFR_UNLIKELY (MPFR_NOTZERO (f)))
- MPFR_SET_ERANGEFLAG ();
- mpz_set_ui (z, 0);
- /* The ternary value is 0 even for infinity. Giving the rounding
- direction in this case would not make much sense anyway, and
- the direction would not necessarily match rnd. */
- return 0;
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- exp = MPFR_GET_EXP (f);
- /* if exp <= 0, then |f|<1, thus |o(f)|<=1 */
- MPFR_ASSERTN (exp < 0 || exp <= MPFR_PREC_MAX);
- mpfr_init2 (r, (exp < (mpfr_exp_t) MPFR_PREC_MIN ?
- MPFR_PREC_MIN : (mpfr_prec_t) exp));
- inex = mpfr_rint (r, f, rnd);
- MPFR_ASSERTN (inex != 1 && inex != -1); /* integral part of f is
- representable in r */
- MPFR_ASSERTN (MPFR_IS_FP (r));
-
- /* The flags from mpfr_rint are the wanted ones. In particular,
- it sets the inexact flag when necessary. */
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- exp = mpfr_get_z_2exp (z, r);
- if (exp >= 0)
- mpz_mul_2exp (z, z, exp);
- else
- mpz_fdiv_q_2exp (z, z, -exp);
- mpfr_clear (r);
-
- MPFR_SAVE_EXPO_FREE (expo);
-
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/get_z_exp.c b/Build/source/libs/mpfr/mpfr-src/src/get_z_exp.c
deleted file mode 100644
index eda94e4c8a2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/get_z_exp.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* mpfr_get_z_2exp -- get a multiple-precision integer and an exponent
- from a floating-point number
-
-Copyright 2000-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* puts the significand of f into z, and returns 'exp' such that f = z * 2^exp
- *
- * 0 doesn't have an exponent, therefore the returned exponent in this case
- * isn't really important. We choose to return __gmpfr_emin because
- * 1) it is in the exponent range [__gmpfr_emin,__gmpfr_emax],
- * 2) the smaller a number is (in absolute value), the smaller its
- * exponent is. In other words, the f -> exp function is monotonous
- * on nonnegative numbers. --> This is WRONG since the returned
- * exponent is not necessarily in the exponent range!
- * Note that this is different from the C function frexp().
- *
- * For NaN and infinities, we choose to set z = 0 (neutral value).
- * The exponent doesn't really matter, so let's keep __gmpfr_emin
- * for consistency. The erange flag is set.
- */
-
-/* MPFR_LARGE_EXP can be defined when mpfr_exp_t is guaranteed to have
- at least 64 bits (in a portable way). */
-#if GMP_NUMB_BITS >= 64
-/* Now, we know that the constant below is supported by the compiler. */
-# if _MPFR_EXP_FORMAT >= 3 && LONG_MAX >= 9223372036854775807
-# define MPFR_LARGE_EXP 1
-# endif
-#endif
-
-mpfr_exp_t
-mpfr_get_z_2exp (mpz_ptr z, mpfr_srcptr f)
-{
- mp_size_t fn;
- int sh;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f)))
- {
- if (MPFR_UNLIKELY (MPFR_NOTZERO (f)))
- MPFR_SET_ERANGEFLAG ();
- mpz_set_ui (z, 0);
- return __gmpfr_emin;
- }
-
- fn = MPFR_LIMB_SIZE(f);
-
- /* FIXME: temporary assert for security. Too large values should
- probably be handled like infinities. */
- MPFR_ASSERTN (fn <= INT_MAX); /* due to SIZ(z) being an int */
-
- /* check whether allocated space for z is enough */
- mpz_realloc2 (z, (mp_bitcnt_t) fn * GMP_NUMB_BITS);
-
- MPFR_UNSIGNED_MINUS_MODULO (sh, MPFR_PREC (f));
- if (MPFR_LIKELY (sh))
- mpn_rshift (PTR (z), MPFR_MANT (f), fn, sh);
- else
- MPN_COPY (PTR (z), MPFR_MANT (f), fn);
-
- SIZ(z) = MPFR_IS_NEG (f) ? -fn : fn;
-
-#ifndef MPFR_LARGE_EXP
- /* If mpfr_exp_t has 64 bits, then MPFR_GET_EXP(f) >= MPFR_EMIN_MIN = 1-2^62
- and MPFR_EXP_MIN <= 1-2^63, thus the following implies PREC(f) > 2^62,
- which is impossible due to memory constraints. */
- if (MPFR_UNLIKELY ((mpfr_uexp_t) MPFR_GET_EXP (f) - MPFR_EXP_MIN
- < (mpfr_uexp_t) MPFR_PREC (f)))
- {
- /* The exponent isn't representable in an mpfr_exp_t. */
- MPFR_SET_ERANGEFLAG ();
- return MPFR_EXP_MIN;
- }
-#endif
-
- return MPFR_GET_EXP (f) - MPFR_PREC (f);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/gmp_op.c b/Build/source/libs/mpfr/mpfr-src/src/gmp_op.c
deleted file mode 100644
index 74cbec14d8b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/gmp_op.c
+++ /dev/null
@@ -1,520 +0,0 @@
-/* Implementations of operations between mpfr and mpz/mpq data
-
-Copyright 2001, 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* TODO: for functions with mpz_srcptr, check whether mpz_fits_slong_p
- is really useful in all cases. For instance, concerning the addition,
- one now has mpz_t -> long -> unsigned long -> mpfr_t then mpfr_add
- instead of mpz_t -> mpfr_t then mpfr_add. */
-
-/* Init and set a mpfr_t with enough precision to store a mpz.
- This function should be called in the extended exponent range. */
-static void
-init_set_z (mpfr_ptr t, mpz_srcptr z)
-{
- mpfr_prec_t p;
- int i;
-
- if (mpz_size (z) <= 1)
- p = GMP_NUMB_BITS;
- else
- MPFR_MPZ_SIZEINBASE2 (p, z);
- mpfr_init2 (t, p);
- i = mpfr_set_z (t, z, MPFR_RNDN);
- /* Possible assertion failure in case of overflow. Such cases,
- which imply that z is huge (if the function is called in
- the extended exponent range), are currently not supported,
- just like precisions around MPFR_PREC_MAX. */
- MPFR_ASSERTN (i == 0); (void) i; /* use i to avoid a warning */
-}
-
-/* Init, set a mpfr_t with enough precision to store a mpz_t without round,
- call the function, and clear the allocated mpfr_t */
-static int
-foo (mpfr_ptr x, mpfr_srcptr y, mpz_srcptr z, mpfr_rnd_t r,
- int (*f)(mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t))
-{
- mpfr_t t;
- int i;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
- init_set_z (t, z); /* There should be no exceptions. */
- i = (*f) (x, y, t, r);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (x, i, r);
-}
-
-static int
-foo2 (mpfr_ptr x, mpz_srcptr y, mpfr_srcptr z, mpfr_rnd_t r,
- int (*f)(mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t))
-{
- mpfr_t t;
- int i;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
- init_set_z (t, y); /* There should be no exceptions. */
- i = (*f) (x, t, z, r);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (x, i, r);
-}
-
-int
-mpfr_mul_z (mpfr_ptr y, mpfr_srcptr x, mpz_srcptr z, mpfr_rnd_t r)
-{
- if (mpz_fits_slong_p (z))
- return mpfr_mul_si (y, x, mpz_get_si (z), r);
- else
- return foo (y, x, z, r, mpfr_mul);
-}
-
-int
-mpfr_div_z (mpfr_ptr y, mpfr_srcptr x, mpz_srcptr z, mpfr_rnd_t r)
-{
- if (mpz_fits_slong_p (z))
- return mpfr_div_si (y, x, mpz_get_si (z), r);
- else
- return foo (y, x, z, r, mpfr_div);
-}
-
-int
-mpfr_add_z (mpfr_ptr y, mpfr_srcptr x, mpz_srcptr z, mpfr_rnd_t r)
-{
- if (mpz_fits_slong_p (z))
- return mpfr_add_si (y, x, mpz_get_si (z), r);
- else
- return foo (y, x, z, r, mpfr_add);
-}
-
-int
-mpfr_sub_z (mpfr_ptr y, mpfr_srcptr x, mpz_srcptr z, mpfr_rnd_t r)
-{
- if (mpz_fits_slong_p (z))
- return mpfr_sub_si (y, x, mpz_get_si (z), r);
- else
- return foo (y, x, z, r, mpfr_sub);
-}
-
-int
-mpfr_z_sub (mpfr_ptr y, mpz_srcptr x, mpfr_srcptr z, mpfr_rnd_t r)
-{
- if (mpz_fits_slong_p (x))
- return mpfr_si_sub (y, mpz_get_si (x), z, r);
- else
- return foo2 (y, x, z, r, mpfr_sub);
-}
-
-int
-mpfr_cmp_z (mpfr_srcptr x, mpz_srcptr z)
-{
- mpfr_t t;
- int res;
- mpfr_prec_t p;
- mpfr_flags_t flags;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return mpfr_cmp_si (x, mpz_sgn (z));
-
- if (mpz_fits_slong_p (z))
- return mpfr_cmp_si (x, mpz_get_si (z));
-
- if (mpz_size (z) <= 1)
- p = GMP_NUMB_BITS;
- else
- MPFR_MPZ_SIZEINBASE2 (p, z);
- mpfr_init2 (t, p);
- flags = __gmpfr_flags;
- if (mpfr_set_z (t, z, MPFR_RNDN))
- {
- /* overflow (t is an infinity) or underflow: z does not fit in the
- current exponent range.
- If overflow, then z is larger than the largest *integer* < +Inf
- (if z > 0), thus we get t = +Inf (or -Inf), and the value of
- mpfr_cmp (x, t) below is correct.
- If underflow, then z is smaller than the smallest number > 0,
- which is necessarily an integer, say xmin.
- If z > xmin/2, then t is xmin, and we divide t by 2 to ensure t
- is zero, and then the value of mpfr_cmp (x, t) below is correct. */
- mpfr_div_2ui (t, t, 2, MPFR_RNDZ); /* if underflow, set t to zero */
- __gmpfr_flags = flags; /* restore the flags */
- /* The real value of t (= z), which falls outside the exponent range,
- has been replaced by an equivalent value for the comparison: zero
- or an infinity. */
- }
- res = mpfr_cmp (x, t);
- mpfr_clear (t);
- return res;
-}
-
-#ifndef MPFR_USE_MINI_GMP
-/* Compute y = RND(x*n/d), where n and d are mpz integers.
- An integer 0 is assumed to have a positive sign.
- This function is used by mpfr_mul_q and mpfr_div_q.
- Note: the status of the rational 0/(-1) is not clear (if there is
- a signed infinity, there should be a signed zero). But infinities
- are not currently supported/documented in GMP, and if the rational
- is canonicalized as it should be, the case 0/(-1) cannot occur. */
-static int
-mpfr_muldiv_z (mpfr_ptr y, mpfr_srcptr x, mpz_srcptr n, mpz_srcptr d,
- mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY (mpz_sgn (n) == 0))
- {
- if (MPFR_UNLIKELY (mpz_sgn (d) == 0))
- MPFR_SET_NAN (y);
- else
- {
- mpfr_mul_ui (y, x, 0, MPFR_RNDN); /* exact: +0, -0 or NaN */
- if (MPFR_UNLIKELY (mpz_sgn (d) < 0))
- MPFR_CHANGE_SIGN (y);
- }
- return 0;
- }
- else if (MPFR_UNLIKELY (mpz_sgn (d) == 0))
- {
- mpfr_div_ui (y, x, 0, MPFR_RNDN); /* exact: +Inf, -Inf or NaN */
- if (MPFR_UNLIKELY (mpz_sgn (n) < 0))
- MPFR_CHANGE_SIGN (y);
- return 0;
- }
- else
- {
- mpfr_prec_t p;
- mpfr_t tmp;
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* With the current MPFR code, using mpfr_mul_z and mpfr_div_z
- for the general case should be faster than doing everything
- in mpn, mpz and/or mpq. MPFR_SAVE_EXPO_MARK could be avoided
- here, but it would be more difficult to handle corner cases. */
- MPFR_MPZ_SIZEINBASE2 (p, n);
- mpfr_init2 (tmp, MPFR_PREC (x) + p);
- inexact = mpfr_mul_z (tmp, x, n, MPFR_RNDN);
- /* Since |n| >= 1, an underflow is not possible. And the precision of
- tmp has been chosen so that inexact != 0 iff there's an overflow. */
- if (MPFR_UNLIKELY (inexact != 0))
- {
- mpfr_t x0;
- mpfr_exp_t ex;
- MPFR_BLOCK_DECL (flags);
-
- /* intermediate overflow case */
- MPFR_ASSERTD (mpfr_inf_p (tmp));
- ex = MPFR_GET_EXP (x); /* x is a pure FP number */
- MPFR_ALIAS (x0, x, MPFR_SIGN(x), 0); /* x0 = x / 2^ex */
- MPFR_BLOCK (flags,
- inexact = mpfr_mul_z (tmp, x0, n, MPFR_RNDN);
- MPFR_ASSERTD (inexact == 0);
- inexact = mpfr_div_z (y, tmp, d, rnd_mode);
- /* Just in case the division underflows
- (highly unlikely, not supported)... */
- MPFR_ASSERTN (!MPFR_BLOCK_EXCEP));
- MPFR_EXP (y) += ex;
- /* Detect highly unlikely, not supported corner cases... */
- MPFR_ASSERTN (MPFR_EXP (y) >= __gmpfr_emin);
- MPFR_ASSERTN (! MPFR_IS_SINGULAR (y));
- /* The potential overflow will be detected by mpfr_check_range. */
- }
- else
- inexact = mpfr_div_z (y, tmp, d, rnd_mode);
-
- mpfr_clear (tmp);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
-}
-
-int
-mpfr_mul_q (mpfr_ptr y, mpfr_srcptr x, mpq_srcptr z, mpfr_rnd_t rnd_mode)
-{
- return mpfr_muldiv_z (y, x, mpq_numref (z), mpq_denref (z), rnd_mode);
-}
-
-int
-mpfr_div_q (mpfr_ptr y, mpfr_srcptr x, mpq_srcptr z, mpfr_rnd_t rnd_mode)
-{
- return mpfr_muldiv_z (y, x, mpq_denref (z), mpq_numref (z), rnd_mode);
-}
-
-int
-mpfr_add_q (mpfr_ptr y, mpfr_srcptr x, mpq_srcptr z, mpfr_rnd_t rnd_mode)
-{
- mpfr_t t,q;
- mpfr_prec_t p;
- mpfr_exp_t err;
- int res;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- if (MPFR_UNLIKELY (mpz_sgn (mpq_denref (z)) == 0 &&
- MPFR_MULT_SIGN (mpz_sgn (mpq_numref (z)),
- MPFR_SIGN (x)) <= 0))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- if (MPFR_UNLIKELY (mpq_sgn (z) == 0))
- return mpfr_set (y, x, rnd_mode); /* signed 0 - Unsigned 0 */
- else
- return mpfr_set_q (y, z, rnd_mode);
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- p = MPFR_PREC (y) + 10;
- mpfr_init2 (t, p);
- mpfr_init2 (q, p);
-
- MPFR_ZIV_INIT (loop, p);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- res = mpfr_set_q (q, z, MPFR_RNDN); /* Error <= 1/2 ulp(q) */
- /* If z if @INF@ (1/0), res = 0, so it quits immediately */
- if (MPFR_UNLIKELY (res == 0))
- /* Result is exact so we can add it directly! */
- {
- res = mpfr_add (y, x, q, rnd_mode);
- break;
- }
- MPFR_BLOCK (flags, mpfr_add (t, x, q, MPFR_RNDN));
- /* Error on t is <= 1/2 ulp(t), except in case of overflow/underflow,
- but such an exception is very unlikely as it would be possible
- only if q has a huge numerator or denominator. Not supported! */
- MPFR_ASSERTN (! (MPFR_OVERFLOW (flags) || MPFR_UNDERFLOW (flags)));
- /* Error / ulp(t) <= 1/2 + 1/2 * 2^(EXP(q)-EXP(t))
- If EXP(q)-EXP(t)>0, <= 2^(EXP(q)-EXP(t)-1)*(1+2^-(EXP(q)-EXP(t)))
- <= 2^(EXP(q)-EXP(t))
- If EXP(q)-EXP(t)<0, <= 2^0 */
- /* We can get 0, but we can't round since q is inexact */
- if (MPFR_LIKELY (!MPFR_IS_ZERO (t)))
- {
- err = (mpfr_exp_t) p - 1 - MAX (MPFR_GET_EXP(q)-MPFR_GET_EXP(t), 0);
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, MPFR_PREC (y), rnd_mode)))
- {
- res = mpfr_set (y, t, rnd_mode);
- break;
- }
- }
- MPFR_ZIV_NEXT (loop, p);
- mpfr_set_prec (t, p);
- mpfr_set_prec (q, p);
- }
- MPFR_ZIV_FREE (loop);
- mpfr_clear (t);
- mpfr_clear (q);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, res, rnd_mode);
-}
-
-int
-mpfr_sub_q (mpfr_ptr y, mpfr_srcptr x, mpq_srcptr z,mpfr_rnd_t rnd_mode)
-{
- mpfr_t t,q;
- mpfr_prec_t p;
- int res;
- mpfr_exp_t err;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- if (MPFR_UNLIKELY (mpz_sgn (mpq_denref (z)) == 0 &&
- MPFR_MULT_SIGN (mpz_sgn (mpq_numref (z)),
- MPFR_SIGN (x)) >= 0))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
-
- if (MPFR_UNLIKELY (mpq_sgn (z) == 0))
- return mpfr_set (y, x, rnd_mode); /* signed 0 - Unsigned 0 */
- else
- {
- res = mpfr_set_q (y, z, MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN (y);
- return -res;
- }
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- p = MPFR_PREC (y) + 10;
- mpfr_init2 (t, p);
- mpfr_init2 (q, p);
-
- MPFR_ZIV_INIT (loop, p);
- for(;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- res = mpfr_set_q(q, z, MPFR_RNDN); /* Error <= 1/2 ulp(q) */
- /* If z if @INF@ (1/0), res = 0, so it quits immediately */
- if (MPFR_UNLIKELY (res == 0))
- /* Result is exact so we can add it directly!*/
- {
- res = mpfr_sub (y, x, q, rnd_mode);
- break;
- }
- MPFR_BLOCK (flags, mpfr_sub (t, x, q, MPFR_RNDN));
- /* Error on t is <= 1/2 ulp(t), except in case of overflow/underflow,
- but such an exception is very unlikely as it would be possible
- only if q has a huge numerator or denominator. Not supported! */
- MPFR_ASSERTN (! (MPFR_OVERFLOW (flags) || MPFR_UNDERFLOW (flags)));
- /* Error / ulp(t) <= 1/2 + 1/2 * 2^(EXP(q)-EXP(t))
- If EXP(q)-EXP(t)>0, <= 2^(EXP(q)-EXP(t)-1)*(1+2^-(EXP(q)-EXP(t)))
- <= 2^(EXP(q)-EXP(t))
- If EXP(q)-EXP(t)<0, <= 2^0 */
- /* We can get 0, but we can't round since q is inexact */
- if (MPFR_LIKELY (!MPFR_IS_ZERO (t)))
- {
- err = (mpfr_exp_t) p - 1 - MAX (MPFR_GET_EXP(q)-MPFR_GET_EXP(t), 0);
- res = MPFR_CAN_ROUND (t, err, MPFR_PREC (y), rnd_mode);
- if (MPFR_LIKELY (res != 0)) /* We can round! */
- {
- res = mpfr_set (y, t, rnd_mode);
- break;
- }
- }
- MPFR_ZIV_NEXT (loop, p);
- mpfr_set_prec (t, p);
- mpfr_set_prec (q, p);
- }
- MPFR_ZIV_FREE (loop);
- mpfr_clear (t);
- mpfr_clear (q);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, res, rnd_mode);
-}
-
-int
-mpfr_cmp_q (mpfr_srcptr x, mpq_srcptr q)
-{
- mpfr_t t;
- int res;
- mpfr_prec_t p;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* GMP allows the user to set the denominator to 0. This is interpreted
- by MPFR as the value being an infinity or NaN (probably better than
- an assertion failure). */
- if (MPFR_UNLIKELY (mpz_sgn (mpq_denref (q)) == 0))
- {
- /* q is an infinity or NaN */
- mpfr_flags_t old_flags;
-
- mpfr_init2 (t, MPFR_PREC_MIN);
- old_flags = __gmpfr_flags;
- mpfr_set_q (t, q, MPFR_RNDN);
- __gmpfr_flags = old_flags;
- res = mpfr_cmp (x, t);
- mpfr_clear (t);
- return res;
- }
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return mpfr_cmp_si (x, mpq_sgn (q));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* x < a/b ? <=> x*b < a */
- MPFR_MPZ_SIZEINBASE2 (p, mpq_denref (q));
- mpfr_init2 (t, MPFR_PREC(x) + p);
- res = mpfr_mul_z (t, x, mpq_denref (q), MPFR_RNDN);
- MPFR_ASSERTD (res == 0);
- res = mpfr_cmp_z (t, mpq_numref (q));
- mpfr_clear (t);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return res;
-}
-#endif
-
-#ifndef MPFR_USE_MINI_GMP
-int
-mpfr_cmp_f (mpfr_srcptr x, mpf_srcptr z)
-{
- mpfr_t t;
- int res;
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return mpfr_cmp_si (x, mpf_sgn (z));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- mpfr_init2 (t, MPFR_PREC_MIN + ABSIZ(z) * GMP_NUMB_BITS);
- res = mpfr_set_f (t, z, MPFR_RNDN);
- MPFR_ASSERTD (res == 0);
- res = mpfr_cmp (x, t);
- mpfr_clear (t);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return res;
-}
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/grandom.c b/Build/source/libs/mpfr/mpfr-src/src/grandom.c
deleted file mode 100644
index 03e1b49edaf..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/grandom.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* mpfr_grandom (rop1, rop2, state, rnd_mode) -- Generate up to two
- pseudorandom real numbers according to a standard normal Gaussian
- distribution and round it to the precision of rop1, rop2 according
- to the given rounding mode.
-
-Copyright 2011-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* #define MPFR_NEED_LONGLONG_H */
-#include "mpfr-impl.h"
-
-
-int
-mpfr_grandom (mpfr_ptr rop1, mpfr_ptr rop2, gmp_randstate_t rstate,
- mpfr_rnd_t rnd)
-{
- int inex1, inex2, s1, s2;
- mpz_t x, y, xp, yp, t, a, b, s;
- mpfr_t sfr, l, r1, r2;
- mpfr_prec_t tprec, tprec0;
-
- inex2 = inex1 = 0;
-
- if (rop2 == NULL) /* only one output requested. */
- tprec0 = MPFR_PREC (rop1);
- else
- tprec0 = MAX (MPFR_PREC (rop1), MPFR_PREC (rop2));
-
- tprec0 += 11;
-
- /* We use "Marsaglia polar method" here (cf.
- George Marsaglia, Normal (Gaussian) random variables for supercomputers
- The Journal of Supercomputing, Volume 5, Number 1, 49–55
- DOI: 10.1007/BF00155857).
-
- First we draw uniform x and y in [0,1] using mpz_urandomb (in
- fixed precision), and scale them to [-1, 1].
- */
-
- mpz_init (xp);
- mpz_init (yp);
- mpz_init (x);
- mpz_init (y);
- mpz_init (t);
- mpz_init (s);
- mpz_init (a);
- mpz_init (b);
- mpfr_init2 (sfr, MPFR_PREC_MIN);
- mpfr_init2 (l, MPFR_PREC_MIN);
- mpfr_init2 (r1, MPFR_PREC_MIN);
- if (rop2 != NULL)
- mpfr_init2 (r2, MPFR_PREC_MIN);
-
- mpz_set_ui (xp, 0);
- mpz_set_ui (yp, 0);
-
- for (;;)
- {
- tprec = tprec0;
- do
- {
- mpz_urandomb (xp, rstate, tprec);
- mpz_urandomb (yp, rstate, tprec);
- mpz_mul (a, xp, xp);
- mpz_mul (b, yp, yp);
- mpz_add (s, a, b);
- }
- while (mpz_sizeinbase (s, 2) > tprec * 2);
-
- /* now s = x^2 + y^2 < 2^{2tprec} */
-
- for (;;)
- {
- /* we compute (xp+1)^2 + (yp+1)^2 as s + 2xp + 2yp + 2 */
- mpz_addmul_ui (s, xp, 2);
- mpz_addmul_ui (s, yp, 2);
- mpz_add_ui (s, s, 2);
- /* The case s = 2^(2*tprec) is not possible:
- (a) if xp and yp have different parities, s is odd
- (b) if xp and yp are even, (xp+1)^2 and (yp+1)^2 are 1 mod 4,
- thus s = 2 mod 4 (and tprec >= 1);
- (c) if xp and yp are odd, if we note x = xp+1, y = yp+1 and
- p = tprec, we would have x^2 + y^2 = 2^(2p) with x and y even
- 0 < x, y <= 2^p, thus if x' = x/2, y' = y/2 and p'=p-1,
- we would have x'^2 + y'^2 = 2^(2p') with
- 0 < x', y' <= 2^p', and we conclude by induction. */
- if (mpz_sizeinbase (s, 2) <= 2 * tprec)
- goto yeepee;
- /* Extend by 32 bits: for tprec=12, the probability we get here
- is 8191/13180825, i.e., about 0.000621 */
- mpz_mul_2exp (xp, xp, 32);
- mpz_mul_2exp (yp, yp, 32);
- mpz_urandomb (x, rstate, 32);
- mpz_urandomb (y, rstate, 32);
- mpz_add (xp, xp, x);
- mpz_add (yp, yp, y);
- tprec += 32;
-
- mpz_mul (a, xp, xp);
- mpz_mul (b, yp, yp);
- mpz_add (s, a, b);
- if (mpz_sizeinbase (s, 2) > tprec * 2)
- break;
- }
- }
- yeepee:
-
- /* FIXME: compute s with s -= 2x + 2y + 2 */
- mpz_mul (a, xp, xp);
- mpz_mul (b, yp, yp);
- mpz_add (s, a, b);
- /* Compute the signs of the output */
- mpz_urandomb (x, rstate, 2);
- s1 = mpz_tstbit (x, 0);
- s2 = mpz_tstbit (x, 1);
- for (;;)
- {
- /* s = xp^2 + yp^2 (loop invariant) */
- mpfr_set_prec (sfr, 2 * tprec);
- mpfr_set_prec (l, tprec);
- mpfr_set_z (sfr, s, MPFR_RNDN); /* exact */
- mpfr_mul_2si (sfr, sfr, -2 * tprec, MPFR_RNDN); /* exact */
- mpfr_log (l, sfr, MPFR_RNDN);
- mpfr_neg (l, l, MPFR_RNDN);
- mpfr_mul_2si (l, l, 1, MPFR_RNDN);
- mpfr_div (l, l, sfr, MPFR_RNDN);
- mpfr_sqrt (l, l, MPFR_RNDN);
-
- mpfr_set_prec (r1, tprec);
- mpfr_mul_z (r1, l, xp, MPFR_RNDN);
- mpfr_div_2ui (r1, r1, tprec, MPFR_RNDN); /* exact */
- if (s1)
- mpfr_neg (r1, r1, MPFR_RNDN);
- if (MPFR_CAN_ROUND (r1, tprec - 2, MPFR_PREC (rop1), rnd))
- {
- if (rop2 != NULL)
- {
- mpfr_set_prec (r2, tprec);
- mpfr_mul_z (r2, l, yp, MPFR_RNDN);
- mpfr_div_2ui (r2, r2, tprec, MPFR_RNDN); /* exact */
- if (s2)
- mpfr_neg (r2, r2, MPFR_RNDN);
- if (MPFR_CAN_ROUND (r2, tprec - 2, MPFR_PREC (rop2), rnd))
- break;
- }
- else
- break;
- }
- /* Extend by 32 bits */
- mpz_mul_2exp (xp, xp, 32);
- mpz_mul_2exp (yp, yp, 32);
- mpz_urandomb (x, rstate, 32);
- mpz_urandomb (y, rstate, 32);
- mpz_add (xp, xp, x);
- mpz_add (yp, yp, y);
- tprec += 32;
- mpz_mul (a, xp, xp);
- mpz_mul (b, yp, yp);
- mpz_add (s, a, b);
- }
- inex1 = mpfr_set (rop1, r1, rnd);
- if (rop2 != NULL)
- {
- inex2 = mpfr_set (rop2, r2, rnd);
- inex2 = mpfr_check_range (rop2, inex2, rnd);
- }
- inex1 = mpfr_check_range (rop1, inex1, rnd);
-
- if (rop2 != NULL)
- mpfr_clear (r2);
- mpfr_clear (r1);
- mpfr_clear (l);
- mpfr_clear (sfr);
- mpz_clear (b);
- mpz_clear (a);
- mpz_clear (s);
- mpz_clear (t);
- mpz_clear (y);
- mpz_clear (x);
- mpz_clear (yp);
- mpz_clear (xp);
-
- return INEX (inex1, inex2);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/hypot.c b/Build/source/libs/mpfr/mpfr-src/src/hypot.c
deleted file mode 100644
index d219d6f4515..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/hypot.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/* mpfr_hypot -- Euclidean distance
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The computation of hypot of x and y is done by *
- * hypot(x,y)= sqrt(x^2+y^2) = z */
-
-int
-mpfr_hypot (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- unsigned int exact; /* Warning: 0 will mean "exact" */
- mpfr_t t, te, ti; /* auxiliary variables */
- mpfr_prec_t N, Nz; /* size variables */
- mpfr_prec_t Nt; /* precision of the intermediary variable */
- mpfr_prec_t threshold;
- mpfr_exp_t Ex, sh;
- mpfr_uexp_t diff_exp;
-
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
- MPFR_BLOCK_DECL (flags);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg y[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x,
- mpfr_get_prec (y), mpfr_log_prec, y, rnd_mode),
- ("z[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (z), mpfr_log_prec, z, inexact));
-
- /* particular cases */
- if (MPFR_ARE_SINGULAR (x, y))
- {
- if (MPFR_IS_INF (x) || MPFR_IS_INF (y))
- {
- /* Return +inf, even when the other number is NaN. */
- MPFR_SET_INF (z);
- MPFR_SET_POS (z);
- MPFR_RET (0);
- }
- else if (MPFR_IS_NAN (x) || MPFR_IS_NAN (y))
- {
- MPFR_SET_NAN (z);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_ZERO (x))
- return mpfr_abs (z, y, rnd_mode);
- else /* y is necessarily 0 */
- return mpfr_abs (z, x, rnd_mode);
- }
-
- /* TODO: It may be sufficient to just compare the exponents.
- The error analysis would need to be updated. */
- if (mpfr_cmpabs (x, y) < 0)
- {
- mpfr_srcptr u;
- u = x;
- x = y;
- y = u;
- }
-
- /* now |x| >= |y| */
-
- Ex = MPFR_GET_EXP (x);
- diff_exp = (mpfr_uexp_t) Ex - MPFR_GET_EXP (y);
-
- N = MPFR_PREC (x); /* Precision of input variable */
- Nz = MPFR_PREC (z); /* Precision of output variable */
- threshold = (MAX (N, Nz) + (rnd_mode == MPFR_RNDN ? 1 : 0)) << 1;
- if (rnd_mode == MPFR_RNDA)
- rnd_mode = MPFR_RNDU; /* since the result is positive, RNDA = RNDU */
-
- /* Is |x| a suitable approximation to the precision Nz ?
- (see algorithms.tex for explanations) */
- if (diff_exp > threshold)
- /* result is |x| or |x|+ulp(|x|,Nz) */
- {
- if (MPFR_UNLIKELY (rnd_mode == MPFR_RNDU))
- {
- /* If z > abs(x), then it was already rounded up; otherwise
- z = abs(x), and we need to add one ulp due to y. */
- if (mpfr_abs (z, x, rnd_mode) == 0)
- {
- mpfr_nexttoinf (z);
- /* since mpfr_nexttoinf does not set the overflow flag,
- we have to check manually for overflow */
- if (MPFR_UNLIKELY (MPFR_IS_INF (z)))
- MPFR_SET_OVERFLOW ();
- }
- MPFR_RET (1);
- }
- else /* MPFR_RNDZ, MPFR_RNDD, MPFR_RNDN */
- {
- if (MPFR_LIKELY (Nz >= N))
- {
- mpfr_abs (z, x, rnd_mode); /* exact */
- MPFR_RET (-1);
- }
- else
- {
- MPFR_SET_EXP (z, Ex);
- MPFR_SET_SIGN (z, MPFR_SIGN_POS);
- MPFR_RNDRAW_GEN (inexact, z, MPFR_MANT (x), N, rnd_mode, 1,
- goto addoneulp,
- if (MPFR_UNLIKELY (++ MPFR_EXP (z) >
- __gmpfr_emax))
- return mpfr_overflow (z, rnd_mode, 1);
- );
-
- if (MPFR_UNLIKELY (inexact == 0))
- inexact = -1;
- MPFR_RET (inexact);
- }
- }
- }
-
- /* General case */
-
- N = MAX (MPFR_PREC (x), MPFR_PREC (y));
-
- /* working precision */
- Nt = Nz + MPFR_INT_CEIL_LOG2 (Nz) + 4;
-
- mpfr_init2 (t, Nt);
- mpfr_init2 (te, Nt);
- mpfr_init2 (ti, Nt);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Scale x and y to avoid any overflow and underflow in x^2
- (as |x| >= |y|), and to limit underflow cases for y or y^2.
- We have: x = Mx * 2^Ex with 1/2 <= |Mx| < 1, and we choose:
- sh = floor((Emax - 1) / 2) - Ex.
- Thus (x * 2^sh)^2 = Mx^2 * 2^(2*floor((Emax-1)/2)), which has an
- exponent of at most Emax - 1. Therefore (x * 2^sh)^2 + (y * 2^sh)^2
- will have an exponent of at most Emax, even after rounding as we
- round toward zero. Using a larger sh wouldn't guarantee an absence
- of overflow. Note that the scaling of y can underflow only when the
- target precision is huge, otherwise the case would already have been
- handled by the diff_exp > threshold code; but this case is avoided
- thanks to a FMA (this problem is transferred to the FMA code). */
- sh = (mpfr_get_emax () - 1) / 2 - Ex;
-
- /* FIXME: ti is subject to underflow. Solution: x and y could be
- aliased with MPFR_ALIAS, and if need be, the aliases be pre-scaled
- exactly as UBF, so that x^2 + y^2 is in range. Then call mpfr_fmma
- and the square root, and scale the result. The error analysis would
- be simpler.
- Note: mpfr_fmma is currently not optimized. */
-
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- mpfr_prec_t err;
-
- exact = mpfr_mul_2si (te, x, sh, MPFR_RNDZ);
- exact |= mpfr_mul_2si (ti, y, sh, MPFR_RNDZ);
- exact |= mpfr_sqr (te, te, MPFR_RNDZ);
- /* Use fma in order to avoid underflow when diff_exp<=MPFR_EMAX_MAX-2 */
- exact |= mpfr_fma (t, ti, ti, te, MPFR_RNDZ);
- exact |= mpfr_sqrt (t, t, MPFR_RNDZ);
-
- err = Nt < N ? 4 : 2;
- if (MPFR_LIKELY (exact == 0
- || MPFR_CAN_ROUND (t, Nt-err, Nz, rnd_mode)))
- break;
-
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- mpfr_set_prec (te, Nt);
- mpfr_set_prec (ti, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- MPFR_BLOCK (flags, inexact = mpfr_div_2si (z, t, sh, rnd_mode));
- MPFR_ASSERTD (exact == 0 || inexact != 0 || rnd_mode == MPFR_RNDF);
-
- mpfr_clear (t);
- mpfr_clear (ti);
- mpfr_clear (te);
-
- /*
- exact inexact
- 0 0 result is exact, ternary flag is 0
- 0 non zero t is exact, ternary flag given by inexact
- 1 0 impossible (see above)
- 1 non zero ternary flag given by inexact
- */
-
- MPFR_SAVE_EXPO_FREE (expo);
-
- if (MPFR_OVERFLOW (flags))
- MPFR_SET_OVERFLOW ();
- /* hypot(x,y) >= |x|, thus underflow is not possible. */
-
- return mpfr_check_range (z, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ieee_floats.h b/Build/source/libs/mpfr/mpfr-src/src/ieee_floats.h
deleted file mode 100644
index d0c6bb52c41..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ieee_floats.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* auxiliary data to generate special IEEE floats (NaN, +Inf, -Inf)
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* "double" NaN and infinities are written as explicit bytes to be sure of
- getting what we want, and to be sure of not depending on libm.
-
- Could use 4-byte "float" values and let the code convert them, but it
- seems more direct to give exactly what we want. Certainly for gcc 3.0.2
- on alphaev56-unknown-freebsd4.3 the NaN must be 8-bytes, since that
- compiler+system was seen incorrectly converting from a "float" NaN. */
-
-#if _MPFR_IEEE_FLOATS
-
-/* The "d" field guarantees alignment to a suitable boundary for a double.
- Could use a union instead, if we checked the compiler supports union
- initializers. */
-union dbl_bytes {
- unsigned char b[8];
- double d;
-};
-
-#define MPFR_DBL_INFP (dbl_infp.d)
-#define MPFR_DBL_INFM (dbl_infm.d)
-#define MPFR_DBL_NAN DBL_NAN
-
-/* For NaN, we use DBL_NAN since the memory representation of a NaN depends
- on the processor: a fixed memory representation could yield either a
- quiet NaN (qNaN) or a signaling NaN (sNaN). For instance, HP PA-RISC
- is known to do the opposite way of the usual choice recommended in
- IEEE 754-2008; see:
- http://grouper.ieee.org/groups/1788/email/msg03272.html
-
- Moreover, the right choice is to generate a qNaN in particular because
- signaling NaNs are not supported by all compilers (note that the support
- must be in the compiler used to build the user-end application because
- this is where the sNaN will be obtained). */
-
-#ifdef HAVE_DOUBLE_IEEE_LITTLE_ENDIAN
-static const union dbl_bytes dbl_infp =
- { { 0, 0, 0, 0, 0, 0, 0xF0, 0x7F } };
-static const union dbl_bytes dbl_infm =
- { { 0, 0, 0, 0, 0, 0, 0xF0, 0xFF } };
-#endif
-
-#ifdef HAVE_DOUBLE_IEEE_BIG_ENDIAN
-static const union dbl_bytes dbl_infp =
- { { 0x7F, 0xF0, 0, 0, 0, 0, 0, 0 } };
-static const union dbl_bytes dbl_infm =
- { { 0xFF, 0xF0, 0, 0, 0, 0, 0, 0 } };
-#endif
-
-#else /* _MPFR_IEEE_FLOATS */
-
-#define MPFR_DBL_INFP DBL_POS_INF
-#define MPFR_DBL_INFM DBL_NEG_INF
-#define MPFR_DBL_NAN DBL_NAN
-
-#endif /* _MPFR_IEEE_FLOATS */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/init.c b/Build/source/libs/mpfr/mpfr-src/src/init.c
deleted file mode 100644
index ecb174cfa48..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/init.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_init -- initialize a floating-point number
-
-Copyright 1999, 2001-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-void
-mpfr_init (mpfr_ptr x)
-{
- mpfr_init2 (x, __gmpfr_default_fp_bit_precision);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/init2.c b/Build/source/libs/mpfr/mpfr-src/src/init2.c
deleted file mode 100644
index 7cd0b15d351..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/init2.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* mpfr_init2 -- initialize a floating-point number with given precision
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR void
-mpfr_init2 (mpfr_ptr x, mpfr_prec_t p)
-{
- mp_size_t xsize;
- mpfr_size_limb_t *tmp;
-
- /* Check if we can represent the number of limbs
- * associated to the maximum of mpfr_prec_t*/
- MPFR_STAT_STATIC_ASSERT( MP_SIZE_T_MAX >= (MPFR_PREC_MAX/MPFR_BYTES_PER_MP_LIMB) );
-
- /* Check for correct GMP_NUMB_BITS and MPFR_BYTES_PER_MP_LIMB */
- MPFR_STAT_STATIC_ASSERT(GMP_NUMB_BITS == MPFR_BYTES_PER_MP_LIMB * CHAR_BIT);
- MPFR_STAT_STATIC_ASSERT(sizeof(mp_limb_t) == MPFR_BYTES_PER_MP_LIMB);
- /* Check for mp_bits_per_limb (a global variable inside GMP library) */
- MPFR_ASSERTN (mp_bits_per_limb == GMP_NUMB_BITS);
-
- /* Check for correct EXP NAN, ZERO & INF in both mpfr.h and mpfr-impl.h */
- MPFR_STAT_STATIC_ASSERT( __MPFR_EXP_NAN == MPFR_EXP_NAN );
- MPFR_STAT_STATIC_ASSERT( __MPFR_EXP_ZERO == MPFR_EXP_ZERO );
- MPFR_STAT_STATIC_ASSERT( __MPFR_EXP_INF == MPFR_EXP_INF );
-
- MPFR_STAT_STATIC_ASSERT( MPFR_EMAX_MAX <= (MPFR_EXP_MAX >> 1) );
- MPFR_STAT_STATIC_ASSERT( MPFR_EMIN_MIN >= -(MPFR_EXP_MAX >> 1) );
-
- /* p=1 is not allowed since the rounding to nearest even rule requires at
- least two bits of mantissa: the neighbors of 3/2 are 1*2^0 and 1*2^1,
- which both have an odd mantissa */
- MPFR_ASSERTN (MPFR_PREC_COND (p));
-
- xsize = MPFR_PREC2LIMBS (p);
- tmp = (mpfr_size_limb_t *) mpfr_allocate_func(MPFR_MALLOC_SIZE(xsize));
-
- MPFR_PREC(x) = p; /* Set prec */
- MPFR_EXP (x) = MPFR_EXP_INVALID; /* make sure that the exp field has a
- valid value in the C point of view */
- MPFR_SET_POS(x); /* Set a sign */
- MPFR_SET_MANT_PTR(x, tmp); /* Set Mantissa ptr */
- MPFR_SET_ALLOC_SIZE(x, xsize); /* Fix alloc size of Mantissa */
- MPFR_SET_NAN(x); /* initializes to NaN */
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/inits.c b/Build/source/libs/mpfr/mpfr-src/src/inits.c
deleted file mode 100644
index d0090516040..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/inits.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* mpfr_inits -- initialize several floating-point numbers
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#if HAVE_STDARG
-# include <stdarg.h>
-#else
-# include <varargs.h>
-#endif
-
-#include "mpfr-impl.h"
-
-/* Since it uses "...", we need an explicit support for K&R */
-
-void
-#if HAVE_STDARG
-mpfr_inits (mpfr_ptr x, ...)
-#else
-mpfr_inits (va_alist)
- va_dcl
-#endif
-{
- va_list arg;
-
-#if HAVE_STDARG
- va_start (arg, x);
-#else
- mpfr_ptr x;
- va_start(arg);
- x = va_arg (arg, mpfr_ptr);
-#endif
-
- while (x != 0)
- {
- mpfr_init (x);
- x = (mpfr_ptr) va_arg (arg, mpfr_ptr);
- }
- va_end (arg);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/inits2.c b/Build/source/libs/mpfr/mpfr-src/src/inits2.c
deleted file mode 100644
index 76ca4b8045e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/inits2.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* mpfr_inits2 -- initialize several floating-point numbers with given
- precision
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#if HAVE_STDARG
-# include <stdarg.h>
-#else
-# include <varargs.h>
-#endif
-
-#include "mpfr-impl.h"
-
-/*
- * Contrary to mpfr_init2, mpfr_prec_t p is the first argument
- */
-
-/* Explicit support for K&R compiler */
-void
-#if HAVE_STDARG
-mpfr_inits2 (mpfr_prec_t p, mpfr_ptr x, ...)
-#else
-mpfr_inits2 (va_alist)
- va_dcl
-#endif
-{
- va_list arg;
-#if HAVE_STDARG
- va_start (arg, x);
-#else
- mpfr_prec_t p;
- mpfr_ptr x;
- va_start(arg);
- p = va_arg (arg, mpfr_prec_t);
- x = va_arg (arg, mpfr_ptr);
-#endif
- while (x != 0)
- {
- mpfr_init2 (x, p);
- x = (mpfr_ptr) va_arg (arg, mpfr_ptr);
- }
- va_end (arg);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/inp_str.c b/Build/source/libs/mpfr/mpfr-src/src/inp_str.c
deleted file mode 100644
index e5b27ace139..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/inp_str.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* mpfr_inp_str -- input a number in base BASE from stdio stream STREAM
- and store the result in ROP
-
-Copyright 1999, 2001-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <ctype.h>
-
-#include "mpfr-impl.h"
-
-/* The original version of this function came from GMP's mpf/inp_str.c;
- it has been adapted for MPFR. */
-
-size_t
-mpfr_inp_str (mpfr_ptr rop, FILE *stream, int base, mpfr_rnd_t rnd_mode)
-{
- unsigned char *str;
- size_t alloc_size, str_size;
- int c;
- int retval;
- size_t nread;
-
- alloc_size = 100;
- str = (unsigned char *) mpfr_allocate_func (alloc_size);
- str_size = 0;
- nread = 0;
-
- /* Skip whitespace. EOF will be detected later. */
- do
- {
- c = getc (stream);
- nread++;
- }
- while (isspace (c));
-
- /* number of characters read is nread */
-
- for (;;)
- {
- MPFR_ASSERTD (str_size < (size_t) -1);
- if (str_size >= alloc_size)
- {
- size_t old_alloc_size = alloc_size;
- alloc_size = alloc_size / 2 * 3;
- /* Handle overflow in unsigned integer arithmetic... */
- if (MPFR_UNLIKELY (alloc_size <= old_alloc_size))
- alloc_size = (size_t) -1;
- MPFR_ASSERTD (str_size < alloc_size);
- str = (unsigned char *)
- mpfr_reallocate_func (str, old_alloc_size, alloc_size);
- }
- if (c == EOF || isspace (c))
- break;
- str[str_size++] = (unsigned char) c;
- if (str_size == (size_t) -1)
- break;
- c = getc (stream);
- }
- ungetc (c, stream);
-
- if (MPFR_UNLIKELY (str_size == (size_t) -1 || str_size == 0 ||
- (c == EOF && ! feof (stream))))
- {
- /* size_t overflow or I/O error */
- retval = -1;
- }
- else
- {
- /* number of characters read is nread + str_size - 1 */
-
- /* We exited the "for" loop by the first break instruction,
- then necessarily str_size >= alloc_size was checked, so
- now str_size < alloc_size. */
- MPFR_ASSERTD (str_size < alloc_size);
-
- str[str_size] = '\0';
-
- retval = mpfr_set_str (rop, (char *) str, base, rnd_mode);
- }
-
- mpfr_free_func (str, alloc_size);
-
- if (retval == -1)
- return 0; /* error */
-
- MPFR_ASSERTD (nread >= 1);
- str_size += nread - 1;
- if (MPFR_UNLIKELY (str_size < nread - 1)) /* size_t overflow */
- return 0; /* however rop has been set successfully */
- else
- return str_size;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/int_ceil_log2.c b/Build/source/libs/mpfr/mpfr-src/src/int_ceil_log2.c
deleted file mode 100644
index fdb0650e4ce..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/int_ceil_log2.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* __gmpfr_int_ceil_log2 -- Integer ceil of log2(x)
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H /* for count_leading_zeros */
-#include "mpfr-impl.h"
-
-int
-__gmpfr_int_ceil_log2 (unsigned long n)
-{
- if (MPFR_UNLIKELY (n == 1))
- return 0;
- else
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- int b;
- mp_limb_t limb;
-
- MPFR_ASSERTN (n > 1);
- limb = n - 1;
- MPFR_ASSERTN (limb == n - 1);
- count_leading_zeros (b, limb);
- b = GMP_NUMB_BITS - b;
- MPFR_ASSERTD (b >= 0);
- return b;
- }
-#else
- return mpfr_nbits_ulong (n - 1);
-#endif
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/invert_limb.h b/Build/source/libs/mpfr/mpfr-src/src/invert_limb.h
deleted file mode 100644
index 158fd9b8f99..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/invert_limb.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/* __gmpfr_invert_limb -- implement GMP's invert_limb (which is not in GMP API)
-
-Copyright 2016-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* for now, we only provide __gmpfr_invert_limb for 64-bit limb */
-#if GMP_NUMB_BITS == 64
-
-/* umul_hi(h, x, y) puts in h the high part of x*y */
-#ifdef HAVE_MULX_U64
-#include <immintrin.h>
-#define umul_hi(h, x, y) _mulx_u64 (x, y, (unsigned long long *) &(h))
-#else
-#define umul_hi(h, x, y) \
- do { \
- mp_limb_t _l; \
- umul_ppmm (h, _l, x, y); \
- (void) _l; /* unused variable */ \
- } while (0)
-#endif
-
-/* for 256 <= d9 < 512, invert_limb_table[d9-256] = floor((2^19-3*2^8)/d9)*2^11 */
-static const mp_limb_t invert_limb_table[256] =
- { 2045<<11, 2037<<11, 2029<<11, 2021<<11, 2013<<11, 2005<<11, 1998<<11, 1990<<11,
- 1983<<11, 1975<<11, 1968<<11, 1960<<11, 1953<<11, 1946<<11, 1938<<11, 1931<<11,
- 1924<<11, 1917<<11, 1910<<11, 1903<<11, 1896<<11, 1889<<11, 1883<<11, 1876<<11,
- 1869<<11, 1863<<11, 1856<<11, 1849<<11, 1843<<11, 1836<<11, 1830<<11, 1824<<11,
- 1817<<11, 1811<<11, 1805<<11, 1799<<11, 1792<<11, 1786<<11, 1780<<11, 1774<<11,
- 1768<<11, 1762<<11, 1756<<11, 1750<<11, 1745<<11, 1739<<11, 1733<<11, 1727<<11,
- 1722<<11, 1716<<11, 1710<<11, 1705<<11, 1699<<11, 1694<<11, 1688<<11, 1683<<11,
- 1677<<11, 1672<<11, 1667<<11, 1661<<11, 1656<<11, 1651<<11, 1646<<11, 1641<<11,
- 1636<<11, 1630<<11, 1625<<11, 1620<<11, 1615<<11, 1610<<11, 1605<<11, 1600<<11,
- 1596<<11, 1591<<11, 1586<<11, 1581<<11, 1576<<11, 1572<<11, 1567<<11, 1562<<11,
- 1558<<11, 1553<<11, 1548<<11, 1544<<11, 1539<<11, 1535<<11, 1530<<11, 1526<<11,
- 1521<<11, 1517<<11, 1513<<11, 1508<<11, 1504<<11, 1500<<11, 1495<<11, 1491<<11,
- 1487<<11, 1483<<11, 1478<<11, 1474<<11, 1470<<11, 1466<<11, 1462<<11, 1458<<11,
- 1454<<11, 1450<<11, 1446<<11, 1442<<11, 1438<<11, 1434<<11, 1430<<11, 1426<<11,
- 1422<<11, 1418<<11, 1414<<11, 1411<<11, 1407<<11, 1403<<11, 1399<<11, 1396<<11,
- 1392<<11, 1388<<11, 1384<<11, 1381<<11, 1377<<11, 1374<<11, 1370<<11, 1366<<11,
- 1363<<11, 1359<<11, 1356<<11, 1352<<11, 1349<<11, 1345<<11, 1342<<11, 1338<<11,
- 1335<<11, 1332<<11, 1328<<11, 1325<<11, 1322<<11, 1318<<11, 1315<<11, 1312<<11,
- 1308<<11, 1305<<11, 1302<<11, 1299<<11, 1295<<11, 1292<<11, 1289<<11, 1286<<11,
- 1283<<11, 1280<<11, 1276<<11, 1273<<11, 1270<<11, 1267<<11, 1264<<11, 1261<<11,
- 1258<<11, 1255<<11, 1252<<11, 1249<<11, 1246<<11, 1243<<11, 1240<<11, 1237<<11,
- 1234<<11, 1231<<11, 1228<<11, 1226<<11, 1223<<11, 1220<<11, 1217<<11, 1214<<11,
- 1211<<11, 1209<<11, 1206<<11, 1203<<11, 1200<<11, 1197<<11, 1195<<11, 1192<<11,
- 1189<<11, 1187<<11, 1184<<11, 1181<<11, 1179<<11, 1176<<11, 1173<<11, 1171<<11,
- 1168<<11, 1165<<11, 1163<<11, 1160<<11, 1158<<11, 1155<<11, 1153<<11, 1150<<11,
- 1148<<11, 1145<<11, 1143<<11, 1140<<11, 1138<<11, 1135<<11, 1133<<11, 1130<<11,
- 1128<<11, 1125<<11, 1123<<11, 1121<<11, 1118<<11, 1116<<11, 1113<<11, 1111<<11,
- 1109<<11, 1106<<11, 1104<<11, 1102<<11, 1099<<11, 1097<<11, 1095<<11, 1092<<11,
- 1090<<11, 1088<<11, 1086<<11, 1083<<11, 1081<<11, 1079<<11, 1077<<11, 1074<<11,
- 1072<<11, 1070<<11, 1068<<11, 1066<<11, 1064<<11, 1061<<11, 1059<<11, 1057<<11,
- 1055<<11, 1053<<11, 1051<<11, 1049<<11, 1047<<11, 1044<<11, 1042<<11, 1040<<11,
- 1038<<11, 1036<<11, 1034<<11, 1032<<11, 1030<<11, 1028<<11, 1026<<11, 1024<<11 };
-
-/* for 256 <= d9 < 512, invert_limb_table2[d9-256] = floor((2^19-3*2^8)/d9)^2 */
-static const mp_limb_t invert_limb_table2[256] =
- { 4182025, 4149369, 4116841, 4084441, 4052169, 4020025, 3992004, 3960100, 3932289,
- 3900625, 3873024, 3841600, 3814209, 3786916, 3755844, 3728761, 3701776, 3674889,
- 3648100, 3621409, 3594816, 3568321, 3545689, 3519376, 3493161, 3470769, 3444736,
- 3418801, 3396649, 3370896, 3348900, 3326976, 3301489, 3279721, 3258025, 3236401,
- 3211264, 3189796, 3168400, 3147076, 3125824, 3104644, 3083536, 3062500, 3045025,
- 3024121, 3003289, 2982529, 2965284, 2944656, 2924100, 2907025, 2886601, 2869636,
- 2849344, 2832489, 2812329, 2795584, 2778889, 2758921, 2742336, 2725801, 2709316,
- 2692881, 2676496, 2656900, 2640625, 2624400, 2608225, 2592100, 2576025, 2560000,
- 2547216, 2531281, 2515396, 2499561, 2483776, 2471184, 2455489, 2439844, 2427364,
- 2411809, 2396304, 2383936, 2368521, 2356225, 2340900, 2328676, 2313441, 2301289,
- 2289169, 2274064, 2262016, 2250000, 2235025, 2223081, 2211169, 2199289, 2184484,
- 2172676, 2160900, 2149156, 2137444, 2125764, 2114116, 2102500, 2090916, 2079364,
- 2067844, 2056356, 2044900, 2033476, 2022084, 2010724, 1999396, 1990921, 1979649,
- 1968409, 1957201, 1948816, 1937664, 1926544, 1915456, 1907161, 1896129, 1887876,
- 1876900, 1865956, 1857769, 1846881, 1838736, 1827904, 1819801, 1809025, 1800964,
- 1790244, 1782225, 1774224, 1763584, 1755625, 1747684, 1737124, 1729225, 1721344,
- 1710864, 1703025, 1695204, 1687401, 1677025, 1669264, 1661521, 1653796, 1646089,
- 1638400, 1628176, 1620529, 1612900, 1605289, 1597696, 1590121, 1582564, 1575025,
- 1567504, 1560001, 1552516, 1545049, 1537600, 1530169, 1522756, 1515361, 1507984,
- 1503076, 1495729, 1488400, 1481089, 1473796, 1466521, 1461681, 1454436, 1447209,
- 1440000, 1432809, 1428025, 1420864, 1413721, 1408969, 1401856, 1394761, 1390041,
- 1382976, 1375929, 1371241, 1364224, 1357225, 1352569, 1345600, 1340964, 1334025,
- 1329409, 1322500, 1317904, 1311025, 1306449, 1299600, 1295044, 1288225, 1283689,
- 1276900, 1272384, 1265625, 1261129, 1256641, 1249924, 1245456, 1238769, 1234321,
- 1229881, 1223236, 1218816, 1214404, 1207801, 1203409, 1199025, 1192464, 1188100,
- 1183744, 1179396, 1172889, 1168561, 1164241, 1159929, 1153476, 1149184, 1144900,
- 1140624, 1136356, 1132096, 1125721, 1121481, 1117249, 1113025, 1108809, 1104601,
- 1100401, 1096209, 1089936, 1085764, 1081600, 1077444, 1073296, 1069156, 1065024,
- 1060900, 1056784, 1052676, 1048576 };
-
-/* Implements Algorithm 2 from "Improved Division by Invariant Integers",
- Niels Möller and Torbjörn Granlund, IEEE Transactions on Computers,
- volume 60, number 2, pages 165-175, 2011. */
-#define __gmpfr_invert_limb(r, d) \
- do { \
- mp_limb_t _d, _d0, _i, _d40, _d63, _v0, _v1, _v2, _e, _v3, _h, _l; \
- _d = (d); \
- _i = (_d >> 55) - 256; /* i = d9 - 256 */ \
- _v0 = invert_limb_table[_i]; \
- _d40 = (_d >> 24) + 1; \
- _v1 = _v0 - ((invert_limb_table2[_i] * _d40) >> 40) - 1; \
- _v2 = (_v1 << 13) + \
- ((_v1 * ((MPFR_LIMB_ONE << 60) - _v1 * _d40)) >> 47); \
- _d0 = _d & 1; \
- _d63 = ((_d - 1) >> 1) + 1; \
- _e = - _v2 * _d63 + ((_v2 & -_d0) >> 1); \
- umul_hi (_h, _v2, _e); \
- _v3 = (_v2 << 31) + (_h >> 1); \
- umul_ppmm (_h, _l, _v3, _d); \
- /* v3 is too small iff (h+d)*2^64+l+d < 2^128 */ \
- add_ssaaaa(_h, _l, _h, _l, _d, _d); \
- MPFR_ASSERTD(_h == MPFR_LIMB_ZERO || -_h == MPFR_LIMB_ONE); \
- (r) = _v3 - _h; \
- } while (0)
-
-/* same algorithm, but return the value v3, which is such that
- v3 <= invert_limb (d) <= v3 + 1 */
-#define __gmpfr_invert_limb_approx(r, d) \
- do { \
- mp_limb_t _d, _d0, _i, _d40, _d63, _v0, _v1, _v2, _e, _h; \
- _d = (d); \
- _i = (_d >> 55) - 256; /* i = d9 - 256 */ \
- _v0 = invert_limb_table[_i]; \
- _d40 = (_d >> 24) + 1; \
- _v1 = _v0 - ((invert_limb_table2[_i] * _d40) >> 40) - 1; \
- _v2 = (_v1 << 13) + \
- ((_v1 * ((MPFR_LIMB_ONE << 60) - _v1 * _d40)) >> 47); \
- _d0 = _d & 1; \
- _d63 = ((_d - 1) >> 1) + 1; \
- _e = - _v2 * _d63 + ((_v2 & -_d0) >> 1); \
- umul_hi (_h, _v2, _e); \
- (r) = (_v2 << 31) + (_h >> 1); \
- } while (0)
-
-#elif GMP_NUMB_BITS == 32
-
-/* for 512 <= d10 < 1024, l[d10-512] = floor((2^24-2^14+2^9)/d10) */
-static const mp_limb_t invert_limb_table[512] =
- { 32737, 32673, 32609, 32546, 32483, 32420, 32357, 32295, 32233, 32171,
- 32109, 32048, 31987, 31926, 31865, 31805, 31744, 31684, 31625, 31565,
- 31506, 31447, 31388, 31329, 31271, 31212, 31154, 31097, 31039, 30982,
- 30924, 30868, 30811, 30754, 30698, 30642, 30586, 30530, 30475, 30419,
- 30364, 30309, 30255, 30200, 30146, 30092, 30038, 29984, 29930, 29877,
- 29824, 29771, 29718, 29666, 29613, 29561, 29509, 29457, 29405, 29354,
- 29303, 29251, 29200, 29150, 29099, 29049, 28998, 28948, 28898, 28849,
- 28799, 28750, 28700, 28651, 28602, 28554, 28505, 28457, 28409, 28360,
- 28313, 28265, 28217, 28170, 28123, 28075, 28029, 27982, 27935, 27889,
- 27842, 27796, 27750, 27704, 27658, 27613, 27568, 27522, 27477, 27432,
- 27387, 27343, 27298, 27254, 27209, 27165, 27121, 27078, 27034, 26990,
- 26947, 26904, 26861, 26818, 26775, 26732, 26690, 26647, 26605, 26563,
- 26521, 26479, 26437, 26395, 26354, 26312, 26271, 26230, 26189, 26148,
- 26108, 26067, 26026, 25986, 25946, 25906, 25866, 25826, 25786, 25747,
- 25707, 25668, 25628, 25589, 25550, 25511, 25473, 25434, 25395, 25357,
- 25319, 25281, 25242, 25205, 25167, 25129, 25091, 25054, 25016, 24979,
- 24942, 24905, 24868, 24831, 24794, 24758, 24721, 24685, 24649, 24612,
- 24576, 24540, 24504, 24469, 24433, 24397, 24362, 24327, 24291, 24256,
- 24221, 24186, 24151, 24117, 24082, 24047, 24013, 23979, 23944, 23910,
- 23876, 23842, 23808, 23774, 23741, 23707, 23674, 23640, 23607, 23574,
- 23541, 23508, 23475, 23442, 23409, 23377, 23344, 23312, 23279, 23247,
- 23215, 23183, 23151, 23119, 23087, 23055, 23023, 22992, 22960, 22929,
- 22898, 22866, 22835, 22804, 22773, 22742, 22711, 22681, 22650, 22619,
- 22589, 22559, 22528, 22498, 22468, 22438, 22408, 22378, 22348, 22318,
- 22289, 22259, 22229, 22200, 22171, 22141, 22112, 22083, 22054, 22025,
- 21996, 21967, 21938, 21910, 21881, 21853, 21824, 21796, 21767, 21739,
- 21711, 21683, 21655, 21627, 21599, 21571, 21544, 21516, 21488, 21461,
- 21433, 21406, 21379, 21352, 21324, 21297, 21270, 21243, 21216, 21190,
- 21163, 21136, 21110, 21083, 21056, 21030, 21004, 20977, 20951, 20925,
- 20899, 20873, 20847, 20821, 20795, 20769, 20744, 20718, 20693, 20667,
- 20642, 20616, 20591, 20566, 20540, 20515, 20490, 20465, 20440, 20415,
- 20390, 20366, 20341, 20316, 20292, 20267, 20243, 20218, 20194, 20170,
- 20145, 20121, 20097, 20073, 20049, 20025, 20001, 19977, 19953, 19930,
- 19906, 19882, 19859, 19835, 19812, 19789, 19765, 19742, 19719, 19696,
- 19672, 19649, 19626, 19603, 19581, 19558, 19535, 19512, 19489, 19467,
- 19444, 19422, 19399, 19377, 19354, 19332, 19310, 19288, 19265, 19243,
- 19221, 19199, 19177, 19155, 19133, 19112, 19090, 19068, 19046, 19025,
- 19003, 18982, 18960, 18939, 18917, 18896, 18875, 18854, 18832, 18811,
- 18790, 18769, 18748, 18727, 18706, 18686, 18665, 18644, 18623, 18603,
- 18582, 18561, 18541, 18520, 18500, 18479, 18459, 18439, 18419, 18398,
- 18378, 18358, 18338, 18318, 18298, 18278, 18258, 18238, 18218, 18199,
- 18179, 18159, 18139, 18120, 18100, 18081, 18061, 18042, 18022, 18003,
- 17984, 17964, 17945, 17926, 17907, 17888, 17869, 17850, 17831, 17812,
- 17793, 17774, 17755, 17736, 17718, 17699, 17680, 17662, 17643, 17624,
- 17606, 17587, 17569, 17551, 17532, 17514, 17496, 17477, 17459, 17441,
- 17423, 17405, 17387, 17369, 17351, 17333, 17315, 17297, 17279, 17261,
- 17244, 17226, 17208, 17191, 17173, 17155, 17138, 17120, 17103, 17085,
- 17068, 17051, 17033, 17016, 16999, 16982, 16964, 16947, 16930, 16913,
- 16896, 16879, 16862, 16845, 16828, 16811, 16794, 16778, 16761, 16744,
- 16727, 16711, 16694, 16677, 16661, 16644, 16628, 16611, 16595, 16578,
- 16562, 16546, 16529, 16513, 16497, 16481, 16464, 16448, 16432, 16416,
- 16400, 16384 };
-
-/* Implements Algorithm 3 from "Improved Division by Invariant Integers",
- Niels Möller and Torbjörn Granlund, IEEE Transactions on Computers,
- volume 60, number 2, pages 165-175, 2011. */
-#define __gmpfr_invert_limb(r, d) \
- do { \
- mp_limb_t _d, _d0, _d10, _d21, _d31, _v0, _v1, _v2, _e, _h, _l; \
- _d = (d); \
- _d0 = _d & 1; \
- _d10 = _d >> 22; \
- _d21 = (_d >> 11) + 1; \
- _d31 = ((_d - 1) >> 1) + 1; \
- _v0 = invert_limb_table[_d10 - 512]; \
- umul_ppmm (_h, _l, _v0 * _v0, _d21); \
- _v1 = (_v0 << 4) - _h - 1; \
- _e = - _v1 * _d31 + ((_v1 & - _d0) >> 1); \
- umul_ppmm (_h, _l, _v1, _e); \
- _v2 = (_v1 << 15) + (_h >> 1); \
- umul_ppmm (_h, _l, _v2, _d); \
- /* v2 is too small iff (h+d)*2^32+l+d < 2^64 */ \
- add_ssaaaa(_h, _l, _h, _l, _d, _d); \
- MPFR_ASSERTD(_h == MPFR_LIMB_ZERO || -_h == MPFR_LIMB_ONE); \
- (r) = _v2 - _h; \
- } while (0)
-
-#endif /* GMP_NUMB_BITS == 64 or 32 */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/invsqrt_limb.h b/Build/source/libs/mpfr/mpfr-src/src/invsqrt_limb.h
deleted file mode 100644
index 4593372d54a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/invsqrt_limb.h
+++ /dev/null
@@ -1,366 +0,0 @@
-/* __gmpfr_invsqrt_limb_approx -- reciprocal approximate square root of a limb
-
-Copyright 2017-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* for now, we only provide __gmpfr_invert_limb for 64-bit limb */
-#if GMP_NUMB_BITS == 64
-
-/* For 257 <= d10 <= 1024, T[d10-257] = floor(sqrt(2^30/d10)).
- Sage code:
- T = [floor(sqrt(2^30/d10)) for d10 in [257..1024]] */
-static const mp_limb_t T[768] =
- { 2044, 2040, 2036, 2032, 2028, 2024, 2020, 2016, 2012, 2009, 2005,
- 2001, 1997, 1994, 1990, 1986, 1983, 1979, 1975, 1972, 1968, 1965, 1961,
- 1958, 1954, 1951, 1947, 1944, 1941, 1937, 1934, 1930, 1927, 1924, 1920,
- 1917, 1914, 1911, 1907, 1904, 1901, 1898, 1895, 1891, 1888, 1885, 1882,
- 1879, 1876, 1873, 1870, 1867, 1864, 1861, 1858, 1855, 1852, 1849, 1846,
- 1843, 1840, 1837, 1834, 1831, 1828, 1826, 1823, 1820, 1817, 1814, 1812,
- 1809, 1806, 1803, 1801, 1798, 1795, 1792, 1790, 1787, 1784, 1782, 1779,
- 1777, 1774, 1771, 1769, 1766, 1764, 1761, 1759, 1756, 1754, 1751, 1749,
- 1746, 1744, 1741, 1739, 1736, 1734, 1731, 1729, 1727, 1724, 1722, 1719,
- 1717, 1715, 1712, 1710, 1708, 1705, 1703, 1701, 1698, 1696, 1694, 1692,
- 1689, 1687, 1685, 1683, 1680, 1678, 1676, 1674, 1672, 1670, 1667, 1665,
- 1663, 1661, 1659, 1657, 1655, 1652, 1650, 1648, 1646, 1644, 1642, 1640,
- 1638, 1636, 1634, 1632, 1630, 1628, 1626, 1624, 1622, 1620, 1618, 1616,
- 1614, 1612, 1610, 1608, 1606, 1604, 1602, 1600, 1598, 1597, 1595, 1593,
- 1591, 1589, 1587, 1585, 1583, 1582, 1580, 1578, 1576, 1574, 1572, 1571,
- 1569, 1567, 1565, 1563, 1562, 1560, 1558, 1556, 1555, 1553, 1551, 1549,
- 1548, 1546, 1544, 1542, 1541, 1539, 1537, 1536, 1534, 1532, 1531, 1529,
- 1527, 1526, 1524, 1522, 1521, 1519, 1517, 1516, 1514, 1513, 1511, 1509,
- 1508, 1506, 1505, 1503, 1501, 1500, 1498, 1497, 1495, 1494, 1492, 1490,
- 1489, 1487, 1486, 1484, 1483, 1481, 1480, 1478, 1477, 1475, 1474, 1472,
- 1471, 1469, 1468, 1466, 1465, 1463, 1462, 1461, 1459, 1458, 1456, 1455,
- 1453, 1452, 1450, 1449, 1448, 1446, 1445, 1443, 1442, 1441, 1439, 1438,
- 1436, 1435, 1434, 1432, 1431, 1430, 1428, 1427, 1426, 1424, 1423, 1422,
- 1420, 1419, 1418, 1416, 1415, 1414, 1412, 1411, 1410, 1408, 1407, 1406,
- 1404, 1403, 1402, 1401, 1399, 1398, 1397, 1395, 1394, 1393, 1392, 1390,
- 1389, 1388, 1387, 1385, 1384, 1383, 1382, 1381, 1379, 1378, 1377, 1376,
- 1374, 1373, 1372, 1371, 1370, 1368, 1367, 1366, 1365, 1364, 1362, 1361,
- 1360, 1359, 1358, 1357, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1347,
- 1346, 1345, 1344, 1343, 1342, 1341, 1339, 1338, 1337, 1336, 1335, 1334,
- 1333, 1332, 1331, 1330, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321,
- 1320, 1319, 1318, 1317, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308,
- 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296,
- 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284,
- 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272,
- 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1264, 1263, 1262, 1261,
- 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1252, 1251, 1250,
- 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1242, 1241, 1240, 1239,
- 1238, 1237, 1236, 1235, 1234, 1234, 1233, 1232, 1231, 1230, 1229, 1228,
- 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1222, 1221, 1220, 1219, 1218,
- 1217, 1216, 1216, 1215, 1214, 1213, 1212, 1211, 1211, 1210, 1209, 1208,
- 1207, 1207, 1206, 1205, 1204, 1203, 1202, 1202, 1201, 1200, 1199, 1198,
- 1198, 1197, 1196, 1195, 1194, 1194, 1193, 1192, 1191, 1190, 1190, 1189,
- 1188, 1187, 1187, 1186, 1185, 1184, 1183, 1183, 1182, 1181, 1180, 1180,
- 1179, 1178, 1177, 1177, 1176, 1175, 1174, 1174, 1173, 1172, 1171, 1171,
- 1170, 1169, 1168, 1168, 1167, 1166, 1165, 1165, 1164, 1163, 1162, 1162,
- 1161, 1160, 1159, 1159, 1158, 1157, 1157, 1156, 1155, 1154, 1154, 1153,
- 1152, 1152, 1151, 1150, 1149, 1149, 1148, 1147, 1147, 1146, 1145, 1145,
- 1144, 1143, 1142, 1142, 1141, 1140, 1140, 1139, 1138, 1138, 1137, 1136,
- 1136, 1135, 1134, 1133, 1133, 1132, 1131, 1131, 1130, 1129, 1129, 1128,
- 1127, 1127, 1126, 1125, 1125, 1124, 1123, 1123, 1122, 1121, 1121, 1120,
- 1119, 1119, 1118, 1118, 1117, 1116, 1116, 1115, 1114, 1114, 1113, 1112,
- 1112, 1111, 1110, 1110, 1109, 1109, 1108, 1107, 1107, 1106, 1105, 1105,
- 1104, 1103, 1103, 1102, 1102, 1101, 1100, 1100, 1099, 1099, 1098, 1097,
- 1097, 1096, 1095, 1095, 1094, 1094, 1093, 1092, 1092, 1091, 1091, 1090,
- 1089, 1089, 1088, 1088, 1087, 1086, 1086, 1085, 1085, 1084, 1083, 1083,
- 1082, 1082, 1081, 1080, 1080, 1079, 1079, 1078, 1077, 1077, 1076, 1076,
- 1075, 1075, 1074, 1073, 1073, 1072, 1072, 1071, 1071, 1070, 1069, 1069,
- 1068, 1068, 1067, 1067, 1066, 1065, 1065, 1064, 1064, 1063, 1063, 1062,
- 1062, 1061, 1060, 1060, 1059, 1059, 1058, 1058, 1057, 1057, 1056, 1055,
- 1055, 1054, 1054, 1053, 1053, 1052, 1052, 1051, 1051, 1050, 1049, 1049,
- 1048, 1048, 1047, 1047, 1046, 1046, 1045, 1045, 1044, 1044, 1043, 1043,
- 1042, 1041, 1041, 1040, 1040, 1039, 1039, 1038, 1038, 1037, 1037, 1036,
- 1036, 1035, 1035, 1034, 1034, 1033, 1033, 1032, 1032, 1031, 1031, 1030,
- 1030, 1029, 1029, 1028, 1028, 1027, 1027, 1026, 1026, 1025, 1025, 1024,
- 1024 };
-
-/* table of v0^3 */
-static const mp_limb_t T3[768] =
- { 8539701184, 8489664000, 8439822656, 8390176768, 8340725952,
- 8291469824, 8242408000, 8193540096, 8144865728, 8108486729, 8060150125,
- 8012006001, 7964053973, 7928215784, 7880599000, 7833173256, 7797729087,
- 7750636739, 7703734375, 7668682048, 7622111232, 7587307125, 7541066681,
- 7506509912, 7460598664, 7426288351, 7380705123, 7346640384, 7312680621,
- 7267563953, 7233848504, 7189057000, 7155584983, 7122217024, 7077888000,
- 7044762213, 7011739944, 6978821031, 6935089643, 6902411264, 6869835701,
- 6837362792, 6804992375, 6761990971, 6729859072, 6697829125, 6665900968,
- 6634074439, 6602349376, 6570725617, 6539203000, 6507781363, 6476460544,
- 6445240381, 6414120712, 6383101375, 6352182208, 6321363049, 6290643736,
- 6260024107, 6229504000, 6199083253, 6168761704, 6138539191, 6108415552,
- 6088387976, 6058428767, 6028568000, 5998805513, 5969141144, 5949419328,
- 5919918129, 5890514616, 5861208627, 5841725401, 5812581592, 5783534875,
- 5754585088, 5735339000, 5706550403, 5677858304, 5658783768, 5630252139,
- 5611284433, 5582912824, 5554637011, 5535839609, 5507723096, 5489031744,
- 5461074081, 5442488479, 5414689216, 5396209064, 5368567751, 5350192749,
- 5322708936, 5304438784, 5277112021, 5258946419, 5231776256, 5213714904,
- 5186700891, 5168743489, 5150827583, 5124031424, 5106219048, 5079577959,
- 5061868813, 5044200875, 5017776128, 5000211000, 4982686912, 4956477625,
- 4939055927, 4921675101, 4895680392, 4878401536, 4861163384, 4843965888,
- 4818245769, 4801149703, 4784094125, 4767078987, 4741632000, 4724717752,
- 4707843776, 4691010024, 4674216448, 4657463000, 4632407963, 4615754625,
- 4599141247, 4582567781, 4566034179, 4549540393, 4533086375, 4508479808,
- 4492125000, 4475809792, 4459534136, 4443297984, 4427101288, 4410944000,
- 4394826072, 4378747456, 4362708104, 4346707968, 4330747000, 4314825152,
- 4298942376, 4283098624, 4267293848, 4251528000, 4235801032, 4220112896,
- 4204463544, 4188852928, 4173281000, 4157747712, 4142253016, 4126796864,
- 4111379208, 4096000000, 4080659192, 4073003173, 4057719875, 4042474857,
- 4027268071, 4012099469, 3996969003, 3981876625, 3966822287, 3959309368,
- 3944312000, 3929352552, 3914430976, 3899547224, 3884701248, 3877292411,
- 3862503009, 3847751263, 3833037125, 3818360547, 3811036328, 3796416000,
- 3781833112, 3767287616, 3760028875, 3745539377, 3731087151, 3716672149,
- 3709478592, 3695119336, 3680797184, 3666512088, 3659383421, 3645153819,
- 3630961153, 3623878656, 3609741304, 3595640768, 3588604291, 3574558889,
- 3560550183, 3553559576, 3539605824, 3525688648, 3518743761, 3504881359,
- 3491055413, 3484156096, 3470384744, 3463512697, 3449795831, 3436115229,
- 3429288512, 3415662216, 3408862625, 3395290527, 3381754501, 3375000000,
- 3361517992, 3354790473, 3341362375, 3334661784, 3321287488, 3307949000,
- 3301293169, 3288008303, 3281379256, 3268147904, 3261545587, 3248367641,
- 3241792000, 3228667352, 3222118333, 3209046875, 3202524424, 3189506048,
- 3183010111, 3170044709, 3163575232, 3150662696, 3144219625, 3131359847,
- 3124943128, 3118535181, 3105745579, 3099363912, 3086626816, 3080271375,
- 3067586677, 3061257408, 3048625000, 3042321849, 3036027392, 3023464536,
- 3017196125, 3004685307, 2998442888, 2992209121, 2979767519, 2973559672,
- 2961169856, 2954987875, 2948814504, 2936493568, 2930345991, 2924207000,
- 2911954752, 2905841483, 2899736776, 2887553024, 2881473967, 2875403448,
- 2863288000, 2857243059, 2851206632, 2839159296, 2833148375, 2827145944,
- 2815166528, 2809189531, 2803221000, 2791309312, 2785366143, 2779431416,
- 2767587264, 2761677827, 2755776808, 2749884201, 2738124199, 2732256792,
- 2726397773, 2714704875, 2708870984, 2703045457, 2697228288, 2685619000,
- 2679826869, 2674043072, 2668267603, 2656741625, 2650991104, 2645248887,
- 2639514968, 2633789341, 2622362939, 2616662152, 2610969633, 2605285376,
- 2593941624, 2588282117, 2582630848, 2576987811, 2571353000, 2560108032,
- 2554497863, 2548895896, 2543302125, 2537716544, 2526569928, 2521008881,
- 2515456000, 2509911279, 2504374712, 2498846293, 2487813875, 2482309864,
- 2476813977, 2471326208, 2465846551, 2460375000, 2454911549, 2444008923,
- 2438569736, 2433138625, 2427715584, 2422300607, 2416893688, 2411494821,
- 2400721219, 2395346472, 2389979753, 2384621056, 2379270375, 2373927704,
- 2368593037, 2363266368, 2357947691, 2352637000, 2342039552, 2336752783,
- 2331473976, 2326203125, 2320940224, 2315685267, 2310438248, 2305199161,
- 2299968000, 2294744759, 2289529432, 2284322013, 2273930875, 2268747144,
- 2263571297, 2258403328, 2253243231, 2248091000, 2242946629, 2237810112,
- 2232681443, 2227560616, 2222447625, 2217342464, 2212245127, 2207155608,
- 2202073901, 2197000000, 2191933899, 2186875592, 2181825073, 2176782336,
- 2171747375, 2166720184, 2161700757, 2156689088, 2151685171, 2146689000,
- 2141700569, 2136719872, 2131746903, 2126781656, 2121824125, 2116874304,
- 2111932187, 2106997768, 2102071041, 2097152000, 2092240639, 2087336952,
- 2082440933, 2077552576, 2072671875, 2067798824, 2062933417, 2058075648,
- 2053225511, 2048383000, 2043548109, 2038720832, 2033901163, 2029089096,
- 2024284625, 2019487744, 2019487744, 2014698447, 2009916728, 2005142581,
- 2000376000, 1995616979, 1990865512, 1986121593, 1981385216, 1976656375,
- 1971935064, 1967221277, 1962515008, 1962515008, 1957816251, 1953125000,
- 1948441249, 1943764992, 1939096223, 1934434936, 1929781125, 1925134784,
- 1920495907, 1915864488, 1915864488, 1911240521, 1906624000, 1902014919,
- 1897413272, 1892819053, 1888232256, 1883652875, 1879080904, 1879080904,
- 1874516337, 1869959168, 1865409391, 1860867000, 1856331989, 1851804352,
- 1851804352, 1847284083, 1842771176, 1838265625, 1833767424, 1829276567,
- 1824793048, 1824793048, 1820316861, 1815848000, 1811386459, 1806932232,
- 1802485313, 1798045696, 1798045696, 1793613375, 1789188344, 1784770597,
- 1780360128, 1775956931, 1775956931, 1771561000, 1767172329, 1762790912,
- 1758416743, 1758416743, 1754049816, 1749690125, 1745337664, 1740992427,
- 1736654408, 1736654408, 1732323601, 1728000000, 1723683599, 1719374392,
- 1719374392, 1715072373, 1710777536, 1706489875, 1702209384, 1702209384,
- 1697936057, 1693669888, 1689410871, 1685159000, 1685159000, 1680914269,
- 1676676672, 1672446203, 1672446203, 1668222856, 1664006625, 1659797504,
- 1655595487, 1655595487, 1651400568, 1647212741, 1643032000, 1643032000,
- 1638858339, 1634691752, 1630532233, 1630532233, 1626379776, 1622234375,
- 1618096024, 1618096024, 1613964717, 1609840448, 1605723211, 1605723211,
- 1601613000, 1597509809, 1593413632, 1593413632, 1589324463, 1585242296,
- 1581167125, 1581167125, 1577098944, 1573037747, 1568983528, 1568983528,
- 1564936281, 1560896000, 1556862679, 1556862679, 1552836312, 1548816893,
- 1548816893, 1544804416, 1540798875, 1536800264, 1536800264, 1532808577,
- 1528823808, 1528823808, 1524845951, 1520875000, 1516910949, 1516910949,
- 1512953792, 1509003523, 1509003523, 1505060136, 1501123625, 1501123625,
- 1497193984, 1493271207, 1489355288, 1489355288, 1485446221, 1481544000,
- 1481544000, 1477648619, 1473760072, 1473760072, 1469878353, 1466003456,
- 1466003456, 1462135375, 1458274104, 1454419637, 1454419637, 1450571968,
- 1446731091, 1446731091, 1442897000, 1439069689, 1439069689, 1435249152,
- 1431435383, 1431435383, 1427628376, 1423828125, 1423828125, 1420034624,
- 1416247867, 1416247867, 1412467848, 1408694561, 1408694561, 1404928000,
- 1401168159, 1401168159, 1397415032, 1397415032, 1393668613, 1389928896,
- 1389928896, 1386195875, 1382469544, 1382469544, 1378749897, 1375036928,
- 1375036928, 1371330631, 1367631000, 1367631000, 1363938029, 1363938029,
- 1360251712, 1356572043, 1356572043, 1352899016, 1349232625, 1349232625,
- 1345572864, 1341919727, 1341919727, 1338273208, 1338273208, 1334633301,
- 1331000000, 1331000000, 1327373299, 1327373299, 1323753192, 1320139673,
- 1320139673, 1316532736, 1312932375, 1312932375, 1309338584, 1309338584,
- 1305751357, 1302170688, 1302170688, 1298596571, 1298596571, 1295029000,
- 1291467969, 1291467969, 1287913472, 1287913472, 1284365503, 1280824056,
- 1280824056, 1277289125, 1277289125, 1273760704, 1270238787, 1270238787,
- 1266723368, 1266723368, 1263214441, 1259712000, 1259712000, 1256216039,
- 1256216039, 1252726552, 1249243533, 1249243533, 1245766976, 1245766976,
- 1242296875, 1242296875, 1238833224, 1235376017, 1235376017, 1231925248,
- 1231925248, 1228480911, 1228480911, 1225043000, 1221611509, 1221611509,
- 1218186432, 1218186432, 1214767763, 1214767763, 1211355496, 1207949625,
- 1207949625, 1204550144, 1204550144, 1201157047, 1201157047, 1197770328,
- 1197770328, 1194389981, 1191016000, 1191016000, 1187648379, 1187648379,
- 1184287112, 1184287112, 1180932193, 1180932193, 1177583616, 1174241375,
- 1174241375, 1170905464, 1170905464, 1167575877, 1167575877, 1164252608,
- 1164252608, 1160935651, 1160935651, 1157625000, 1154320649, 1154320649,
- 1151022592, 1151022592, 1147730823, 1147730823, 1144445336, 1144445336,
- 1141166125, 1141166125, 1137893184, 1137893184, 1134626507, 1134626507,
- 1131366088, 1128111921, 1128111921, 1124864000, 1124864000, 1121622319,
- 1121622319, 1118386872, 1118386872, 1115157653, 1115157653, 1111934656,
- 1111934656, 1108717875, 1108717875, 1105507304, 1105507304, 1102302937,
- 1102302937, 1099104768, 1099104768, 1095912791, 1095912791, 1092727000,
- 1092727000, 1089547389, 1089547389, 1086373952, 1086373952, 1083206683,
- 1083206683, 1080045576, 1080045576, 1076890625, 1076890625, 1073741824,
- 1073741824 };
-
-/* umul_hi(h, x, y) puts in h the high part of x*y */
-#ifdef HAVE_MULX_U64
-#include <immintrin.h>
-#define umul_hi(h, x, y) _mulx_u64 (x, y, (unsigned long long *) &(h))
-#else
-#define umul_hi(h, x, y) \
- do { \
- mp_limb_t _l; \
- umul_ppmm (h, _l, x, y); \
- (void) _l; /* unused variable */ \
- } while (0)
-#endif
-
-/* given 2^62 <= d < 2^64, put in r an approximation of
- s = floor(2^96/sqrt(d)) - 2^64, with r <= s <= r + 15 */
-#define __gmpfr_invsqrt_limb_approx(r, d) \
- do { \
- mp_limb_t _d, _i, _v0, _e0, _d37, _v1, _e1, _h, _v2, _e2; \
- _d = (d); \
- _i = (_d >> 54) - 256; \
- /* i = d10 - 256 */ \
- _v0 = T[_i]; \
- _d37 = 1 + (_d >> 27); \
- _e0 = T3[_i] * _d37; \
- /* the value (_v0 << 57) - _e0 is less than 2^61 */ \
- _v1 = (_v0 << 11) + (((_v0 << 57) - _e0) >> 47); \
- _e1 = - _v1 * _v1 * _d37; \
- umul_hi (_h, _v1, _e1); \
- /* _h = floor(e_1*v_1/2^64) */ \
- _v2 = (_v1 << 10) + (_h >> 6); \
- umul_hi (_h, _v2 * _v2, _d); \
- /* in _h + 2, one +1 accounts for the lower neglected part of */ \
- /* v2^2*d. the other +1 is to compute ceil((h+1)/2) */ \
- _e2 = (MPFR_LIMB_ONE << 61) - ((_h + 2) >> 1); \
- _h = _v2 * _e2; \
- (r) = (_v2 << 33) + (_h >> 29); \
- } while (0)
-
-/* given 2^62 <= d < 2^64, return a 32-bit approximation r of
- sqrt(2^126/d) */
-#define __gmpfr_invsqrt_halflimb_approx(r, d) \
- do { \
- mp_limb_t _d, _i, _v0, _e0, _d37, _v1, _e1, _h; \
- _d = (d); \
- _i = (_d >> 54) - 256; \
- /* i = d10 - 256 */ \
- _v0 = T[_i]; \
- _d37 = 1 + (_d >> 27); \
- _e0 = T3[_i] * _d37; \
- /* the value (_v0 << 57) - _e0 is less than 2^61 */ \
- _v1 = (_v0 << 11) + (((_v0 << 57) - _e0) >> 47); \
- _e1 = - _v1 * _v1 * _d37; \
- umul_hi (_h, _v1, _e1); \
- /* _h = floor(e_1*v_1/2^64) */ \
- (r) = (_v1 << 10) + (_h >> 6); \
- } while (0)
-
-/* given 2^62 <= n < 2^64, put in s an approximation of sqrt(2^64*n),
- with: s <= floor(sqrt(2^64*n)) <= s + 7 */
-#define __gmpfr_sqrt_limb_approx(s, n) \
- do { \
- mp_limb_t _n, _x, _y, _z, _t; \
- _n = (n); \
- __gmpfr_invsqrt_halflimb_approx (_x, _n); \
- MPFR_ASSERTD(_x < MPFR_LIMB_ONE << 32); \
- /* x has 32 bits, and is near (by below) sqrt(2^126/n) */ \
- _y = (_x * (_n >> 31)) >> 32; \
- MPFR_ASSERTD(_y < MPFR_LIMB_ONE << 32); \
- /* y is near (by below) sqrt(n) */ \
- _z = _n - _y * _y; \
- /* reduce _z so that _z <= 2*_y */ \
- /* the maximal value of _z is 2*(2^32-1) */ \
- while (_z > 2 * ((MPFR_LIMB_ONE << 32) - 1)) \
- { \
- _z -= (_y + _y) + 1; \
- _y ++; \
- } \
- /* now z <= 2*(2^32-1): one reduction is enough */ \
- if (_z > _y + _y) \
- { \
- _z -= (_y + _y) + 1; \
- _y ++; \
- } \
- /* _x * _z should be < 2^64 */ \
- _t = (_x * _z) >> 32; \
- (s) = (_y << 32) + _t; \
- } while (0)
-
-/* given 2^62 <= u < 2^64, put in s the value floor(sqrt(2^64*u)),
- and in rh in rl the remainder: 2^64*u - s^2 = 2^64*rh + rl, with
- 2^64*rh + rl <= 2*s, and in invs the approximation of 2^96/sqrt(u) */
-#define __gmpfr_sqrt_limb(s, rh, rl, invs, u) \
- do { \
- mp_limb_t _u, _invs, _r, _h, _l; \
- _u = (u); \
- __gmpfr_invsqrt_limb_approx (_invs, _u); \
- umul_hi (_h, _invs, _u); \
- _r = _h + _u; \
- /* make sure _r has its most significant bit set */ \
- if (MPFR_UNLIKELY(_r < MPFR_LIMB_HIGHBIT)) \
- _r = MPFR_LIMB_HIGHBIT; \
- /* we know _r <= sqrt(2^64*u) <= _r + 16 */ \
- umul_ppmm (_h, _l, _r, _r); \
- sub_ddmmss (_h, _l, _u, 0, _h, _l); \
- /* now h:l <= 30*_r */ \
- MPFR_ASSERTD(_h < 30); \
- if (_h >= 16) \
- { /* subtract 16r+64 to h:l, add 8 to _r */ \
- sub_ddmmss (_h, _l, _h, _l, _r >> 60, _r << 4); \
- sub_ddmmss (_h, _l, _h, _l, 0, 64); \
- _r += 8; \
- } \
- if (_h >= 8) \
- { /* subtract 8r+16 to h:l, add 4 to _r */ \
- sub_ddmmss (_h, _l, _h, _l, _r >> 61, _r << 3); \
- sub_ddmmss (_h, _l, _h, _l, 0, 16); \
- _r += 4; \
- } \
- if (_h >= 4) \
- { /* subtract 4r+4 to h:l, add 2 to _r */ \
- sub_ddmmss (_h, _l, _h, _l, _r >> 62, _r << 2); \
- sub_ddmmss (_h, _l, _h, _l, 0, 4); \
- _r += 2; \
- } \
- while (_h > 1 || ((_h == 1) && (_l > 2 * _r))) \
- { /* subtract 2r+1 to h:l, add 1 to _r */ \
- sub_ddmmss (_h, _l, _h, _l, _r >> 63, (_r << 1) + 1); \
- _r ++; \
- } \
- (s) = _r; \
- (rh) = _h; \
- (rl) = _l; \
- (invs) = _invs; \
- } while (0)
-
-#endif /* GMP_NUMB_BITS == 64 */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/isinf.c b/Build/source/libs/mpfr/mpfr-src/src/isinf.c
deleted file mode 100644
index 7e1ce96090d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/isinf.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_inf_p -- check for infinities
-
-Copyright 2000-2001, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-(mpfr_inf_p) (mpfr_srcptr x)
-{
- return MPFR_IS_INF(x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/isinteger.c b/Build/source/libs/mpfr/mpfr-src/src/isinteger.c
deleted file mode 100644
index 770cdf77441..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/isinteger.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* mpfr_integer_p -- test if a mpfr variable is integer.
-
-Copyright 2001-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#include "mpfr-impl.h"
-
-int
-mpfr_integer_p (mpfr_srcptr x)
-{
- mpfr_exp_t expo;
- mpfr_prec_t prec;
- mp_size_t xn;
- mp_limb_t *xp;
-
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(x)))
- return (MPFR_IS_ZERO(x));
-
- expo = MPFR_GET_EXP (x);
- if (expo <= 0)
- return 0;
-
- prec = MPFR_PREC(x);
- if ((mpfr_uexp_t) expo >= (mpfr_uexp_t) prec)
- return 1;
-
- /* 0 < expo < prec */
-
- xn = (mp_size_t) ((prec - 1) / GMP_NUMB_BITS); /* index of last limb */
- xn -= (mp_size_t) (expo / GMP_NUMB_BITS);
- /* now the index of the last limb containing bits of the fractional part */
-
- xp = MPFR_MANT(x);
- MPFR_ASSERTN(xn >= 0);
- if (MPFR_LIMB_LSHIFT(xp[xn], expo % GMP_NUMB_BITS) != 0)
- return 0;
- while (--xn >= 0)
- if (xp[xn] != 0)
- return 0;
- return 1;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/isnan.c b/Build/source/libs/mpfr/mpfr-src/src/isnan.c
deleted file mode 100644
index af9f0b65d24..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/isnan.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_nan_p -- check for NaN
-
-Copyright 2000-2001, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-(mpfr_nan_p) (mpfr_srcptr x)
-{
- return MPFR_IS_NAN (x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/isnum.c b/Build/source/libs/mpfr/mpfr-src/src/isnum.c
deleted file mode 100644
index ff95b4c500b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/isnum.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_number_p -- check for ordinary numbers
-
-Copyright 2000-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_number_p (mpfr_srcptr x)
-{
- return MPFR_IS_FP(x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/isqrt.c b/Build/source/libs/mpfr/mpfr-src/src/isqrt.c
deleted file mode 100644
index f3d827eff47..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/isqrt.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* __gmpfr_isqrt && __gmpfr_cuberoot -- Integer square root and cube root
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* returns floor(sqrt(n)) */
-unsigned long
-__gmpfr_isqrt (unsigned long n)
-{
- unsigned long i, s;
-
- /* First find an approximation to floor(sqrt(n)) of the form 2^k. */
- i = n;
- s = 1;
- while (i >= 2)
- {
- i >>= 2;
- s <<= 1;
- }
-
- do
- {
- s = (s + n / s) / 2;
- }
- while (!(s*s <= n && (s*s > s*(s+2) || n <= s*(s+2))));
- /* Short explanation: As mathematically s*(s+2) < 2*ULONG_MAX,
- the condition s*s > s*(s+2) is evaluated as true when s*(s+2)
- "overflows" but not s*s. This implies that mathematically, one
- has s*s <= n <= s*(s+2). If s*s "overflows", this means that n
- is "large" and the inequality n <= s*(s+2) cannot be satisfied. */
- return s;
-}
-
-/* returns floor(n^(1/3)) */
-unsigned long
-__gmpfr_cuberoot (unsigned long n)
-{
- unsigned long i, s;
-
- /* First find an approximation to floor(cbrt(n)) of the form 2^k. */
- i = n;
- s = 1;
- while (i >= 4)
- {
- i >>= 3;
- s <<= 1;
- }
-
- /* Improve the approximation (this is necessary if n is large, so that
- mathematically (s+1)*(s+1)*(s+1) isn't much larger than ULONG_MAX). */
- if (n >= 256)
- {
- s = (2 * s + n / (s * s)) / 3;
- s = (2 * s + n / (s * s)) / 3;
- s = (2 * s + n / (s * s)) / 3;
- }
-
- do
- {
- s = (2 * s + n / (s * s)) / 3;
- }
- while (!(s*s*s <= n && (s*s*s > (s+1)*(s+1)*(s+1) ||
- n < (s+1)*(s+1)*(s+1))));
- return s;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/isregular.c b/Build/source/libs/mpfr/mpfr-src/src/isregular.c
deleted file mode 100644
index 5838ec2bc87..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/isregular.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_regular_p -- check for regular number (neither NaN, Inf or zero)
-
-Copyright 2009-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-(mpfr_regular_p) (mpfr_srcptr x)
-{
- return MPFR_IS_SINGULAR(x) == 0;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/iszero.c b/Build/source/libs/mpfr/mpfr-src/src/iszero.c
deleted file mode 100644
index cbb0311235b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/iszero.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_zero_p -- check for zero
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-(mpfr_zero_p) (mpfr_srcptr x)
-{
- return MPFR_IS_ZERO(x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/jn.c b/Build/source/libs/mpfr/mpfr-src/src/jn.c
deleted file mode 100644
index 9ab7743aa3b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/jn.c
+++ /dev/null
@@ -1,334 +0,0 @@
-/* mpfr_j0, mpfr_j1, mpfr_jn -- Bessel functions of 1st kind, integer order.
- http://www.opengroup.org/onlinepubs/009695399/functions/j0.html
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Relations: j(-n,z) = (-1)^n j(n,z)
- j(n,-z) = (-1)^n j(n,z)
-*/
-
-static int mpfr_jn_asympt (mpfr_ptr, long, mpfr_srcptr, mpfr_rnd_t);
-
-int
-mpfr_j0 (mpfr_ptr res, mpfr_srcptr z, mpfr_rnd_t r)
-{
- return mpfr_jn (res, 0, z, r);
-}
-
-int
-mpfr_j1 (mpfr_ptr res, mpfr_srcptr z, mpfr_rnd_t r)
-{
- return mpfr_jn (res, 1, z, r);
-}
-
-/* Estimate k1 such that z^2/4 = k1 * (k1 + n)
- i.e., k1 = (sqrt(n^2+z^2)-n)/2 = n/2 * (sqrt(1+(z/n)^2) - 1) if n != 0.
- Return k0 = min(2*k1/log(2), ULONG_MAX).
-*/
-static unsigned long
-mpfr_jn_k0 (unsigned long n, mpfr_srcptr z)
-{
- mpfr_t t, u;
- unsigned long k0;
-
- mpfr_init2 (t, 32);
- mpfr_init2 (u, 32);
- if (n == 0)
- {
- mpfr_abs (t, z, MPFR_RNDN); /* t = 2*k1 */
- }
- else
- {
- mpfr_div_ui (t, z, n, MPFR_RNDN);
- mpfr_sqr (t, t, MPFR_RNDN);
- mpfr_add_ui (t, t, 1, MPFR_RNDN);
- mpfr_sqrt (t, t, MPFR_RNDN);
- mpfr_sub_ui (t, t, 1, MPFR_RNDN);
- mpfr_mul_ui (t, t, n, MPFR_RNDN); /* t = 2*k1 */
- }
- /* the following is a 32-bit approximation to nearest to 1/log(2) */
- mpfr_set_str_binary (u, "1.0111000101010100011101100101001");
- mpfr_mul (t, t, u, MPFR_RNDN);
- if (mpfr_fits_ulong_p (t, MPFR_RNDN))
- k0 = mpfr_get_ui (t, MPFR_RNDN);
- else
- k0 = ULONG_MAX;
- mpfr_clear (t);
- mpfr_clear (u);
- return k0;
-}
-
-int
-mpfr_jn (mpfr_ptr res, long n, mpfr_srcptr z, mpfr_rnd_t r)
-{
- int inex;
- int exception = 0;
- unsigned long absn;
- mpfr_prec_t prec, pbound, err;
- mpfr_uprec_t uprec;
- mpfr_exp_t exps, expT, diffexp;
- mpfr_t y, s, t, absz;
- unsigned long k, zz, k0;
- MPFR_GROUP_DECL(g);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("n=%d x[%Pu]=%.*Rg rnd=%d", n, mpfr_get_prec (z), mpfr_log_prec, z, r),
- ("res[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (res), mpfr_log_prec, res, inex));
-
- absn = SAFE_ABS (unsigned long, n);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (z)))
- {
- if (MPFR_IS_NAN (z))
- {
- MPFR_SET_NAN (res);
- MPFR_RET_NAN;
- }
- /* j(n,z) tends to zero when z goes to +Inf or -Inf, oscillating around
- 0. We choose to return +0 in that case. */
- else if (MPFR_IS_INF (z)) /* FIXME: according to j(-n,z) = (-1)^n j(n,z)
- we might want to give a sign depending on
- z and n */
- return mpfr_set_ui (res, 0, r);
- else /* z=0: j(0,0)=1, j(n odd,+/-0) = +/-0 if n > 0, -/+0 if n < 0,
- j(n even,+/-0) = +0 */
- {
- if (n == 0)
- return mpfr_set_ui (res, 1, r);
- else if (absn & 1) /* n odd */
- return (n > 0) ? mpfr_set (res, z, r) : mpfr_neg (res, z, r);
- else /* n even */
- return mpfr_set_ui (res, 0, r);
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* check for tiny input for j0: j0(z) = 1 - z^2/4 + ..., more precisely
- |j0(z) - 1| <= z^2/4 for -1 <= z <= 1. */
- if (n == 0)
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (res, __gmpfr_one, -2 * MPFR_GET_EXP (z),
- 2, 0, r, inex = _inexact; goto end);
-
- /* idem for j1: j1(z) = z/2 - z^3/16 + ..., more precisely
- |j1(z) - z/2| <= |z^3|/16 for -1 <= z <= 1, with the sign of j1(z) - z/2
- being the opposite of that of z. */
- /* TODO: add a test to trigger an error when
- inex = _inexact; goto end
- is forgotten in MPFR_FAST_COMPUTE_IF_SMALL_INPUT below. */
- if (n == 1)
- {
- /* We first compute 2j1(z) = z - z^3/8 + ..., then divide by 2 using
- the "extra" argument of MPFR_FAST_COMPUTE_IF_SMALL_INPUT. But we
- must also handle the underflow case (an overflow is not possible
- for small inputs). If an underflow occurred in mpfr_round_near_x,
- the rounding was to zero or equivalent, and the result is 0, so
- that the division by 2 will give the wanted result. Otherwise...
- The rounded result in unbounded exponent range is res/2. If the
- division by 2 doesn't underflow, it is exact, and we can return
- this result. And an underflow in the division is a real underflow.
- In case of directed rounding mode, the result is correct. But in
- case of rounding to nearest, there is a double rounding problem,
- and the result is 0 iff the result before the division is the
- minimum positive number and _inexact has the same sign as z;
- but in rounding to nearest, res/2 will yield 0 iff |res| is the
- minimum positive number, so that we just need to test the result
- of the division and the sign of _inexact. */
- MPFR_CLEAR_FLAGS ();
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT
- (res, z, -2 * MPFR_GET_EXP (z), 3, 0, r, {
- int inex2 = mpfr_div_2ui (res, res, 1, r);
- if (MPFR_UNLIKELY (r == MPFR_RNDN && MPFR_IS_ZERO (res)) &&
- (MPFR_ASSERTN (inex2 != 0), VSIGN (_inexact) != MPFR_SIGN (z)))
- {
- mpfr_nexttoinf (res);
- inex = - inex2;
- }
- else
- inex = inex2 != 0 ? inex2 : _inexact;
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- goto end;
- });
- }
-
- /* we can use the asymptotic expansion as soon as |z| > p log(2)/2,
- but to get some margin we use it for |z| > p/2 */
- pbound = MPFR_PREC (res) / 2 + 3;
- MPFR_ASSERTN (pbound <= ULONG_MAX);
- MPFR_ALIAS (absz, z, 1, MPFR_EXP (z));
- if (mpfr_cmp_ui (absz, pbound) > 0)
- {
- inex = mpfr_jn_asympt (res, n, z, r);
- if (inex != 0)
- goto end;
- }
-
- MPFR_GROUP_INIT_3 (g, 32, y, s, t);
-
- /* check underflow case: |j(n,z)| <= 1/sqrt(2 Pi n) (ze/2n)^n
- (see algorithms.tex) */
- /* FIXME: the code below doesn't detect all the underflow cases. Either
- this should be done, or the generic code should detect underflows. */
- if (absn > 0)
- {
- /* the following is an upper 32-bit approximation to exp(1)/2 */
- mpfr_set_str_binary (y, "1.0101101111110000101010001011001");
- if (MPFR_IS_POS (z))
- mpfr_mul (y, y, z, MPFR_RNDU);
- else
- {
- mpfr_mul (y, y, z, MPFR_RNDD);
- mpfr_neg (y, y, MPFR_RNDU);
- }
- mpfr_div_ui (y, y, absn, MPFR_RNDU);
- /* now y is an upper approximation to |ze/2n|: y < 2^EXP(y),
- thus |j(n,z)| < 1/2*y^n < 2^(n*EXP(y)-1).
- If n*EXP(y) < emin then we have an underflow.
- Note that if emin = MPFR_EMIN_MIN and j = 1, this inequality
- will never be satisfied.
- Warning: absn is an unsigned long. */
- if ((MPFR_GET_EXP (y) < 0 && absn > - expo.saved_emin)
- || (absn <= - MPFR_EMIN_MIN &&
- MPFR_GET_EXP (y) < expo.saved_emin / (mpfr_exp_t) absn))
- {
- MPFR_GROUP_CLEAR (g);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (res, (r == MPFR_RNDN) ? MPFR_RNDZ : r,
- (n % 2) ? ((n > 0) ? MPFR_SIGN(z) : -MPFR_SIGN(z))
- : MPFR_SIGN_POS);
- }
- }
-
- /* the logarithm of the ratio between the largest term in the series
- and the first one is roughly bounded by k0, which we add to the
- working precision to take into account this cancellation */
- /* The following operations avoid integer overflow and ensure that
- prec <= MPFR_PREC_MAX (prec = MPFR_PREC_MAX won't prevent an abort,
- but the failure should be handled cleanly). */
- k0 = mpfr_jn_k0 (absn, z);
- MPFR_LOG_MSG (("k0 = %lu\n", k0));
- uprec = MPFR_PREC_MAX - 2 * MPFR_INT_CEIL_LOG2 (MPFR_PREC_MAX) - 3;
- if (k0 < uprec)
- uprec = k0;
- uprec += MPFR_PREC (res) + 2 * MPFR_INT_CEIL_LOG2 (MPFR_PREC (res)) + 3;
- prec = uprec < MPFR_PREC_MAX ? (mpfr_prec_t) uprec : MPFR_PREC_MAX;
-
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- MPFR_GROUP_REPREC_3 (g, prec, y, s, t);
- MPFR_BLOCK (flags, {
- mpfr_pow_ui (t, z, absn, MPFR_RNDN); /* z^|n| */
- mpfr_sqr (y, z, MPFR_RNDN); /* z^2 */
- MPFR_CLEAR_ERANGEFLAG ();
- zz = mpfr_get_ui (y, MPFR_RNDU);
- /* FIXME: The error analysis is incorrect in case of range error. */
- MPFR_ASSERTN (! mpfr_erangeflag_p ()); /* since MPFR_CLEAR_ERANGEFLAG */
- mpfr_div_2ui (y, y, 2, MPFR_RNDN); /* z^2/4 */
- mpfr_fac_ui (s, absn, MPFR_RNDN); /* |n|! */
- mpfr_div (t, t, s, MPFR_RNDN);
- if (absn > 0)
- mpfr_div_2ui (t, t, absn, MPFR_RNDN);
- mpfr_set (s, t, MPFR_RNDN);
- /* note: we assume here that the maximal error bound is proportional to
- 2^exps, which is true also in the case where s=0 */
- exps = MPFR_IS_ZERO (s) ? MPFR_EMIN_MIN : MPFR_GET_EXP (s);
- expT = exps;
- for (k = 1; ; k++)
- {
- MPFR_LOG_MSG (("loop on k, k = %lu\n", k));
- mpfr_mul (t, t, y, MPFR_RNDN);
- mpfr_neg (t, t, MPFR_RNDN);
- /* Mathematically: absn <= LONG_MAX + 1 <= (ULONG_MAX + 1) / 2,
- and in practice, k is not very large, so that one should have
- k + absn <= ULONG_MAX. */
- MPFR_ASSERTN (absn <= ULONG_MAX - k);
- if (k + absn <= ULONG_MAX / k)
- mpfr_div_ui (t, t, k * (k + absn), MPFR_RNDN);
- else
- {
- mpfr_div_ui (t, t, k, MPFR_RNDN);
- mpfr_div_ui (t, t, k + absn, MPFR_RNDN);
- }
- /* see above note */
- exps = MPFR_IS_ZERO (s) ? MPFR_EMIN_MIN : MPFR_GET_EXP (t);
- if (exps > expT)
- expT = exps;
- mpfr_add (s, s, t, MPFR_RNDN);
- exps = MPFR_IS_ZERO (s) ? MPFR_EMIN_MIN : MPFR_GET_EXP (s);
- if (exps > expT)
- expT = exps;
- /* Above it has been checked that k + absn <= ULONG_MAX. */
- if (MPFR_GET_EXP (t) + (mpfr_exp_t) prec <= exps &&
- zz / (2 * k) < k + absn)
- break;
- }
- });
- /* the error is bounded by (4k^2+21/2k+7) ulp(s)*2^(expT-exps)
- <= (k+2)^2 ulp(s)*2^(2+expT-exps) */
- diffexp = expT - exps;
- err = 2 * MPFR_INT_CEIL_LOG2(k + 2) + 2;
- /* FIXME: Can an overflow occur in the following sum? */
- MPFR_ASSERTN (diffexp >= 0 && err >= 0 &&
- diffexp <= MPFR_PREC_MAX - err);
- err += diffexp;
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, prec - err, MPFR_PREC(res), r)))
- {
- if (MPFR_LIKELY (! (MPFR_UNDERFLOW (flags) ||
- MPFR_OVERFLOW (flags))))
- break;
- /* The error analysis is incorrect in case of exception.
- If an underflow or overflow occurred, try once more in
- a larger precision, and if this happens a second time,
- then abort to avoid a probable infinite loop. This is
- a problem that must be fixed! */
- MPFR_ASSERTN (! exception);
- exception = 1;
- }
- /* the expected number of lost bits is k0, if err is larger than k0
- most probably there is a cancellation in the series, thus we add
- err - k0 bits to prec */
- if (err > k0)
- MPFR_INC_PREC (prec, err - k0);
- MPFR_ZIV_NEXT (loop, prec);
- }
- MPFR_ZIV_FREE (loop);
-
- inex = ((n >= 0) || ((n & 1) == 0)) ? mpfr_set (res, s, r)
- : mpfr_neg (res, s, r);
-
- MPFR_GROUP_CLEAR (g);
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (res, inex, r);
-}
-
-#define MPFR_JN
-#include "jyn_asympt.c"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/jyn_asympt.c b/Build/source/libs/mpfr/mpfr-src/src/jyn_asympt.c
deleted file mode 100644
index 9fa603246f1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/jyn_asympt.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/* mpfr_jn_asympt, mpfr_yn_asympt -- shared code for mpfr_jn and mpfr_yn
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifdef MPFR_JN
-# define FUNCTION mpfr_jn_asympt
-#else
-# ifdef MPFR_YN
-# define FUNCTION mpfr_yn_asympt
-# else
-# error "neither MPFR_JN nor MPFR_YN is defined"
-# endif
-#endif
-
-/* Implements asymptotic expansion for jn or yn (formulae 9.2.5 and 9.2.6
- from Abramowitz & Stegun).
- Assumes |z| > p log(2)/2, where p is the target precision
- (z can be negative only for jn).
- Return 0 if the expansion does not converge enough (the value 0 as inexact
- flag should not happen for normal input).
- Note: for MPFR_RNDF, it returns 0 if the expansion failed, and a non-zero
- value otherwise (with no other meaning).
-*/
-static int
-FUNCTION (mpfr_ptr res, long n, mpfr_srcptr z, mpfr_rnd_t r)
-{
- mpfr_t s, c, P, Q, t, iz, err_t, err_s, err_u;
- mpfr_prec_t w;
- long k;
- int inex, stop, diverge = 0;
- mpfr_exp_t err2, err;
- MPFR_ZIV_DECL (loop);
-
- mpfr_init2 (c, 64);
-
- /* The terms of the asymptotic expansion grow like mu^(2k)/(8z)^(2k), where
- mu = 4n^2, thus we need mu < 8|z| so that it converges,
- i.e., n^2/2 < |z| */
- MPFR_ASSERTD (n >= 0);
- mpfr_set_ui (c, n, MPFR_RNDU);
- mpfr_mul_ui (c, c, n, MPFR_RNDU);
- mpfr_div_2ui (c, c, 1, MPFR_RNDU);
- if (mpfr_cmpabs (c, z) >= 0)
- {
- mpfr_clear (c);
- return 0; /* asymptotic expansion failed */
- }
-
- w = MPFR_PREC(res) + MPFR_INT_CEIL_LOG2(MPFR_PREC(res)) + 4;
-
- MPFR_ZIV_INIT (loop, w);
- for (;;)
- {
- mpfr_set_prec (c, w);
- mpfr_init2 (s, w);
- mpfr_init2 (P, w);
- mpfr_init2 (Q, w);
- mpfr_init2 (t, w);
- mpfr_init2 (iz, w);
- mpfr_init2 (err_t, 31);
- mpfr_init2 (err_s, 31);
- mpfr_init2 (err_u, 31);
-
- /* Approximate sin(z) and cos(z). In the following, err <= k means that
- the approximate value y and the true value x are related by
- y = x * (1 + u)^k with |u| <= 2^(-w), following Higham's method. */
- mpfr_sin_cos (s, c, z, MPFR_RNDN);
- if (MPFR_IS_NEG(z))
- mpfr_neg (s, s, MPFR_RNDN); /* compute jn/yn(|z|), fix sign later */
- /* The absolute error on s/c is bounded by 1/2 ulp(1/2) <= 2^(-w-1). */
- mpfr_add (t, s, c, MPFR_RNDN);
- mpfr_sub (c, s, c, MPFR_RNDN);
- mpfr_swap (s, t);
- /* now s approximates sin(z)+cos(z), and c approximates sin(z)-cos(z),
- with total absolute error bounded by 2^(1-w). */
-
- /* precompute 1/(8|z|) */
- mpfr_si_div (iz, MPFR_IS_POS(z) ? 1 : -1, z, MPFR_RNDN); /* err <= 1 */
- mpfr_div_2ui (iz, iz, 3, MPFR_RNDN);
-
- /* compute P and Q */
- mpfr_set_ui (P, 1, MPFR_RNDN);
- mpfr_set_ui (Q, 0, MPFR_RNDN);
- mpfr_set_ui (t, 1, MPFR_RNDN); /* current term */
- mpfr_set_ui (err_t, 0, MPFR_RNDN); /* error on t */
- mpfr_set_ui (err_s, 0, MPFR_RNDN); /* error on P and Q (sum of errors) */
- for (k = 1, stop = 0; stop < 4; k++)
- {
- /* compute next term: t(k)/t(k-1) = (2n+2k-1)(2n-2k+1)/(8kz) */
- MPFR_LOG_MSG (("loop (k,stop) = (%ld,%d)\n", k, stop));
- mpfr_mul_si (t, t, 2 * (n + k) - 1, MPFR_RNDN); /* err <= err_k + 1 */
- mpfr_mul_si (t, t, 2 * (n - k) + 1, MPFR_RNDN); /* err <= err_k + 2 */
- mpfr_div_ui (t, t, k, MPFR_RNDN); /* err <= err_k + 3 */
- mpfr_mul (t, t, iz, MPFR_RNDN); /* err <= err_k + 5 */
- /* the relative error on t is bounded by (1+u)^(5k)-1, which is
- bounded by 6ku for 6ku <= 0.02: first |5 log(1+u)| <= |5.5u|
- for |u| <= 0.15, then |exp(5.5u)-1| <= 6u for |u| <= 0.02. */
- mpfr_mul_ui (err_t, t, 6 * k, MPFR_IS_POS(t) ? MPFR_RNDU : MPFR_RNDD);
- mpfr_abs (err_t, err_t, MPFR_RNDN); /* exact */
- /* the absolute error on t is bounded by err_t * 2^(-w) */
- mpfr_abs (err_u, t, MPFR_RNDU);
- mpfr_mul_2ui (err_u, err_u, w, MPFR_RNDU); /* t * 2^w */
- mpfr_add (err_u, err_u, err_t, MPFR_RNDU); /* max|t| * 2^w */
- if (stop >= 2)
- {
- /* take into account the neglected terms: t * 2^w */
- mpfr_div_2ui (err_s, err_s, w, MPFR_RNDU);
- if (MPFR_IS_POS(t))
- mpfr_add (err_s, err_s, t, MPFR_RNDU);
- else
- mpfr_sub (err_s, err_s, t, MPFR_RNDU);
- mpfr_mul_2ui (err_s, err_s, w, MPFR_RNDU);
- stop ++;
- }
- /* if k is odd, add to Q, otherwise to P */
- else if (k & 1)
- {
- /* if k = 1 mod 4, add, otherwise subtract */
- if ((k & 2) == 0)
- mpfr_add (Q, Q, t, MPFR_RNDN);
- else
- mpfr_sub (Q, Q, t, MPFR_RNDN);
- /* check if the next term is smaller than ulp(Q): if EXP(err_u)
- <= EXP(Q), since the current term is bounded by
- err_u * 2^(-w), it is bounded by ulp(Q) */
- if (MPFR_GET_EXP (err_u) <= MPFR_GET_EXP (Q))
- stop ++;
- else
- stop = 0;
- }
- else
- {
- /* if k = 0 mod 4, add, otherwise subtract */
- if ((k & 2) == 0)
- mpfr_add (P, P, t, MPFR_RNDN);
- else
- mpfr_sub (P, P, t, MPFR_RNDN);
- /* check if the next term is smaller than ulp(P) */
- if (MPFR_GET_EXP (err_u) <= MPFR_GET_EXP (P))
- stop ++;
- else
- stop = 0;
- }
- mpfr_add (err_s, err_s, err_t, MPFR_RNDU);
- /* the sum of the rounding errors on P and Q is bounded by
- err_s * 2^(-w) */
-
- /* stop when start to diverge */
- if (stop < 2 &&
- ((MPFR_IS_POS(z) && mpfr_cmp_ui (z, (k + 1) / 2) < 0) ||
- (MPFR_IS_NEG(z) && mpfr_cmp_si (z, - ((k + 1) / 2)) > 0)))
- {
- /* if we have to stop the series because it diverges, then
- increasing the precision will most probably fail, since
- we will stop to the same point, and thus compute a very
- similar approximation */
- diverge = 1;
- stop = 2; /* force stop */
- }
- }
- /* the sum of the total errors on P and Q is bounded by err_s * 2^(-w) */
-
- /* Now combine: the sum of the rounding errors on P and Q is bounded by
- err_s * 2^(-w), and the absolute error on s/c is bounded by 2^(1-w) */
- if ((n & 1) == 0) /* n even: P * (sin + cos) + Q (cos - sin) for jn
- Q * (sin + cos) + P (sin - cos) for yn */
- {
-#ifdef MPFR_JN
- mpfr_mul (c, c, Q, MPFR_RNDN); /* Q * (sin - cos) */
- mpfr_mul (s, s, P, MPFR_RNDN); /* P * (sin + cos) */
-#else
- mpfr_mul (c, c, P, MPFR_RNDN); /* P * (sin - cos) */
- mpfr_mul (s, s, Q, MPFR_RNDN); /* Q * (sin + cos) */
-#endif
- err = MPFR_GET_EXP (c);
- if (MPFR_GET_EXP (s) > err)
- err = MPFR_EXP (s);
-#ifdef MPFR_JN
- mpfr_sub (s, s, c, MPFR_RNDN);
-#else
- mpfr_add (s, s, c, MPFR_RNDN);
-#endif
- }
- else /* n odd: P * (sin - cos) + Q (cos + sin) for jn,
- Q * (sin - cos) - P (cos + sin) for yn */
- {
-#ifdef MPFR_JN
- mpfr_mul (c, c, P, MPFR_RNDN); /* P * (sin - cos) */
- mpfr_mul (s, s, Q, MPFR_RNDN); /* Q * (sin + cos) */
-#else
- mpfr_mul (c, c, Q, MPFR_RNDN); /* Q * (sin - cos) */
- mpfr_mul (s, s, P, MPFR_RNDN); /* P * (sin + cos) */
-#endif
- err = MPFR_GET_EXP (c);
- if (MPFR_GET_EXP (s) > err)
- err = MPFR_EXP (s);
-#ifdef MPFR_JN
- mpfr_add (s, s, c, MPFR_RNDN);
-#else
- mpfr_sub (s, c, s, MPFR_RNDN);
-#endif
- }
- if ((n & 2) != 0)
- mpfr_neg (s, s, MPFR_RNDN);
- if (MPFR_GET_EXP (s) > err)
- err = MPFR_EXP (s);
- /* the absolute error on s is bounded by P*err(s/c) + Q*err(s/c)
- + err(P)*(s/c) + err(Q)*(s/c) + 3 * 2^(err - w - 1)
- <= (|P|+|Q|) * 2^(1-w) + err_s * 2^(1-w) + 2^err * 2^(1-w),
- since |c|, |old_s| <= 2. */
- err2 = (MPFR_GET_EXP (P) >= MPFR_GET_EXP (Q))
- ? MPFR_EXP (P) + 2 : MPFR_EXP (Q) + 2;
- /* (|P| + |Q|) * 2^(1 - w) <= 2^(err2 - w) */
- err = MPFR_GET_EXP (err_s) >= err ? MPFR_EXP (err_s) + 2 : err + 2;
- /* err_s * 2^(1-w) + 2^old_err * 2^(1-w) <= 2^err * 2^(-w) */
- err2 = (err >= err2) ? err + 1 : err2 + 1;
- /* now the absolute error on s is bounded by 2^(err2 - w) */
-
- /* multiply by sqrt(1/(Pi*z)) */
- mpfr_const_pi (c, MPFR_RNDN); /* Pi, err <= 1 */
- mpfr_mul (c, c, z, MPFR_RNDN); /* err <= 2 */
- mpfr_si_div (c, MPFR_IS_POS(z) ? 1 : -1, c, MPFR_RNDN); /* err <= 3 */
- mpfr_sqrt (c, c, MPFR_RNDN); /* err<=5/2, thus the absolute error is
- bounded by 3*u*|c| for |u| <= 0.25 */
- mpfr_mul (err_t, c, s, MPFR_SIGN(c)==MPFR_SIGN(s) ? MPFR_RNDU : MPFR_RNDD);
- mpfr_abs (err_t, err_t, MPFR_RNDU);
- mpfr_mul_ui (err_t, err_t, 3, MPFR_RNDU);
- /* 3*2^(-w)*|old_c|*|s| [see below] is bounded by err_t * 2^(-w) */
- err2 += MPFR_GET_EXP (c);
- /* |old_c| * 2^(err2 - w) [see below] is bounded by 2^(err2-w) */
- mpfr_mul (c, c, s, MPFR_RNDN); /* the absolute error on c is bounded by
- 1/2 ulp(c) + 3*2^(-w)*|old_c|*|s|
- + |old_c| * 2^(err2 - w) */
- /* compute err_t * 2^(-w) + 1/2 ulp(c) = (err_t + 2^EXP(c)) * 2^(-w) */
- err = (MPFR_GET_EXP (err_t) > MPFR_GET_EXP (c)) ?
- MPFR_EXP (err_t) + 1 : MPFR_EXP (c) + 1;
- /* err_t * 2^(-w) + 1/2 ulp(c) <= 2^(err - w) */
- /* now err_t * 2^(-w) bounds 1/2 ulp(c) + 3*2^(-w)*|old_c|*|s| */
- err = (err >= err2) ? err + 1 : err2 + 1;
- /* the absolute error on c is bounded by 2^(err - w) */
-
- mpfr_clear (s);
- mpfr_clear (P);
- mpfr_clear (Q);
- mpfr_clear (t);
- mpfr_clear (iz);
- mpfr_clear (err_t);
- mpfr_clear (err_s);
- mpfr_clear (err_u);
-
- err -= MPFR_GET_EXP (c);
- if (MPFR_LIKELY (MPFR_CAN_ROUND (c, w - err, MPFR_PREC(res), r)))
- break;
- if (diverge != 0)
- {
- MPFR_ZIV_FREE (loop);
- mpfr_clear (c);
- return 0; /* means that the asymptotic expansion failed */
- }
- MPFR_ZIV_NEXT (loop, w);
- }
- MPFR_ZIV_FREE (loop);
-
- inex = (MPFR_IS_POS(z) || ((n & 1) == 0)) ? mpfr_set (res, c, r)
- : mpfr_neg (res, c, r);
- mpfr_clear (c);
-
- /* for RNDF, mpfr_set or mpfr_neg may return 0, but if we return 0, it
- would mean the asymptotic expansion failed, thus we return 1 instead */
- return (r != MPFR_RNDF) ? inex : 1;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/li2.c b/Build/source/libs/mpfr/mpfr-src/src/li2.c
deleted file mode 100644
index 7a4113bc25f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/li2.c
+++ /dev/null
@@ -1,631 +0,0 @@
-/* mpfr_li2 -- Dilogarithm.
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Compute the alternating series
- s = S(z) = \sum_{k=0}^infty B_{2k} (z))^{2k+1} / (2k+1)!
- with 0 < z <= log(2) to the precision of s rounded in the direction
- rnd_mode.
- Return the maximum index of the truncature which is useful
- for determinating the relative error.
-*/
-static int
-li2_series (mpfr_t sum, mpfr_srcptr z, mpfr_rnd_t rnd_mode)
-{
- int i;
- mpfr_t s, u, v, w;
- mpfr_prec_t sump, p;
- mpfr_exp_t se, err;
- MPFR_ZIV_DECL (loop);
-
- /* The series converges for |z| < 2 pi, but in mpfr_li2 the argument is
- reduced so that 0 < z <= log(2). Here is an additional check that z
- is (nearly) correct. */
- MPFR_ASSERTD (MPFR_IS_STRICTPOS (z));
- MPFR_ASSERTD (mpfr_cmp_ui_2exp (z, 89, -7) <= 0); /* z <= 0.6953125 */
-
- sump = MPFR_PREC (sum); /* target precision */
- p = sump + MPFR_INT_CEIL_LOG2 (sump) + 4; /* the working precision */
- mpfr_init2 (s, p);
- mpfr_init2 (u, p);
- mpfr_init2 (v, p);
- mpfr_init2 (w, p);
-
- MPFR_ZIV_INIT (loop, p);
- for (;;)
- {
- mpfr_sqr (u, z, MPFR_RNDU);
- mpfr_set (v, z, MPFR_RNDU);
- mpfr_set (s, z, MPFR_RNDU);
- se = MPFR_GET_EXP (s);
- err = 0;
-
- for (i = 1;; i++)
- {
- mpfr_mul (v, u, v, MPFR_RNDU);
- mpfr_div_ui (v, v, 2 * i, MPFR_RNDU);
- mpfr_div_ui (v, v, 2 * i, MPFR_RNDU);
- mpfr_div_ui (v, v, 2 * i + 1, MPFR_RNDU);
- mpfr_div_ui (v, v, 2 * i + 1, MPFR_RNDU);
- /* here, v_2i = v_{2i-2} / (2i * (2i+1))^2 */
-
- mpfr_mul_z (w, v, mpfr_bernoulli_cache(i), MPFR_RNDN);
- /* here, w_2i = v_2i * B_2i * (2i+1)! with
- error(w_2i) < 2^(5 * i + 8) ulp(w_2i) (see algorithms.tex) */
-
- mpfr_add (s, s, w, MPFR_RNDN);
-
- err = MAX (err + se, 5 * i + 8 + MPFR_GET_EXP (w))
- - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err);
- se = MPFR_GET_EXP (s);
- if (MPFR_GET_EXP (w) <= se - (mpfr_exp_t) p)
- break;
- }
-
- /* the previous value of err is the rounding error,
- the truncation error is less than EXP(z) - 6 * i - 5
- (see algorithms.tex) */
- err = MAX (err, MPFR_GET_EXP (z) - 6 * i - 5) + 1;
- if (MPFR_CAN_ROUND (s, (mpfr_exp_t) p - err, sump, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, p);
- mpfr_set_prec (s, p);
- mpfr_set_prec (u, p);
- mpfr_set_prec (v, p);
- mpfr_set_prec (w, p);
- }
- MPFR_ZIV_FREE (loop);
- mpfr_set (sum, s, rnd_mode);
-
- mpfr_clears (s, u, v, w, (mpfr_ptr) 0);
-
- /* Let K be the returned value.
- 1. As we compute an alternating series, the truncation error has the same
- sign as the next term w_{K+2} which is positive iff K%4 == 0.
- 2. Assume that error(z) <= (1+t) z', where z' is the actual value, then
- error(s) <= 2 * (K+1) * t (see algorithms.tex).
- */
- return 2 * i;
-}
-
-/* try asymptotic expansion when x is large and positive:
- Li2(x) = -log(x)^2/2 + Pi^2/3 - 1/x + O(1/x^2).
- More precisely for x >= 2 we have for g(x) = -log(x)^2/2 + Pi^2/3:
- -2 <= x * (Li2(x) - g(x)) <= -1
- thus |Li2(x) - g(x)| <= 2/x.
- Assumes x >= 38, which ensures log(x)^2/2 >= 2*Pi^2/3, and g(x) <= -3.3.
- Return 0 if asymptotic expansion failed (unable to round), otherwise
- returns 1 for RNDF, and correct ternary value otherwise.
-*/
-static int
-mpfr_li2_asympt_pos (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t g, h;
- mpfr_prec_t w = MPFR_PREC (y) + 20;
- int inex = 0;
-
- MPFR_ASSERTN (mpfr_cmp_ui (x, 38) >= 0);
-
- mpfr_init2 (g, w);
- mpfr_init2 (h, w);
- mpfr_log (g, x, MPFR_RNDN); /* rel. error <= |(1 + theta) - 1| */
- mpfr_sqr (g, g, MPFR_RNDN); /* rel. error <= |(1 + theta)^3 - 1| <= 2^(2-w) */
- mpfr_div_2ui (g, g, 1, MPFR_RNDN); /* rel. error <= 2^(2-w) */
- mpfr_const_pi (h, MPFR_RNDN); /* error <= 2^(1-w) */
- mpfr_sqr (h, h, MPFR_RNDN); /* rel. error <= 2^(2-w) */
- mpfr_div_ui (h, h, 3, MPFR_RNDN); /* rel. error <= |(1 + theta)^4 - 1|
- <= 5 * 2^(-w) */
- /* since x is chosen such that log(x)^2/2 >= 2 * (Pi^2/3), we should have
- g >= 2*h, thus |g-h| >= |h|, and the relative error on g is at most
- multiplied by 2 in the difference, and that by h is unchanged. */
- MPFR_ASSERTN (MPFR_EXP (g) > MPFR_EXP (h));
- mpfr_sub (g, h, g, MPFR_RNDN); /* err <= ulp(g)/2 + g*2^(3-w) + g*5*2^(-w)
- <= ulp(g) * (1/2 + 8 + 5) < 14 ulp(g).
-
- If in addition 2/x <= 2 ulp(g), i.e.,
- 1/x <= ulp(g), then the total error is
- bounded by 16 ulp(g). */
- if ((MPFR_EXP (x) >= (mpfr_exp_t) w - MPFR_EXP (g)) &&
- MPFR_CAN_ROUND (g, w - 4, MPFR_PREC (y), rnd_mode))
- {
- inex = mpfr_set (y, g, rnd_mode);
- if (rnd_mode == MPFR_RNDF)
- inex = 1;
- }
-
- mpfr_clear (g);
- mpfr_clear (h);
-
- return inex;
-}
-
-/* try asymptotic expansion when x is large and negative:
- Li2(x) = -log(-x)^2/2 - Pi^2/6 - 1/x + O(1/x^2).
- More precisely for x <= -2 we have for g(x) = -log(-x)^2/2 - Pi^2/6:
- |Li2(x) - g(x)| <= 1/|x|.
- Assumes x <= -7, which ensures |log(-x)^2/2| >= Pi^2/6, and g(x) <= -3.5.
- Return 0 if asymptotic expansion failed (unable to round), otherwise
- returns 1 for RNDF, and correct ternary value otherwise.
-*/
-static int
-mpfr_li2_asympt_neg (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t g, h;
- mpfr_prec_t w = MPFR_PREC (y) + 20;
- int inex = 0;
-
- MPFR_ASSERTN (mpfr_cmp_si (x, -7) <= 0);
-
- mpfr_init2 (g, w);
- mpfr_init2 (h, w);
- mpfr_neg (g, x, MPFR_RNDN);
- mpfr_log (g, g, MPFR_RNDN); /* rel. error <= |(1 + theta) - 1| */
- mpfr_sqr (g, g, MPFR_RNDN); /* rel. error <= |(1 + theta)^3 - 1| <= 2^(2-w) */
- mpfr_div_2ui (g, g, 1, MPFR_RNDN); /* rel. error <= 2^(2-w) */
- mpfr_const_pi (h, MPFR_RNDN); /* error <= 2^(1-w) */
- mpfr_sqr (h, h, MPFR_RNDN); /* rel. error <= 2^(2-w) */
- mpfr_div_ui (h, h, 6, MPFR_RNDN); /* rel. error <= |(1 + theta)^4 - 1|
- <= 5 * 2^(-w) */
- MPFR_ASSERTN (MPFR_EXP (g) >= MPFR_EXP (h));
- mpfr_add (g, g, h, MPFR_RNDN); /* err <= ulp(g)/2 + g*2^(2-w) + g*5*2^(-w)
- <= ulp(g) * (1/2 + 4 + 5) < 10 ulp(g).
-
- If in addition |1/x| <= 4 ulp(g), then the
- total error is bounded by 16 ulp(g). */
- if ((MPFR_EXP (x) >= (mpfr_exp_t) (w - 2) - MPFR_EXP (g)) &&
- MPFR_CAN_ROUND (g, w - 4, MPFR_PREC (y), rnd_mode))
- {
- inex = mpfr_neg (y, g, rnd_mode);
- if (rnd_mode == MPFR_RNDF)
- inex = 1;
- }
-
- mpfr_clear (g);
- mpfr_clear (h);
-
- return inex;
-}
-
-/* Compute the real part of the dilogarithm defined by
- Li2(x) = -\Int_{t=0}^x log(1-t)/t dt */
-int
-mpfr_li2 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_exp_t err;
- mpfr_prec_t yp, m;
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- MPFR_SET_NEG (y);
- MPFR_SET_INF (y);
- MPFR_RET (0);
- }
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_SET_ZERO (y);
- MPFR_RET (0);
- }
- }
-
- /* Li2(x) = x + x^2/4 + x^3/9 + ..., more precisely for 0 < x <= 1/2
- we have |Li2(x) - x| < x^2/2 <= 2^(2EXP(x)-1) and for -1/2 <= x < 0
- we have |Li2(x) - x| < x^2/4 <= 2^(2EXP(x)-2) */
- if (MPFR_IS_POS (x))
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, -MPFR_GET_EXP (x), 1, 1, rnd_mode,
- {});
- else
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, -MPFR_GET_EXP (x), 2, 0, rnd_mode,
- {});
-
- MPFR_SAVE_EXPO_MARK (expo);
- yp = MPFR_PREC (y);
- m = yp + MPFR_INT_CEIL_LOG2 (yp) + 13;
-
- if (MPFR_LIKELY ((mpfr_cmp_ui (x, 0) > 0) && (mpfr_cmp_ui_2exp (x, 1, -1) <= 0)))
- /* 0 < x <= 1/2: Li2(x) = S(-log(1-x))-log^2(1-x)/4 */
- {
- mpfr_t s, u;
- mpfr_exp_t expo_l;
- int k;
-
- mpfr_init2 (u, m);
- mpfr_init2 (s, m);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_ui_sub (u, 1, x, MPFR_RNDN);
- mpfr_log (u, u, MPFR_RNDU);
- if (MPFR_IS_ZERO(u))
- goto next_m;
- mpfr_neg (u, u, MPFR_RNDN); /* u = -log(1-x) */
- expo_l = MPFR_GET_EXP (u);
- k = li2_series (s, u, MPFR_RNDU);
- err = 1 + MPFR_INT_CEIL_LOG2 (k + 1);
-
- mpfr_sqr (u, u, MPFR_RNDU);
- mpfr_div_2ui (u, u, 2, MPFR_RNDU); /* u = log^2(1-x) / 4 */
- mpfr_sub (s, s, u, MPFR_RNDN);
-
- /* error(s) <= (0.5 + 2^(d-EXP(s))
- + 2^(3 + MAX(1, - expo_l) - EXP(s))) ulp(s) */
- err = MAX (err, MAX (1, - expo_l) - 1) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err);
- if (MPFR_CAN_ROUND (s, (mpfr_exp_t) m - err, yp, rnd_mode))
- break;
-
- next_m:
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (u, m);
- mpfr_set_prec (s, m);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, s, rnd_mode);
-
- mpfr_clear (u);
- mpfr_clear (s);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
- else if (!mpfr_cmp_ui (x, 1))
- /* Li2(1)= pi^2 / 6 */
- {
- mpfr_t u;
- mpfr_init2 (u, m);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_const_pi (u, MPFR_RNDU);
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_ui (u, u, 6, MPFR_RNDN);
-
- err = m - 4; /* error(u) <= 19/2 ulp(u) */
- if (MPFR_CAN_ROUND (u, err, yp, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (u, m);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, u, rnd_mode);
-
- mpfr_clear (u);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
- else if (mpfr_cmp_ui (x, 2) >= 0)
- /* x >= 2: Li2(x) = -S(-log(1-1/x))-log^2(x)/2+log^2(1-1/x)/4+pi^2/3 */
- {
- int k;
- mpfr_exp_t expo_l;
- mpfr_t s, u, xx;
-
- if (mpfr_cmp_ui (x, 38) >= 0)
- {
- inexact = mpfr_li2_asympt_pos (y, x, rnd_mode);
- if (inexact != 0)
- goto end_of_case_gt2;
- }
-
- mpfr_init2 (u, m);
- mpfr_init2 (s, m);
- mpfr_init2 (xx, m);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_ui_div (xx, 1, x, MPFR_RNDN);
- mpfr_neg (xx, xx, MPFR_RNDN);
- mpfr_log1p (u, xx, MPFR_RNDD);
- mpfr_neg (u, u, MPFR_RNDU); /* u = -log(1-1/x) */
- expo_l = MPFR_GET_EXP (u);
- k = li2_series (s, u, MPFR_RNDN);
- mpfr_neg (s, s, MPFR_RNDN);
- err = MPFR_INT_CEIL_LOG2 (k + 1) + 1; /* error(s) <= 2^err ulp(s) */
-
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_2ui (u, u, 2, MPFR_RNDN); /* u= log^2(1-1/x)/4 */
- mpfr_add (s, s, u, MPFR_RNDN);
- err =
- MAX (err,
- 3 + MAX (1, -expo_l) + MPFR_GET_EXP (u)) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err); /* error(s) <= 2^err ulp(s) */
- err += MPFR_GET_EXP (s);
-
- mpfr_log (u, x, MPFR_RNDU);
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_2ui (u, u, 1, MPFR_RNDN); /* u = log^2(x)/2 */
- mpfr_sub (s, s, u, MPFR_RNDN);
- err = MAX (err, 3 + MPFR_GET_EXP (u)) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err); /* error(s) <= 2^err ulp(s) */
- err += MPFR_GET_EXP (s);
-
- mpfr_const_pi (u, MPFR_RNDU);
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_ui (u, u, 3, MPFR_RNDN); /* u = pi^2/3 */
- mpfr_add (s, s, u, MPFR_RNDN);
- err = MAX (err, 2) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err); /* error(s) <= 2^err ulp(s) */
- if (MPFR_CAN_ROUND (s, (mpfr_exp_t) m - err, yp, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (u, m);
- mpfr_set_prec (s, m);
- mpfr_set_prec (xx, m);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, s, rnd_mode);
- mpfr_clears (s, u, xx, (mpfr_ptr) 0);
-
- end_of_case_gt2:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
- else if (mpfr_cmp_ui (x, 1) > 0)
- /* 2 > x > 1: Li2(x) = S(log(x))+log^2(x)/4-log(x)log(x-1)+pi^2/6 */
- {
- int k;
- mpfr_exp_t e1, e2;
- mpfr_t s, u, v, xx;
- mpfr_init2 (s, m);
- mpfr_init2 (u, m);
- mpfr_init2 (v, m);
- mpfr_init2 (xx, m);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_log (v, x, MPFR_RNDU);
- k = li2_series (s, v, MPFR_RNDN);
- e1 = MPFR_GET_EXP (s);
-
- mpfr_sqr (u, v, MPFR_RNDN);
- mpfr_div_2ui (u, u, 2, MPFR_RNDN); /* u = log^2(x)/4 */
- mpfr_add (s, s, u, MPFR_RNDN);
-
- mpfr_sub_ui (xx, x, 1, MPFR_RNDN);
- mpfr_log (u, xx, MPFR_RNDU);
- e2 = MPFR_GET_EXP (u);
- mpfr_mul (u, v, u, MPFR_RNDN); /* u = log(x) * log(x-1) */
- mpfr_sub (s, s, u, MPFR_RNDN);
-
- mpfr_const_pi (u, MPFR_RNDU);
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_ui (u, u, 6, MPFR_RNDN); /* u = pi^2/6 */
- mpfr_add (s, s, u, MPFR_RNDN);
- /* error(s) <= (31 + (k+1) * 2^(1-e1) + 2^(1-e2)) ulp(s)
- see algorithms.tex */
- err = MAX (MPFR_INT_CEIL_LOG2 (k + 1) + 1 - e1, 1 - e2);
- err = 2 + MAX (5, err);
- if (MPFR_CAN_ROUND (s, (mpfr_exp_t) m - err, yp, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (s, m);
- mpfr_set_prec (u, m);
- mpfr_set_prec (v, m);
- mpfr_set_prec (xx, m);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, s, rnd_mode);
-
- mpfr_clears (s, u, v, xx, (mpfr_ptr) 0);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
- else if (mpfr_cmp_ui_2exp (x, 1, -1) > 0) /* 1/2 < x < 1 */
- /* 1 > x > 1/2: Li2(x) = -S(-log(x))+log^2(x)/4-log(x)log(1-x)+pi^2/6 */
- {
- int k;
- mpfr_t s, u, v, xx;
- mpfr_init2 (s, m);
- mpfr_init2 (u, m);
- mpfr_init2 (v, m);
- mpfr_init2 (xx, m);
-
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_log (u, x, MPFR_RNDD);
- mpfr_neg (u, u, MPFR_RNDN);
- k = li2_series (s, u, MPFR_RNDN);
- mpfr_neg (s, s, MPFR_RNDN);
- err = 1 + MPFR_INT_CEIL_LOG2 (k + 1) - MPFR_GET_EXP (s);
-
- mpfr_ui_sub (xx, 1, x, MPFR_RNDN);
- mpfr_log (v, xx, MPFR_RNDU);
- mpfr_mul (v, v, u, MPFR_RNDN); /* v = - log(x) * log(1-x) */
- mpfr_add (s, s, v, MPFR_RNDN);
- err = MAX (err, 1 - MPFR_GET_EXP (v));
- err = 2 + MAX (3, err) - MPFR_GET_EXP (s);
-
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_2ui (u, u, 2, MPFR_RNDN); /* u = log^2(x)/4 */
- mpfr_add (s, s, u, MPFR_RNDN);
- err = MAX (err, 2 + MPFR_GET_EXP (u)) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err) + MPFR_GET_EXP (s);
-
- mpfr_const_pi (u, MPFR_RNDU);
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_ui (u, u, 6, MPFR_RNDN); /* u = pi^2/6 */
- mpfr_add (s, s, u, MPFR_RNDN);
- err = MAX (err, 3) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err);
-
- if (MPFR_CAN_ROUND (s, (mpfr_exp_t) m - err, yp, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (s, m);
- mpfr_set_prec (u, m);
- mpfr_set_prec (v, m);
- mpfr_set_prec (xx, m);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, s, rnd_mode);
-
- mpfr_clears (s, u, v, xx, (mpfr_ptr) 0);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
- else if (mpfr_cmp_si (x, -1) >= 0)
- /* 0 > x >= -1: Li2(x) = -S(log(1-x))-log^2(1-x)/4 */
- {
- int k;
- mpfr_exp_t expo_l;
- mpfr_t s, u, xx;
- mpfr_init2 (s, m);
- mpfr_init2 (u, m);
- mpfr_init2 (xx, m);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_neg (xx, x, MPFR_RNDN);
- mpfr_log1p (u, xx, MPFR_RNDN);
- k = li2_series (s, u, MPFR_RNDN);
- mpfr_neg (s, s, MPFR_RNDN);
- expo_l = MPFR_GET_EXP (u);
- err = 1 + MPFR_INT_CEIL_LOG2 (k + 1) - MPFR_GET_EXP (s);
-
- mpfr_sqr (u, u, MPFR_RNDN);
- mpfr_div_2ui (u, u, 2, MPFR_RNDN); /* u = log^2(1-x)/4 */
- mpfr_sub (s, s, u, MPFR_RNDN);
- err = MAX (err, - expo_l);
- err = 2 + MAX (err, 3);
- if (MPFR_CAN_ROUND (s, (mpfr_exp_t) m - err, yp, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (s, m);
- mpfr_set_prec (u, m);
- mpfr_set_prec (xx, m);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, s, rnd_mode);
-
- mpfr_clears (s, u, xx, (mpfr_ptr) 0);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
- else
- /* x < -1: Li2(x)
- = S(log(1-1/x))-log^2(-x)/4-log(1-x)log(-x)/2+log^2(1-x)/4-pi^2/6 */
- {
- int k;
- mpfr_t s, u, v, w, xx;
-
- if (mpfr_cmp_si (x, -7) <= 0)
- {
- inexact = mpfr_li2_asympt_neg (y, x, rnd_mode);
- if (inexact != 0)
- goto end_of_case_ltm1;
- }
-
- mpfr_init2 (s, m);
- mpfr_init2 (u, m);
- mpfr_init2 (v, m);
- mpfr_init2 (w, m);
- mpfr_init2 (xx, m);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- mpfr_ui_div (xx, 1, x, MPFR_RNDN);
- mpfr_neg (xx, xx, MPFR_RNDN);
- mpfr_log1p (u, xx, MPFR_RNDN);
- k = li2_series (s, u, MPFR_RNDN);
-
- mpfr_ui_sub (xx, 1, x, MPFR_RNDN);
- mpfr_log (u, xx, MPFR_RNDU);
- mpfr_neg (xx, x, MPFR_RNDN);
- mpfr_log (v, xx, MPFR_RNDU);
- mpfr_mul (w, v, u, MPFR_RNDN);
- mpfr_div_2ui (w, w, 1, MPFR_RNDN); /* w = log(-x) * log(1-x) / 2 */
- mpfr_sub (s, s, w, MPFR_RNDN);
- err = 1 + MAX (3, MPFR_INT_CEIL_LOG2 (k+1) + 1 - MPFR_GET_EXP (s))
- + MPFR_GET_EXP (s);
-
- mpfr_sqr (w, v, MPFR_RNDN);
- mpfr_div_2ui (w, w, 2, MPFR_RNDN); /* w = log^2(-x) / 4 */
- mpfr_sub (s, s, w, MPFR_RNDN);
- err = MAX (err, 3 + MPFR_GET_EXP(w)) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err) + MPFR_GET_EXP (s);
-
- mpfr_sqr (w, u, MPFR_RNDN);
- mpfr_div_2ui (w, w, 2, MPFR_RNDN); /* w = log^2(1-x) / 4 */
- mpfr_add (s, s, w, MPFR_RNDN);
- err = MAX (err, 3 + MPFR_GET_EXP (w)) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err) + MPFR_GET_EXP (s);
-
- mpfr_const_pi (w, MPFR_RNDU);
- mpfr_sqr (w, w, MPFR_RNDN);
- mpfr_div_ui (w, w, 6, MPFR_RNDN); /* w = pi^2 / 6 */
- mpfr_sub (s, s, w, MPFR_RNDN);
- err = MAX (err, 3) - MPFR_GET_EXP (s);
- err = 2 + MAX (-1, err) + MPFR_GET_EXP (s);
-
- if (MPFR_CAN_ROUND (s, (mpfr_exp_t) m - err, yp, rnd_mode))
- break;
-
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (s, m);
- mpfr_set_prec (u, m);
- mpfr_set_prec (v, m);
- mpfr_set_prec (w, m);
- mpfr_set_prec (xx, m);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, s, rnd_mode);
- mpfr_clears (s, u, v, w, xx, (mpfr_ptr) 0);
-
- end_of_case_ltm1:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
-
- MPFR_RET_NEVER_GO_HERE ();
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/lngamma.c b/Build/source/libs/mpfr/mpfr-src/src/lngamma.c
deleted file mode 100644
index 8edc2ddc161..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/lngamma.c
+++ /dev/null
@@ -1,872 +0,0 @@
-/* mpfr_lngamma -- lngamma function
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* given a precision p, return alpha, such that the argument reduction
- will use k = alpha*p*log(2).
-
- Warning: we should always have alpha >= log(2)/(2Pi) ~ 0.11,
- and the smallest value of alpha multiplied by the smallest working
- precision should be >= 4.
-*/
-static void
-mpfr_gamma_alpha (mpfr_t s, mpfr_prec_t p)
-{
- MPFR_LOG_FUNC
- (("p=%Pu", p),
- ("s[%Pu]=%.*Rg", mpfr_get_prec (s), mpfr_log_prec, s));
-
- if (p <= 100)
- mpfr_set_ui_2exp (s, 614, -10, MPFR_RNDN); /* about 0.6 */
- else if (p <= 500)
- mpfr_set_ui_2exp (s, 819, -10, MPFR_RNDN); /* about 0.8 */
- else if (p <= 1000)
- mpfr_set_ui_2exp (s, 1331, -10, MPFR_RNDN); /* about 1.3 */
- else if (p <= 2000)
- mpfr_set_ui_2exp (s, 1741, -10, MPFR_RNDN); /* about 1.7 */
- else if (p <= 5000)
- mpfr_set_ui_2exp (s, 2253, -10, MPFR_RNDN); /* about 2.2 */
- else if (p <= 10000)
- mpfr_set_ui_2exp (s, 3482, -10, MPFR_RNDN); /* about 3.4 */
- else
- mpfr_set_ui_2exp (s, 9, -1, MPFR_RNDN); /* 4.5 */
-}
-
-#ifdef IS_GAMMA
-
-/* This function is called in case of intermediate overflow/underflow.
- The s1 and s2 arguments are temporary MPFR numbers, having the
- working precision. If the result could be determined, then the
- flags are updated via pexpo, y is set to the result, and the
- (non-zero) ternary value is returned. Otherwise 0 is returned
- in order to perform the next Ziv iteration. */
-static int
-mpfr_explgamma (mpfr_ptr y, mpfr_srcptr x, mpfr_save_expo_t *pexpo,
- mpfr_ptr s1, mpfr_ptr s2, mpfr_rnd_t rnd)
-{
- mpfr_t t1, t2;
- int inex1, inex2, sign;
- MPFR_BLOCK_DECL (flags1);
- MPFR_BLOCK_DECL (flags2);
- MPFR_GROUP_DECL (group);
-
- MPFR_BLOCK (flags1, inex1 = mpfr_lgamma (s1, &sign, x, MPFR_RNDD));
- MPFR_ASSERTN (inex1 != 0);
- /* s1 = RNDD(lngamma(x)), inexact */
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags1)))
- {
- if (MPFR_IS_POS (s1))
- {
- MPFR_SAVE_EXPO_UPDATE_FLAGS (*pexpo, MPFR_FLAGS_OVERFLOW);
- return mpfr_overflow (y, rnd, sign);
- }
- else
- {
- MPFR_SAVE_EXPO_UPDATE_FLAGS (*pexpo, MPFR_FLAGS_UNDERFLOW);
- return mpfr_underflow (y, rnd == MPFR_RNDN ? MPFR_RNDZ : rnd, sign);
- }
- }
-
- mpfr_set (s2, s1, MPFR_RNDN); /* exact */
- mpfr_nextabove (s2); /* v = RNDU(lngamma(z0)) */
-
- if (sign < 0)
- rnd = MPFR_INVERT_RND (rnd); /* since the result with be negated */
- MPFR_GROUP_INIT_2 (group, MPFR_PREC (y), t1, t2);
- MPFR_BLOCK (flags1, inex1 = mpfr_exp (t1, s1, rnd));
- MPFR_BLOCK (flags2, inex2 = mpfr_exp (t2, s2, rnd));
- /* t1 is the rounding with mode 'rnd' of a lower bound on |Gamma(x)|,
- t2 is the rounding with mode 'rnd' of an upper bound, thus if both
- are equal, so is the wanted result. If t1 and t2 differ or the flags
- differ, at some point of Ziv's loop they should agree. */
- if (mpfr_equal_p (t1, t2) && flags1 == flags2)
- {
- MPFR_ASSERTN ((inex1 > 0 && inex2 > 0) || (inex1 < 0 && inex2 < 0));
- mpfr_set4 (y, t1, MPFR_RNDN, sign); /* exact */
- if (sign < 0)
- inex1 = - inex1;
- MPFR_SAVE_EXPO_UPDATE_FLAGS (*pexpo, flags1);
- }
- else
- inex1 = 0; /* couldn't determine the result */
- MPFR_GROUP_CLEAR (group);
-
- return inex1;
-}
-
-#else
-
-static int
-unit_bit (mpfr_srcptr x)
-{
- mpfr_exp_t expo;
- mpfr_prec_t prec;
- mp_limb_t x0;
-
- expo = MPFR_GET_EXP (x);
- if (expo <= 0)
- return 0; /* |x| < 1 */
-
- prec = MPFR_PREC (x);
- if (expo > prec)
- return 0; /* y is a multiple of 2^(expo-prec), thus an even integer */
-
- /* Now, the unit bit is represented. */
-
- prec = MPFR_PREC2LIMBS (prec) * GMP_NUMB_BITS - expo;
- /* number of represented fractional bits (including the trailing 0's) */
-
- x0 = *(MPFR_MANT (x) + prec / GMP_NUMB_BITS);
- /* limb containing the unit bit */
-
- return (x0 >> (prec % GMP_NUMB_BITS)) & 1;
-}
-
-#endif
-
-/* FIXME: There is an internal overflow when z is very large.
- Simple overflow detection with possible false negatives?
- For the particular cases near the overflow boundary,
- scaling by a power of two?
-*/
-
-/* lngamma(x) = log(gamma(x)).
- We use formula [6.1.40] from Abramowitz&Stegun:
- lngamma(z) = (z-1/2)*log(z) - z + 1/2*log(2*Pi)
- + sum (Bernoulli[2m]/(2m)/(2m-1)/z^(2m-1),m=1..infinity)
- According to [6.1.42], if the sum is truncated after m=n, the error
- R_n(z) is bounded by |B[2n+2]|*K(z)/(2n+1)/(2n+2)/|z|^(2n+1)
- where K(z) = max (z^2/(u^2+z^2)) for u >= 0.
- For z real, |K(z)| <= 1 thus R_n(z) is bounded by the first neglected term.
- */
-#ifdef IS_GAMMA
-#define GAMMA_FUNC mpfr_gamma_aux
-#else
-#define GAMMA_FUNC mpfr_lngamma_aux
-#endif
-
-static int
-GAMMA_FUNC (mpfr_ptr y, mpfr_srcptr z0, mpfr_rnd_t rnd)
-{
- mpfr_prec_t precy, w; /* working precision */
- mpfr_t s, t, u, v, z;
- unsigned long m, k, maxm, l;
- int compared, inexact;
- mpfr_exp_t err_s, err_t;
- double d;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (z0), mpfr_log_prec, z0, rnd),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- compared = mpfr_cmp_ui (z0, 1);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
-#ifndef IS_GAMMA /* lngamma or lgamma */
- if (compared == 0 || (compared > 0 && mpfr_cmp_ui (z0, 2) == 0))
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_set_ui (y, 0, MPFR_RNDN); /* lngamma(1 or 2) = +0 */
- }
-
- /* Deal with very large inputs: according to [6.1.42], if we denote
- R_n(z) = lngamma(z) - (z-1/2)*log(z) + z - 1/2*log(2*Pi), we have
- |R_n(z)| <= B_2/2/z, thus for z >= 2 we have
- |lngamma(z) - [z*(log(z) - 1)]| < 1/2*log(z) + 1. */
- if (compared > 0 && MPFR_GET_EXP (z0) >= (mpfr_exp_t) MPFR_PREC(y) + 2)
- {
- /* Since PREC(y) >= 2, this ensures EXP(z0) >= 4, thus |z0| >= 8,
- thus 1/2*log(z0) + 1 < log(z0).
- Since the largest possible z is < 2^(2^62) on a 64-bit machine,
- the largest value of log(z) is 2^62*log(2.) < 3.2e18 < 2^62,
- thus if we use at least 62 bits of precision, then log(t)-1 will
- be exact */
- mpfr_init2 (t, MPFR_PREC(y) >= 52 ? MPFR_PREC(y) + 10 : 62);
- mpfr_log (t, z0, MPFR_RNDU); /* error < 1 ulp */
- inexact = mpfr_sub_ui (t, t, 1, MPFR_RNDU); /* err < 2 ulps, since the
- exponent of t might have
- decreased */
- MPFR_ASSERTD(inexact == 0);
- mpfr_mul (t, z0, t, MPFR_RNDU); /* err < 1+2*2=5 ulps according to
- "Generic error on multiplication"
- in algorithms.tex */
- if (MPFR_IS_INF(t))
- {
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- inexact = mpfr_overflow (y, rnd, 1);
- return inexact;
- }
- if (MPFR_GET_EXP(t) - MPFR_PREC(t) >= 62)
- {
- /* then ulp(t) >= 2^62 > log(z0) thus the total error is bounded
- by 6 ulp(t) */
- if (MPFR_CAN_ROUND (t, MPFR_PREC(t) - 3, MPFR_PREC(y), rnd))
- {
- inexact = mpfr_set (y, t, rnd);
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd);
- }
- }
- mpfr_clear (t);
- }
-
- /* Deal here with tiny inputs. We have for -0.3 <= x <= 0.3:
- - log|x| - gamma*x <= log|gamma(x)| <= - log|x| - gamma*x + x^2 */
- if (MPFR_GET_EXP (z0) <= - (mpfr_exp_t) MPFR_PREC(y))
- {
- mpfr_t l, h, g;
- int ok, inex1, inex2;
- mpfr_prec_t prec = MPFR_PREC(y) + 14;
- MPFR_ZIV_DECL (loop);
-
- MPFR_ZIV_INIT (loop, prec);
- do
- {
- mpfr_init2 (l, prec);
- if (MPFR_IS_POS(z0))
- {
- mpfr_log (l, z0, MPFR_RNDU); /* upper bound for log(z0) */
- mpfr_init2 (h, MPFR_PREC(l));
- }
- else
- {
- mpfr_init2 (h, MPFR_PREC(z0));
- mpfr_neg (h, z0, MPFR_RNDN); /* exact */
- mpfr_log (l, h, MPFR_RNDU); /* upper bound for log(-z0) */
- mpfr_set_prec (h, MPFR_PREC(l));
- }
- mpfr_neg (l, l, MPFR_RNDD); /* lower bound for -log(|z0|) */
- mpfr_set (h, l, MPFR_RNDD); /* exact */
- mpfr_nextabove (h); /* upper bound for -log(|z0|), avoids two calls
- to mpfr_log */
- mpfr_init2 (g, MPFR_PREC(l));
- /* if z0>0, we need an upper approximation of Euler's constant
- for the left bound */
- mpfr_const_euler (g, MPFR_IS_POS(z0) ? MPFR_RNDU : MPFR_RNDD);
- mpfr_mul (g, g, z0, MPFR_RNDD);
- mpfr_sub (l, l, g, MPFR_RNDD);
- mpfr_const_euler (g, MPFR_IS_POS(z0) ? MPFR_RNDD : MPFR_RNDU); /* cached */
- mpfr_mul (g, g, z0, MPFR_RNDU);
- mpfr_sub (h, h, g, MPFR_RNDD);
- mpfr_sqr (g, z0, MPFR_RNDU);
- mpfr_add (h, h, g, MPFR_RNDU);
- inex1 = mpfr_prec_round (l, MPFR_PREC(y), rnd);
- inex2 = mpfr_prec_round (h, MPFR_PREC(y), rnd);
- /* Caution: we not only need l = h, but both inexact flags should
- agree. Indeed, one of the inexact flags might be zero. In that
- case if we assume lngamma(z0) cannot be exact, the other flag
- should be correct. We are conservative here and request that both
- inexact flags agree. */
- ok = SAME_SIGN (inex1, inex2) && mpfr_cmp (l, h) == 0;
- if (ok)
- mpfr_set (y, h, rnd); /* exact */
- mpfr_clear (l);
- mpfr_clear (h);
- mpfr_clear (g);
- if (ok)
- {
- MPFR_ZIV_FREE (loop);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex1, rnd);
- }
- /* since we have log|gamma(x)| = - log|x| - gamma*x + O(x^2),
- if x ~ 2^(-n), then we have a n-bit approximation, thus
- we can try again with a working precision of n bits,
- especially when n >> PREC(y).
- Otherwise we would use the reflection formula evaluating x-1,
- which would need precision n. */
- MPFR_ZIV_NEXT (loop, prec);
- }
- while (prec <= - MPFR_GET_EXP (z0));
- MPFR_ZIV_FREE (loop);
- }
-#endif
-
- precy = MPFR_PREC(y);
-
- mpfr_init2 (s, MPFR_PREC_MIN);
- mpfr_init2 (t, MPFR_PREC_MIN);
- mpfr_init2 (u, MPFR_PREC_MIN);
- mpfr_init2 (v, MPFR_PREC_MIN);
- mpfr_init2 (z, MPFR_PREC_MIN);
-
- inexact = 0; /* 0 means: result y not set yet */
-
- if (compared < 0)
- {
- mpfr_exp_t err_u;
-
- /* use reflection formula:
- gamma(x) = Pi*(x-1)/sin(Pi*(2-x))/gamma(2-x)
- thus lngamma(x) = log(Pi*(x-1)/sin(Pi*(2-x))) - lngamma(2-x) */
-
- w = precy + MPFR_INT_CEIL_LOG2 (precy);
- w += MPFR_INT_CEIL_LOG2 (w) + 14;
- MPFR_ZIV_INIT (loop, w);
- while (1)
- {
- MPFR_ASSERTD(w >= 3);
- mpfr_set_prec (s, w);
- mpfr_set_prec (t, w);
- mpfr_set_prec (u, w);
- mpfr_set_prec (v, w);
- /* In the following, we write r for a real of absolute value
- at most 2^(-w). Different instances of r may represent different
- values. */
- mpfr_ui_sub (s, 2, z0, MPFR_RNDD); /* s = (2-z0) * (1+2r) >= 1 */
- mpfr_const_pi (t, MPFR_RNDN); /* t = Pi * (1+r) */
- mpfr_lngamma (u, s, MPFR_RNDN); /* lngamma(2-x) */
- /* Let s = (2-z0) + h. By construction, -(2-z0)*2^(1-w) <= h <= 0.
- We have lngamma(s) = lngamma(2-z0) + h*Psi(z), z in [2-z0+h,2-z0].
- Since 2-z0+h = s >= 1 and |Psi(x)| <= max(1,log(x)) for x >= 1,
- the error on u is bounded by
- ulp(u)/2 + (2-z0)*max(1,log(2-z0))*2^(1-w)
- = (1/2 + (2-z0)*max(1,log(2-z0))*2^(1-E(u))) ulp(u) */
- d = (double) MPFR_GET_EXP(s) * 0.694; /* upper bound for log(2-z0) */
- if (MPFR_IS_ZERO(u)) /* in that case the error on u is zero */
- err_u = 0;
- else
- err_u = MPFR_GET_EXP(s) + __gmpfr_ceil_log2 (d) + 1 - MPFR_GET_EXP(u);
- err_u = (err_u >= 0) ? err_u + 1 : 0;
- /* now the error on u is bounded by 2^err_u ulps */
-
- mpfr_mul (s, s, t, MPFR_RNDN); /* Pi*(2-x) * (1+r)^4 */
- err_s = MPFR_GET_EXP(s); /* 2-x <= 2^err_s */
- mpfr_sin (s, s, MPFR_RNDN); /* sin(Pi*(2-x)) */
- /* the error on s is bounded by 1/2*ulp(s) + [(1+2^(-w))^4-1]*(2-x)
- <= 1/2*ulp(s) + 5*2^(-w)*(2-x) for w >= 3
- <= (1/2 + 5 * 2^(-E(s)) * (2-x)) ulp(s) */
- err_s += 3 - MPFR_GET_EXP(s);
- err_s = (err_s >= 0) ? err_s + 1 : 0;
- /* the error on s is bounded by 2^err_s ulp(s), thus by
- 2^(err_s+1)*2^(-w)*|s| since ulp(s) <= 2^(1-w)*|s|.
- Now n*2^(-w) can always be written |(1+r)^n-1| for some
- |r|<=2^(-w), thus taking n=2^(err_s+1) we see that
- |S - s| <= |(1+r)^(2^(err_s+1))-1| * |s|, where S is the
- true value.
- In fact if ulp(s) <= ulp(S) the same inequality holds for
- |S| instead of |s| in the right hand side, i.e., we can
- write s = (1+r)^(2^(err_s+1)) * S.
- But if ulp(S) < ulp(s), we need to add one ``bit'' to the error,
- to get s = (1+r)^(2^(err_s+2)) * S. This is true since with
- E = n*2^(-w) we have |s - S| <= E * |s|, thus
- |s - S| <= E/(1-E) * |S|.
- Now E/(1-E) is bounded by 2E as long as E<=1/2,
- and 2E can be written (1+r)^(2n)-1 as above.
- */
- err_s += 2; /* exponent of relative error */
-
- mpfr_sub_ui (v, z0, 1, MPFR_RNDN); /* v = (x-1) * (1+r) */
- mpfr_mul (v, v, t, MPFR_RNDN); /* v = Pi*(x-1) * (1+r)^3 */
- mpfr_div (v, v, s, MPFR_RNDN); /* Pi*(x-1)/sin(Pi*(2-x)) */
- mpfr_abs (v, v, MPFR_RNDN);
- /* (1+r)^(3+2^err_s+1) */
- err_s = (err_s <= 1) ? 3 : err_s + 1;
- /* now (1+r)^M with M <= 2^err_s */
- mpfr_log (v, v, MPFR_RNDN);
- /* log(v*(1+e)) = log(v)+log(1+e) where |e| <= 2^(err_s-w).
- Since |log(1+e)| <= 2*e for |e| <= 1/4, the error on v is
- bounded by ulp(v)/2 + 2^(err_s+1-w). */
- if (err_s + 2 > w)
- {
- w += err_s + 2;
- }
- else
- {
- /* if v = 0 here, it was 1 before the call to mpfr_log,
- thus the error on v was zero */
- if (!MPFR_IS_ZERO(v))
- err_s += 1 - MPFR_GET_EXP(v);
- err_s = (err_s >= 0) ? err_s + 1 : 0;
- /* the error on v is bounded by 2^err_s ulps */
- err_u += MPFR_GET_EXP(u); /* absolute error on u */
- if (!MPFR_IS_ZERO(v)) /* same as above */
- err_s += MPFR_GET_EXP(v); /* absolute error on v */
- mpfr_sub (s, v, u, MPFR_RNDN);
- /* the total error on s is bounded by ulp(s)/2 + 2^(err_u-w)
- + 2^(err_s-w) <= ulp(s)/2 + 2^(max(err_u,err_s)+1-w) */
- err_s = (err_s >= err_u) ? err_s : err_u;
- err_s += 1 - MPFR_GET_EXP(s); /* error is 2^err_s ulp(s) */
- err_s = (err_s >= 0) ? err_s + 1 : 0;
- if (MPFR_CAN_ROUND (s, w - err_s, precy, rnd))
- goto end;
- }
- MPFR_ZIV_NEXT (loop, w);
- }
- MPFR_ZIV_FREE (loop);
- }
-
- /* now z0 > 1 */
-
- MPFR_ASSERTD (compared > 0);
-
- /* since k is O(w), the value of log(z0*...*(z0+k-1)) is about w*log(w),
- so there is a cancellation of ~log(w) in the argument reconstruction */
- w = precy + MPFR_INT_CEIL_LOG2 (precy);
- w += MPFR_INT_CEIL_LOG2 (w) + 13;
- MPFR_ZIV_INIT (loop, w);
- while (1)
- {
- MPFR_ASSERTD (w >= 3);
-
- /* argument reduction: we compute gamma(z0 + k), where the series
- has error term B_{2n}/(z0+k)^(2n) ~ (n/(Pi*e*(z0+k)))^(2n)
- and we need k steps of argument reconstruction. Assuming k is large
- with respect to z0, and k = n, we get 1/(Pi*e)^(2n) ~ 2^(-w), i.e.,
- k ~ w*log(2)/2/log(Pi*e) ~ 0.1616 * w.
- However, since the series is slightly more expensive to compute,
- the optimal value seems to be k ~ 0.25 * w experimentally (with
- caching of Bernoulli numbers).
- For only one computation of gamma with large precision, it is better
- to set k to a larger value, say k ~ w. */
- mpfr_set_prec (s, 53);
- mpfr_gamma_alpha (s, w);
- mpfr_set_ui_2exp (s, 4, -4, MPFR_RNDU);
- mpfr_mul_ui (s, s, w, MPFR_RNDU);
- if (mpfr_cmp (z0, s) < 0)
- {
- mpfr_sub (s, s, z0, MPFR_RNDU);
- k = mpfr_get_ui (s, MPFR_RNDU);
- if (k < 3)
- k = 3;
- }
- else
- k = 3;
-
- mpfr_set_prec (s, w);
- mpfr_set_prec (t, w);
- mpfr_set_prec (u, w);
- mpfr_set_prec (v, w);
- mpfr_set_prec (z, w);
-
- mpfr_add_ui (z, z0, k, MPFR_RNDN);
- /* z = (z0+k)*(1+t1) with |t1| <= 2^(-w) */
-
- /* z >= 4 ensures the relative error on log(z) is small,
- and also (z-1/2)*log(z)-z >= 0 */
- MPFR_ASSERTD (mpfr_cmp_ui (z, 4) >= 0);
-
- mpfr_log (s, z, MPFR_RNDN); /* log(z) */
- /* we have s = log((z0+k)*(1+t1))*(1+t2) with |t1|, |t2| <= 2^(-w).
- Since w >= 2 and z0+k >= 4, we can write log((z0+k)*(1+t1))
- = log(z0+k) * (1+t3) with |t3| <= 2^(-w), thus we have
- s = log(z0+k) * (1+t4)^2 with |t4| <= 2^(-w) */
- mpfr_mul_2ui (t, z, 1, MPFR_RNDN); /* t = 2z * (1+t5) */
- mpfr_sub_ui (t, t, 1, MPFR_RNDN); /* t = 2z-1 * (1+t6)^3 */
- /* since we can write 2z*(1+t5) = (2z-1)*(1+t5') with
- t5' = 2z/(2z-1) * t5, thus |t5'| <= 8/7 * t5 */
- mpfr_mul (s, s, t, MPFR_RNDN); /* (2z-1)*log(z) * (1+t7)^6 */
- mpfr_div_2ui (s, s, 1, MPFR_RNDN); /* (z-1/2)*log(z) * (1+t7)^6 */
- mpfr_sub (s, s, z, MPFR_RNDN); /* (z-1/2)*log(z)-z */
- /* s = [(z-1/2)*log(z)-z]*(1+u)^14, s >= 1/2 */
-
- mpfr_ui_div (u, 1, z, MPFR_RNDN); /* 1/z * (1+u), u <= 1/4 since z >= 4 */
-
- /* the first term is B[2]/2/z = 1/12/z: t=1/12/z, C[2]=1 */
- mpfr_div_ui (t, u, 12, MPFR_RNDN); /* 1/(12z) * (1+u)^2, t <= 3/128 */
- mpfr_set (v, t, MPFR_RNDN); /* (1+u)^2, v < 2^(-5) */
- mpfr_add (s, s, v, MPFR_RNDN); /* (1+u)^15 */
-
- mpfr_sqr (u, u, MPFR_RNDN); /* 1/z^2 * (1+u)^3 */
-
- /* m <= maxm ensures that 2*m*(2*m+1) <= ULONG_MAX */
- maxm = 1UL << (sizeof(unsigned long) * CHAR_BIT / 2 - 1);
-
- /* s:(1+u)^15, t:(1+u)^2, t <= 3/128 */
-
- for (m = 2; MPFR_GET_EXP(v) + (mpfr_exp_t) w >= MPFR_GET_EXP(s); m++)
- {
- mpfr_mul (t, t, u, MPFR_RNDN); /* (1+u)^(10m-14) */
- if (m <= maxm)
- {
- mpfr_mul_ui (t, t, 2*(m-1)*(2*m-3), MPFR_RNDN);
- mpfr_div_ui (t, t, 2*m*(2*m-1), MPFR_RNDN);
- mpfr_div_ui (t, t, 2*m*(2*m+1), MPFR_RNDN);
- }
- else
- {
- mpfr_mul_ui (t, t, 2*(m-1), MPFR_RNDN);
- mpfr_mul_ui (t, t, 2*m-3, MPFR_RNDN);
- mpfr_div_ui (t, t, 2*m, MPFR_RNDN);
- mpfr_div_ui (t, t, 2*m-1, MPFR_RNDN);
- mpfr_div_ui (t, t, 2*m, MPFR_RNDN);
- mpfr_div_ui (t, t, 2*m+1, MPFR_RNDN);
- }
- /* (1+u)^(10m-8) */
- /* invariant: t=1/(2m)/(2m-1)/z^(2m-1)/(2m+1)! */
- mpfr_mul_z (v, t, mpfr_bernoulli_cache(m), MPFR_RNDN); /* (1+u)^(10m-7) */
- MPFR_ASSERTD(MPFR_GET_EXP(v) <= - (2 * m + 3));
- mpfr_add (s, s, v, MPFR_RNDN);
- }
- /* m <= 1/2*Pi*e*z ensures that |v[m]| < 1/2^(2m+3) */
- MPFR_ASSERTD ((double) m <= 4.26 * mpfr_get_d (z, MPFR_RNDZ));
-
- /* We have sum([(1+u)^(10m-7)-1]*1/2^(2m+3), m=2..infinity)
- <= 1.46*u for u <= 2^(-3).
- We have 0 < lngamma(z) - [(z - 1/2) ln(z) - z + 1/2 ln(2 Pi)] < 0.021
- for z >= 4, thus since the initial s >= 0.85, the different values of
- s differ by at most one binade, and the total rounding error on s
- in the for-loop is bounded by 2*(m-1)*ulp(final_s).
- The error coming from the v's is bounded by
- 1.46*2^(-w) <= 2*ulp(final_s).
- Thus the total error so far is bounded by [(1+u)^15-1]*s+2m*ulp(s)
- <= (2m+47)*ulp(s).
- Taking into account the truncation error (which is bounded by the last
- term v[] according to 6.1.42 in A&S), the bound is (2m+48)*ulp(s).
- */
-
- /* add 1/2*log(2*Pi) and subtract log(z0*(z0+1)*...*(z0+k-1)) */
- mpfr_const_pi (v, MPFR_RNDN); /* v = Pi*(1+u) */
- mpfr_mul_2ui (v, v, 1, MPFR_RNDN); /* v = 2*Pi * (1+u) */
- /* k >= 3 */
- mpfr_set (t, z0, MPFR_RNDN); /* t = z0*(1+u) */
- l = 1;
-
-/* replace #if 1 by #if 0 for the naive argument reconstruction */
-#if 1
-
- /* We multiply by (z0+1)*(z0+2)*...*(z0+k-1) by blocks of j consecutive
- terms where j ~ sqrt(k).
- If we multiply naively by z0+1, then by z0+2, ..., then by z0+j,
- the multiplicative term for the rounding error is (1+u)^(2j).
- The multiplicative term is not larger when we multiply by
- Z[j] + c[j-1]*Z[j-1] + ... + c[2]*Z[2] + c[1]*z0 + c[0]
- with c[p] integers, and Z[p] = z0^p * (1+u)^(p-1).
- Note that all terms are positive.
- Indeed, since c[1] is exact, c[1]*z0 corresponds to (1+u),
- then c[1]*z0 + c[0] corresponds to (1+u)^2,
- c[2]*Z[2] + c[1]*z0 + c[0] to (1+u)^3, ...,
- c[j-1]*Z[j-1] + ... + c[0] to (1+u)^j,
- and Z[j] + c[j-1]*Z[j-1] + ... + c[1]*z0 + c[0] to (1+u)^(j+1).
- With the accumulation in t, we get (1+u)^(j+2) and j+2 <= 2j. */
- {
- unsigned long j, i, p;
- mpfr_t *Z;
- mpz_t *c;
- for (j = 2; (j + 1) * (j + 1) < k; j++);
- /* Z[i] stores z0^i for i <= j */
- Z = (mpfr_t *) mpfr_allocate_func ((j + 1) * sizeof (mpfr_t));
- for (i = 2; i <= j; i++)
- mpfr_init2 (Z[i], w);
- mpfr_sqr (Z[2], z0, MPFR_RNDN);
- for (i = 3; i <= j; i++)
- if ((i & 1) == 0)
- mpfr_sqr (Z[i], Z[i >> 1], MPFR_RNDN);
- else
- mpfr_mul (Z[i], Z[i-1], z0, MPFR_RNDN);
- c = (mpz_t *) mpfr_allocate_func ((j + 1) * sizeof (mpz_t));
- for (i = 0; i <= j; i++)
- mpz_init (c[i]);
- for (; l + j <= k; l += j)
- {
- /* c[i] is the coefficient of x^i in (x+l)*...*(x+l+j-1) */
- mpz_set_ui (c[0], 1);
- for (i = 0; i < j; i++)
- /* multiply (x+l)*(x+l+1)*...*(x+l+i-1) by x+l+i:
- (b[i]*x^i + b[i-1]*x^(i-1) + ... + b[0])*(x+l+i) =
- b[i]*x^(i+1) + (b[i-1]+(l+i)*b[i])*x^i + ...
- + (b[0]+(l+i)*b[1])*x + i*b[0] */
- {
- mpz_set (c[i+1], c[i]); /* b[i]*x^(i+1) */
- for (p = i; p > 0; p--)
- {
- mpz_mul_ui (c[p], c[p], l + i);
- mpz_add (c[p], c[p], c[p-1]); /* b[p-1]+(l+i)*b[p] */
- }
- mpz_mul_ui (c[0], c[0], l+i); /* i*b[0] */
- }
- /* now compute z0^j + c[j-1]*z0^(j-1) + ... + c[1]*z0 + c[0] */
- mpfr_set_z (u, c[0], MPFR_RNDN);
- for (i = 0; i < j; i++)
- {
- mpfr_mul_z (z, (i == 0) ? z0 : Z[i+1], c[i+1], MPFR_RNDN);
- mpfr_add (u, u, z, MPFR_RNDN);
- }
- mpfr_mul (t, t, u, MPFR_RNDN);
- }
- for (i = 0; i <= j; i++)
- mpz_clear (c[i]);
- mpfr_free_func (c, (j + 1) * sizeof (mpz_t));
- for (i = 2; i <= j; i++)
- mpfr_clear (Z[i]);
- mpfr_free_func (Z, (j + 1) * sizeof (mpfr_t));
- }
-#endif /* end of fast argument reconstruction */
-
- for (; l < k; l++)
- {
- mpfr_add_ui (u, z0, l, MPFR_RNDN); /* u = (z0+l)*(1+u) */
- mpfr_mul (t, t, u, MPFR_RNDN); /* (1+u)^(2l+1) */
- }
- /* now t: (1+u)^(2k-1) */
- /* instead of computing log(sqrt(2*Pi)/t), we compute
- 1/2*log(2*Pi/t^2), which trades a square root for a square */
- mpfr_sqr (t, t, MPFR_RNDN); /* (z0*...*(z0+k-1))^2, (1+u)^(4k-1) */
- mpfr_div (v, v, t, MPFR_RNDN);
- /* 2*Pi/(z0*...*(z0+k-1))^2 (1+u)^(4k+1) */
-#ifdef IS_GAMMA
- err_s = MPFR_GET_EXP(s);
- mpfr_exp (s, s, MPFR_RNDN);
- /* If s is +Inf, we compute exp(lngamma(z0)). */
- if (mpfr_inf_p (s))
- {
- inexact = mpfr_explgamma (y, z0, &expo, s, t, rnd);
- if (inexact)
- goto end0;
- else
- goto ziv_next;
- }
- /* before the exponential, we have s = s0 + h where
- |h| <= (2m+48)*ulp(s), thus exp(s0) = exp(s) * exp(-h).
- For |h| <= 1/4, we have |exp(h)-1| <= 1.2*|h| thus
- |exp(s) - exp(s0)| <= 1.2 * exp(s) * (2m+48)* 2^(EXP(s)-w). */
- /* d = 1.2 * (2.0 * (double) m + 48.0); */
- /* the error on s is bounded by d*2^err_s * 2^(-w) */
- mpfr_sqrt (t, v, MPFR_RNDN);
- /* let v0 be the exact value of v. We have v = v0*(1+u)^(4k+1),
- thus t = sqrt(v0)*(1+u)^(2k+3/2). */
- mpfr_mul (s, s, t, MPFR_RNDN);
- /* the error on input s is bounded by (1+u)^(d*2^err_s),
- and that on t is (1+u)^(2k+3/2), thus the
- total error is (1+u)^(d*2^err_s+2k+5/2) */
- /* err_s += __gmpfr_ceil_log2 (d); */
- /* since d = 1.2 * (2m+48), ceil(log2(d)) = 2 + ceil(log2(0.6*m+14.4))
- <= 2 + ceil(log2(0.6*m+15)) */
- {
- unsigned long mm = (1 + m / 5) * 3; /* 0.6*m <= mm */
- err_s += 2 + __gmpfr_int_ceil_log2 (mm + 15);
- }
- err_t = __gmpfr_ceil_log2 (2.0 * (double) k + 2.5);
- err_s = (err_s >= err_t) ? err_s + 1 : err_t + 1;
-#else
- mpfr_log (t, v, MPFR_RNDN);
- /* let v0 be the exact value of v. We have v = v0*(1+u)^(4k+1),
- thus log(v) = log(v0) + (4k+1)*log(1+u). Since |log(1+u)/u| <= 1.07
- for |u| <= 2^(-3), the absolute error on log(v) is bounded by
- 1.07*(4k+1)*u, and the rounding error by ulp(t). */
- mpfr_div_2ui (t, t, 1, MPFR_RNDN);
- /* the error on t is now bounded by ulp(t) + 0.54*(4k+1)*2^(-w).
- We have sqrt(2*Pi)/(z0*(z0+1)*...*(z0+k-1)) <= sqrt(2*Pi)/k! <= 0.5
- since k>=3, thus t <= -0.5 and ulp(t) >= 2^(-w).
- Thus the error on t is bounded by (2.16*k+1.54)*ulp(t). */
- err_t = MPFR_GET_EXP(t) + (mpfr_exp_t)
- __gmpfr_ceil_log2 (2.2 * (double) k + 1.6);
- err_s = MPFR_GET_EXP(s) + (mpfr_exp_t)
- __gmpfr_ceil_log2 (2.0 * (double) m + 48.0);
- mpfr_add (s, s, t, MPFR_RNDN); /* this is a subtraction in fact */
- /* the final error in ulp(s) is
- <= 1 + 2^(err_t-EXP(s)) + 2^(err_s-EXP(s))
- <= 2^(1+max(err_t,err_s)-EXP(s)) if err_t <> err_s
- <= 2^(2+max(err_t,err_s)-EXP(s)) if err_t = err_s */
- err_s = (err_t == err_s) ? 1 + err_s : ((err_t > err_s) ? err_t : err_s);
- err_s += 1 - MPFR_GET_EXP(s);
-#endif
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, w - err_s, precy, rnd)))
- break;
-#ifdef IS_GAMMA
- ziv_next:
-#endif
- MPFR_ZIV_NEXT (loop, w);
- }
-
-#ifdef IS_GAMMA
- end0:
-#endif
-
- end:
- if (inexact == 0)
- inexact = mpfr_set (y, s, rnd);
- MPFR_ZIV_FREE (loop);
-
- mpfr_clear (s);
- mpfr_clear (t);
- mpfr_clear (u);
- mpfr_clear (v);
- mpfr_clear (z);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd);
-}
-
-#ifndef IS_GAMMA
-
-int
-mpfr_lngamma (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- int inex;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inex));
-
- /* special cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x) ||
- (MPFR_IS_NEG (x) && mpfr_integer_p (x))))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else /* lngamma(+/-Inf) = lngamma(nonpositive integer) = +Inf */
- {
- if (!MPFR_IS_INF (x))
- MPFR_SET_DIVBY0 ();
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_RET (0); /* exact */
- }
- }
-
- /* if -2k-1 < x < -2k <= 0, then lngamma(x) = NaN */
- if (MPFR_IS_NEG (x) && unit_bit (x) == 0)
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
-
- inex = mpfr_lngamma_aux (y, x, rnd);
- return inex;
-}
-
-int
-mpfr_lgamma (mpfr_ptr y, int *signp, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- int inex;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
- ("y[%Pu]=%.*Rg signp=%d inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, *signp, inex));
-
- *signp = 1; /* most common case */
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else
- {
- if (MPFR_IS_ZERO (x))
- MPFR_SET_DIVBY0 ();
- *signp = MPFR_INT_SIGN (x);
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_RET (0);
- }
- }
-
- if (MPFR_IS_NEG (x))
- {
- if (mpfr_integer_p (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0);
- }
-
- if (unit_bit (x) == 0)
- *signp = -1;
-
- /* For tiny negative x, we have gamma(x) = 1/x - euler + O(x),
- thus |gamma(x)| = -1/x + euler + O(x), and
- log |gamma(x)| = -log(-x) - euler*x + O(x^2).
- More precisely we have for -0.4 <= x < 0:
- -log(-x) <= log |gamma(x)| <= -log(-x) - x.
- Since log(x) is not representable, we may have an instance of the
- Table Maker Dilemma. The only way to ensure correct rounding is to
- compute an interval [l,h] such that l <= -log(-x) and
- -log(-x) - x <= h, and check whether l and h round to the same number
- for the target precision and rounding modes. */
- if (MPFR_EXP(x) + 1 <= - (mpfr_exp_t) MPFR_PREC(y))
- /* since PREC(y) >= 1, this ensures EXP(x) <= -2,
- thus |x| <= 0.25 < 0.4 */
- {
- mpfr_t l, h;
- int ok, inex2;
- mpfr_prec_t w = MPFR_PREC (y) + 14;
- mpfr_exp_t expl;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- while (1)
- {
- mpfr_init2 (l, w);
- mpfr_init2 (h, w);
- /* we want a lower bound on -log(-x), thus an upper bound
- on log(-x), thus an upper bound on -x. */
- mpfr_neg (l, x, MPFR_RNDU); /* upper bound on -x */
- mpfr_log (l, l, MPFR_RNDU); /* upper bound for log(-x) */
- mpfr_neg (l, l, MPFR_RNDD); /* lower bound for -log(-x) */
- mpfr_neg (h, x, MPFR_RNDD); /* lower bound on -x */
- mpfr_log (h, h, MPFR_RNDD); /* lower bound on log(-x) */
- mpfr_neg (h, h, MPFR_RNDU); /* upper bound for -log(-x) */
- mpfr_sub (h, h, x, MPFR_RNDU); /* upper bound for -log(-x) - x */
- inex = mpfr_prec_round (l, MPFR_PREC (y), rnd);
- inex2 = mpfr_prec_round (h, MPFR_PREC (y), rnd);
- /* Caution: we not only need l = h, but both inexact flags
- should agree. Indeed, one of the inexact flags might be
- zero. In that case if we assume ln|gamma(x)| cannot be
- exact, the other flag should be correct. We are conservative
- here and request that both inexact flags agree. */
- ok = SAME_SIGN (inex, inex2) && mpfr_equal_p (l, h);
- if (ok)
- mpfr_set (y, h, rnd); /* exact */
- else
- expl = MPFR_EXP (l);
- mpfr_clear (l);
- mpfr_clear (h);
- if (ok)
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd);
- }
- /* if ulp(log(-x)) <= |x| there is no reason to loop,
- since the width of [l, h] will be at least |x| */
- if (expl < MPFR_EXP (x) + w)
- break;
- w += MPFR_INT_CEIL_LOG2(w) + 3;
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- }
- }
-
- inex = mpfr_lngamma_aux (y, x, rnd);
- return inex;
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/log.c b/Build/source/libs/mpfr/mpfr-src/src/log.c
deleted file mode 100644
index 30e8cb2fe76..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/log.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* mpfr_log -- natural logarithm of a floating-point number
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* The computation of log(x) is done using the formula :
- if we want p bits of the result,
-
- pi
- log(x) ~ ------------ - m log 2
- 2 AG(1,4/s)
-
- where s = x 2^m > 2^(p/2)
-
- More precisely, if F(x) = int(1/sqrt(1-(1-x^2)*sin(t)^2), t=0..PI/2),
- then for s>=1.26 we have log(s) < F(4/s) < log(s)*(1+4/s^2)
- from which we deduce pi/2/AG(1,4/s)*(1-4/s^2) < log(s) < pi/2/AG(1,4/s)
- so the relative error 4/s^2 is < 4/2^p i.e. 4 ulps.
-*/
-
-int
-mpfr_log (mpfr_ptr r, mpfr_srcptr a, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_prec_t p, q;
- mpfr_t tmp1, tmp2;
- mpfr_exp_t exp_a;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
- MPFR_GROUP_DECL(group);
-
- MPFR_LOG_FUNC
- (("a[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (a), mpfr_log_prec, a, rnd_mode),
- ("r[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (r), mpfr_log_prec, r,
- inexact));
-
- /* Special cases */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (a)))
- {
- /* If a is NaN, the result is NaN */
- if (MPFR_IS_NAN (a))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- /* check for infinity before zero */
- else if (MPFR_IS_INF (a))
- {
- if (MPFR_IS_NEG (a))
- /* log(-Inf) = NaN */
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- else /* log(+Inf) = +Inf */
- {
- MPFR_SET_INF (r);
- MPFR_SET_POS (r);
- MPFR_RET (0);
- }
- }
- else /* a is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (a));
- MPFR_SET_INF (r);
- MPFR_SET_NEG (r);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0); /* log(0) is an exact -infinity */
- }
- }
-
- /* If a is negative, the result is NaN */
- if (MPFR_UNLIKELY (MPFR_IS_NEG (a)))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
-
- exp_a = MPFR_GET_EXP (a);
-
- /* If a is 1, the result is +0 */
- if (MPFR_UNLIKELY (exp_a == 1 && mpfr_cmp_ui (a, 1) == 0))
- {
- MPFR_SET_ZERO (r);
- MPFR_SET_POS (r);
- MPFR_RET (0); /* only "normal" case where the result is exact */
- }
-
- q = MPFR_PREC (r);
-
- /* use initial precision about q+2*lg(q)+cte */
- p = q + 2 * MPFR_INT_CEIL_LOG2 (q) + 10;
- /* % ~(mpfr_prec_t)GMP_NUMB_BITS ;
- m=q; while (m) { p++; m >>= 1; } */
- /* if (MPFR_LIKELY(p % GMP_NUMB_BITS != 0))
- p += GMP_NUMB_BITS - (p%GMP_NUMB_BITS); */
-
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_GROUP_INIT_2 (group, p, tmp1, tmp2);
-
- MPFR_ZIV_INIT (loop, p);
- for (;;)
- {
- mpfr_exp_t m;
- mpfr_exp_t cancel;
-
- /* Calculus of m (depends on p)
- If mpfr_exp_t has N bits, then both (p + 3) / 2 and |exp_a| fit
- on N-2 bits, so that there cannot be an overflow. */
- m = (p + 3) / 2 - exp_a;
-
- /* In standard configuration (_MPFR_EXP_FORMAT <= 3), one has
- mpfr_exp_t <= long, so that the following assertion is always
- true. */
- MPFR_ASSERTN (m >= LONG_MIN && m <= LONG_MAX);
-
- /* FIXME: Why 1 ulp and not 1/2 ulp? Ditto with some other ones
- below. The error concerning the AGM should be explained since
- 4/s is inexact (one needs a bound on its derivative). */
- mpfr_mul_2si (tmp2, a, m, MPFR_RNDN); /* s=a*2^m, err<=1 ulp */
- MPFR_ASSERTD (MPFR_EXP (tmp2) >= (p + 3) / 2);
- /* [FIXME] and one can have the equality, even if p is even.
- This means that if a is a power of 2 and p is even, then
- s = (1/2) * 2^((p+2)/2) = 2^(p/2), so that the condition
- s > 2^(p/2) from algorithms.tex is not satisfied. */
- mpfr_div (tmp1, __gmpfr_four, tmp2, MPFR_RNDN);/* 4/s, err<=2 ulps */
- mpfr_agm (tmp2, __gmpfr_one, tmp1, MPFR_RNDN); /* AG(1,4/s),err<=3 ulps */
- mpfr_mul_2ui (tmp2, tmp2, 1, MPFR_RNDN); /* 2*AG(1,4/s), err<=3 ulps */
- mpfr_const_pi (tmp1, MPFR_RNDN); /* compute pi, err<=1ulp */
- mpfr_div (tmp2, tmp1, tmp2, MPFR_RNDN); /* pi/2*AG(1,4/s), err<=5ulps */
- mpfr_const_log2 (tmp1, MPFR_RNDN); /* compute log(2), err<=1ulp */
- mpfr_mul_si (tmp1, tmp1, m, MPFR_RNDN); /* compute m*log(2),err<=2ulps */
- mpfr_sub (tmp1, tmp2, tmp1, MPFR_RNDN); /* log(a), err<=7ulps+cancel */
-
- if (MPFR_LIKELY (MPFR_IS_PURE_FP (tmp1) && MPFR_IS_PURE_FP (tmp2)))
- {
- cancel = MPFR_GET_EXP (tmp2) - MPFR_GET_EXP (tmp1);
- MPFR_LOG_MSG (("canceled bits=%ld\n", (long) cancel));
- MPFR_LOG_VAR (tmp1);
- if (MPFR_UNLIKELY (cancel < 0))
- cancel = 0;
-
- /* we have 7 ulps of error from the above roundings,
- 4 ulps from the 4/s^2 second order term,
- plus the canceled bits */
- if (MPFR_LIKELY (MPFR_CAN_ROUND (tmp1, p - cancel - 4, q, rnd_mode)))
- break;
-
- /* VL: I think it is better to have an increment that it isn't
- too low; in particular, the increment must be positive even
- if cancel = 0 (can this occur?). */
- p += cancel + MPFR_INT_CEIL_LOG2 (p);
- }
- else
- {
- /* TODO: find why this case can occur and what is best to do
- with it. */
- p += MPFR_INT_CEIL_LOG2 (p);
- }
-
- MPFR_ZIV_NEXT (loop, p);
- MPFR_GROUP_REPREC_2 (group, p, tmp1, tmp2);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (r, tmp1, rnd_mode);
- /* We clean */
- MPFR_GROUP_CLEAR (group);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/log10.c b/Build/source/libs/mpfr/mpfr-src/src/log10.c
deleted file mode 100644
index d89516c2435..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/log10.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* mpfr_log10 -- logarithm in base 10.
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
- /* The computation of r=log10(a)
-
- r=log10(a)=log(a)/log(10)
- */
-
-int
-mpfr_log10 (mpfr_ptr r, mpfr_srcptr a, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("a[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (a), mpfr_log_prec, a, rnd_mode),
- ("r[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (r), mpfr_log_prec, r, inexact));
-
- /* If a is NaN, the result is NaN */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (a)))
- {
- if (MPFR_IS_NAN (a))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- /* check for infinity before zero */
- else if (MPFR_IS_INF (a))
- {
- if (MPFR_IS_NEG (a))
- /* log10(-Inf) = NaN */
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- else /* log10(+Inf) = +Inf */
- {
- MPFR_SET_INF (r);
- MPFR_SET_POS (r);
- MPFR_RET (0); /* exact */
- }
- }
- else /* a = 0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (a));
- MPFR_SET_INF (r);
- MPFR_SET_NEG (r);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0); /* log10(0) is an exact -infinity */
- }
- }
-
- /* If a is negative, the result is NaN */
- if (MPFR_UNLIKELY (MPFR_IS_NEG (a)))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
-
- /* If a is 1, the result is 0 */
- if (mpfr_cmp_ui (a, 1) == 0)
- {
- MPFR_SET_ZERO (r);
- MPFR_SET_POS (r);
- MPFR_RET (0); /* result is exact */
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* General case */
- {
- /* Declaration of the intermediary variable */
- mpfr_t t, tt;
- MPFR_ZIV_DECL (loop);
- /* Declaration of the size variable */
- mpfr_prec_t Ny = MPFR_PREC(r); /* Precision of output variable */
- mpfr_prec_t Nt; /* Precision of the intermediary variable */
- mpfr_exp_t err; /* Precision of error */
-
- /* compute the precision of intermediary variable */
- /* the optimal number of bits : see algorithms.tex */
- Nt = Ny + 4 + MPFR_INT_CEIL_LOG2 (Ny);
-
- /* initialize of intermediary variables */
- mpfr_init2 (t, Nt);
- mpfr_init2 (tt, Nt);
-
- /* First computation of log10 */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- /* compute log10 */
- mpfr_set_ui (t, 10, MPFR_RNDN); /* 10 */
- mpfr_log (t, t, MPFR_RNDD); /* log(10) */
- mpfr_log (tt, a, MPFR_RNDN); /* log(a) */
- mpfr_div (t, tt, t, MPFR_RNDN); /* log(a)/log(10) */
-
- /* estimation of the error */
- err = Nt - 4;
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- break;
-
- /* log10(10^n) is exact:
- FIXME: Can we have 10^n exactly representable as a mpfr_t
- but n can't fit an unsigned long? */
- if (MPFR_IS_POS (t)
- && mpfr_integer_p (t) && mpfr_fits_ulong_p (t, MPFR_RNDN)
- && !mpfr_ui_pow_ui (tt, 10, mpfr_get_ui (t, MPFR_RNDN), MPFR_RNDN)
- && mpfr_cmp (a, tt) == 0)
- break;
-
- /* actualization of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- mpfr_set_prec (tt, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (r, t, rnd_mode);
-
- mpfr_clear (t);
- mpfr_clear (tt);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/log1p.c b/Build/source/libs/mpfr/mpfr-src/src/log1p.c
deleted file mode 100644
index 6f5605fdb0e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/log1p.c
+++ /dev/null
@@ -1,243 +0,0 @@
-/* mpfr_log1p -- Compute log(1+x)
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Put in y an approximation of log(1+x) for x small.
- We assume |x| < 1, in which case:
- |x/2| <= |log(1+x)| = |x - x^2/2 + x^3/3 - x^4/4 + ...| <= |x|.
- Return k such that the error is bounded by 2^k*ulp(y).
-*/
-static int
-mpfr_log1p_small (mpfr_ptr y, mpfr_srcptr x)
-{
- mpfr_prec_t p = MPFR_PREC(y), err;
- mpfr_t t, u;
- unsigned long i;
- int k;
-
- MPFR_ASSERTD(MPFR_GET_EXP (x) <= 0); /* ensures |x| < 1 */
-
- /* in the following, theta represents a value with |theta| <= 2^(1-p)
- (might be a different value each time) */
-
- mpfr_init2 (t, p);
- mpfr_init2 (u, p);
- mpfr_set (t, x, MPFR_RNDF); /* t = x * (1 + theta) */
- mpfr_set (y, t, MPFR_RNDF); /* exact */
- for (i = 2; ; i++)
- {
- mpfr_mul (t, t, x, MPFR_RNDF); /* t = x^i * (1 + theta)^i */
- mpfr_div_ui (u, t, i, MPFR_RNDF); /* u = x^i/i * (1 + theta)^(i+1) */
- if (MPFR_GET_EXP (u) <= MPFR_GET_EXP (y) - p) /* |u| < ulp(y) */
- break;
- if (i & 1)
- mpfr_add (y, y, u, MPFR_RNDF); /* error <= ulp(y) */
- else
- mpfr_sub (y, y, u, MPFR_RNDF); /* error <= ulp(y) */
- }
- /* We assume |(1 + theta)^(i+1)| <= 2.
- The neglected part is at most |u| + |u|/2 + ... <= 2|u| < 2 ulp(y)
- which has to be multiplied by |(1 + theta)^(i+1)| <= 2, thus at most
- 4 ulp(y).
- The rounding error on y is bounded by:
- * for the (i-2) add/sub, each error is bounded by ulp(y),
- and since |y| <= |x|, this yields (i-2)*ulp(x)
- * from Lemma 3.1 from [Higham02] (see algorithms.tex),
- the relative error on u at step i is bounded by:
- (i+1)*epsilon/(1-(i+1)*epsilon) where epsilon = 2^(1-p).
- If (i+1)*epsilon <= 1/2, then the relative error on u at
- step i is bounded by 2*(i+1)*epsilon, and since |u| <= 1/2^(i+1)
- at step i, this gives an absolute error bound of;
- 2*epsilon*x*(3/2^3 + 4/2^4 + 5/2^5 + ...) <= 2*2^(1-p)*x =
- 4*2^(-p)*x <= 4*ulp(x).
-
- If (i+1)*epsilon <= 1/2, then the relative error on u at step i
- is bounded by (i+1)*epsilon/(1-(i+1)*epsilon) <= 1, thus it follows
- |(1 + theta)^(i+1)| <= 2.
-
- Finally the total error is bounded by 4*ulp(y) + (i-2)*ulp(x) + 4*ulp(x)
- = 4*ulp(y) + (i+2)*ulp(x).
- Since x/2 <= y, we have ulp(x) <= 2*ulp(y), thus the error is bounded by:
- (2*i+8)*ulp(y).
- */
- err = 2 * i + 8;
- k = __gmpfr_int_ceil_log2 (err);
- MPFR_ASSERTN(k < p);
- /* if k < p, since k = ceil(log2(err)), we have err <= 2^k <= 2^(p-1),
- thus i+4 = err/2 <= 2^(p-2), thus (i+4)*epsilon <= 1/2, which implies
- our assumption (i+1)*epsilon <= 1/2. */
- mpfr_clear (t);
- mpfr_clear (u);
- return k;
-}
-
-/* The computation of log1p is done by
- log1p(x) = log(1+x)
- except when x is very small, in which case log1p(x) = x + tiny error,
- or when x is small, where we use directly the Taylor expansion.
-*/
-
-int
-mpfr_log1p (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int comp, inexact;
- mpfr_exp_t ex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- /* check for inf or -inf (result is not defined) */
- else if (MPFR_IS_INF (x))
- {
- if (MPFR_IS_POS (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_POS (y);
- MPFR_RET (0);
- }
- else
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- }
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y); /* log1p(+/- 0) = +/- 0 */
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- }
-
- ex = MPFR_GET_EXP (x);
- if (ex < 0) /* -0.5 < x < 0.5 */
- {
- /* For x > 0, abs(log(1+x)-x) < x^2/2.
- For x > -0.5, abs(log(1+x)-x) < x^2. */
- if (MPFR_IS_POS (x))
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, - ex - 1, 0, 0, rnd_mode, {});
- else
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, - ex, 0, 1, rnd_mode, {});
- }
-
- comp = mpfr_cmp_si (x, -1);
- /* log1p(x) is undefined for x < -1 */
- if (MPFR_UNLIKELY(comp <= 0))
- {
- if (comp == 0)
- /* x=0: log1p(-1)=-inf (divide-by-zero exception) */
- {
- MPFR_SET_INF (y);
- MPFR_SET_NEG (y);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0);
- }
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* General case */
- {
- /* Declaration of the intermediary variable */
- mpfr_t t;
- /* Declaration of the size variable */
- mpfr_prec_t Ny = MPFR_PREC(y); /* target precision */
- mpfr_prec_t Nt; /* working precision */
- mpfr_exp_t err; /* error */
- MPFR_ZIV_DECL (loop);
-
- /* compute the precision of intermediary variable */
- /* the optimal number of bits : see algorithms.tex */
- Nt = Ny + MPFR_INT_CEIL_LOG2 (Ny) + 6;
-
- /* if |x| is smaller than 2^(-e), we will loose about e bits
- in log(1+x) */
- if (MPFR_EXP(x) < 0)
- Nt += -MPFR_EXP(x);
-
- /* initialize of intermediary variable */
- mpfr_init2 (t, Nt);
-
- /* First computation of log1p */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- int k;
- /* small case: assuming the AGM algorithm used by mpfr_log uses
- log2(p) steps for a precision of p bits, we try the special
- variant whenever EXP(x) <= -p/log2(p). */
- k = 1 + __gmpfr_int_ceil_log2 (Ny); /* the +1 avoids a division by 0
- when Ny=1 */
- if (MPFR_GET_EXP (x) <= - (mpfr_exp_t) (Ny / k))
- /* this implies EXP(x) <= 0 thus x < 1 */
- err = Nt - mpfr_log1p_small (t, x);
- else
- {
- /* compute log1p */
- inexact = mpfr_add_ui (t, x, 1, MPFR_RNDN); /* 1+x */
- /* if inexact = 0, then t = x+1, and the result is simply log(t) */
- if (inexact == 0)
- {
- inexact = mpfr_log (y, t, rnd_mode);
- goto end;
- }
- mpfr_log (t, t, MPFR_RNDN); /* log(1+x) */
-
- /* the error is bounded by (1/2+2^(1-EXP(t))*ulp(t)
- (cf algorithms.tex)
- if EXP(t)>=2, then error <= ulp(t)
- if EXP(t)<=1, then error <= 2^(2-EXP(t))*ulp(t) */
- err = Nt - MAX (0, 2 - MPFR_GET_EXP (t));
- }
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- break;
-
- /* increase the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- inexact = mpfr_set (y, t, rnd_mode);
-
- end:
- MPFR_ZIV_FREE (loop);
- mpfr_clear (t);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/log2.c b/Build/source/libs/mpfr/mpfr-src/src/log2.c
deleted file mode 100644
index 41cd33c7ee1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/log2.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* mpfr_log2 -- log base 2
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
- /* The computation of r=log2(a)
- r=log2(a)=log(a)/log(2) */
-
-int
-mpfr_log2 (mpfr_ptr r, mpfr_srcptr a, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("a[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (a), mpfr_log_prec, a, rnd_mode),
- ("r[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (r), mpfr_log_prec, r,
- inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (a)))
- {
- /* If a is NaN, the result is NaN */
- if (MPFR_IS_NAN (a))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- /* check for infinity before zero */
- else if (MPFR_IS_INF (a))
- {
- if (MPFR_IS_NEG (a))
- /* log(-Inf) = NaN */
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- else /* log(+Inf) = +Inf */
- {
- MPFR_SET_INF (r);
- MPFR_SET_POS (r);
- MPFR_RET (0);
- }
- }
- else /* a is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (a));
- MPFR_SET_INF (r);
- MPFR_SET_NEG (r);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0); /* log2(0) is an exact -infinity */
- }
- }
-
- /* If a is negative, the result is NaN */
- if (MPFR_UNLIKELY (MPFR_IS_NEG (a)))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
-
- /* If a is 1, the result is 0 */
- if (MPFR_UNLIKELY (mpfr_cmp_ui (a, 1) == 0))
- {
- MPFR_SET_ZERO (r);
- MPFR_SET_POS (r);
- MPFR_RET (0); /* only "normal" case where the result is exact */
- }
-
- /* If a is 2^N, log2(a) is exact*/
- if (MPFR_UNLIKELY (mpfr_cmp_ui_2exp (a, 1, MPFR_GET_EXP (a) - 1) == 0))
- return mpfr_set_si(r, MPFR_GET_EXP (a) - 1, rnd_mode);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* General case */
- {
- /* Declaration of the intermediary variable */
- mpfr_t t, tt;
- /* Declaration of the size variable */
- mpfr_prec_t Ny = MPFR_PREC(r); /* target precision */
- mpfr_prec_t Nt; /* working precision */
- mpfr_exp_t err; /* error */
- MPFR_ZIV_DECL (loop);
-
- /* compute the precision of intermediary variable */
- /* the optimal number of bits : see algorithms.tex */
- Nt = Ny + 3 + MPFR_INT_CEIL_LOG2 (Ny);
-
- /* initialize of intermediary variable */
- mpfr_init2 (t, Nt);
- mpfr_init2 (tt, Nt);
-
- /* First computation of log2 */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- /* compute log2 */
- mpfr_const_log2(t,MPFR_RNDD); /* log(2) */
- mpfr_log(tt,a,MPFR_RNDN); /* log(a) */
- mpfr_div(t,tt,t,MPFR_RNDN); /* log(a)/log(2) */
-
- /* estimation of the error */
- err = Nt-3;
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- break;
-
- /* actualization of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- mpfr_set_prec (tt, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (r, t, rnd_mode);
-
- mpfr_clear (t);
- mpfr_clear (tt);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/log_ui.c b/Build/source/libs/mpfr/mpfr-src/src/log_ui.c
deleted file mode 100644
index c2ca6d7e322..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/log_ui.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* mpfr_log_ui -- compute natural logarithm of an unsigned long
-
-Copyright 2014-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* FIXME: mpfr_log_ui is much slower than mpfr_log on some values of n,
- e.g. about 4 times as slow for n around ULONG_MAX/3 on an
- x86_64 Linux machine, for 10^6 bits of precision. The reason is that
- for say n=6148914691236517205 and prec=10^6, the value of T computed
- has more than 50M bits, which is much more than needed. Indeed the
- binary splitting algorithm for series with a finite radius of convergence
- gives rationals of size n*log(n) for a target precision n. One might
- truncate the rationals inside the algorithm, but then the error analysis
- should be redone. */
-
-/* Cf http://www.ginac.de/CLN/binsplit.pdf: the Taylor series of log(1+x)
- up to order N for x=p/2^k is T/(B*Q).
- P[0] <- (-p)^(n2-n1) [with opposite sign when n1=1]
- q <- k*(n2-n1) [corresponding to Q[0] = 2^q]
- B[0] <- n1 * (n1+1) * ... * (n2-1)
- T[0] <- B[0]*Q[0] * S(n1,n2)
- where S(n1,n2) = -sum((-x)^(i-n1+1)/i, i=n1..n2-1)
- Assumes p is odd or zero, and -1/3 <= x = p/2^k <= 1/3.
-*/
-static void
-S (mpz_t *P, unsigned long *q, mpz_t *B, mpz_t *T, unsigned long n1,
- unsigned long n2, long p, unsigned long k, int need_P)
-{
- MPFR_ASSERTD (n1 < n2);
- MPFR_ASSERTD (p == 0 || ((unsigned long) p & 1) != 0);
- if (n2 == n1 + 1)
- {
- mpz_set_si (P[0], (n1 == 1) ? p : -p);
- *q = k;
- mpz_set_ui (B[0], n1);
- /* T = B*Q*S where S = P/(B*Q) thus T = P */
- mpz_set (T[0], P[0]);
- /* since p is odd (or zero), there is no common factor 2 between
- P and Q, or T and B */
- }
- else
- {
- unsigned long m = (n1 / 2) + (n2 / 2) + (n1 & 1UL & n2), q1;
- /* m = floor((n1+n2)/2) */
-
- MPFR_ASSERTD (n1 < m && m < n2);
- S (P, q, B, T, n1, m, p, k, 1);
- S (P + 1, &q1, B + 1, T + 1, m, n2, p, k, need_P);
-
- /* T0 <- T0*B1*Q1 + P0*B0*T1 */
- mpz_mul (T[1], T[1], P[0]);
- mpz_mul (T[1], T[1], B[0]);
- mpz_mul (T[0], T[0], B[1]);
- /* Q[1] = 2^q1 */
- mpz_mul_2exp (T[0], T[0], q1); /* mpz_mul (T[0], T[0], Q[1]) */
- mpz_add (T[0], T[0], T[1]);
- if (need_P)
- mpz_mul (P[0], P[0], P[1]);
- *q += q1; /* mpz_mul (Q[0], Q[0], Q[1]) */
- mpz_mul (B[0], B[0], B[1]);
-
- /* there should be no common factors 2 between P, Q and T,
- since P is odd (or zero) */
- }
-}
-
-int
-mpfr_log_ui (mpfr_ptr x, unsigned long n, mpfr_rnd_t rnd_mode)
-{
- unsigned long k;
- mpfr_prec_t w; /* working precision */
- mpz_t three_n, *P, *B, *T;
- mpfr_t t, q;
- int inexact;
- unsigned long N, lgN, i, kk;
- long p;
- MPFR_GROUP_DECL(group);
- MPFR_TMP_DECL(marker);
- MPFR_ZIV_DECL(loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (n <= 2)
- {
- if (n == 0)
- {
- MPFR_SET_INF (x);
- MPFR_SET_NEG (x);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0); /* log(0) is an exact -infinity */
- }
- else if (n == 1)
- {
- MPFR_SET_ZERO (x);
- MPFR_SET_POS (x);
- MPFR_RET (0); /* only "normal" case where the result is exact */
- }
- /* now n=2 */
- return mpfr_const_log2 (x, rnd_mode);
- }
-
- /* here n >= 3 */
-
- /* Argument reduction: compute k such that 2/3 <= n/2^k < 4/3,
- i.e., 2^(k+1) <= 3n < 2^(k+2).
-
- FIXME: we could do better by considering n/(2^k*3^i*5^j),
- which reduces the maximal distance to 1 from 1/3 to 1/8,
- thus needing about 1.89 less terms in the Taylor expansion of
- the reduced argument. Then log(2^k*3^i*5^j) can be computed
- using a combination of log(16/15), log(25/24) and log(81/80),
- see Section 6.5 of "A Fortran Multiple-Precision Arithmetic Package",
- Richard P. Brent, ACM Transactions on Mathematical Software, 1978. */
-
- mpz_init_set_ui (three_n, n);
- mpz_mul_ui (three_n, three_n, 3);
- k = mpz_sizeinbase (three_n, 2) - 2;
- MPFR_ASSERTD (k >= 2);
- mpz_clear (three_n);
-
- /* The reduced argument is n/2^k - 1 = (n-2^k)/2^k.
- Compute p = n-2^k. One has: |p| = |n-2^k| < 2^k/3 < n/2 <= LONG_MAX,
- so that p and -p both fit in a long. */
- if (k < sizeof (unsigned long) * CHAR_BIT)
- n -= 1UL << k;
- /* n is now the value of p mod ULONG_MAX+1 */
- p = n > LONG_MAX ? - (long) - n : (long) n;
-
- MPFR_TMP_MARK(marker);
- w = MPFR_PREC(x) + MPFR_INT_CEIL_LOG2 (MPFR_PREC(x)) + 10;
- MPFR_GROUP_INIT_2(group, w, t, q);
- MPFR_SAVE_EXPO_MARK (expo);
-
- kk = k;
- if (p != 0)
- while ((p % 2) == 0) /* replace p/2^kk by (p/2)/2^(kk-1) */
- {
- p /= 2;
- kk --;
- }
-
- MPFR_ZIV_INIT (loop, w);
- for (;;)
- {
- mpfr_t tmp;
- unsigned int err;
- unsigned long q0;
-
- /* we need at most w/log2(2^kk/|p|) terms for an accuracy of w bits */
- mpfr_init2 (tmp, 32);
- mpfr_set_ui (tmp, (p > 0) ? p : -p, MPFR_RNDU);
- mpfr_log2 (tmp, tmp, MPFR_RNDU);
- mpfr_ui_sub (tmp, kk, tmp, MPFR_RNDD);
- MPFR_ASSERTN (w <= ULONG_MAX);
- mpfr_ui_div (tmp, w, tmp, MPFR_RNDU);
- N = mpfr_get_ui (tmp, MPFR_RNDU);
- if (N < 2)
- N = 2;
- lgN = MPFR_INT_CEIL_LOG2 (N) + 1;
- mpfr_clear (tmp);
- P = (mpz_t *) MPFR_TMP_ALLOC (3 * lgN * sizeof (mpz_t));
- B = P + lgN;
- T = B + lgN;
- for (i = 0; i < lgN; i++)
- {
- mpz_init (P[i]);
- mpz_init (B[i]);
- mpz_init (T[i]);
- }
-
- S (P, &q0, B, T, 1, N, p, kk, 0);
- /* mpz_mul (Q[0], B[0], Q[0]); */
- /* mpz_mul_2exp (B[0], B[0], q0); */
-
- mpfr_set_z (t, T[0], MPFR_RNDN); /* t = P[0] * (1 + theta_1) */
- mpfr_set_z (q, B[0], MPFR_RNDN); /* q = B[0] * (1 + theta_2) */
- mpfr_mul_2ui (q, q, q0, MPFR_RNDN); /* B[0]*Q[0] */
- mpfr_div (t, t, q, MPFR_RNDN); /* t = T[0]/(B[0]*Q[0])*(1 + theta_3)^3
- = log(n/2^k) * (1 + theta_4)^4
- for |theta_i| < 2^(-w) */
-
- /* argument reconstruction: add k*log(2) */
- mpfr_const_log2 (q, MPFR_RNDN);
- mpfr_mul_ui (q, q, k, MPFR_RNDN);
- mpfr_add (t, t, q, MPFR_RNDN);
- for (i = 0; i < lgN; i++)
- {
- mpz_clear (P[i]);
- mpz_clear (B[i]);
- mpz_clear (T[i]);
- }
- /* The maximal error is 5 ulps for P/Q, since |(1+/-u)^4 - 1| < 5*u
- for u < 2^(-12), k ulps for k*log(2), and 1 ulp for the addition,
- thus at most k+6 ulps.
- Note that there might be some cancellation in the addition: the worst
- case is when log(1 + p/2^kk) = log(2/3) ~ -0.405, and with n=3 which
- gives k=2, thus we add 2*log(2) = 1.386. Thus in the worst case we
- have an exponent decrease of 1, which accounts for +1 in the error. */
- err = MPFR_INT_CEIL_LOG2 (k + 6) + 1;
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, w - err, MPFR_PREC(x), rnd_mode)))
- break;
-
- MPFR_ZIV_NEXT (loop, w);
- MPFR_GROUP_REPREC_2(group, w, t, q);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (x, t, rnd_mode);
-
- MPFR_GROUP_CLEAR(group);
- MPFR_TMP_FREE(marker);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (x, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/logging.c b/Build/source/libs/mpfr/mpfr-src/src/logging.c
deleted file mode 100644
index f9cbd9590e3..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/logging.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* MPFR Logging functions.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Logging MPFR needs GCC >= 3.0 and GLIBC >= 2.0. */
-
-#ifdef MPFR_USE_LOGGING
-
-/* The <time.h> header might not be available everywhere (it is standard,
- but not even required by freestanding C implementations); thus it isn't
- included unconditionally. */
-#include <time.h>
-
-/* Define LOGGING variables */
-
-FILE *mpfr_log_file;
-int mpfr_log_flush;
-int mpfr_log_type;
-int mpfr_log_level;
-int mpfr_log_current;
-int mpfr_log_worstcase_limit;
-mpfr_prec_t mpfr_log_prec;
-
-static void mpfr_log_begin (void) __attribute__((constructor));
-
-/* We let the system close the LOG itself
- (Otherwise functions called by destructor can't use LOG File */
-static void
-mpfr_log_begin (void)
-{
- const char *var;
- time_t tt;
-
- /* Grab some information */
- var = getenv ("MPFR_LOG_LEVEL");
- mpfr_log_level = var == NULL || *var == 0 ? 7 : atoi (var);
- mpfr_log_current = 0;
-
- var = getenv ("MPFR_LOG_PREC");
- mpfr_log_prec = var == NULL ? 6 : atol (var);
-
- /* Get what we need to log */
- mpfr_log_type = 0;
- if (getenv ("MPFR_LOG_INPUT") != NULL)
- mpfr_log_type |= MPFR_LOG_INPUT_F;
- if (getenv ("MPFR_LOG_OUTPUT") != NULL)
- mpfr_log_type |= MPFR_LOG_OUTPUT_F;
- if (getenv ("MPFR_LOG_TIME") != NULL)
- mpfr_log_type |= MPFR_LOG_TIME_F;
- if (getenv ("MPFR_LOG_INTERNAL") != NULL)
- mpfr_log_type |= MPFR_LOG_INTERNAL_F;
- if (getenv ("MPFR_LOG_MSG") != NULL)
- mpfr_log_type |= MPFR_LOG_MSG_F;
- if (getenv ("MPFR_LOG_ZIV") != NULL)
- mpfr_log_type |= MPFR_LOG_BADCASE_F;
- if (getenv ("MPFR_LOG_STAT") != NULL)
- mpfr_log_type |= MPFR_LOG_STAT_F;
- if (getenv ("MPFR_LOG_ALL") != NULL)
- mpfr_log_type = MPFR_LOG_INPUT_F|MPFR_LOG_OUTPUT_F|MPFR_LOG_TIME_F
- |MPFR_LOG_INTERNAL_F|MPFR_LOG_MSG_F|MPFR_LOG_BADCASE_F|MPFR_LOG_STAT_F;
-
- mpfr_log_flush = getenv ("MPFR_LOG_FLUSH") != NULL;
-
- /* Open filename if needed */
- var = getenv ("MPFR_LOG_FILE");
- if (var == NULL || *var == 0)
- var = "mpfr.log";
- if (mpfr_log_type != 0)
- {
- mpfr_log_file = fopen (var, "w");
- if (mpfr_log_file == NULL)
- {
- fprintf (stderr, "MPFR LOG: Can't open '%s' with w.\n", var);
- abort ();
- }
- time (&tt);
- fprintf (mpfr_log_file, "MPFR LOG FILE %s\n", ctime (&tt));
- fflush (mpfr_log_file); /* always done */
- }
-}
-
-/* Return user CPU time measured in milliseconds. Thanks to Torbjorn. */
-
-#if defined (ANSIONLY) || defined (USG) || defined (__SVR4) \
- || defined (_UNICOS) || defined(__hpux)
-
-int
-mpfr_get_cputime (void)
-{
- return (int) ((unsigned long long) clock () * 1000 / CLOCKS_PER_SEC);
-}
-
-#else /* Use getrusage for cputime */
-
-#include <sys/types.h>
-#include <sys/resource.h>
-
-int
-mpfr_get_cputime (void)
-{
- struct rusage rus;
- getrusage (0, &rus);
- return rus.ru_utime.tv_sec * 1000 + rus.ru_utime.tv_usec / 1000;
-}
-
-#endif /* cputime */
-
-#endif /* MPFR_USE_LOGGING */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/min_prec.c b/Build/source/libs/mpfr/mpfr-src/src/min_prec.c
deleted file mode 100644
index fbe3a38e846..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/min_prec.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* mpfr_min_prec -- minimal size in bits to hold the mantissa
-
-Copyright 2009-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-mpfr_prec_t
-mpfr_min_prec (mpfr_srcptr x)
-{
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return 0;
-
- /* from a suggestion by Andreas Enge (2010-11-18) */
- return MPFR_LIMB_SIZE (x) * GMP_NUMB_BITS - mpn_scan1 (MPFR_MANT (x), 0);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/minmax.c b/Build/source/libs/mpfr/mpfr-src/src/minmax.c
deleted file mode 100644
index c484c0ac153..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/minmax.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* mpfr_min -- min and max of x, y
-
-Copyright 2001, 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#include "mpfr-impl.h"
-
- /* The computation of z=min(x,y)
-
- z=x if x <= y
- z=y if x > y
- */
-
-int
-mpfr_min (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_ARE_SINGULAR(x,y))
- {
- if (MPFR_IS_NAN(x) && MPFR_IS_NAN(y) )
- {
- MPFR_SET_NAN(z);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_NAN(x))
- return mpfr_set(z, y, rnd_mode);
- else if (MPFR_IS_NAN(y))
- return mpfr_set(z, x, rnd_mode);
- else if (MPFR_IS_ZERO(x) && MPFR_IS_ZERO(y))
- {
- if (MPFR_IS_NEG(x))
- return mpfr_set(z, x, rnd_mode);
- else
- return mpfr_set(z, y, rnd_mode);
- }
- }
- if (mpfr_cmp(x,y) <= 0)
- return mpfr_set(z, x, rnd_mode);
- else
- return mpfr_set(z, y, rnd_mode);
-}
-
- /* The computation of z=max(x,y)
-
- z=x if x >= y
- z=y if x < y
- */
-
-int
-mpfr_max (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_ARE_SINGULAR(x,y))
- {
- if (MPFR_IS_NAN(x) && MPFR_IS_NAN(y) )
- {
- MPFR_SET_NAN(z);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_NAN(x))
- return mpfr_set(z, y, rnd_mode);
- else if (MPFR_IS_NAN(y))
- return mpfr_set(z, x, rnd_mode);
- else if (MPFR_IS_ZERO(x) && MPFR_IS_ZERO(y))
- {
- if (MPFR_IS_NEG(x))
- return mpfr_set(z, y, rnd_mode);
- else
- return mpfr_set(z, x, rnd_mode);
- }
- }
- if (mpfr_cmp(x,y) <= 0)
- return mpfr_set(z, y, rnd_mode);
- else
- return mpfr_set(z, x, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mips/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/mips/mparam.h
deleted file mode 100644
index 32a84777876..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mips/mparam.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 4.6.3
- on gcc22.fsffrance.org (Cavium Octeon II V0.1) with GMP 6.1.2,
- which defines CFLAGS='-O2 -pedantic -mabi=n32' */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,32,32,32,36,36,36,36,36,36,36,36,36,36,36,40, \
- 40,40,44,44,44,44,44,44,44,44,44,48,48,52,52,52, \
- 52,52,52,52,52,52,52,64,64,64,64,64,64,64,64,64, \
- 72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72, \
- 72,80,80,80,80,80,80,80,80,72,72,72,72,72,72,72, \
- 72,80,80,80,80,105,105,105,105,105,105,105,105,105,105,105, \
- 105,105,105,105,105,105,105,105,103,104,105,105,105,105,105,105, \
- 105,105,105,105,105,105,105,117,117,117,117,117,117,117,117,117, \
- 117,117,117,120,129,129,129,129,129,129,129,129,129,129,129,129, \
- 129,129,129,129,129,129,129,129,141,141,141,141,141,141,141,141, \
- 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, \
- 153,153,153,153,153,153,153,153,153,153,153,165,165,165,165,165, \
- 165,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \
- 189,189,189,189,189,189,189,189,189,189,213,213,213,213,213,213, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
- 213,213,213,213,213,213,237,237,237,237,237,237,237,237,237,237, \
- 237,237,237,237,237,237,237,237,237,237,237,276,276,276,276,276, \
- 276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276, \
- 276,276,276,316,316,316,316,316,316,316,316,316,316,316,316,316, \
- 316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \
- 316,316,316,354,354,354,354,354,354,354,354,354,354,354,354,354, \
- 354,354,354,354,354,354,354,354,354,354,354,354,378,378,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,456,456,456,456,456,456,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,736,736,736,736, \
- 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
- 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
- 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
- 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
- 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
- 736,736,736,736,736,736,736,736,736,736,736,832,832,832,832,832, \
- 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \
- 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \
- 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \
- 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \
- 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \
- 832,832,832,832,832,832,832,832,832,832,832,832,832,832,856,832 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,8,8,9,10, \
- 10,10,11,11,12,12,13,14,14,14,15,15,16,16,17,18, \
- 18,18,19,19,20,20,21,22,22,22,23,23,24,24,25,25, \
- 26,26,27,27,28,28,29,30,32,32,32,32,32,36,36,36, \
- 36,36,36,36,36,36,40,40,40,40,40,42,44,44,44,44, \
- 44,44,44,44,44,48,48,48,48,52,52,52,52,52,52,52, \
- 64,64,64,64,64,64,64,64,64,64,64,64,64,64,68,72, \
- 72,64,64,64,64,64,64,64,64,64,64,68,68,68,72,72, \
- 72,72,72,72,72,72,72,72,72,72,72,72,72,80,80,80, \
- 80,80,80,84,80,80,80,88,88,84,88,88,88,88,88,99, \
- 99,99,105,99,99,105,105,99,99,105,105,105,105,105,105,105, \
- 105,105,105,105,105,105,105,105,105,105,105,105,105,111,111,111, \
- 111,111,117,117,117,117,117,117,117,117,123,123,123,123,105,105, \
- 117,129,129,111,111,111,117,117,117,117,117,117,123,123,123,123, \
- 123,123,123,123,129,129,129,129,129,129,129,129,129,129,135,135, \
- 135,135,141,141,141,141,141,141,141,141,141,147,147,147,147,147, \
- 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, \
- 153,153,153,153,153,153,141,141,147,147,147,147,147,147,189,189, \
- 189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \
- 189,189,201,201,201,201,201,201,201,189,201,201,201,201,213,213, \
- 213,213,213,189,189,189,189,189,189,189,189,189,189,189,189,189, \
- 201,201,201,201,201,201,201,201,201,201,189,189,189,213,213,213, \
- 213,213,213,213,213,213,213,213,201,201,201,201,201,213,213,213, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
- 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
- 213,213,213,213,237,237,237,237,237,237,237,237,237,237,237,237, \
- 237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,249, \
- 249,261,261,261,261,261,261,294,294,294,294,294,261,261,261,294, \
- 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \
- 294,294,294,294,294,294,294,294,294,312,312,312,294,294,294,294, \
- 294,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312, \
- 312,312,312,402,402,402,402,402,402,402,402,402,402,402,402,402, \
- 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
- 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
- 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
- 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
- 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
- 402,402,402,402,402,426,426,426,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
- 426,426,426,426,426,426,426,426,426,456,504,426,426,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,536,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,536,536,504,536,536,536,536, \
- 504,536,536,536,536,536,536,536,536,536,536,536,536,536,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,600,600,600,600,600,600,600,600,600,600, \
- 600,600,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,624,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
- 632,632,632,632,664,632,664,664,664,664,664,664,664,664,664,664, \
- 664,664,664,664,664,664,664,696,664,696,696,696,696,696,696,696, \
- 696,696,696,696,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,536,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*64-79*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*80-95*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59, /*96-111*/ \
- 58,59,62,60,60,60,62,62,62,62,63,72,72,72,72,72, /*112-127*/ \
- 72,72,72,72,72,70,72,72,72,72,72,72,72,72,78,80, /*128-143*/ \
- 80,84,80,80,79,80,80,88,80,80,88,87,80,80,88,88, /*144-159*/ \
- 87,88,88,88,88,88,86,88,96,88,88,88,88,88,96,104, /*160-175*/ \
- 104,96,96,96,96,96,96,104,96,104,104,104,104,104,104,100, /*176-191*/ \
- 104,104,102,104,102,104,104,104,104,104,104,112,104,104,112,107, /*192-207*/ \
- 112,112,112,112,112,112,112,120,112,112,128,112,112,128,124,122, /*208-223*/ \
- 124,114,120,122,116,128,125,128,119,120,144,120,120,123,144,128, /*224-239*/ \
- 144,126,144,128,144,144,144,144,144,144,144,144,144,144,144,144, /*240-255*/ \
- 144,144,144,144,144,144,141,144,144,144,144,144,144,144,144,144, /*256-271*/ \
- 144,144,144,144,144,159,144,144,144,144,144,144,144,144,160,160, /*272-287*/ \
- 158,159,159,160,160,159,158,158,160,160,160,160,164,160,160,160, /*288-303*/ \
- 160,159,160,160,160,160,160,158,160,160,160,160,160,160,174,176, /*304-319*/ \
- 176,176,175,176,176,176,176,174,176,175,176,176,176,176,176,176, /*320-335*/ \
- 176,176,173,176,176,176,186,192,176,184,176,208,191,176,192,192, /*336-351*/ \
- 185,207,192,208,192,191,192,207,206,208,192,207,208,208,208,208, /*352-367*/ \
- 208,208,207,208,208,208,209,208,209,209,209,208,208,208,208,208, /*368-383*/ \
- 208,208,208,207,208,208,216,208,208,208,208,208,208,208,208,208, /*384-399*/ \
- 208,208,209,224,207,208,208,208,208,209,208,207,208,224,224,223, /*400-415*/ \
- 224,216,221,222,233,216,221,224,234,224,224,224,224,240,224,232, /*416-431*/ \
- 240,240,239,243,247,224,240,246,246,240,256,256,240,256,248,256, /*432-447*/ \
- 250,256,256,256,240,240,256,256,256,256,252,256,256,240,253,246, /*448-463*/ \
- 254,252,256,255,255,256,256,254,256,256,256,256,288,288,256,287, /*464-479*/ \
- 256,288,248,256,246,288,288,256,288,288,256,288,288,288,256,282, /*480-495*/ \
- 288,288,288,256,288,288,256,256,288,256,288,288,256,256,287,288, /*496-511*/ \
- 285,284,288,288,288,304,287,288,288,288,288,288,282,288,288,288, /*512-527*/ \
- 288,288,288,287,286,288,288,288,288,288,288,287,288,286,287,288, /*528-543*/ \
- 288,288,288,288,288,288,304,288,288,287,287,286,288,288,287,288, /*544-559*/ \
- 288,288,288,287,288,287,288,288,288,288,288,288,288,288,290,320, /*560-575*/ \
- 318,320,304,320,302,320,304,304,305,320,305,318,318,320,320,320, /*576-591*/ \
- 318,320,319,317,320,312,316,320,318,319,320,320,320,320,318,312, /*592-607*/ \
- 316,312,319,318,320,328,318,318,320,320,336,320,316,318,319,319, /*608-623*/ \
- 320,318,319,320,320,320,320,319,352,350,351,352,352,352,324,351, /*624-639*/ \
- 352,352,351,336,351,372,371,350,378,336,336,368,372,378,351,372, /*640-655*/ \
- 378,384,384,352,352,352,378,383,352,352,384,371,384,384,372,351, /*656-671*/ \
- 384,352,368,384,384,372,352,382,384,378,376,384,370,383,372,384, /*672-687*/ \
- 372,384,384,378,378,417,414,417,416,384,416,416,384,416,378,416, /*688-703*/ \
- 417,384,372,414,416,416,384,415,414,417,416,416,415,416,416,384, /*704-719*/ \
- 417,416,416,416,416,416,416,416,416,416,416,415,416,416,416,418, /*720-735*/ \
- 417,417,419,416,416,417,418,418,417,416,414,416,414,414,418,416, /*736-751*/ \
- 415,418,417,416,420,416,418,416,416,416,416,417,384,416,420,417, /*752-767*/ \
- 414,416,418,415,416,416,416,414,417,418,413,418,416,417,416,417, /*768-783*/ \
- 417,416,418,416,416,414,416,418,417,420,414,416,415,416,416,417, /*784-799*/ \
- 416,418,418,414,418,416,417,416,416,416,416,416,415,415,417,415, /*800-815*/ \
- 418,420,414,418,415,416,419,415,416,416,416,415,416,417,418,418, /*816-831*/ \
- 420,426,420,419,431,424,426,432,431,431,426,430,432,426,432,426, /*832-847*/ \
- 426,432,432,432,432,440,432,432,448,432,432,448,432,432,444,449, /*848-863*/ \
- 448,464,438,474,444,444,444,440,449,473,480,441,446,480,448,474, /*864-879*/ \
- 448,448,471,466,472,448,448,447,479,472,474,448,480,448,464,449, /*880-895*/ \
- 468,456,467,480,466,468,474,461,455,467,473,473,466,466,468,473, /*896-911*/ \
- 480,474,471,468,462,468,467,480,478,479,480,474,479,480,478,474, /*912-927*/ \
- 478,474,473,480,480,480,480,480,480,480,472,471,474,480,480,474, /*928-943*/ \
- 474,480,480,480,479,492,480,479,479,480,480,480,491,480,504,512, /*944-959*/ \
- 493,512,492,512,513,512,497,494,488,492,512,512,499,512,507,510, /*960-975*/ \
- 504,494,512,510,512,511,512,511,512,512,512,512,513,512,512,508, /*976-991*/ \
- 512,504,528,512,511,512,512,513,511,504,512,512,515,504,552,552, /*992-1007*/ \
- 510,576,512,512,512,508,512,576,514,512,512,576,576,570,575,576 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 5 /* limbs */
-#define MPFR_SQR_THRESHOLD 8 /* limbs */
-#define MPFR_DIV_THRESHOLD 5 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 215 /* bits */
-#define MPFR_EXP_THRESHOLD 12405 /* bits */
-#define MPFR_SINCOS_THRESHOLD 20831 /* bits */
-#define MPFR_AI_THRESHOLD1 -19332 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 2329
-#define MPFR_AI_THRESHOLD3 28997
-/* Tuneup completed successfully, took 6568 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/modf.c b/Build/source/libs/mpfr/mpfr-src/src/modf.c
deleted file mode 100644
index 5187c658967..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/modf.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* mpfr_modf -- Integral and fractional part.
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Set iop to the integral part of op and fop to its fractional part */
-int
-mpfr_modf (mpfr_ptr iop, mpfr_ptr fop, mpfr_srcptr op, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t ope;
- mpfr_prec_t opq;
- int inexi, inexf;
-
- MPFR_LOG_FUNC
- (("op[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (op), mpfr_log_prec, op, rnd_mode),
- ("iop[%Pu]=%.*Rg fop[%Pu]=%.*Rg",
- mpfr_get_prec (iop), mpfr_log_prec, iop,
- mpfr_get_prec (fop), mpfr_log_prec, fop));
-
- MPFR_ASSERTN (iop != fop);
-
- if ( MPFR_UNLIKELY (MPFR_IS_SINGULAR (op)) )
- {
- if (MPFR_IS_NAN (op))
- {
- MPFR_SET_NAN (iop);
- MPFR_SET_NAN (fop);
- MPFR_RET_NAN;
- }
- MPFR_SET_SAME_SIGN (iop, op);
- MPFR_SET_SAME_SIGN (fop, op);
- if (MPFR_IS_INF (op))
- {
- MPFR_SET_INF (iop);
- MPFR_SET_ZERO (fop);
- MPFR_RET (0);
- }
- else /* op is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (op));
- MPFR_SET_ZERO (iop);
- MPFR_SET_ZERO (fop);
- MPFR_RET (0);
- }
- }
-
- ope = MPFR_GET_EXP (op);
- opq = MPFR_PREC (op);
-
- if (ope <= 0) /* 0 < |op| < 1 */
- {
- inexf = (fop != op) ? mpfr_set (fop, op, rnd_mode) : 0;
- MPFR_SET_SAME_SIGN (iop, op);
- MPFR_SET_ZERO (iop);
- MPFR_RET (INEX(0, inexf));
- }
- else if (ope >= opq) /* op has no fractional part */
- {
- inexi = (iop != op) ? mpfr_set (iop, op, rnd_mode) : 0;
- MPFR_SET_SAME_SIGN (fop, op);
- MPFR_SET_ZERO (fop);
- MPFR_RET (INEX(inexi, 0));
- }
- else /* op has both integral and fractional parts */
- {
- if (iop != op)
- {
- inexi = mpfr_rint_trunc (iop, op, rnd_mode);
- inexf = mpfr_frac (fop, op, rnd_mode);
- }
- else
- {
- MPFR_ASSERTN (fop != op);
- inexf = mpfr_frac (fop, op, rnd_mode);
- inexi = mpfr_rint_trunc (iop, op, rnd_mode);
- }
- MPFR_RET (INEX(inexi, inexf));
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mp_clz_tab.c b/Build/source/libs/mpfr/mpfr-src/src/mp_clz_tab.c
deleted file mode 100644
index 7ca11f5c83a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mp_clz_tab.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* __clz_tab -- support for longlong.h
-
- THE CONTENTS OF THIS FILE ARE FOR INTERNAL USE AND MAY CHANGE
- INCOMPATIBLY OR DISAPPEAR IN A FUTURE GNU MPFR RELEASE.
-
-Copyright 1991, 1993-1994, 1996-1997, 2000-2001, 2004, 2006-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-It has been copied and adapted from the GNU MP Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Warning: up from version 5.1.0, __clz_tab has 129 elements. */
-#if defined(COUNT_LEADING_ZEROS_NEED_CLZ_TAB) && !defined(MPFR_HAVE_GMP_IMPL)
-const
-unsigned char __clz_tab[129] =
-{
- 1,2,3,3,4,4,4,4,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
- 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
- 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
- 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
- 9
-};
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mparam_h.in b/Build/source/libs/mpfr/mpfr-src/src/mparam_h.in
deleted file mode 100644
index 6dbff467690..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mparam_h.in
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_IMPL_H__
-# error "MPFR Internal not included"
-#endif
-
-/* Threshold when testing coverage */
-#if defined(MPFR_TUNE_COVERAGE)
-#define MPFR_TUNE_CASE "src/generic/coverage/mparam.h"
-#include "generic/coverage/mparam.h"
-
-/* Note: the different macros used here are those defined by gcc,
- for example with gcc -mtune=native -dM -E -xc /dev/null */
-
-#elif 1 /* no processor specific optimization for TeX Live */
-#define MPFR_TUNE_CASE "default"
-#elif (defined (__tune_core2__) || defined (__tune_nocona__)) && defined (__x86_64) /* 64-bit Core 2 or Xeon */
-#define MPFR_TUNE_CASE "src/x86_64/core2/mparam.h"
-#include "x86_64/core2/mparam.h"
-
-/* Put that before __x86_64__ since __x86_64__ is also defined on AMD 64,
- We also have to define __tune_k8__ since __amd64__ is also defined on
- Intel x86_64! Ignore Clang as it defines both of these macros even on
- Intel x86_64, and it does not seem to be possible to provide tuning
- information when compiling with Clang, so that it is better to select
- generic parameters for x86_64. */
-#elif defined (__amd64__) && (defined (__tune_k8__) || defined (__tune_znver1__)) && ! defined (__clang__) /* AMD 64 */
-#define MPFR_TUNE_CASE "src/amd/mparam.h"
-#include "amd/mparam.h"
-
-/* _M_X64 is for the Microsoft compiler, see
- https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros */
-#elif defined (__x86_64__) || defined (_M_X64)
-/* generic parameters for x86_64 */
-#define MPFR_TUNE_CASE "src/x86_64/mparam.h"
-#include "x86_64/mparam.h"
-
-#elif defined (__i386) || defined(_M_IX86)
-/* we consider all other 386's here,
- including a 64-bit machine with gmp/mpfr compiled with ABI=32 */
-#define MPFR_TUNE_CASE "src/x86/mparam.h"
-#include "x86/mparam.h"
-
-#elif defined (__PPC64__) /* Threshold for 64-bit PowerPC */
-#define MPFR_TUNE_CASE "src/powerpc64/mparam.h"
-#include "powerpc64/mparam.h"
-
-#elif defined (__sparc_v9__) /* Threshold for 64-bit Sparc */
-#define MPFR_TUNE_CASE "src/sparc64/mparam.h"
-#include "sparc64/mparam.h"
-
-#elif defined (__mips__) /* MIPS */
-#define MPFR_TUNE_CASE "src/mips/mparam.h"
-#include "mips/mparam.h"
-
-#elif defined (__arm__) || defined (_M_ARM) /* ARM */
-#define MPFR_TUNE_CASE "src/arm/mparam.h"
-#include "arm/mparam.h"
-
-#else
-#define MPFR_TUNE_CASE "default"
-#endif
-
-/****************************************************************
- * Default values of Threshold. *
- * Must be included in any case: it checks, for every constant, *
- * if it has been defined, and it sets it to a default value if *
- * it was not previously defined. *
- ****************************************************************/
-#include "generic/mparam.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpf2mpfr.h b/Build/source/libs/mpfr/mpfr-src/src/mpf2mpfr.h
deleted file mode 100644
index f0985fb65be..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpf2mpfr.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* mpf2mpfr.h -- Compatibility include file with mpf.
-
-Copyright 1999-2002, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_FROM_MPF__
-#define __MPFR_FROM_MPF__
-
-/* types */
-#define mpf_t mpfr_t
-#define mpf_srcptr mpfr_srcptr
-#define mpf_ptr mpfr_ptr
-
-/* Get current Rounding Mode */
-#ifndef MPFR_DEFAULT_RND
-# define MPFR_DEFAULT_RND mpfr_get_default_rounding_mode ()
-#endif
-
-/* mpf_init initializes at 0 */
-#undef mpf_init
-#define mpf_init(x) mpfr_init_set_ui ((x), 0, MPFR_DEFAULT_RND)
-#undef mpf_init2
-#define mpf_init2(x,p) (mpfr_init2((x),(p)), mpfr_set_ui ((x), 0, MPFR_DEFAULT_RND))
-
-/* Warning! This assumes that all pointer types have the same representation. */
-#undef mpf_inits
-#define mpf_inits mpfr_inits
-#undef mpf_clears
-#define mpf_clears mpfr_clears
-
-/* functions which don't take as argument the rounding mode */
-#undef mpf_ceil
-#define mpf_ceil mpfr_ceil
-#undef mpf_clear
-#define mpf_clear mpfr_clear
-#undef mpf_cmp
-#define mpf_cmp mpfr_cmp
-#undef mpf_cmp_si
-#define mpf_cmp_si mpfr_cmp_si
-#undef mpf_cmp_ui
-#define mpf_cmp_ui mpfr_cmp_ui
-#undef mpf_cmp_d
-#define mpf_cmp_d mpfr_cmp_d
-/* mpf_cmp_z appeared in GMP 6.1.0 */
-#if __GNU_MP_VERSION > 6 || (__GNU_MP_VERSION == 6 && __GNU_MP_VERSION_MINOR >= 1)
-#undef mpf_cmp_z
-#define mpf_cmp_z mpfr_cmp_z
-#endif
-#undef mpf_eq
-#define mpf_eq mpfr_eq
-#undef mpf_floor
-#define mpf_floor mpfr_floor
-#undef mpf_get_prec
-#define mpf_get_prec mpfr_get_prec
-#undef mpf_integer_p
-#define mpf_integer_p mpfr_integer_p
-#undef mpf_random2
-#define mpf_random2 mpfr_random2
-#undef mpf_set_default_prec
-#define mpf_set_default_prec mpfr_set_default_prec
-#undef mpf_get_default_prec
-#define mpf_get_default_prec mpfr_get_default_prec
-#undef mpf_set_prec
-#define mpf_set_prec mpfr_set_prec
-#undef mpf_set_prec_raw
-#define mpf_set_prec_raw(x,p) mpfr_prec_round(x,p,MPFR_DEFAULT_RND)
-#undef mpf_trunc
-#define mpf_trunc mpfr_trunc
-#undef mpf_sgn
-#define mpf_sgn mpfr_sgn
-#undef mpf_swap
-#define mpf_swap mpfr_swap
-#undef mpf_dump
-#define mpf_dump mpfr_dump
-
-/* functions which take as argument the rounding mode */
-#undef mpf_abs
-#define mpf_abs(x,y) mpfr_abs(x,y,MPFR_DEFAULT_RND)
-#undef mpf_add
-#define mpf_add(x,y,z) mpfr_add(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_add_ui
-#define mpf_add_ui(x,y,z) mpfr_add_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_div
-#define mpf_div(x,y,z) mpfr_div(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_div_ui
-#define mpf_div_ui(x,y,z) mpfr_div_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_div_2exp
-#define mpf_div_2exp(x,y,z) mpfr_div_2exp(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_fits_slong_p
-#define mpf_fits_slong_p(x) mpfr_fits_slong_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_ulong_p
-#define mpf_fits_ulong_p(x) mpfr_fits_ulong_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_sint_p
-#define mpf_fits_sint_p(x) mpfr_fits_sint_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_uint_p
-#define mpf_fits_uint_p(x) mpfr_fits_uint_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_sshort_p
-#define mpf_fits_sshort_p(x) mpfr_fits_sshort_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_ushort_p
-#define mpf_fits_ushort_p(x) mpfr_fits_ushort_p(x,MPFR_DEFAULT_RND)
-#undef mpf_get_str
-#define mpf_get_str(x,y,z,t,u) mpfr_get_str(x,y,z,t,u,MPFR_DEFAULT_RND)
-#undef mpf_get_d
-#define mpf_get_d(x) mpfr_get_d(x,MPFR_DEFAULT_RND)
-#undef mpf_get_d_2exp
-#define mpf_get_d_2exp(e,x) mpfr_get_d_2exp(e,x,MPFR_DEFAULT_RND)
-#undef mpf_get_ui
-#define mpf_get_ui(x) mpfr_get_ui(x,MPFR_DEFAULT_RND)
-#undef mpf_get_si
-#define mpf_get_si(x) mpfr_get_si(x,MPFR_DEFAULT_RND)
-#undef mpf_inp_str
-#define mpf_inp_str(x,y,z) mpfr_inp_str(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_set_str
-#define mpf_set_str(x,y,z) mpfr_set_str(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_init_set
-#define mpf_init_set(x,y) mpfr_init_set(x,y,MPFR_DEFAULT_RND)
-#undef mpf_init_set_d
-#define mpf_init_set_d(x,y) mpfr_init_set_d(x,y,MPFR_DEFAULT_RND)
-#undef mpf_init_set_si
-#define mpf_init_set_si(x,y) mpfr_init_set_si(x,y,MPFR_DEFAULT_RND)
-#undef mpf_init_set_str
-#define mpf_init_set_str(x,y,z) mpfr_init_set_str(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_init_set_ui
-#define mpf_init_set_ui(x,y) mpfr_init_set_ui(x,y,MPFR_DEFAULT_RND)
-#undef mpf_mul
-#define mpf_mul(x,y,z) mpfr_mul(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_mul_2exp
-#define mpf_mul_2exp(x,y,z) mpfr_mul_2exp(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_mul_ui
-#define mpf_mul_ui(x,y,z) mpfr_mul_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_neg
-#define mpf_neg(x,y) mpfr_neg(x,y,MPFR_DEFAULT_RND)
-#undef mpf_out_str
-#define mpf_out_str(x,y,z,t) mpfr_out_str(x,y,z,t,MPFR_DEFAULT_RND)
-#undef mpf_pow_ui
-#define mpf_pow_ui(x,y,z) mpfr_pow_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_reldiff
-#define mpf_reldiff(x,y,z) mpfr_reldiff(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_set
-#define mpf_set(x,y) mpfr_set(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_d
-#define mpf_set_d(x,y) mpfr_set_d(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_q
-#define mpf_set_q(x,y) mpfr_set_q(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_si
-#define mpf_set_si(x,y) mpfr_set_si(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_ui
-#define mpf_set_ui(x,y) mpfr_set_ui(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_z
-#define mpf_set_z(x,y) mpfr_set_z(x,y,MPFR_DEFAULT_RND)
-#undef mpf_sqrt
-#define mpf_sqrt(x,y) mpfr_sqrt(x,y,MPFR_DEFAULT_RND)
-#undef mpf_sqrt_ui
-#define mpf_sqrt_ui(x,y) mpfr_sqrt_ui(x,y,MPFR_DEFAULT_RND)
-#undef mpf_sub
-#define mpf_sub(x,y,z) mpfr_sub(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_sub_ui
-#define mpf_sub_ui(x,y,z) mpfr_sub_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_ui_div
-#define mpf_ui_div(x,y,z) mpfr_ui_div(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_ui_sub
-#define mpf_ui_sub(x,y,z) mpfr_ui_sub(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_urandomb
-#define mpf_urandomb(x,y,n) mpfr_urandomb(x,y)
-
-#undef mpz_set_f
-#define mpz_set_f(z,f) mpfr_get_z(z,f,MPFR_DEFAULT_RND)
-#undef mpq_set_f
-#define mpq_set_f(q,f) mpfr_get_q(q,f)
-
-#endif /* __MPFR_FROM_MPF__ */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-cvers.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-cvers.h
deleted file mode 100644
index 50da831955e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-cvers.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Utilities for MPFR developers, not exported.
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_CVERS_H__
-#define __MPFR_CVERS_H__
-
-/* Macros to detect STDC, ICC, GCC, and GLIBC versions */
-#if defined(__STDC_VERSION__)
-# define __MPFR_STDC(version) (__STDC_VERSION__ >= (version))
-#else
-# define __MPFR_STDC(version) 0
-#endif
-
-#if defined(_WIN32)
-/* Under MS Windows (e.g. with VS2008 or VS2010), Intel's compiler doesn't
- support/enable extensions like the ones seen under GNU/Linux.
- https://sympa.inria.fr/sympa/arc/mpfr/2011-02/msg00032.html */
-# define __MPFR_ICC(a,b,c) 0
-#elif defined(__ICC)
-# define __MPFR_ICC(a,b,c) (__ICC >= (a)*100+(b)*10+(c))
-#elif defined(__INTEL_COMPILER)
-# define __MPFR_ICC(a,b,c) (__INTEL_COMPILER >= (a)*100+(b)*10+(c))
-#else
-# define __MPFR_ICC(a,b,c) 0
-#endif
-
-#define __MPFR_MAJMIN(a,i) (((a) << 8) | (i))
-
-#if defined(__GNUC__) && defined(__GNUC_MINOR__) && ! __MPFR_ICC(0,0,0)
-# define __MPFR_GNUC(a,i) \
- (__MPFR_MAJMIN(__GNUC__,__GNUC_MINOR__) >= __MPFR_MAJMIN(a,i))
-#else
-# define __MPFR_GNUC(a,i) 0
-#endif
-
-#if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
-# define __MPFR_GLIBC(a,i) \
- (__MPFR_MAJMIN(__GLIBC__,__GLIBC_MINOR__) >= __MPFR_MAJMIN(a,i))
-#else
-# define __MPFR_GLIBC(a,i) 0
-#endif
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.c b/Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.c
deleted file mode 100644
index a20ce5bc50f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.c
+++ /dev/null
@@ -1,368 +0,0 @@
-/* mpfr_gmp -- Limited gmp-impl emulator
- Modified version of the GMP files.
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#ifndef MPFR_HAVE_GMP_IMPL
-
-const struct bases mpfr_bases[257] =
-{
- /* 0 */ {0.0},
- /* 1 */ {1e37},
- /* 2 */ {1.0000000000000000},
- /* 3 */ {0.6309297535714574},
- /* 4 */ {0.5000000000000000},
- /* 5 */ {0.4306765580733931},
- /* 6 */ {0.3868528072345416},
- /* 7 */ {0.3562071871080222},
- /* 8 */ {0.3333333333333333},
- /* 9 */ {0.3154648767857287},
- /* 10 */ {0.3010299956639812},
- /* 11 */ {0.2890648263178878},
- /* 12 */ {0.2789429456511298},
- /* 13 */ {0.2702381544273197},
- /* 14 */ {0.2626495350371935},
- /* 15 */ {0.2559580248098155},
- /* 16 */ {0.2500000000000000},
- /* 17 */ {0.2446505421182260},
- /* 18 */ {0.2398124665681314},
- /* 19 */ {0.2354089133666382},
- /* 20 */ {0.2313782131597592},
- /* 21 */ {0.2276702486969530},
- /* 22 */ {0.2242438242175754},
- /* 23 */ {0.2210647294575037},
- /* 24 */ {0.2181042919855316},
- /* 25 */ {0.2153382790366965},
- /* 26 */ {0.2127460535533632},
- /* 27 */ {0.2103099178571525},
- /* 28 */ {0.2080145976765095},
- /* 29 */ {0.2058468324604344},
- /* 30 */ {0.2037950470905062},
- /* 31 */ {0.2018490865820999},
- /* 32 */ {0.2000000000000000},
- /* 33 */ {0.1982398631705605},
- /* 34 */ {0.1965616322328226},
- /* 35 */ {0.1949590218937863},
- /* 36 */ {0.1934264036172708},
- /* 37 */ {0.1919587200065601},
- /* 38 */ {0.1905514124267734},
- /* 39 */ {0.1892003595168700},
- /* 40 */ {0.1879018247091076},
- /* 41 */ {0.1866524112389434},
- /* 42 */ {0.1854490234153689},
- /* 43 */ {0.1842888331487062},
- /* 44 */ {0.1831692509136336},
- /* 45 */ {0.1820879004699383},
- /* 46 */ {0.1810425967800402},
- /* 47 */ {0.1800313266566926},
- /* 48 */ {0.1790522317510414},
- /* 49 */ {0.1781035935540111},
- /* 50 */ {0.1771838201355579},
- /* 51 */ {0.1762914343888821},
- /* 52 */ {0.1754250635819545},
- /* 53 */ {0.1745834300480449},
- /* 54 */ {0.1737653428714400},
- /* 55 */ {0.1729696904450771},
- /* 56 */ {0.1721954337940981},
- /* 57 */ {0.1714416005739134},
- /* 58 */ {0.1707072796637201},
- /* 59 */ {0.1699916162869140},
- /* 60 */ {0.1692938075987814},
- /* 61 */ {0.1686130986895011},
- /* 62 */ {0.1679487789570419},
- /* 63 */ {0.1673001788101741},
- /* 64 */ {0.1666666666666667},
- /* 65 */ {0.1660476462159378},
- /* 66 */ {0.1654425539190583},
- /* 67 */ {0.1648508567221603},
- /* 68 */ {0.1642720499620502},
- /* 69 */ {0.1637056554452156},
- /* 70 */ {0.1631512196835108},
- /* 71 */ {0.1626083122716342},
- /* 72 */ {0.1620765243931223},
- /* 73 */ {0.1615554674429964},
- /* 74 */ {0.1610447717564444},
- /* 75 */ {0.1605440854340214},
- /* 76 */ {0.1600530732548213},
- /* 77 */ {0.1595714156699382},
- /* 78 */ {0.1590988078692941},
- /* 79 */ {0.1586349589155960},
- /* 80 */ {0.1581795909397823},
- /* 81 */ {0.1577324383928644},
- /* 82 */ {0.1572932473495469},
- /* 83 */ {0.1568617748594410},
- /* 84 */ {0.1564377883420715},
- /* 85 */ {0.1560210650222250},
- /* 86 */ {0.1556113914024939},
- /* 87 */ {0.1552085627701551},
- /* 88 */ {0.1548123827357682},
- /* 89 */ {0.1544226628011101},
- /* 90 */ {0.1540392219542636},
- /* 91 */ {0.1536618862898642},
- /* 92 */ {0.1532904886526781},
- /* 93 */ {0.1529248683028321},
- /* 94 */ {0.1525648706011593},
- /* 95 */ {0.1522103467132434},
- /* 96 */ {0.1518611533308632},
- /* 97 */ {0.1515171524096389},
- /* 98 */ {0.1511782109217764},
- /* 99 */ {0.1508442006228941},
- /* 100 */ {0.1505149978319906},
- /* 101 */ {0.1501904832236880},
- /* 102 */ {0.1498705416319474},
- /* 103 */ {0.1495550618645152},
- /* 104 */ {0.1492439365274121},
- /* 105 */ {0.1489370618588283},
- /* 106 */ {0.1486343375718350},
- /* 107 */ {0.1483356667053617},
- /* 108 */ {0.1480409554829326},
- /* 109 */ {0.1477501131786861},
- /* 110 */ {0.1474630519902391},
- /* 111 */ {0.1471796869179852},
- /* 112 */ {0.1468999356504447},
- /* 113 */ {0.1466237184553111},
- /* 114 */ {0.1463509580758620},
- /* 115 */ {0.1460815796324244},
- /* 116 */ {0.1458155105286054},
- /* 117 */ {0.1455526803620167},
- /* 118 */ {0.1452930208392429},
- /* 119 */ {0.1450364656948130},
- /* 120 */ {0.1447829506139581},
- /* 121 */ {0.1445324131589439},
- /* 122 */ {0.1442847926987864},
- /* 123 */ {0.1440400303421672},
- /* 124 */ {0.1437980688733776},
- /* 125 */ {0.1435588526911310},
- /* 126 */ {0.1433223277500932},
- /* 127 */ {0.1430884415049874},
- /* 128 */ {0.1428571428571428},
- /* 129 */ {0.1426283821033600},
- /* 130 */ {0.1424021108869747},
- /* 131 */ {0.1421782821510107},
- /* 132 */ {0.1419568500933153},
- /* 133 */ {0.1417377701235801},
- /* 134 */ {0.1415209988221527},
- /* 135 */ {0.1413064939005528},
- /* 136 */ {0.1410942141636095},
- /* 137 */ {0.1408841194731412},
- /* 138 */ {0.1406761707131039},
- /* 139 */ {0.1404703297561400},
- /* 140 */ {0.1402665594314587},
- /* 141 */ {0.1400648234939879},
- /* 142 */ {0.1398650865947379},
- /* 143 */ {0.1396673142523192},
- /* 144 */ {0.1394714728255649},
- /* 145 */ {0.1392775294872041},
- /* 146 */ {0.1390854521985406},
- /* 147 */ {0.1388952096850913},
- /* 148 */ {0.1387067714131417},
- /* 149 */ {0.1385201075671774},
- /* 150 */ {0.1383351890281539},
- /* 151 */ {0.1381519873525671},
- /* 152 */ {0.1379704747522905},
- /* 153 */ {0.1377906240751463},
- /* 154 */ {0.1376124087861776},
- /* 155 */ {0.1374358029495937},
- /* 156 */ {0.1372607812113589},
- /* 157 */ {0.1370873187823978},
- /* 158 */ {0.1369153914223921},
- /* 159 */ {0.1367449754241439},
- /* 160 */ {0.1365760475984821},
- /* 161 */ {0.1364085852596902},
- /* 162 */ {0.1362425662114337},
- /* 163 */ {0.1360779687331669},
- /* 164 */ {0.1359147715670014},
- /* 165 */ {0.1357529539050150},
- /* 166 */ {0.1355924953769864},
- /* 167 */ {0.1354333760385373},
- /* 168 */ {0.1352755763596663},
- /* 169 */ {0.1351190772136599},
- /* 170 */ {0.1349638598663645},
- /* 171 */ {0.1348099059658080},
- /* 172 */ {0.1346571975321549},
- /* 173 */ {0.1345057169479844},
- /* 174 */ {0.1343554469488779},
- /* 175 */ {0.1342063706143054},
- /* 176 */ {0.1340584713587979},
- /* 177 */ {0.1339117329233981},
- /* 178 */ {0.1337661393673756},
- /* 179 */ {0.1336216750601996},
- /* 180 */ {0.1334783246737591},
- /* 181 */ {0.1333360731748201},
- /* 182 */ {0.1331949058177136},
- /* 183 */ {0.1330548081372441},
- /* 184 */ {0.1329157659418126},
- /* 185 */ {0.1327777653067443},
- /* 186 */ {0.1326407925678156},
- /* 187 */ {0.1325048343149731},
- /* 188 */ {0.1323698773862368},
- /* 189 */ {0.1322359088617821},
- /* 190 */ {0.1321029160581950},
- /* 191 */ {0.1319708865228925},
- /* 192 */ {0.1318398080287045},
- /* 193 */ {0.1317096685686114},
- /* 194 */ {0.1315804563506306},
- /* 195 */ {0.1314521597928493},
- /* 196 */ {0.1313247675185968},
- /* 197 */ {0.1311982683517524},
- /* 198 */ {0.1310726513121843},
- /* 199 */ {0.1309479056113158},
- /* 200 */ {0.1308240206478128},
- /* 201 */ {0.1307009860033912},
- /* 202 */ {0.1305787914387386},
- /* 203 */ {0.1304574268895465},
- /* 204 */ {0.1303368824626505},
- /* 205 */ {0.1302171484322746},
- /* 206 */ {0.1300982152363760},
- /* 207 */ {0.1299800734730872},
- /* 208 */ {0.1298627138972530},
- /* 209 */ {0.1297461274170591},
- /* 210 */ {0.1296303050907487},
- /* 211 */ {0.1295152381234257},
- /* 212 */ {0.1294009178639407},
- /* 213 */ {0.1292873358018581},
- /* 214 */ {0.1291744835645007},
- /* 215 */ {0.1290623529140715},
- /* 216 */ {0.1289509357448472},
- /* 217 */ {0.1288402240804449},
- /* 218 */ {0.1287302100711566},
- /* 219 */ {0.1286208859913518},
- /* 220 */ {0.1285122442369443},
- /* 221 */ {0.1284042773229231},
- /* 222 */ {0.1282969778809442},
- /* 223 */ {0.1281903386569819},
- /* 224 */ {0.1280843525090381},
- /* 225 */ {0.1279790124049077},
- /* 226 */ {0.1278743114199984},
- /* 227 */ {0.1277702427352035},
- /* 228 */ {0.1276667996348261},
- /* 229 */ {0.1275639755045533},
- /* 230 */ {0.1274617638294791},
- /* 231 */ {0.1273601581921740},
- /* 232 */ {0.1272591522708010},
- /* 233 */ {0.1271587398372755},
- /* 234 */ {0.1270589147554692},
- /* 235 */ {0.1269596709794558},
- /* 236 */ {0.1268610025517973},
- /* 237 */ {0.1267629036018709},
- /* 238 */ {0.1266653683442337},
- /* 239 */ {0.1265683910770258},
- /* 240 */ {0.1264719661804097},
- /* 241 */ {0.1263760881150453},
- /* 242 */ {0.1262807514205999},
- /* 243 */ {0.1261859507142915},
- /* 244 */ {0.1260916806894653},
- /* 245 */ {0.1259979361142023},
- /* 246 */ {0.1259047118299582},
- /* 247 */ {0.1258120027502338},
- /* 248 */ {0.1257198038592741},
- /* 249 */ {0.1256281102107963},
- /* 250 */ {0.1255369169267456},
- /* 251 */ {0.1254462191960791},
- /* 252 */ {0.1253560122735751},
- /* 253 */ {0.1252662914786691},
- /* 254 */ {0.1251770521943144},
- /* 255 */ {0.1250882898658681},
- /* 256 */ {0.1250000000000000},
-};
-
-MPFR_COLD_FUNCTION_ATTR void
-mpfr_assert_fail (const char *filename, int linenum,
- const char *expr)
-{
- if (filename != NULL && filename[0] != '\0')
- {
- fprintf (stderr, "%s:", filename);
- if (linenum != -1)
- fprintf (stderr, "%d: ", linenum);
- }
- fprintf (stderr, "MPFR assertion failed: %s\n", expr);
- abort();
-}
-
-/* Performing a concentration for these indirect functions may be
- good for performance since branch prediction for indirect calls
- is not well supported by a lot of CPU's (typically they can only
- predict a limited number of indirections). */
-MPFR_HOT_FUNCTION_ATTR void *
-mpfr_allocate_func (size_t alloc_size)
-{
- void * (*allocate_func) (size_t);
- void * (*reallocate_func) (void *, size_t, size_t);
- void (*free_func) (void *, size_t);
- /* Always calling with the 3 arguments smooths branch prediction. */
- mp_get_memory_functions (&allocate_func, &reallocate_func, &free_func);
- return (*allocate_func) (alloc_size);
-}
-
-MPFR_HOT_FUNCTION_ATTR void *
-mpfr_reallocate_func (void * ptr, size_t old_size, size_t new_size)
-{
- void * (*allocate_func) (size_t);
- void * (*reallocate_func) (void *, size_t, size_t);
- void (*free_func) (void *, size_t);
- /* Always calling with the 3 arguments smooths branch prediction. */
- mp_get_memory_functions (&allocate_func, &reallocate_func, &free_func);
- return (*reallocate_func) (ptr, old_size, new_size);
-}
-
-MPFR_HOT_FUNCTION_ATTR void
-mpfr_free_func (void *ptr, size_t size)
-{
- void * (*allocate_func) (size_t);
- void * (*reallocate_func) (void *, size_t, size_t);
- void (*free_func) (void *, size_t);
- /* Always calling with the 3 arguments smooths branch prediction. */
- mp_get_memory_functions (&allocate_func, &reallocate_func, &free_func);
- (*free_func) (ptr, size);
-}
-
-void *
-mpfr_tmp_allocate (struct tmp_marker **tmp_marker, size_t size)
-{
- struct tmp_marker *head;
-
- head = (struct tmp_marker *)
- mpfr_allocate_func (sizeof (struct tmp_marker));
- head->ptr = mpfr_allocate_func (size);
- head->size = size;
- head->next = *tmp_marker;
- *tmp_marker = head;
- return head->ptr;
-}
-
-void
-mpfr_tmp_free (struct tmp_marker *tmp_marker)
-{
- struct tmp_marker *t;
-
- while (tmp_marker != NULL)
- {
- t = tmp_marker;
- mpfr_free_func (t->ptr, t->size);
- tmp_marker = t->next;
- mpfr_free_func (t, sizeof (struct tmp_marker));
- }
-}
-
-#endif /* Have gmp-impl.h */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.h
deleted file mode 100644
index f7bc57df233..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-gmp.h
+++ /dev/null
@@ -1,744 +0,0 @@
-/* Uniform Interface to GMP.
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __GMPFR_GMP_H__
-#define __GMPFR_GMP_H__
-
-#ifndef __MPFR_IMPL_H__
-# error "mpfr-impl.h not included"
-#endif
-
-
-/******************************************************
- ******************** C++ Compatibility ***************
- ******************************************************/
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-
-/******************************************************
- ******************** Identify GMP ********************
- ******************************************************/
-
-/* Macro to detect the GMP version */
-#if defined(__GNU_MP_VERSION) && \
- defined(__GNU_MP_VERSION_MINOR) && \
- defined(__GNU_MP_VERSION_PATCHLEVEL)
-# define __MPFR_GMP(a,b,c) \
- (MPFR_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL) >= MPFR_VERSION_NUM(a,b,c))
-#else
-# define __MPFR_GMP(a,b,c) 0
-#endif
-
-
-
-/******************************************************
- ******************** Check GMP ***********************
- ******************************************************/
-
-#if !__MPFR_GMP(5,0,0) && !defined(MPFR_USE_MINI_GMP)
-# error "GMP 5.0.0 or newer is required"
-#endif
-
-#if GMP_NAIL_BITS != 0
-# error "MPFR doesn't support nonzero values of GMP_NAIL_BITS"
-#endif
-
-#if (GMP_NUMB_BITS<8) || (GMP_NUMB_BITS & (GMP_NUMB_BITS - 1))
-# error "GMP_NUMB_BITS must be a power of 2, and >= 8"
-#endif
-
-#if GMP_NUMB_BITS == 8
-# define MPFR_LOG2_GMP_NUMB_BITS 3
-#elif GMP_NUMB_BITS == 16
-# define MPFR_LOG2_GMP_NUMB_BITS 4
-#elif GMP_NUMB_BITS == 32
-# define MPFR_LOG2_GMP_NUMB_BITS 5
-#elif GMP_NUMB_BITS == 64
-# define MPFR_LOG2_GMP_NUMB_BITS 6
-#elif GMP_NUMB_BITS == 128
-# define MPFR_LOG2_GMP_NUMB_BITS 7
-#elif GMP_NUMB_BITS == 256
-# define MPFR_LOG2_GMP_NUMB_BITS 8
-#else
-# error "Can't compute log2(GMP_NUMB_BITS)"
-#endif
-
-
-
-/******************************************************
- ************* Define GMP Internal Interface *********
- ******************************************************/
-
-#ifdef MPFR_HAVE_GMP_IMPL /* with gmp build */
-
-#define mpfr_allocate_func (*__gmp_allocate_func)
-#define mpfr_reallocate_func (*__gmp_reallocate_func)
-#define mpfr_free_func (*__gmp_free_func)
-
-#else /* without gmp build (gmp-impl.h replacement) */
-
-/* Define some macros */
-
-#define ULONG_HIGHBIT (ULONG_MAX ^ ((unsigned long) ULONG_MAX >> 1))
-#define UINT_HIGHBIT (UINT_MAX ^ ((unsigned) UINT_MAX >> 1))
-#define USHRT_HIGHBIT ((unsigned short) (USHRT_MAX ^ ((unsigned short) USHRT_MAX >> 1)))
-
-
-#if __GMP_MP_SIZE_T_INT
-#define MP_SIZE_T_MAX INT_MAX
-#define MP_SIZE_T_MIN INT_MIN
-#else
-#define MP_SIZE_T_MAX LONG_MAX
-#define MP_SIZE_T_MIN LONG_MIN
-#endif
-
-/* MP_LIMB macros.
- Note: GMP now also has the MPN_FILL macro, and GMP's MPN_ZERO(dst,n) is
- defined as "if (n) MPN_FILL(dst, n, 0);". */
-#define MPN_ZERO(dst, n) memset((dst), 0, (n)*MPFR_BYTES_PER_MP_LIMB)
-#define MPN_COPY(dst,src,n) \
- do \
- { \
- if ((dst) != (src)) \
- { \
- MPFR_ASSERTD ((char *) (dst) >= (char *) (src) + \
- (n) * MPFR_BYTES_PER_MP_LIMB || \
- (char *) (src) >= (char *) (dst) + \
- (n) * MPFR_BYTES_PER_MP_LIMB); \
- memcpy ((dst), (src), (n) * MPFR_BYTES_PER_MP_LIMB); \
- } \
- } \
- while (0)
-
-/* MPN macros taken from gmp-impl.h */
-#define MPN_NORMALIZE(DST, NLIMBS) \
- do { \
- while (NLIMBS > 0) \
- { \
- if ((DST)[(NLIMBS) - 1] != 0) \
- break; \
- NLIMBS--; \
- } \
- } while (0)
-#define MPN_NORMALIZE_NOT_ZERO(DST, NLIMBS) \
- do { \
- MPFR_ASSERTD ((NLIMBS) >= 1); \
- while (1) \
- { \
- if ((DST)[(NLIMBS) - 1] != 0) \
- break; \
- NLIMBS--; \
- } \
- } while (0)
-#define MPN_OVERLAP_P(xp, xsize, yp, ysize) \
- ((xp) + (xsize) > (yp) && (yp) + (ysize) > (xp))
-#define MPN_SAME_OR_INCR2_P(dst, dsize, src, ssize) \
- ((dst) <= (src) || ! MPN_OVERLAP_P (dst, dsize, src, ssize))
-#define MPN_SAME_OR_INCR_P(dst, src, size) \
- MPN_SAME_OR_INCR2_P(dst, size, src, size)
-#define MPN_SAME_OR_DECR2_P(dst, dsize, src, ssize) \
- ((dst) >= (src) || ! MPN_OVERLAP_P (dst, dsize, src, ssize))
-#define MPN_SAME_OR_DECR_P(dst, src, size) \
- MPN_SAME_OR_DECR2_P(dst, size, src, size)
-
-#ifndef MUL_FFT_THRESHOLD
-#define MUL_FFT_THRESHOLD 8448
-#endif
-
-/* If mul_basecase or mpn_sqr_basecase are not exported, used mpn_mul instead */
-#ifndef mpn_mul_basecase
-# define mpn_mul_basecase(dst,s1,n1,s2,n2) mpn_mul((dst),(s1),(n1),(s2),(n2))
-#endif
-#ifndef mpn_sqr_basecase
-# define mpn_sqr_basecase(dst,src,n) mpn_mul((dst),(src),(n),(src),(n))
-#endif
-
-/* ASSERT */
-__MPFR_DECLSPEC void mpfr_assert_fail (const char *, int,
- const char *);
-
-#define ASSERT_FAIL(expr) mpfr_assert_fail (__FILE__, __LINE__, #expr)
-/* ASSERT() is for mpfr-longlong.h only. */
-#define ASSERT(expr) MPFR_ASSERTD(expr)
-
-/* Access fields of GMP struct */
-#define SIZ(x) ((x)->_mp_size)
-#define ABSIZ(x) ABS (SIZ (x))
-#define PTR(x) ((x)->_mp_d)
-#define ALLOC(x) ((x)->_mp_alloc)
-/* For mpf numbers only. */
-#ifdef MPFR_NEED_MPF_INTERNALS
-/* Note: the EXP macro name is reserved when <errno.h> is included.
- For compatibility with gmp-impl.h (cf --with-gmp-build), we cannot
- change this macro, but let's define it only when we need it, where
- <errno.h> will not be included. */
-#define EXP(x) ((x)->_mp_exp)
-#define PREC(x) ((x)->_mp_prec)
-#endif
-
-/* For longlong.h */
-#ifdef HAVE_ATTRIBUTE_MODE
-typedef unsigned int UQItype __attribute__ ((mode (QI)));
-typedef int SItype __attribute__ ((mode (SI)));
-typedef unsigned int USItype __attribute__ ((mode (SI)));
-typedef int DItype __attribute__ ((mode (DI)));
-typedef unsigned int UDItype __attribute__ ((mode (DI)));
-#else
-typedef unsigned char UQItype;
-typedef long SItype;
-typedef unsigned long USItype;
-#ifdef HAVE_LONG_LONG
-typedef long long int DItype;
-typedef unsigned long long int UDItype;
-#else /* Assume `long' gives us a wide enough type. Needed for hppa2.0w. */
-typedef long int DItype;
-typedef unsigned long int UDItype;
-#endif
-#endif
-typedef mp_limb_t UWtype;
-typedef unsigned int UHWtype;
-#define W_TYPE_SIZE GMP_NUMB_BITS
-
-/* Remap names of internal mpn functions (for longlong.h). */
-#undef __clz_tab
-#define __clz_tab mpfr_clz_tab
-
-/* Use (4.0 * ...) instead of (2.0 * ...) to work around buggy compilers
- that don't convert ulong->double correctly (eg. SunOS 4 native cc). */
-#undef MP_BASE_AS_DOUBLE
-#define MP_BASE_AS_DOUBLE (4.0 * (MPFR_LIMB_ONE << (GMP_NUMB_BITS - 2)))
-
-/* Structure for conversion between internal binary format and
- strings in base 2..36. */
-struct bases
-{
- /* log(2)/log(conversion_base) */
- double chars_per_bit_exactly;
-};
-#undef __mp_bases
-#define __mp_bases mpfr_bases
-__MPFR_DECLSPEC extern const struct bases mpfr_bases[257];
-
-/* Standard macros */
-#undef ABS
-#undef MIN
-#undef MAX
-#define ABS(x) ((x) >= 0 ? (x) : -(x))
-#define MIN(l,o) ((l) < (o) ? (l) : (o))
-#define MAX(h,i) ((h) > (i) ? (h) : (i))
-
-__MPFR_DECLSPEC void * mpfr_allocate_func (size_t);
-__MPFR_DECLSPEC void * mpfr_reallocate_func (void *, size_t, size_t);
-__MPFR_DECLSPEC void mpfr_free_func (void *, size_t);
-
-#if defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_SBPI1_DIVAPPR_Q)
-#ifndef __gmpn_sbpi1_divappr_q
-__MPFR_DECLSPEC mp_limb_t __gmpn_sbpi1_divappr_q (mp_limb_t*,
- mp_limb_t*, mp_size_t, mp_limb_t*, mp_size_t, mp_limb_t);
-#endif
-#endif
-
-#if defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_INVERT_LIMB)
-#ifndef __gmpn_invert_limb
-__MPFR_DECLSPEC mp_limb_t __gmpn_invert_limb (mp_limb_t);
-#endif
-#endif
-
-#if defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_RSBLSH1_N)
-#ifndef __gmpn_rsblsh1_n
-__MPFR_DECLSPEC mp_limb_t __gmpn_rsblsh1_n (mp_limb_t*, mp_limb_t*, mp_limb_t*, mp_size_t);
-#endif
-#endif
-
-/* Definitions related to temporary memory allocation */
-
-struct tmp_marker
-{
- void *ptr;
- size_t size;
- struct tmp_marker *next;
-};
-
-__MPFR_DECLSPEC void *mpfr_tmp_allocate (struct tmp_marker **,
- size_t);
-__MPFR_DECLSPEC void mpfr_tmp_free (struct tmp_marker *);
-
-/* Default MPFR_ALLOCA_MAX value. It can be overridden at configure time;
- with some tools, by giving a low value such as 0, this is useful for
- checking buffer overflow, which may not be possible with alloca.
- If HAVE_ALLOCA is not defined, then alloca() is not available, so that
- MPFR_ALLOCA_MAX needs to be 0 (see the definition of TMP_ALLOC below);
- if the user has explicitly given a non-zero value, this will probably
- yield an error at link time or at run time. */
-#ifndef MPFR_ALLOCA_MAX
-# ifdef HAVE_ALLOCA
-# define MPFR_ALLOCA_MAX 16384
-# else
-# define MPFR_ALLOCA_MAX 0
-# endif
-#endif
-
-/* Do not define TMP_SALLOC (see the test in mpfr-impl.h)! */
-
-#if MPFR_ALLOCA_MAX != 0
-
-/* The following tries to get a good version of alloca.
- See gmp-impl.h for implementation details and original version */
-/* FIXME: the autoconf manual gives a different piece of code under the
- documentation of the AC_FUNC_ALLOCA macro. Should we switch to it?
- But note that the HAVE_ALLOCA test in it seems wrong.
- https://lists.gnu.org/archive/html/bug-autoconf/2019-01/msg00009.html */
-#ifndef alloca
-# if defined ( __GNUC__ )
-# define alloca __builtin_alloca
-# elif defined (__DECC)
-# define alloca(x) __ALLOCA(x)
-# elif defined (_MSC_VER)
-# include <malloc.h>
-# define alloca _alloca
-# elif defined (HAVE_ALLOCA_H)
-# include <alloca.h>
-# elif defined (_AIX) || defined (_IBMR2)
-# pragma alloca
-# else
-void *alloca (size_t);
-# endif
-#endif
-
-#define TMP_ALLOC(n) (MPFR_ASSERTD ((n) > 0), \
- MPFR_LIKELY ((n) <= MPFR_ALLOCA_MAX) ? \
- alloca (n) : mpfr_tmp_allocate (&tmp_marker, (n)))
-
-#else /* MPFR_ALLOCA_MAX == 0, alloca() not needed */
-
-#define TMP_ALLOC(n) (mpfr_tmp_allocate (&tmp_marker, (n)))
-
-#endif
-
-#define TMP_DECL(m) struct tmp_marker *tmp_marker
-
-#define TMP_MARK(m) (tmp_marker = 0)
-
-/* Note about TMP_FREE: For small precisions, tmp_marker is null as
- the allocation is done on the stack (see TMP_ALLOC above). */
-#define TMP_FREE(m) \
- (MPFR_LIKELY (tmp_marker == NULL) ? (void) 0 : mpfr_tmp_free (tmp_marker))
-
-#endif /* gmp-impl.h replacement */
-
-
-
-/******************************************************
- ****** GMP Interface which changes with versions *****
- ****** to other versions of GMP. Add missing *****
- ****** interfaces. *****
- ******************************************************/
-
-#ifndef MPFR_LONG_WITHIN_LIMB
-
-/* the following routines assume that an unsigned long has at least twice the
- size of an mp_limb_t */
-
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- unsigned long _p = (unsigned long) (m0) * (unsigned long) (m1); \
- (ph) = (mp_limb_t) (_p >> GMP_NUMB_BITS); \
- (pl) = (mp_limb_t) (_p & MPFR_LIMB_MAX); \
- } while (0)
-
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- do { \
- unsigned long _a = ((unsigned long) (ah) << GMP_NUMB_BITS) + (al); \
- unsigned long _b = ((unsigned long) (bh) << GMP_NUMB_BITS) + (bl); \
- unsigned long _s = _a + _b; \
- (sh) = (mp_limb_t) (_s >> GMP_NUMB_BITS); \
- (sl) = (mp_limb_t) (_s & MPFR_LIMB_MAX); \
- } while (0)
-
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- unsigned long _a = ((unsigned long) (ah) << GMP_NUMB_BITS) + (al); \
- unsigned long _b = ((unsigned long) (bh) << GMP_NUMB_BITS) + (bl); \
- unsigned long _s = _a - _b; \
- (sh) = (mp_limb_t) (_s >> GMP_NUMB_BITS); \
- (sl) = (mp_limb_t) (_s & MPFR_LIMB_MAX); \
- } while (0)
-
-#define count_leading_zeros(count,x) \
- do { \
- int _c = 0; \
- mp_limb_t _x = (mp_limb_t) (x); \
- while (GMP_NUMB_BITS > 16 && (_x >> (GMP_NUMB_BITS - 16)) == 0) \
- { \
- _c += 16; \
- _x = (mp_limb_t) (_x << 16); \
- } \
- if (GMP_NUMB_BITS > 8 && (_x >> (GMP_NUMB_BITS - 8)) == 0) \
- { \
- _c += 8; \
- _x = (mp_limb_t) (_x << 8); \
- } \
- if (GMP_NUMB_BITS > 4 && (_x >> (GMP_NUMB_BITS - 4)) == 0) \
- { \
- _c += 4; \
- _x = (mp_limb_t) (_x << 4); \
- } \
- if (GMP_NUMB_BITS > 2 && (_x >> (GMP_NUMB_BITS - 2)) == 0) \
- { \
- _c += 2; \
- _x = (mp_limb_t) (_x << 2); \
- } \
- if ((_x & MPFR_LIMB_HIGHBIT) == 0) \
- _c ++; \
- (count) = _c; \
- } while (0)
-
-#define invert_limb(invxl,xl) \
- do { \
- unsigned long _num; \
- MPFR_ASSERTD ((xl) != 0); \
- _num = (unsigned long) (mp_limb_t) ~(xl); \
- _num = (_num << GMP_NUMB_BITS) | MPFR_LIMB_MAX; \
- (invxl) = _num / (xl); \
- } while (0)
-
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- unsigned long _num; \
- _num = ((unsigned long) (n1) << GMP_NUMB_BITS) | (n0); \
- (q) = _num / (d); \
- (r) = _num % (d); \
- } while (0)
-
-#endif
-
-/* If mpn_sqr is not defined, use mpn_mul_n instead
- (mpn_sqr was called mpn_sqr_n (internal) in older versions of GMP). */
-#ifndef mpn_sqr
-# define mpn_sqr(dst,src,n) mpn_mul_n((dst),(src),(src),(n))
-#endif
-
-/* invert_limb macro, copied from GMP 5.0.2, file gmp-impl.h.
- It returns invxl = floor((B^2-1)/xl)-B, where B=2^BITS_PER_LIMB,
- assuming the most significant bit of xl is set. */
-#ifndef invert_limb
-#if defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_INVERT_LIMB)
-#define invert_limb(invxl,xl) \
- do { \
- invxl = __gmpn_invert_limb (xl); \
- } while (0)
-#else
-#define invert_limb(invxl,xl) \
- do { \
- mp_limb_t dummy MPFR_MAYBE_UNUSED; \
- MPFR_ASSERTD ((xl) != 0); \
- udiv_qrnnd (invxl, dummy, ~(xl), MPFR_LIMB_MAX, xl); \
- } while (0)
-#endif /* defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_INVERT_LIMB) */
-#endif /* ifndef invert_limb */
-
-/* udiv_qr_3by2 macro, adapted from GMP 5.0.2, file gmp-impl.h.
- Compute quotient the quotient and remainder for n / d. Requires d
- >= B^2 / 2 and n < d B. dinv is the inverse
-
- floor ((B^3 - 1) / (d0 + d1 B)) - B.
-
- NOTE: Output variables are updated multiple times. Only some inputs
- and outputs may overlap.
-*/
-#ifndef udiv_qr_3by2
-#define udiv_qr_3by2(q, r1, r0, n2, n1, n0, d1, d0, dinv) \
- do { \
- mp_limb_t _q0, _t1, _t0, _mask; \
- umul_ppmm ((q), _q0, (n2), (dinv)); \
- add_ssaaaa ((q), _q0, (q), _q0, (n2), (n1)); \
- \
- /* Compute the two most significant limbs of n - q'd */ \
- (r1) = (n1) - (d1) * (q); \
- (r0) = (n0); \
- sub_ddmmss ((r1), (r0), (r1), (r0), (d1), (d0)); \
- umul_ppmm (_t1, _t0, (d0), (q)); \
- sub_ddmmss ((r1), (r0), (r1), (r0), _t1, _t0); \
- (q)++; \
- \
- /* Conditionally adjust q and the remainders */ \
- _mask = - (mp_limb_t) ((r1) >= _q0); \
- (q) += _mask; \
- add_ssaaaa ((r1), (r0), (r1), (r0), _mask & (d1), _mask & (d0)); \
- if (MPFR_UNLIKELY ((r1) >= (d1))) \
- { \
- if ((r1) > (d1) || (r0) >= (d0)) \
- { \
- (q)++; \
- sub_ddmmss ((r1), (r0), (r1), (r0), (d1), (d0)); \
- } \
- } \
- } while (0)
-#endif
-
-/* invert_pi1 macro adapted from GMP 5, this computes in (dinv).inv32
- the value of floor((beta^3 - 1)/(d1*beta+d0)) - beta,
- cf "Improved Division by Invariant Integers" by Niels Möller and
- Torbjörn Granlund */
-typedef struct {mp_limb_t inv32;} mpfr_pi1_t;
-#ifndef invert_pi1
-#define invert_pi1(dinv, d1, d0) \
- do { \
- mp_limb_t _v, _p, _t1, _t0, _mask; \
- invert_limb (_v, d1); \
- _p = (d1) * _v; \
- _p += (d0); \
- if (_p < (d0)) \
- { \
- _v--; \
- _mask = -(mp_limb_t) (_p >= (d1)); \
- _p -= (d1); \
- _v += _mask; \
- _p -= _mask & (d1); \
- } \
- umul_ppmm (_t1, _t0, d0, _v); \
- _p += _t1; \
- if (_p < _t1) \
- { \
- _v--; \
- if (MPFR_UNLIKELY (_p >= (d1))) \
- { \
- if (_p > (d1) || _t0 >= (d0)) \
- _v--; \
- } \
- } \
- (dinv).inv32 = _v; \
- } while (0)
-#endif
-
-/* The following macro is copied from GMP-6.1.1, file gmp-impl.h,
- macro udiv_qrnnd_preinv.
- It computes q and r such that nh*2^GMP_NUMB_BITS + nl = q*d + r,
- with 0 <= r < d, assuming di = __gmpn_invert_limb (d). */
-#define __udiv_qrnnd_preinv(q, r, nh, nl, d, di) \
- do { \
- mp_limb_t _qh, _ql, _r, _mask; \
- umul_ppmm (_qh, _ql, (nh), (di)); \
- if (__builtin_constant_p (nl) && (nl) == 0) \
- { \
- _qh += (nh) + 1; \
- _r = - _qh * (d); \
- _mask = -(mp_limb_t) (_r > _ql); /* both > and >= are OK */ \
- _qh += _mask; \
- _r += _mask & (d); \
- } \
- else \
- { \
- add_ssaaaa (_qh, _ql, _qh, _ql, (nh) + 1, (nl)); \
- _r = (nl) - _qh * (d); \
- _mask = -(mp_limb_t) (_r > _ql); /* both > and >= are OK */ \
- _qh += _mask; \
- _r += _mask & (d); \
- if (MPFR_UNLIKELY (_r >= (d))) \
- { \
- _r -= (d); \
- _qh++; \
- } \
- } \
- (r) = _r; \
- (q) = _qh; \
- } while (0)
-
-#if GMP_NUMB_BITS == 64
-/* specialized version for nl = 0, with di computed inside */
-#define __udiv_qrnd_preinv(q, r, nh, d) \
- do { \
- mp_limb_t _di; \
- \
- MPFR_ASSERTD ((d) != 0); \
- MPFR_ASSERTD ((nh) < (d)); \
- MPFR_ASSERTD ((d) & MPFR_LIMB_HIGHBIT); \
- \
- __gmpfr_invert_limb (_di, d); \
- __udiv_qrnnd_preinv (q, r, nh, 0, d, _di); \
- } while (0)
-#elif defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_INVERT_LIMB)
-/* specialized version for nl = 0, with di computed inside */
-#define __udiv_qrnd_preinv(q, r, nh, d) \
- do { \
- mp_limb_t _di; \
- \
- MPFR_ASSERTD ((d) != 0); \
- MPFR_ASSERTD ((nh) < (d)); \
- MPFR_ASSERTD ((d) & MPFR_LIMB_HIGHBIT); \
- \
- _di = __gmpn_invert_limb (d); \
- __udiv_qrnnd_preinv (q, r, nh, 0, d, _di); \
- } while (0)
-#else
-/* Same as __udiv_qrnnd_c from longlong.h, but using a single UWType/UWtype
- division instead of two, and with n0=0. The analysis below assumes a limb
- has 64 bits for simplicity. */
-#define __udiv_qrnd_preinv(q, r, n1, d) \
- do { \
- UWtype __d1, __d0, __q1, __q0, __r1, __r0, __i; \
- \
- MPFR_ASSERTD ((d) != 0); \
- MPFR_ASSERTD ((n1) < (d)); \
- MPFR_ASSERTD ((d) & MPFR_LIMB_HIGHBIT); \
- \
- __d1 = __ll_highpart (d); \
- /* 2^31 <= d1 < 2^32 */ \
- __d0 = __ll_lowpart (d); \
- /* 0 <= d0 < 2^32 */ \
- __i = ~(UWtype) 0 / __d1; \
- /* 2^32 < i < 2^33 with i < 2^64/d1 */ \
- \
- __q1 = (((n1) / __ll_B) * __i) / __ll_B; \
- /* Since n1 < d, high(n1) <= d1 = high(d), thus */ \
- /* q1 <= high(n1) * (2^64/d1) / 2^32 <= 2^32 */ \
- /* and also q1 <= n1/d1 thus r1 >= 0 below */ \
- __r1 = (n1) - __q1 * __d1; \
- while (__r1 >= __d1) \
- __q1 ++, __r1 -= __d1; \
- /* by construction, we have n1 = q1*d1+r1, and 0 <= r1 < d1 */ \
- /* thus q1 <= n1/d1 < 2^32+2 */ \
- /* q1*d0 <= (2^32+1)*(2^32-1) <= 2^64-1 thus it fits in a limb. */ \
- __r0 = __r1 * __ll_B; \
- __r1 = __r0 - __q1 * __d0; \
- /* At most two corrections are needed like in __udiv_qrnnd_c. */ \
- if (__r1 > __r0) /* borrow when subtracting q1*d0 */ \
- { \
- __q1--, __r1 += (d); \
- if (__r1 > (d)) /* no carry when adding d */ \
- __q1--, __r1 += (d); \
- } \
- /* We can have r1 < m here, but in this case the true remainder */ \
- /* is 2^64+r1, which is > m (same analysis as below for r0). */ \
- /* Now we have n1*2^32 = q1*d + r1, with 0 <= r1 < d. */ \
- MPFR_ASSERTD(__r1 < (d)); \
- \
- /* The same analysis as above applies, with n1 replaced by r1, */ \
- /* q1 by q0, r1 by r0. */ \
- __q0 = ((__r1 / __ll_B) * __i) / __ll_B; \
- __r0 = __r1 - __q0 * __d1; \
- while (__r0 >= __d1) \
- __q0 ++, __r0 -= __d1; \
- __r1 = __r0 * __ll_B; \
- __r0 = __r1 - __q0 * __d0; \
- /* We know the quotient floor(r1*2^64/d) is q0, q0-1 or q0-2.*/ \
- if (__r0 > __r1) /* borrow when subtracting q0*d0 */ \
- { \
- /* The quotient is either q0-1 or q0-2. */ \
- __q0--, __r0 += (d); \
- if (__r0 > (d)) /* no carry when adding d */ \
- __q0--, __r0 += (d); \
- } \
- /* Now we have n1*2^64 = (q1*2^32+q0)*d + r0, with 0 <= r0 < d. */ \
- MPFR_ASSERTD(__r0 < (d)); \
- \
- (q) = __q1 * __ll_B | __q0; \
- (r) = __r0; \
- } while (0)
-#endif
-
-/******************************************************
- ************* GMP Basic Pointer Types ****************
- ******************************************************/
-
-typedef mp_limb_t *mpfr_limb_ptr;
-typedef const mp_limb_t *mpfr_limb_srcptr;
-
-/* mpfr_ieee_double_extract structure (copied from GMP 6.1.0, gmp-impl.h, with
- ieee_double_extract changed into mpfr_ieee_double_extract, and
- _GMP_IEEE_FLOATS changed into _MPFR_IEEE_FLOATS). */
-
-/* Define mpfr_ieee_double_extract and _MPFR_IEEE_FLOATS.
-
- Bit field packing is "implementation defined" according to C99, which
- leaves us at the compiler's mercy here. For some systems packing is
- defined in the ABI (eg. x86). In any case so far it seems universal that
- little endian systems pack from low to high, and big endian from high to
- low within the given type.
-
- Within the fields we rely on the integer endianness being the same as the
- float endianness, this is true everywhere we know of and it'd be a fairly
- strange system that did anything else. */
-
-/* Note for MPFR: building with "gcc -std=c89 -pedantic -pedantic-errors"
- fails if the bit-field type is unsigned long:
-
- error: type of bit-field '...' is a GCC extension [-Wpedantic]
-
- Though with -std=c99 no errors are obtained, this is still an extension
- in C99, which says:
-
- A bit-field shall have a type that is a qualified or unqualified version
- of _Bool, signed int, unsigned int, or some other implementation-defined
- type.
-
- So, unsigned int should be better. This will fail with implementations
- having 16-bit int's, but such implementations are not required to
- support bit-fields of size > 16 anyway; if ever an implementation with
- 16-bit int's is found, the appropriate minimal changes could still be
- done in the future.
-*/
-
-#ifndef _MPFR_IEEE_FLOATS
-
-#ifdef HAVE_DOUBLE_IEEE_LITTLE_ENDIAN
-#define _MPFR_IEEE_FLOATS 1
-union mpfr_ieee_double_extract
-{
- struct
- {
- unsigned int manl:32;
- unsigned int manh:20;
- unsigned int exp:11;
- unsigned int sig:1;
- } s;
- double d;
-};
-#endif
-
-#ifdef HAVE_DOUBLE_IEEE_BIG_ENDIAN
-#define _MPFR_IEEE_FLOATS 1
-union mpfr_ieee_double_extract
-{
- struct
- {
- unsigned int sig:1;
- unsigned int exp:11;
- unsigned int manh:20;
- unsigned int manl:32;
- } s;
- double d;
-};
-#endif
-
-#endif /* _MPFR_IEEE_FLOATS */
-
-/******************************************************
- ******************** C++ Compatibility ***************
- ******************************************************/
-#if defined (__cplusplus)
-}
-#endif
-
-#endif /* Gmp internal emulator */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-impl.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-impl.h
deleted file mode 100644
index c9c792a2132..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-impl.h
+++ /dev/null
@@ -1,2727 +0,0 @@
-/* Utilities for MPFR developers, not exported.
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_IMPL_H__
-#define __MPFR_IMPL_H__
-
-/* Include config.h before using ANY configure macros if needed. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-
-/******************************************************
- ***************** Standard headers *****************
- ******************************************************/
-
-/* Let's include some standard headers unconditionally as they are
- already needed by several source files or when some options are
- enabled/disabled, and it is easy to forget them (some configure
- options may hide the error).
- Note: If some source file must not have such a header included
- (which is very unlikely and probably means something broken in
- this source file), we should do that with some macro (that would
- also force to disable incompatible features). */
-
-#if defined (__cplusplus)
-# include <cstdio>
-# include <cstring>
-#else
-# include <stdio.h>
-# include <string.h>
-#endif
-
-/* Since <stdio.h> (<cstdio> for C++) is unconditionally included... */
-#define MPFR_USE_FILE
-
-#include <stdlib.h>
-#include <limits.h>
-#include <float.h> /* for FLT_RADIX, etc., tested below */
-
-
-/******************************************************
- ***************** Include files ********************
- ******************************************************/
-
-/* The macros defined in mpfr-cvers.h do not depend on anything,
- so that it is better to include this header file early: then
- it can be used by any other header. */
-#include "mpfr-cvers.h"
-
-#if defined(_MPFR_EXP_FORMAT) && _MPFR_EXP_FORMAT == 4
-/* mpfr_exp_t will be defined as intmax_t */
-# undef MPFR_NEED_INTMAX_H
-# define MPFR_NEED_INTMAX_H 1
-#endif
-
-#ifdef MPFR_NEED_INTMAX_H
-# include "mpfr-intmax.h"
-#endif
-
-/* Check if we are inside a build of MPFR or inside the test suite.
- This is needed in mpfr.h to export or import the functions.
- It matters only for Windows DLL */
-#ifndef __MPFR_TEST_H__
-# define __MPFR_WITHIN_MPFR 1
-#endif
-
-/* For the definition of MPFR_THREAD_ATTR. GCC/ICC detection macros are
- no longer used, as they sometimes gave incorrect information about
- the support of thread-local variables. A configure check is now done. */
-#if defined(MPFR_WANT_SHARED_CACHE)
-# define MPFR_NEED_THREAD_LOCK 1
-#endif
-#include "mpfr-thread.h"
-
-#ifndef MPFR_USE_MINI_GMP
-#include "gmp.h"
-#else
-#include "mini-gmp.h"
-#endif
-
-/* With the current code, MPFR_LONG_WITHIN_LIMB must be defined if an
- unsigned long fits in a limb. Since one cannot rely on the configure
- tests entirely (in particular when GMP is involved) and some platforms
- may not use configure, handle this definition here. A limb (mp_limb_t)
- is normally defined as an unsigned long, but this may not be the case
- with mini-gmp (and we can't rely on __GMP_SHORT_LIMB for this reason).
- So, concerning mp_limb_t, we can only test GMP_NUMB_BITS.
- Chosen heuristic: define MPFR_LONG_WITHIN_LIMB only when
- * mp_limb_t and unsigned long have both 32 bits exactly, or
- * mp_limb_t has at least 64 bits.
- Since we require that mp_limb_t have a size that is a power of 2, we
- can currently be wrong only if mini-gmp is used and unsigned long has
- more than 64 bits, which is unlikely to occur. */
-#if GMP_NUMB_BITS >= 64 || (GMP_NUMB_BITS == 32 && ULONG_MAX == 0xffffffff)
-# undef MPFR_LONG_WITHIN_LIMB
-# define MPFR_LONG_WITHIN_LIMB 1
-#endif
-
-#ifdef MPFR_HAVE_GMP_IMPL /* Build with gmp internals */
-
-# ifdef MPFR_USE_MINI_GMP
-# error "MPFR_HAVE_GMP_IMPL and MPFR_USE_MINI_GMP must not be both defined"
-# endif
-# include "gmp-impl.h"
-# ifdef MPFR_NEED_LONGLONG_H
-# include "longlong.h"
-# endif
-# include "mpfr.h"
-# include "mpfr-gmp.h"
-
-#else /* Build without gmp internals */
-
-/* if using mini-gmp, include missing definitions in mini-gmp */
-# ifdef MPFR_USE_MINI_GMP
-# include "mpfr-mini-gmp.h"
-# endif
-# include "mpfr.h"
-# include "mpfr-gmp.h"
-# ifdef MPFR_LONG_WITHIN_LIMB /* longlong.h is not valid otherwise */
-# ifdef MPFR_NEED_LONGLONG_H
-# define LONGLONG_STANDALONE
-# include "mpfr-longlong.h"
-# endif
-# endif
-
-#endif
-
-#undef MPFR_NEED_LONGLONG_H
-
-
-/******************************************************
- ************* Attribute definitions ****************
- ******************************************************/
-
-#if defined(MPFR_HAVE_NORETURN)
-/* _Noreturn is specified by ISO C11 (Section 6.7.4);
- in GCC, it is supported as of version 4.7. */
-# define MPFR_NORETURN _Noreturn
-#elif !defined(noreturn)
-/* A noreturn macro could be defined if <stdnoreturn.h> has been included,
- in which case it would make sense to #define MPFR_NORETURN noreturn.
- But this is unlikely, as MPFR_HAVE_NORETURN should have been defined
- in such a case. So, in doubt, let us avoid any code that would use a
- noreturn macro, since it could be invalid. */
-# if __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0)
-# define MPFR_NORETURN __attribute__ ((noreturn))
-# elif defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200)
-# define MPFR_NORETURN __declspec (noreturn)
-# endif
-#endif
-#ifndef MPFR_NORETURN
-# define MPFR_NORETURN
-#endif
-
-#if __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0)
-# define MPFR_CONST_FUNCTION_ATTR __attribute__ ((const))
-#else
-# define MPFR_CONST_FUNCTION_ATTR
-#endif
-
-#if __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0)
-# define MPFR_PURE_FUNCTION_ATTR __attribute__ ((pure))
-#else
-# define MPFR_PURE_FUNCTION_ATTR
-#endif
-
-/* The hot attribute on a function is used to inform the compiler
- that the function is a hot spot of the compiled program. */
-#if __MPFR_GNUC(4,3)
-# define MPFR_HOT_FUNCTION_ATTR __attribute__ ((hot))
-#else
-# define MPFR_HOT_FUNCTION_ATTR
-#endif
-
-/* The cold attribute on functions is used to inform the compiler
- that the function is unlikely to be executed. */
-#if __MPFR_GNUC(4,3)
-# define MPFR_COLD_FUNCTION_ATTR __attribute__ ((cold))
-#else
-# define MPFR_COLD_FUNCTION_ATTR
-#endif
-
-/* add MPFR_MAYBE_UNUSED after a variable declaration to avoid compiler
- warnings if it is not used */
-#if __MPFR_GNUC(3,4)
-#define MPFR_MAYBE_UNUSED __attribute__ ((unused))
-#else
-#define MPFR_MAYBE_UNUSED
-#endif
-
-/* This MPFR_FALLTHROUGH macro allows one to make fallthrough in switch case
- explicit. Use this macro at the end of a switch case if it falls through,
- in order to avoid a -Wimplicit-fallthrough warning. */
-#if __MPFR_GNUC(7,0)
-#define MPFR_FALLTHROUGH __attribute__ ((fallthrough))
-#else
-#define MPFR_FALLTHROUGH
-#endif
-
-
-
-/******************************************************
- *** Global internal variables and related macros ***
- ******************************************************/
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#if defined(MPFR_WANT_SHARED_CACHE)
-# define MPFR_CACHE_ATTR
-#else
-# define MPFR_CACHE_ATTR MPFR_THREAD_ATTR
-#endif
-
-/* Note: The following structure and types depend on the MPFR build options
- (including compiler options), due to the various locking methods affecting
- MPFR_DEFERRED_INIT_SLAVE_DECL and MPFR_LOCK_DECL. But since this is only
- internal, that's OK. */
-struct __gmpfr_cache_s {
- mpfr_t x;
- int inexact;
- int (*func)(mpfr_ptr, mpfr_rnd_t);
- MPFR_DEFERRED_INIT_SLAVE_DECL()
- MPFR_LOCK_DECL(lock)
-};
-typedef struct __gmpfr_cache_s mpfr_cache_t[1];
-typedef struct __gmpfr_cache_s *mpfr_cache_ptr;
-
-#if __GMP_LIBGMP_DLL
-# define MPFR_WIN_THREAD_SAFE_DLL 1
-#endif
-
-#if defined(__MPFR_WITHIN_MPFR) || !defined(MPFR_WIN_THREAD_SAFE_DLL)
-extern MPFR_THREAD_ATTR mpfr_flags_t __gmpfr_flags;
-extern MPFR_THREAD_ATTR mpfr_exp_t __gmpfr_emin;
-extern MPFR_THREAD_ATTR mpfr_exp_t __gmpfr_emax;
-extern MPFR_THREAD_ATTR mpfr_prec_t __gmpfr_default_fp_bit_precision;
-extern MPFR_THREAD_ATTR mpfr_rnd_t __gmpfr_default_rounding_mode;
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_cache_const_euler;
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_cache_const_catalan;
-# ifndef MPFR_USE_LOGGING
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_cache_const_pi;
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_cache_const_log2;
-# else
-/* Two constants are used by the logging functions (via mpfr_fprintf,
- then mpfr_log, for the base conversion): pi and log(2). Since the
- mpfr_cache function isn't re-entrant when working on the same cache,
- we need to define two caches for each constant. */
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_normal_pi;
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_normal_log2;
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_logging_pi;
-extern MPFR_CACHE_ATTR mpfr_cache_t __gmpfr_logging_log2;
-extern MPFR_CACHE_ATTR mpfr_cache_ptr __gmpfr_cache_const_pi;
-extern MPFR_CACHE_ATTR mpfr_cache_ptr __gmpfr_cache_const_log2;
-# endif
-#endif
-
-#ifdef MPFR_WIN_THREAD_SAFE_DLL
-# define MPFR_MAKE_VARFCT(T,N) T * N ## _f (void) { return &N; }
-__MPFR_DECLSPEC mpfr_flags_t * __gmpfr_flags_f (void);
-__MPFR_DECLSPEC mpfr_exp_t * __gmpfr_emin_f (void);
-__MPFR_DECLSPEC mpfr_exp_t * __gmpfr_emax_f (void);
-__MPFR_DECLSPEC mpfr_prec_t * __gmpfr_default_fp_bit_precision_f (void);
-__MPFR_DECLSPEC mpfr_rnd_t * __gmpfr_default_rounding_mode_f (void);
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_cache_const_euler_f (void);
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_cache_const_catalan_f (void);
-# ifndef MPFR_USE_LOGGING
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_cache_const_pi_f (void);
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_cache_const_log2_f (void);
-# else
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_normal_pi_f (void);
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_normal_log2_f (void);
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_logging_pi_f (void);
-__MPFR_DECLSPEC mpfr_cache_t * __gmpfr_logging_log2_f (void);
-__MPFR_DECLSPEC mpfr_cache_ptr * __gmpfr_cache_const_pi_f (void);
-__MPFR_DECLSPEC mpfr_cache_ptr * __gmpfr_cache_const_log2_f (void);
-# endif
-# ifndef __MPFR_WITHIN_MPFR
-# define __gmpfr_flags (*__gmpfr_flags_f())
-# define __gmpfr_emin (*__gmpfr_emin_f())
-# define __gmpfr_emax (*__gmpfr_emax_f())
-# define __gmpfr_default_fp_bit_precision (*__gmpfr_default_fp_bit_precision_f())
-# define __gmpfr_default_rounding_mode (*__gmpfr_default_rounding_mode_f())
-# define __gmpfr_cache_const_euler (*__gmpfr_cache_const_euler_f())
-# define __gmpfr_cache_const_catalan (*__gmpfr_cache_const_catalan_f())
-# ifndef MPFR_USE_LOGGING
-# define __gmpfr_cache_const_pi (*__gmpfr_cache_const_pi_f())
-# define __gmpfr_cache_const_log2 (*__gmpfr_cache_const_log2_f())
-# else
-# define __gmpfr_normal_pi (*__gmpfr_normal_pi_f())
-# define __gmpfr_logging_pi (*__gmpfr_logging_pi_f())
-# define __gmpfr_logging_log2 (*__gmpfr_logging_log2_f())
-# define __gmpfr_cache_const_pi (*__gmpfr_cache_const_pi_f())
-# define __gmpfr_cache_const_log2 (*__gmpfr_cache_const_log2_f())
-# endif
-# endif
-#else
-# define MPFR_MAKE_VARFCT(T,N)
-#endif
-
-# define MPFR_THREAD_VAR(T,N,V) \
- MPFR_THREAD_ATTR T N = (V); \
- MPFR_MAKE_VARFCT (T,N)
-
-#define BASE_MAX 62
-__MPFR_DECLSPEC extern const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2];
-
-/* Note: do not use the following values when they can be outside the
- current exponent range, e.g. when the exponent range has not been
- extended yet; under such a condition, they can be used only in
- mpfr_cmpabs. */
-__MPFR_DECLSPEC extern const mpfr_t __gmpfr_one;
-__MPFR_DECLSPEC extern const mpfr_t __gmpfr_two;
-__MPFR_DECLSPEC extern const mpfr_t __gmpfr_four;
-__MPFR_DECLSPEC extern const mpfr_t __gmpfr_mone;
-__MPFR_DECLSPEC extern const mpfr_t __gmpfr_const_log2_RNDD;
-__MPFR_DECLSPEC extern const mpfr_t __gmpfr_const_log2_RNDU;
-
-#if defined (__cplusplus)
- }
-#endif
-
-/* Replace some common functions for direct access to the global vars.
- The casts prevent these macros from being used as a lvalue (and this
- method makes sure that the expressions have the correct type). */
-
-#define mpfr_get_emin() ((mpfr_exp_t) __gmpfr_emin)
-#define mpfr_get_emax() ((mpfr_exp_t) __gmpfr_emax)
-#define mpfr_get_default_rounding_mode() \
- ((mpfr_rnd_t) __gmpfr_default_rounding_mode)
-#define mpfr_get_default_prec() \
- ((mpfr_prec_t) __gmpfr_default_fp_bit_precision)
-
-/* Flags related macros. */
-/* Note: Function-like macros that modify __gmpfr_flags are not defined
- because of the risk to break the sequence point rules if two such
- macros are used in the same expression (without a sequence point
- between). For instance, mpfr_sgn currently uses mpfr_set_erangeflag,
- which mustn't be implemented as a macro for this reason. */
-
-#define mpfr_flags_test(mask) \
- (__gmpfr_flags & (mpfr_flags_t) (mask))
-
-#if MPFR_FLAGS_ALL <= INT_MAX
-#define mpfr_underflow_p() \
- ((int) (__gmpfr_flags & MPFR_FLAGS_UNDERFLOW))
-#define mpfr_overflow_p() \
- ((int) (__gmpfr_flags & MPFR_FLAGS_OVERFLOW))
-#define mpfr_nanflag_p() \
- ((int) (__gmpfr_flags & MPFR_FLAGS_NAN))
-#define mpfr_inexflag_p() \
- ((int) (__gmpfr_flags & MPFR_FLAGS_INEXACT))
-#define mpfr_erangeflag_p() \
- ((int) (__gmpfr_flags & MPFR_FLAGS_ERANGE))
-#define mpfr_divby0_p() \
- ((int) (__gmpfr_flags & MPFR_FLAGS_DIVBY0))
-#endif
-
-/* Use a do-while statement for the following macros in order to prevent
- one from using them in an expression, as the sequence point rules could
- be broken if __gmpfr_flags is assigned twice in the same expression
- (via macro expansions). For instance, the mpfr_sgn macro currently uses
- mpfr_set_erangeflag, which mustn't be implemented as a function-like
- macro for this reason. It is not clear whether an expression with
- sequence points, like (void) (0, __gmpfr_flags = 0), would avoid UB. */
-#define MPFR_CLEAR_FLAGS() \
- do __gmpfr_flags = 0; while (0)
-#define MPFR_CLEAR_UNDERFLOW() \
- do __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_UNDERFLOW; while (0)
-#define MPFR_CLEAR_OVERFLOW() \
- do __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_OVERFLOW; while (0)
-#define MPFR_CLEAR_DIVBY0() \
- do __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_DIVBY0; while (0)
-#define MPFR_CLEAR_NANFLAG() \
- do __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_NAN; while (0)
-#define MPFR_CLEAR_INEXFLAG() \
- do __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_INEXACT; while (0)
-#define MPFR_CLEAR_ERANGEFLAG() \
- do __gmpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_ERANGE; while (0)
-#define MPFR_SET_UNDERFLOW() \
- do __gmpfr_flags |= MPFR_FLAGS_UNDERFLOW; while (0)
-#define MPFR_SET_OVERFLOW() \
- do __gmpfr_flags |= MPFR_FLAGS_OVERFLOW; while (0)
-#define MPFR_SET_DIVBY0() \
- do __gmpfr_flags |= MPFR_FLAGS_DIVBY0; while (0)
-#define MPFR_SET_NANFLAG() \
- do __gmpfr_flags |= MPFR_FLAGS_NAN; while (0)
-#define MPFR_SET_INEXFLAG() \
- do __gmpfr_flags |= MPFR_FLAGS_INEXACT; while (0)
-#define MPFR_SET_ERANGEFLAG() \
- do __gmpfr_flags |= MPFR_FLAGS_ERANGE; while (0)
-
-/* Testing an exception flag correctly is tricky. There are mainly two
- pitfalls: First, one needs to remember to clear the corresponding
- flag, in case it was set before the function call or during some
- intermediate computations (in practice, one can clear all the flags).
- Secondly, one needs to test the flag early enough, i.e. before it
- can be modified by another function. Moreover, it is quite difficult
- (if not impossible) to reliably check problems with "make check". To
- avoid these pitfalls, it is recommended to use the following macros.
- Other use of the exception-flag predicate functions/macros will be
- detected by mpfrlint.
- Note: _op can be either a statement or an expression.
- MPFR_BLOCK_EXCEP should be used only inside a block; it is useful to
- detect some exception in order to exit the block as soon as possible. */
-#define MPFR_BLOCK_DECL(_flags) mpfr_flags_t _flags
-/* The (void) (_flags) makes sure that _flags is read at least once (it
- makes sense to use MPFR_BLOCK while _flags will never be read in the
- source, so that we wish to avoid the corresponding warning). */
-#define MPFR_BLOCK(_flags,_op) \
- do \
- { \
- MPFR_CLEAR_FLAGS (); \
- _op; \
- (_flags) = __gmpfr_flags; \
- (void) (_flags); \
- } \
- while (0)
-#define MPFR_BLOCK_TEST(_flags,_f) MPFR_UNLIKELY ((_flags) & (_f))
-#define MPFR_BLOCK_EXCEP (__gmpfr_flags & (MPFR_FLAGS_UNDERFLOW | \
- MPFR_FLAGS_OVERFLOW | \
- MPFR_FLAGS_DIVBY0 | \
- MPFR_FLAGS_NAN))
-/* Let's use a MPFR_ prefix, because e.g. OVERFLOW is defined by glibc's
- math.h, though this is not a reserved identifier! */
-#define MPFR_UNDERFLOW(_flags) MPFR_BLOCK_TEST (_flags, MPFR_FLAGS_UNDERFLOW)
-#define MPFR_OVERFLOW(_flags) MPFR_BLOCK_TEST (_flags, MPFR_FLAGS_OVERFLOW)
-#define MPFR_NANFLAG(_flags) MPFR_BLOCK_TEST (_flags, MPFR_FLAGS_NAN)
-#define MPFR_INEXFLAG(_flags) MPFR_BLOCK_TEST (_flags, MPFR_FLAGS_INEXACT)
-#define MPFR_ERANGEFLAG(_flags) MPFR_BLOCK_TEST (_flags, MPFR_FLAGS_ERANGE)
-#define MPFR_DIVBY0(_flags) MPFR_BLOCK_TEST (_flags, MPFR_FLAGS_DIVBY0)
-
-
-/******************************************************
- ******************* Assertions *********************
- ******************************************************/
-
-/* MPFR_WANT_ASSERT can take 4 values (the default value is 0):
- -1 (or below): Do not check any assertion. Discouraged, in particular
- for a shared library (for time-critical applications, LTO with a
- static library should also be used anyway).
- 0: Check normal assertions.
- 1: Check debugging assertions too.
- 2 (or above): Additional checks that may take time. For instance,
- some functions may be tested by using two different implementations
- and comparing the results.
-*/
-
-/* Note: do not use GMP macros ASSERT_ALWAYS and ASSERT as they are not
- expressions, and as a consequence, they cannot be used in a for(),
- with a comma operator and so on. */
-
-/* MPFR_ASSERTN(expr): assertions that should normally be checked,
- otherwise give a hint to the compiler.
- MPFR_ASSERTD(expr): assertions that should be checked when testing,
- otherwise give a hint to the compiler.
- MPFR_DBGRES(assignment): to be used when the result is tested only
- in an MPFR_ASSERTD expression (in order to avoid a warning, e.g.
- with GCC's -Wunused-but-set-variable, in non-debug mode).
- Note: WG14/N2270 proposed a maybe_unused attribute, which could
- be useful to avoid MPFR_DBGRES. See:
- http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2270.pdf
- Note: Evaluating expr might yield side effects, but such side effects
- must not change the results (except by yielding an assertion failure).
-*/
-#ifndef MPFR_WANT_ASSERT
-# define MPFR_WANT_ASSERT 0
-#endif
-
-#if MPFR_WANT_ASSERT < 0
-# undef MPFR_EXP_CHECK
-# define MPFR_ASSERTN(expr) MPFR_ASSUME (expr)
-#else
-# define MPFR_ASSERTN(expr) \
- ((void) ((MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),MPFR_ASSUME(expr),0)))
-/* Some explanations: mpfr_assert_fail is not marked as "no return",
- so that ((void) ((MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),0)))
- cannot be a way to tell the compiler that after this code, expr is
- necessarily true. The MPFR_ASSUME(expr) is a way to tell the compiler
- that if expr is false, then ASSERT_FAIL(expr) does not return
- (otherwise they would be a contradiction / UB when MPFR_ASSUME(expr)
- is reached). Such information is useful to avoid warnings like those
- from -Wmaybe-uninitialized, e.g. in tests/turandom.c r11663 on t[0]
- from "mpfr_equal_p (y, t[0])".
- TODO: Remove the MPFR_ASSUME(expr) once mpfr_assert_fail is marked as
- "no return".
- */
-#endif
-
-#if MPFR_WANT_ASSERT > 0
-# define MPFR_EXP_CHECK 1
-# define MPFR_ASSERTD(expr) MPFR_ASSERTN (expr)
-# define MPFR_DBGRES(A) (A)
-#else
-# define MPFR_ASSERTD(expr) MPFR_ASSUME (expr)
-# define MPFR_DBGRES(A) ((void) (A))
-#endif
-
-/* MPFR_ASSUME is like assert(), but it is a hint to a compiler about a
- statement of fact in a function call free expression, which allows
- the compiler to generate better machine code.
- __builtin_unreachable has been introduced in GCC 4.5 but it works
- fine since 4.8 only (before it may generate unoptimized code if there
- are more than one decision).
- Note:
- The goal of MPFR_ASSUME() is to allow the compiler to optimize even
- more. Thus we need to make sure that its use in MPFR will never yield
- code generation. Since MPFR_ASSUME() may be used by MPFR_ASSERTN()
- and MPFR_ASSERTD(), whose expression might have side effects, we need
- to make sure that the expression x is not evaluated in such a case.
- This is done with __builtin_constant_p (!!(x) || !(x)), whose value
- is 0 if x has side effects, and normally 1 if the compiler knows that
- x has no side effects (since here, it can deduce that !!(x) || !(x)
- is equivalent to the constant 1). In the former case, MPFR_ASSUME(x)
- will give (void) 0, and in the latter case, it will give:
- (x) ? (void) 0 : __builtin_unreachable()
- In the development code, it is better to use MPFR_ASSERTD than
- MPFR_ASSUME, since it'll check if the condition is true in debug
- build.
-*/
-#if defined(MPFR_HAVE_BUILTIN_UNREACHABLE) && __MPFR_GNUC(4, 8)
-# define MPFR_ASSUME(x) \
- (! __builtin_constant_p (!!(x) || !(x)) || (x) ? \
- (void) 0 : __builtin_unreachable())
-#elif defined(_MSC_VER)
-# define MPFR_ASSUME(x) __assume(x)
-#else
-# define MPFR_ASSUME(x) ((void) 0)
-#endif
-
-#include "mpfr-sassert.h"
-
-/* Code to deal with impossible, for functions returning an int.
- The "return 0;" avoids an error with current GCC versions and
- "-Werror=return-type".
- WARNING: It doesn't use do { } while (0) for Insure++ */
-#if defined(HAVE_BUILTIN_UNREACHABLE)
-# define MPFR_RET_NEVER_GO_HERE() do { __builtin_unreachable(); } while (0)
-#else
-# define MPFR_RET_NEVER_GO_HERE() do { MPFR_ASSERTN(0); return 0; } while (0)
-#endif
-
-
-/******************************************************
- ******************* Warnings ***********************
- ******************************************************/
-
-/* MPFR_WARNING is no longer useful, but let's keep the macro in case
- it needs to be used again in the future. */
-
-#ifdef MPFR_USE_WARNINGS
-# define MPFR_WARNING(W) \
- do \
- { \
- char *q = getenv ("MPFR_QUIET"); \
- if (q == NULL || *q == 0) \
- fprintf (stderr, "MPFR: %s\n", W); \
- } \
- while (0)
-#else
-# define MPFR_WARNING(W) ((void) 0)
-#endif
-
-
-/******************************************************
- ***************** double macros ********************
- ******************************************************/
-
-/* Precision used for lower precision computations */
-#define MPFR_SMALL_PRECISION 32
-
-/* Definition of constants */
-#define LOG2 0.69314718055994528622 /* log(2) rounded to zero on 53 bits */
-
-/* MPFR_DOUBLE_SPEC = 1 if the C type 'double' corresponds to IEEE-754
- double precision, 0 if it doesn't, and undefined if one doesn't know.
- On all the tested machines, MPFR_DOUBLE_SPEC = 1. To have this macro
- defined here, #include <float.h> is needed. If need be, other values
- could be defined for other specs (once they are known). */
-#if !defined(MPFR_DOUBLE_SPEC) && defined(FLT_RADIX) && \
- defined(DBL_MANT_DIG) && defined(DBL_MIN_EXP) && defined(DBL_MAX_EXP)
-# if FLT_RADIX == 2 && DBL_MANT_DIG == 53 && \
- DBL_MIN_EXP == -1021 && DBL_MAX_EXP == 1024
-# define MPFR_DOUBLE_SPEC 1
-# else
-# define MPFR_DOUBLE_SPEC 0
-# endif
-#endif
-
-/* With -DMPFR_DISABLE_IEEE_FLOATS, exercise non IEEE floats */
-#ifdef MPFR_DISABLE_IEEE_FLOATS
-# ifdef _MPFR_IEEE_FLOATS
-# undef _MPFR_IEEE_FLOATS
-# endif
-# define _MPFR_IEEE_FLOATS 0
-# undef HAVE_LDOUBLE_IS_DOUBLE
-# undef HAVE_LDOUBLE_IEEE_EXT_LITTLE
-# undef HAVE_LDOUBLE_IEEE_EXT_BIG
-# undef HAVE_LDOUBLE_IEEE_QUAD_BIG
-# undef HAVE_LDOUBLE_IEEE_QUAD_LITTLE
-#endif
-
-#ifndef IEEE_DBL_MANT_DIG
-#define IEEE_DBL_MANT_DIG 53
-#endif
-#define MPFR_LIMBS_PER_DOUBLE ((IEEE_DBL_MANT_DIG-1)/GMP_NUMB_BITS+1)
-
-#ifndef IEEE_FLT_MANT_DIG
-#define IEEE_FLT_MANT_DIG 24
-#endif
-#define MPFR_LIMBS_PER_FLT ((IEEE_FLT_MANT_DIG-1)/GMP_NUMB_BITS+1)
-
-/* Visual C++ doesn't support +1.0/0.0, -1.0/0.0 and 0.0/0.0
- at compile time.
- Clang with -fsanitize=undefined is a bit similar due to a bug:
- https://llvm.org/bugs/show_bug.cgi?id=17381 (fixed on 2015-12-03)
- but even without its sanitizer, it may be better to use the
- double_zero version until IEEE 754 division by zero is properly
- supported:
- https://llvm.org/bugs/show_bug.cgi?id=17005
- Note: DBL_NAN is 0/0, thus its value is a quiet NaN (qNAN).
-*/
-#if (defined(_MSC_VER) && defined(_WIN32) && (_MSC_VER >= 1200)) || \
- defined(__clang__)
-static double double_zero = 0.0;
-# define DBL_NAN (double_zero/double_zero)
-# define DBL_POS_INF ((double) 1.0/double_zero)
-# define DBL_NEG_INF ((double)-1.0/double_zero)
-# define DBL_NEG_ZERO (-double_zero)
-#else
-# define DBL_POS_INF ((double) 1.0/0.0)
-# define DBL_NEG_INF ((double)-1.0/0.0)
-# define DBL_NAN ((double) 0.0/0.0)
-# define DBL_NEG_ZERO (-0.0)
-#endif
-
-/* Note: In the past, there was specific code for _MPFR_IEEE_FLOATS, which
- was based on NaN and Inf memory representations. This code was breaking
- the aliasing rules (see ISO C99, 6.5#6 and 6.5#7 on the effective type)
- and for this reason it did not behave correctly with GCC 4.5.0 20091119.
- The code needed a memory transfer and was probably not better than the
- macros below with a good compiler (a fix based on the NaN / Inf memory
- representation would be even worse due to C limitations), and this code
- could be selected only when MPFR was built with --with-gmp-build, thus
- introducing a difference (bad for maintaining/testing MPFR); therefore
- it has been removed. The old code required that the argument x be an
- lvalue of type double. We still require that, in case one would need
- to change the macros below, e.g. for some broken compiler. But the
- LVALUE(x) condition could be removed if really necessary. */
-/* Below, the &(x) == &(x) || &(x) != &(x) allows to make sure that x
- is a lvalue without (probably) any warning from the compiler. The
- &(x) != &(x) is needed to avoid a failure under Mac OS X 10.4.11
- (with Xcode 2.4.1, i.e. the latest one). */
-#define LVALUE(x) (&(x) == &(x) || &(x) != &(x))
-#define DOUBLE_ISINF(x) (LVALUE(x) && ((x) > DBL_MAX || (x) < -DBL_MAX))
-/* The DOUBLE_ISNAN(x) macro must be valid with any real floating type,
- thus constants must be of integer type (e.g. 0). */
-#if defined(MPFR_NANISNAN) || (__MPFR_GNUC(1,0) && !defined(__STRICT_ANSI__))
-/* Avoid MIPSpro / IRIX64 / GCC (incorrect) optimizations.
- The + must not be replaced by a ||. With gcc -ffast-math, NaN is
- regarded as a positive number or something like that; the second
- test catches this case.
- [2016-03-01] Various tests now fail with gcc -ffast-math or just
- -ffinite-math-only; such options are not supported, but this makes
- difficult to test MPFR assuming x == x optimization to 1. Anyway
- support of functions/tests of using native FP and special values for
- non-IEEE-754 environment will always be on a case-by-case basis.
- [2018-06-02] Let's use this macro instead of the usual (x) != (x) test
- with all GCC versions except in ISO C mode[*], as due to
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=323
- there is no guarantee that (x) != (x) will be true only for NaN.
- Testing __STRICT_ANSI__ is suggested in:
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85995
- but this is not safe if the user adds a -f option affecting conformance,
- in which case this would be a user error (however, note that the
- configure test associated with MPFR_NANISNAN will catch some issues).
-*/
-# define DOUBLE_ISNAN(x) \
- (LVALUE(x) && !((((x) >= 0) + ((x) <= 0)) && -(x)*(x) <= 0))
-#else
-# define DOUBLE_ISNAN(x) (LVALUE(x) && (x) != (x))
-#endif
-
-
-/******************************************************
- ********** long double macros and typedef **********
- ******************************************************/
-
-/* We try to get the exact value of the precision of long double
- (provided by the implementation) in order to provide correct
- rounding in this case (not guaranteed if the C implementation
- does not have an adequate long double arithmetic). Note that
- it may be lower than the precision of some numbers that can
- be represented in a long double; e.g. on FreeBSD/x86, it is
- 53 because the processor is configured to round in double
- precision (even when using the long double type -- this is a
- limitation of the x87 arithmetic), and on Mac OS X, it is 106
- because the implementation is a double-double arithmetic.
- Otherwise (e.g. in base 10), we get an upper bound of the
- precision, and correct rounding isn't currently provided.
-*/
-
-/* Definitions are enabled only if <float.h> is included. */
-#if defined (FLT_RADIX)
-
-#if defined(LDBL_MANT_DIG) && FLT_RADIX == 2
-# define MPFR_LDBL_MANT_DIG LDBL_MANT_DIG
-#else
-# define MPFR_LDBL_MANT_DIG \
- (sizeof(long double)*GMP_NUMB_BITS/sizeof(mp_limb_t))
-#endif
-
-/* LONGDOUBLE_NAN_ACTION executes the code "action" if x is a NaN. */
-
-/* On hppa2.0n-hp-hpux10 with the unbundled HP cc, the test x!=x on a NaN
- has been seen false, meaning NaNs are not detected. This seemed to
- happen only after other comparisons, not sure what's really going on. In
- any case we can pick apart the bytes to identify a NaN. */
-#ifdef HAVE_LDOUBLE_IEEE_QUAD_BIG
-# define LONGDOUBLE_NAN_ACTION(x, action) \
- do { \
- union { \
- long double ld; \
- struct { \
- unsigned int sign : 1; \
- unsigned int exp : 15; \
- unsigned int man3 : 16; \
- unsigned int man2 : 32; \
- unsigned int man1 : 32; \
- unsigned int man0 : 32; \
- } s; \
- } u; \
- u.ld = (x); \
- if (u.s.exp == 0x7FFFL \
- && (u.s.man0 | u.s.man1 | u.s.man2 | u.s.man3) != 0) \
- { action; } \
- } while (0)
-#endif
-
-#ifdef HAVE_LDOUBLE_IEEE_QUAD_LITTLE
-# define LONGDOUBLE_NAN_ACTION(x, action) \
- do { \
- union { \
- long double ld; \
- struct { \
- unsigned int man0 : 32; \
- unsigned int man1 : 32; \
- unsigned int man2 : 32; \
- unsigned int man3 : 16; \
- unsigned int exp : 15; \
- unsigned int sign : 1; \
- } s; \
- } u; \
- u.ld = (x); \
- if (u.s.exp == 0x7FFFL \
- && (u.s.man0 | u.s.man1 | u.s.man2 | u.s.man3) != 0) \
- { action; } \
- } while (0)
-#endif
-
-/* Under IEEE rules, NaN is not equal to anything, including itself.
- "volatile" here stops "cc" on mips64-sgi-irix6.5 from optimizing away
- x!=x. */
-#ifndef LONGDOUBLE_NAN_ACTION
-# define LONGDOUBLE_NAN_ACTION(x, action) \
- do { \
- volatile long double __x = LONGDOUBLE_VOLATILE (x); \
- if ((x) != __x) \
- { action; } \
- } while (0)
-
-/* Some compilers do not have a proper "volatile" and #define volatile
- to empty (to avoid a build failure with programs using "volatile"),
- i.e. "volatile" is just ignored and will not prevent optimizations
- that could potentially break the IEEE rules. In this case, call an
- external function, hoping that the compiler will not optimize. */
-# ifdef volatile
-__MPFR_DECLSPEC long double
- __gmpfr_longdouble_volatile (long double) MPFR_CONST_FUNCTION_ATTR;
-# define LONGDOUBLE_VOLATILE(x) (__gmpfr_longdouble_volatile (x))
-# define WANT_GMPFR_LONGDOUBLE_VOLATILE 1
-# else
-# define LONGDOUBLE_VOLATILE(x) (x)
-# endif
-#endif
-
-/* Some special case for IEEE_EXT Little Endian */
-#if HAVE_LDOUBLE_IEEE_EXT_LITTLE
-
-typedef union {
- long double ld;
- struct {
- unsigned int manl : 32;
- unsigned int manh : 32;
- unsigned int expl : 8 ;
- unsigned int exph : 7;
- unsigned int sign : 1;
- } s;
-} mpfr_long_double_t;
-
-#endif /* HAVE_LDOUBLE_IEEE_EXT_LITTLE */
-
-#endif /* long double macros and typedef */
-
-
-/******************************************************
- ***************** _Float128 support ****************
- ******************************************************/
-
-/* This is standardized by IEEE 754-2008. */
-#define IEEE_FLOAT128_MANT_DIG 113
-
-
-/******************************************************
- ****************** Decimal support *****************
- ******************************************************/
-
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-
-#if defined(__GNUC__) && \
- __FLT64_DECIMAL_DIG__ == 17 && \
- __FLT128_DECIMAL_DIG__ == 36
-
-/* GCC has standard _Decimal64 and _Decimal128 support.
- We may be able to detect the encoding here at compile time.
-
- Note: GCC may define __FLT64_DECIMAL_DIG__ and __FLT128_DECIMAL_DIG__
- even when it does not support _Decimal64 and _Decimal128, e.g. on
- aarch64 and sparc64. But since MPFR_WANT_DECIMAL_FLOATS has been
- defined, we already know that these types should be supported.
-
- Determining which encoding is used via macros is not documented, and
- there is the risk of being wrong. Currently __DECIMAL_BID_FORMAT__ is
- defined on x86, where the BID encoding is used. But on PowerPC, where
- the DPD encoding is used, nothing indicating the encoding is defined.
- A possible reason may be that the decimal support is provided by the
- hardware (in this case), so that GCC does not need to care about the
- encoding. Thus the absence of a __DECIMAL_BID_FORMAT__ macro would
- not necessarily imply DPD, as similarly in the future, GCC could
- support an ISA-level implementation using the BID encoding. */
-
-#ifdef __DECIMAL_BID_FORMAT__
-
-#if defined(DECIMAL_DPD_FORMAT)
-# error "Decimal encoding mismatch (DPD assumed, BID detected)"
-#elif !defined(DECIMAL_GENERIC_CODE)
-# define DECIMAL_BID_FORMAT 1
-#endif
-
-#endif /* __DECIMAL_BID_FORMAT__ */
-
-#endif /* __GNUC__ */
-
-#if defined(DECIMAL_GENERIC_CODE)
-# if defined(DECIMAL_BID_FORMAT)
-# error "DECIMAL_BID_FORMAT and DECIMAL_GENERIC_CODE both defined"
-# endif
-# if defined(DECIMAL_DPD_FORMAT)
-# error "DECIMAL_DPD_FORMAT and DECIMAL_GENERIC_CODE both defined"
-# endif
-#elif defined(DECIMAL_BID_FORMAT) || defined(DECIMAL_DPD_FORMAT)
-# if defined(DECIMAL_BID_FORMAT) && defined(DECIMAL_DPD_FORMAT)
-# error "DECIMAL_BID_FORMAT and DECIMAL_DPD_FORMAT both defined"
-# endif
-#else
-# define DECIMAL_GENERIC_CODE 1
-#endif
-
-/* TODO: The following is ugly and possibly wrong on some platforms.
- Do something like union ieee_decimal128. */
-union ieee_double_decimal64 { double d; _Decimal64 d64; };
-
-/* FIXME: There's no reason to make the _Decimal128 code depend on
- whether _MPFR_IEEE_FLOATS is defined or not, as _MPFR_IEEE_FLOATS
- is about binary IEEE-754 floating point only. */
-#if _MPFR_IEEE_FLOATS
-/* TODO: It would be better to define a different structure for DPD,
- where the t* bit-fields correspond to the declets. And to avoid
- confusion and detect coding errors, these bit-fields should have
- different names for BID and DPD. */
-union ieee_decimal128
-{
- struct
- {
- /* Assume little-endian double implies little-endian for bit-field
- allocation (C99 says: "The order of allocation of bit-fields
- within a unit (high-order to low-order or low-order to high-order)
- is implementation-defined.") */
-#if defined(HAVE_DECIMAL128_IEEE_LITTLE_ENDIAN)
-#define HAVE_DECIMAL128_IEEE 1
- unsigned int t3:32;
- unsigned int t2:32;
- unsigned int t1:32;
- unsigned int t0:14;
- unsigned int comb:17;
- unsigned int sig:1;
-#elif defined(HAVE_DECIMAL128_IEEE_BIG_ENDIAN)
-#define HAVE_DECIMAL128_IEEE 1
- unsigned int sig:1;
- unsigned int comb:17;
- unsigned int t0:14;
- unsigned int t1:32;
- unsigned int t2:32;
- unsigned int t3:32;
-#else /* unknown bit-field ordering */
- /* This will not be used as HAVE_DECIMAL128_IEEE is not defined. */
- unsigned int dummy;
-#endif
- } s;
- _Decimal128 d128;
-};
-#endif /* _MPFR_IEEE_FLOATS */
-
-#endif /* MPFR_WANT_DECIMAL_FLOATS */
-
-
-/******************************************************
- **************** mpfr_t properties *****************
- ******************************************************/
-
-#define MPFR_PREC_COND(p) ((p) >= MPFR_PREC_MIN && (p) <= MPFR_PREC_MAX)
-#define MPFR_PREC_IN_RANGE(p) (MPFR_ASSERTD (MPFR_PREC_COND(p)), (p))
-
-/* In the following macro, p is usually a mpfr_prec_t, but this macro
- works with other integer types (without integer overflow). Checking
- that p >= 1 in debug mode is useful here because this macro can be
- used on a computed precision (in particular, this formula does not
- work for a degenerate case p = 0, and could give different results
- on different platforms). But let us not use an assertion checking
- in the MPFR_LAST_LIMB() and MPFR_LIMB_SIZE() macros below to avoid
- too much expansion for assertions (in practice, this should be a
- problem just when testing MPFR with the --enable-assert configure
- option and the -ansi -pedantic-errors gcc compiler flags). */
-#define MPFR_PREC2LIMBS(p) \
- (MPFR_ASSERTD ((p) >= 1), ((p) - 1) / GMP_NUMB_BITS + 1)
-
-#define MPFR_PREC(x) ((x)->_mpfr_prec)
-#define MPFR_EXP(x) ((x)->_mpfr_exp)
-#define MPFR_MANT(x) ((x)->_mpfr_d)
-#define MPFR_GET_PREC(x) MPFR_PREC_IN_RANGE (MPFR_PREC (x))
-#define MPFR_LAST_LIMB(x) ((MPFR_GET_PREC (x) - 1) / GMP_NUMB_BITS)
-#define MPFR_LIMB_SIZE(x) (MPFR_LAST_LIMB (x) + 1)
-
-
-/******************************************************
- *************** Exponent properties ****************
- ******************************************************/
-
-/* Limits of the mpfr_exp_t type (NOT those of valid exponent values).
- These macros can be used in preprocessor directives. */
-#if _MPFR_EXP_FORMAT == 1
-# define MPFR_EXP_MAX (SHRT_MAX)
-# define MPFR_EXP_MIN (SHRT_MIN)
-#elif _MPFR_EXP_FORMAT == 2
-# define MPFR_EXP_MAX (INT_MAX)
-# define MPFR_EXP_MIN (INT_MIN)
-#elif _MPFR_EXP_FORMAT == 3
-# define MPFR_EXP_MAX (LONG_MAX)
-# define MPFR_EXP_MIN (LONG_MIN)
-#elif _MPFR_EXP_FORMAT == 4
-/* Note: MPFR_EXP_MAX and MPFR_EXP_MIN must not be used in #if directives
- if _MPFR_EXP_FORMAT == 4 and MPFR_HAVE_INTMAX_MAX is not defined. */
-# define MPFR_EXP_MAX (MPFR_INTMAX_MAX)
-# define MPFR_EXP_MIN (MPFR_INTMAX_MIN)
-#else
-# error "Invalid MPFR Exp format"
-#endif
-
-/* Before doing a cast to mpfr_uexp_t, make sure that the value is
- nonnegative. */
-#define MPFR_UEXP(X) (MPFR_ASSERTD ((X) >= 0), (mpfr_uexp_t) (X))
-
-/* Define mpfr_eexp_t, mpfr_ueexp_t and MPFR_EXP_FSPEC.
- Warning! MPFR_EXP_FSPEC is the length modifier associated with
- these types mpfr_eexp_t / mpfr_ueexp_t, not with mpfr_exp_t.
- (Should we change that, or is this safer to detect bugs, e.g.
- in the context of an expression with computations with long?)
-*/
-#if _MPFR_EXP_FORMAT <= 3
-typedef long mpfr_eexp_t;
-typedef unsigned long mpfr_ueexp_t;
-# define mpfr_get_exp_t(x,r) mpfr_get_si((x),(r))
-# define mpfr_set_exp_t(x,e,r) mpfr_set_si((x),(e),(r))
-# define MPFR_EXP_FSPEC "l"
-#else
-typedef intmax_t mpfr_eexp_t;
-typedef uintmax_t mpfr_ueexp_t;
-# define mpfr_get_exp_t(x,r) mpfr_get_sj((x),(r))
-# define mpfr_set_exp_t(x,e,r) mpfr_set_sj((x),(e),(r))
-# define MPFR_EXP_FSPEC "j"
-#endif
-
-/* Size of mpfr_exp_t in limbs */
-#define MPFR_EXP_LIMB_SIZE \
- ((sizeof (mpfr_exp_t) - 1) / MPFR_BYTES_PER_MP_LIMB + 1)
-
-/* Invalid exponent value (to track bugs...) */
-#define MPFR_EXP_INVALID \
- ((mpfr_exp_t) 1 << (GMP_NUMB_BITS*sizeof(mpfr_exp_t)/sizeof(mp_limb_t)-2))
-
-/* Definition of the exponent limits for MPFR numbers.
- * These limits are chosen so that if e is such an exponent, then 2e-1 and
- * 2e+1 are representable. This is useful for intermediate computations,
- * in particular the multiplication.
- */
-#undef MPFR_EMIN_MIN
-#undef MPFR_EMIN_MAX
-#undef MPFR_EMAX_MIN
-#undef MPFR_EMAX_MAX
-#define MPFR_EMIN_MIN (1-MPFR_EXP_INVALID)
-#define MPFR_EMIN_MAX (MPFR_EXP_INVALID-1)
-#define MPFR_EMAX_MIN (1-MPFR_EXP_INVALID)
-#define MPFR_EMAX_MAX (MPFR_EXP_INVALID-1)
-
-/* Use MPFR_GET_EXP and MPFR_SET_EXP instead of MPFR_EXP directly,
- unless when the exponent may be out-of-range, for instance when
- setting the exponent before calling mpfr_check_range.
- MPFR_EXP_CHECK is defined when MPFR_WANT_ASSERT is defined, but if you
- don't use MPFR_WANT_ASSERT (for speed reasons), you can still define
- MPFR_EXP_CHECK by setting -DMPFR_EXP_CHECK in $CFLAGS.
- Note about MPFR_EXP_IN_RANGE and MPFR_SET_EXP:
- The exp expression is required to have a signed type. To avoid spurious
- failures, we could cast (exp) to mpfr_exp_t, but this wouldn't allow us
- to detect some bugs that can occur on particular platforms. Anyway, an
- unsigned type for exp is suspicious and should be regarded as a bug.
-*/
-
-#define MPFR_EXP_IN_RANGE(e) \
- (MPFR_ASSERTD (IS_SIGNED (e)), (e) >= __gmpfr_emin && (e) <= __gmpfr_emax)
-
-#ifdef MPFR_EXP_CHECK
-# define MPFR_GET_EXP(x) (mpfr_get_exp) (x)
-# define MPFR_SET_EXP(x,e) (MPFR_ASSERTN (MPFR_EXP_IN_RANGE (e)), \
- (void) (MPFR_EXP (x) = (e)))
-# define MPFR_SET_INVALID_EXP(x) ((void) (MPFR_EXP (x) = MPFR_EXP_INVALID))
-#else
-# define MPFR_GET_EXP(x) MPFR_EXP (x)
-# define MPFR_SET_EXP(x,e) ((void) (MPFR_EXP (x) = (e)))
-# define MPFR_SET_INVALID_EXP(x) ((void) 0)
-#endif
-
-/* Compare the exponents of two numbers, which can be either MPFR numbers
- or UBF numbers. */
-#define MPFR_UBF_EXP_LESS_P(x,y) \
- (MPFR_UNLIKELY (MPFR_IS_UBF (x) || MPFR_IS_UBF (y)) ? \
- mpfr_ubf_exp_less_p (x, y) : MPFR_GET_EXP (x) < MPFR_GET_EXP (y))
-
-
-/******************************************************
- ********* Singular values (NAN, INF, ZERO) *********
- ******************************************************/
-
-/* Enum special value of exponent. */
-# define MPFR_EXP_ZERO (MPFR_EXP_MIN+1)
-# define MPFR_EXP_NAN (MPFR_EXP_MIN+2)
-# define MPFR_EXP_INF (MPFR_EXP_MIN+3)
-# define MPFR_EXP_UBF (MPFR_EXP_MIN+4)
-
-#define MPFR_IS_NAN(x) (MPFR_EXP(x) == MPFR_EXP_NAN)
-#define MPFR_SET_NAN(x) (MPFR_EXP(x) = MPFR_EXP_NAN)
-#define MPFR_IS_INF(x) (MPFR_EXP(x) == MPFR_EXP_INF)
-#define MPFR_SET_INF(x) (MPFR_EXP(x) = MPFR_EXP_INF)
-#define MPFR_IS_ZERO(x) (MPFR_EXP(x) == MPFR_EXP_ZERO)
-#define MPFR_SET_ZERO(x) (MPFR_EXP(x) = MPFR_EXP_ZERO)
-#define MPFR_NOTZERO(x) (MPFR_EXP(x) != MPFR_EXP_ZERO)
-#define MPFR_IS_UBF(x) (MPFR_EXP(x) == MPFR_EXP_UBF)
-#define MPFR_SET_UBF(x) (MPFR_EXP(x) = MPFR_EXP_UBF)
-
-#define MPFR_IS_NORMALIZED(x) \
- (MPFR_LIMB_MSB (MPFR_MANT(x)[MPFR_LAST_LIMB(x)]) != 0)
-
-#define MPFR_IS_FP(x) (!MPFR_IS_NAN(x) && !MPFR_IS_INF(x))
-
-/* Note: contrary to the MPFR_IS_PURE_*(x) macros, the MPFR_IS_SINGULAR*(x)
- macros may be used even when x is being constructed, i.e. its exponent
- field is already set (possibly out-of-range), but its significand field
- may still contain arbitrary data. Thus MPFR_IS_PURE_FP(x) is not always
- equivalent to !MPFR_IS_SINGULAR(x); see the code below. */
-#define MPFR_IS_SINGULAR(x) (MPFR_EXP(x) <= MPFR_EXP_INF)
-#define MPFR_IS_SINGULAR_OR_UBF(x) (MPFR_EXP(x) <= MPFR_EXP_UBF)
-
-/* The following two macros return true iff the value is a regular number,
- i.e. it is not a singular number. In debug mode, the format is also
- checked: valid exponent, but potentially out of range; normalized value.
- In contexts where UBF's are not accepted or not possible, MPFR_IS_PURE_FP
- is preferable. If UBF's are accepted, MPFR_IS_PURE_UBF must be used. */
-#define MPFR_IS_PURE_FP(x) \
- (!MPFR_IS_SINGULAR(x) && \
- (MPFR_ASSERTD (MPFR_EXP (x) >= MPFR_EMIN_MIN && \
- MPFR_EXP (x) <= MPFR_EMAX_MAX && \
- MPFR_IS_NORMALIZED (x)), 1))
-#define MPFR_IS_PURE_UBF(x) \
- (!MPFR_IS_SINGULAR(x) && \
- (MPFR_ASSERTD ((MPFR_IS_UBF (x) || \
- (MPFR_EXP (x) >= MPFR_EMIN_MIN && \
- MPFR_EXP (x) <= MPFR_EMAX_MAX)) && \
- MPFR_IS_NORMALIZED (x)), 1))
-
-/* Ditto for 2 numbers. */
-#define MPFR_ARE_SINGULAR(x,y) \
- (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)) || MPFR_UNLIKELY(MPFR_IS_SINGULAR(y)))
-#define MPFR_ARE_SINGULAR_OR_UBF(x,y) \
- (MPFR_UNLIKELY(MPFR_IS_SINGULAR_OR_UBF(x)) || \
- MPFR_UNLIKELY(MPFR_IS_SINGULAR_OR_UBF(y)))
-
-
-/******************************************************
- ******************** Sign macros *******************
- ******************************************************/
-
-/* These are sign macros for MPFR numbers only. */
-
-#define MPFR_SIGN_POS (1)
-#define MPFR_SIGN_NEG (-1)
-
-#define MPFR_IS_STRICTPOS(x) (MPFR_NOTZERO (x) && MPFR_IS_POS (x))
-#define MPFR_IS_STRICTNEG(x) (MPFR_NOTZERO (x) && MPFR_IS_NEG (x))
-
-#define MPFR_IS_NEG(x) (MPFR_SIGN(x) < 0)
-#define MPFR_IS_POS(x) (MPFR_SIGN(x) > 0)
-
-#define MPFR_SET_POS(x) (MPFR_SIGN(x) = MPFR_SIGN_POS)
-#define MPFR_SET_NEG(x) (MPFR_SIGN(x) = MPFR_SIGN_NEG)
-
-#define MPFR_CHANGE_SIGN(x) (MPFR_SIGN(x) = -MPFR_SIGN(x))
-#define MPFR_SET_SAME_SIGN(x, y) (MPFR_SIGN(x) = MPFR_SIGN(y))
-#define MPFR_SET_OPPOSITE_SIGN(x, y) (MPFR_SIGN(x) = -MPFR_SIGN(y))
-#define MPFR_ASSERT_SIGN(s) \
- (MPFR_ASSERTD((s) == MPFR_SIGN_POS || (s) == MPFR_SIGN_NEG))
-#define MPFR_SET_SIGN(x, s) \
- (MPFR_ASSERT_SIGN(s), MPFR_SIGN(x) = s)
-#define MPFR_IS_POS_SIGN(s1) ((s1) > 0)
-#define MPFR_IS_NEG_SIGN(s1) ((s1) < 0)
-#define MPFR_MULT_SIGN(s1, s2) ((s1) * (s2))
-/* Transform a sign to 1 or -1 */
-#define MPFR_FROM_SIGN_TO_INT(s) (s)
-#define MPFR_INT_SIGN(x) MPFR_FROM_SIGN_TO_INT(MPFR_SIGN(x))
-
-
-/******************************************************
- *************** Ternary value macros ***************
- ******************************************************/
-
-/* Special inexact value */
-#define MPFR_EVEN_INEX 2
-
-/* Note: the addition/subtraction of 2 comparisons below instead of the
- use of the ?: operator allows GCC and Clang to generate better code
- in general; this is the case at least with GCC on x86 (32 & 64 bits),
- PowerPC and Aarch64 (64-bit ARM), and with Clang on x86_64.
- VSIGN code based on mini-gmp's GMP_CMP macro; adapted for INEXPOS. */
-
-/* Macros for functions returning two inexact values in an 'int'
- (exact = 0, positive = 1, negative = 2) */
-#define INEXPOS(y) (((y) != 0) + ((y) < 0))
-#define INEX(y,z) (INEXPOS(y) | (INEXPOS(z) << 2))
-
-/* When returning the ternary inexact value, ALWAYS use one of the
- following two macros, unless the flag comes from another function
- returning the ternary inexact value */
-#define MPFR_RET(I) return \
- (I) != 0 ? ((__gmpfr_flags |= MPFR_FLAGS_INEXACT), (I)) : 0
-#define MPFR_RET_NAN return (__gmpfr_flags |= MPFR_FLAGS_NAN), 0
-
-/* Sign of a native value. */
-#define VSIGN(I) (((I) > 0) - ((I) < 0))
-#define SAME_SIGN(I1,I2) (VSIGN (I1) == VSIGN (I2))
-
-
-/******************************************************
- *************** Rounding mode macros ***************
- ******************************************************/
-
-/* MPFR_RND_MAX gives the number of supported rounding modes by all functions.
- */
-#define MPFR_RND_MAX ((mpfr_rnd_t)((MPFR_RNDF)+1))
-
-/* We want to test this :
- * (rnd == MPFR_RNDU && test) || (rnd == RNDD && !test)
- * ie it transforms RNDU or RNDD to Away or Zero according to the sign */
-#define MPFR_IS_RNDUTEST_OR_RNDDNOTTEST(rnd, test) \
- (((rnd) + (test)) == MPFR_RNDD)
-
-/* We want to test if rnd = Zero, or Away.
- 'neg' is 1 if negative, and 0 if positive. */
-#define MPFR_IS_LIKE_RNDZ(rnd, neg) \
- ((rnd) == MPFR_RNDZ || MPFR_IS_RNDUTEST_OR_RNDDNOTTEST (rnd, neg))
-
-#define MPFR_IS_LIKE_RNDA(rnd, neg) \
- ((rnd) == MPFR_RNDA || MPFR_IS_RNDUTEST_OR_RNDDNOTTEST (rnd, (neg) == 0))
-
-#define MPFR_IS_LIKE_RNDU(rnd, sign) \
- (((rnd) == MPFR_RNDU) || \
- ((rnd) == MPFR_RNDZ && MPFR_IS_NEG_SIGN (sign)) || \
- ((rnd) == MPFR_RNDA && MPFR_IS_POS_SIGN (sign)))
-
-#define MPFR_IS_LIKE_RNDD(rnd, sign) \
- (((rnd) == MPFR_RNDD) || \
- ((rnd) == MPFR_RNDZ && MPFR_IS_POS_SIGN (sign)) || \
- ((rnd) == MPFR_RNDA && MPFR_IS_NEG_SIGN (sign)))
-
-/* Invert a rounding mode, RNDN, RNDZ and RNDA are unchanged */
-#define MPFR_INVERT_RND(rnd) ((rnd) == MPFR_RNDU ? MPFR_RNDD : \
- (rnd) == MPFR_RNDD ? MPFR_RNDU : (rnd))
-
-/* Transform RNDU and RNDD to RNDZ according to test */
-#define MPFR_UPDATE_RND_MODE(rnd, test) \
- do { \
- if (MPFR_UNLIKELY(MPFR_IS_RNDUTEST_OR_RNDDNOTTEST(rnd, test))) \
- rnd = MPFR_RNDZ; \
- } while (0)
-
-/* Transform RNDU and RNDD to RNDZ or RNDA according to sign,
- leave the other modes unchanged.
- Usage: MPFR_UPDATE2_RND_MODE (rnd_mode, MPFR_SIGN (x)) */
-#define MPFR_UPDATE2_RND_MODE(rnd, sign) \
- do { \
- if (rnd == MPFR_RNDU) \
- rnd = MPFR_IS_POS_SIGN (sign) ? MPFR_RNDA : MPFR_RNDZ; \
- else if (rnd == MPFR_RNDD) \
- rnd = MPFR_IS_NEG_SIGN (sign) ? MPFR_RNDA : MPFR_RNDZ; \
- } while (0)
-
-
-/******************************************************
- ****************** Limb macros *********************
- ******************************************************/
-
-/* MPFR_LIMB: Cast to mp_limb_t, assuming that x is based on mp_limb_t
- variables (needed when mp_limb_t is defined as an integer type shorter
- than int, due to the integer promotion rules, which is possible only
- if MPFR_LONG_WITHIN_LIMB is not defined). Warning! This will work
- only when the computed value x is congruent to the expected value
- modulo MPFR_LIMB_MAX + 1. Be aware that this macro may not solve all
- the problems related to the integer promotion rules, because it won't
- have an influence on the evaluation of x itself. Hence the need for...
-
- MPFR_LIMB_LSHIFT: Left shift by making sure that the shifted argument
- is unsigned (use unsigned long due to the MPFR_LONG_WITHIN_LIMB test).
- For instance, due to the integer promotion rules, if mp_limb_t is
- defined as a 16-bit unsigned short and an int has 32 bits, then a
- mp_limb_t will be converted to an int, which is signed.
-*/
-#ifdef MPFR_LONG_WITHIN_LIMB
-#define MPFR_LIMB(x) (x)
-#define MPFR_LIMB_LSHIFT(x,c) ((x) << (c))
-#else
-#define MPFR_LIMB(x) ((mp_limb_t) (x))
-#define MPFR_LIMB_LSHIFT(x,c) MPFR_LIMB((unsigned long) (x) << (c))
-#endif
-
-/* Definition of simple mp_limb_t constants */
-#define MPFR_LIMB_ZERO ((mp_limb_t) 0)
-#define MPFR_LIMB_ONE ((mp_limb_t) 1)
-#define MPFR_LIMB_HIGHBIT MPFR_LIMB_LSHIFT (MPFR_LIMB_ONE, GMP_NUMB_BITS - 1)
-#define MPFR_LIMB_MAX ((mp_limb_t) -1)
-
-/* Mask to get the Most Significant Bit of a limb */
-#define MPFR_LIMB_MSB(l) ((mp_limb_t) ((l) & MPFR_LIMB_HIGHBIT))
-
-/* Mask for the low 's' bits of a limb */
-#define MPFR_LIMB_MASK(s) \
- (MPFR_ASSERTD (s >= 0 && s <= GMP_NUMB_BITS), \
- s == GMP_NUMB_BITS ? MPFR_LIMB_MAX : \
- (mp_limb_t) (MPFR_LIMB_LSHIFT (MPFR_LIMB_ONE, s) - MPFR_LIMB_ONE))
-
-/******************************************************
- ********************** Memory **********************
- ******************************************************/
-
-#define MPFR_BYTES_PER_MP_LIMB (GMP_NUMB_BITS/CHAR_BIT)
-
-/* Heap memory handling
- --------------------
- Memory allocated for a significand (mantissa) has the following
- format:
- * A mp_size_t in a mpfr_size_limb_t union (see below).
- * An array of mp_limb_t (not all of them are necessarily used,
- as the precision can change without a reallocation).
- The goal of the mpfr_size_limb_t union is to make sure that
- size and alignment requirements are satisfied if mp_size_t and
- mp_limb_t have different sizes and/or alignment requirements.
- And the casts to void * prevents the compiler from emitting a
- warning (or error), such as:
- cast increases required alignment of target type
- with the -Wcast-align GCC option. Correct alignment is checked
- by MPFR_SET_MANT_PTR (when setting MPFR_MANT(x), the MPFR code
- should use this macro or guarantee a correct alignment at this
- time).
- Moreover, pointer conversions are not fully specified by the
- C standard, and the use of a union (and the double casts below)
- might help even if mp_size_t and mp_limb_t have the same size
- and the same alignment requirements. Still, there is currently
- no guarantee that this code is portable. Note that union members
- are not used at all.
-*/
-typedef union { mp_size_t s; mp_limb_t l; } mpfr_size_limb_t;
-#define MPFR_GET_ALLOC_SIZE(x) \
- (((mp_size_t *) (void *) MPFR_MANT(x))[-1] + 0)
-#define MPFR_SET_ALLOC_SIZE(x, n) \
- (((mp_size_t *) (void *) MPFR_MANT(x))[-1] = (n))
-#define MPFR_MALLOC_SIZE(s) \
- (sizeof(mpfr_size_limb_t) + MPFR_BYTES_PER_MP_LIMB * (size_t) (s))
-#define MPFR_SET_MANT_PTR(x,p) \
- (MPFR_MANT(x) = (mp_limb_t *) ((mpfr_size_limb_t *) (p) + 1))
-#define MPFR_GET_REAL_PTR(x) \
- ((void *) ((mpfr_size_limb_t *) (void *) MPFR_MANT(x) - 1))
-
-/* Temporary memory handling */
-#ifndef TMP_SALLOC
-/* GMP 4.1.x or below or internals */
-#define MPFR_TMP_DECL TMP_DECL
-#define MPFR_TMP_MARK TMP_MARK
-#define MPFR_TMP_ALLOC TMP_ALLOC
-#define MPFR_TMP_FREE TMP_FREE
-#else
-#define MPFR_TMP_DECL(x) TMP_DECL
-#define MPFR_TMP_MARK(x) TMP_MARK
-#define MPFR_TMP_ALLOC(s) TMP_ALLOC(s)
-#define MPFR_TMP_FREE(x) TMP_FREE
-#endif
-
-#define MPFR_TMP_LIMBS_ALLOC(N) \
- ((mp_limb_t *) MPFR_TMP_ALLOC ((size_t) (N) * MPFR_BYTES_PER_MP_LIMB))
-
-/* The temporary var doesn't have any size field, but it doesn't matter
- * since only functions dealing with the Heap care about it */
-#define MPFR_TMP_INIT1(xp, x, p) \
- ( MPFR_PREC(x) = (p), \
- MPFR_MANT(x) = (xp), \
- MPFR_SET_POS(x), \
- MPFR_SET_INVALID_EXP(x))
-
-#define MPFR_TMP_INIT(xp, x, p, s) \
- (xp = MPFR_TMP_LIMBS_ALLOC(s), \
- MPFR_TMP_INIT1(xp, x, p))
-
-/* Set y to s*significand(x)*2^e, for example MPFR_ALIAS(y,x,1,MPFR_EXP(x))
- sets y to |x|, and MPFR_ALIAS(y,x,MPFR_SIGN(x),0) sets y to x*2^f such
- that 1/2 <= |y| < 1. Does not check y is in the valid exponent range.
- WARNING! x and y share the same mantissa. So, some operations are
- not valid if x has been provided via an argument, e.g., trying to
- modify the mantissa of y, even temporarily, or calling mpfr_clear on y.
-*/
-#define MPFR_ALIAS(y,x,s,e) \
- (MPFR_PREC(y) = MPFR_PREC(x), \
- MPFR_SIGN(y) = (s), \
- MPFR_EXP(y) = (e), \
- MPFR_MANT(y) = MPFR_MANT(x))
-
-#define MPFR_TMP_INIT_ABS(y,x) \
- MPFR_ALIAS (y, x, MPFR_SIGN_POS, MPFR_EXP (x))
-
-#define MPFR_TMP_INIT_NEG(y,x) \
- MPFR_ALIAS (y, x, - MPFR_SIGN (x), MPFR_EXP (x))
-
-
-/******************************************************
- ******************* Cache macros *******************
- ******************************************************/
-
-/* Cache struct */
-#define mpfr_const_pi(_d,_r) mpfr_cache(_d, __gmpfr_cache_const_pi,_r)
-#define mpfr_const_log2(_d,_r) mpfr_cache(_d, __gmpfr_cache_const_log2, _r)
-#define mpfr_const_euler(_d,_r) mpfr_cache(_d, __gmpfr_cache_const_euler, _r)
-#define mpfr_const_catalan(_d,_r) mpfr_cache(_d,__gmpfr_cache_const_catalan,_r)
-
-/* Declare a global cache for a MPFR constant.
- If the shared cache is enabled, and if the constructor/destructor
- attributes are available, we need to initialize the shared lock of
- the cache with a constructor. It is the goal of the macro
- MPFR_DEFERRED_INIT_MASTER_DECL.
- FIXME: When MPFR is built with shared cache, the field "lock" is
- not explicitly initialized, which can yield a warning, e.g. with
- GCC's -Wmissing-field-initializers (and an error with -Werror).
- Since one does not know what is behind the associated typedef name,
- one cannot provide an explicit initialization for such a type. Two
- possible solutions:
- 1. Encapsulate the type in a structure or a union and use the
- universal zero initializer: { 0 }
- But: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80454
- 2. Use designated initializers when supported. But this needs a
- configure test.
- Using a diagnostic pragma to ignore the warning in this particular case
- is not really possible, because the warning occurs when the macro is
- expanded and one cannot put a pragma in the contents of a #define.
-*/
-#define MPFR_DECL_INIT_CACHE(_cache,_func) \
- MPFR_DEFERRED_INIT_MASTER_DECL(_func, \
- MPFR_LOCK_INIT( (_cache)->lock), \
- MPFR_LOCK_CLEAR((_cache)->lock)) \
- MPFR_CACHE_ATTR mpfr_cache_t _cache = {{ \
- {{ 0, MPFR_SIGN_POS, 0, (mp_limb_t *) 0 }}, 0, _func \
- MPFR_DEFERRED_INIT_SLAVE_VALUE(_func) \
- }}; \
- MPFR_MAKE_VARFCT (mpfr_cache_t,_cache)
-
-/******************************************************
- *************** Threshold parameters ***************
- ******************************************************/
-
-#include "mparam.h"
-
-
-/******************************************************
- ****************** Useful macros *******************
- ******************************************************/
-
-/* The MAX, MIN and ABS macros may already be defined if gmp-impl.h has
- been included. They have the same semantics as in gmp-impl.h, but the
- expressions may be slightly different. So, it's better to undefine
- them first, as required by the ISO C standard. */
-#undef MAX
-#undef MIN
-#undef ABS
-#define MAX(a, b) (((a) > (b)) ? (a) : (b))
-#define MIN(a, b) (((a) < (b)) ? (a) : (b))
-#define ABS(x) (((x)>0) ? (x) : -(x))
-
-/* These macros help the compiler to determine if a test is
- likely or unlikely. The !! is necessary in case x is larger
- than a long. */
-#if defined MPFR_DEBUG_PREDICTION && __MPFR_GNUC(3,0)
-
-/* Code to debug branch prediction, based on Ulrich Drepper's paper
- * "What Every Programmer Should Know About Memory":
- * http://people.freebsd.org/~lstewart/articles/cpumemory.pdf
- */
-asm (".section predict_data, \"aw\"; .previous\n"
- ".section predict_line, \"a\"; .previous\n"
- ".section predict_file, \"a\"; .previous");
-# if defined __x86_64__
-# define MPFR_DEBUGPRED__(e,E) \
- ({ long _e = !!(e); \
- asm volatile (".pushsection predict_data\n" \
- "..predictcnt%=: .quad 0; .quad 0\n" \
- ".section predict_line; .quad %c1\n" \
- ".section predict_file; .quad %c2; .popsection\n" \
- "addq $1,..predictcnt%=(,%0,8)" \
- : : "r" (_e == E), "i" (__LINE__), "i" (__FILE__)); \
- __builtin_expect (_e, E); \
- })
-# elif defined __i386__
-# define MPFR_DEBUGPRED__(e,E) \
- ({ long _e = !!(e); \
- asm volatile (".pushsection predict_data\n" \
- "..predictcnt%=: .long 0; .long 0\n" \
- ".section predict_line; .long %c1\n" \
- ".section predict_file; .long %c2; .popsection\n" \
- "incl ..predictcnt%=(,%0,4)" \
- : : "r" (_e == E), "i" (__LINE__), "i" (__FILE__)); \
- __builtin_expect (_e, E); \
- })
-# else
-# error "MPFR_DEBUGPRED__ definition missing"
-# endif
-
-# define MPFR_LIKELY(x) MPFR_DEBUGPRED__ ((x), 1)
-# define MPFR_UNLIKELY(x) MPFR_DEBUGPRED__ ((x), 0)
-
-#elif __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0)
-
-# define MPFR_LIKELY(x) (__builtin_expect(!!(x), 1))
-# define MPFR_UNLIKELY(x) (__builtin_expect(!!(x), 0))
-
-#else
-
-# define MPFR_LIKELY(x) (x)
-# define MPFR_UNLIKELY(x) (x)
-
-#endif
-
-/* Declare that some variable is initialized before being used (without a
- dummy initialization) in order to avoid some compiler warnings. Use the
- VAR = VAR trick (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36296#c3)
- only with gcc as this is undefined behavior, and we don't know what other
- compilers do (they may also be smarter). This self-initialization trick
- could be disabled with future gcc versions.
- However, for clang (which defines __GNUC__), this trick must not be used
- as it currently generates a warning, at least with:
- Debian clang version 3.0-6.2 (tags/RELEASE_30/final) (based on LLVM 3.0)
- __VERSION__ "4.2.1 Compatible Debian Clang 3.0 (tags/RELEASE_30/final)"
- __clang__ 1
- __clang_major__ 3
- __clang_minor__ 0
- __clang_patchlevel__ 0
- __clang_version__ "3.0 (tags/RELEASE_30/final)"
- (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=705583 for this
- problem with clang). */
-#if defined(__GNUC__) && !defined(__clang__)
-# define INITIALIZED(VAR) VAR = VAR
-#else
-# define INITIALIZED(VAR) VAR
-#endif
-
-/* Ceil log 2: If GCC, uses a GCC extension, otherwise calls a function */
-/* Warning:
- * Needs to define MPFR_NEED_LONGLONG.
- * Computes ceil(log2(x)) only for x integer (unsigned long)
- * Undefined if x is 0 */
-#if __MPFR_GNUC(2,95) || __MPFR_ICC(8,1,0)
-/* Note: This macro MPFR_INT_CEIL_LOG2 shouldn't be used in an MPFR_ASSERT*
- macro, either directly or indirectly via other macros, otherwise it can
- yield an error due to a too large stringized expression in ASSERT_FAIL.
- A static inline function could be a better solution than this macro. */
-/* FIXME: The current code assumes that x fits in an unsigned long
- (used by __gmpfr_int_ceil_log2) while MPFR_INT_CEIL_LOG2 is used on
- values that might be larger than ULONG_MAX on some platforms and/or
- with some build options; a loop could be used if x > ULONG_MAX. If
- the type of x is <= unsigned long, then no additional code will be
- generated thanks to obvious compiler optimization. */
-#ifdef MPFR_LONG_WITHIN_LIMB
-# define MPFR_INT_CEIL_LOG2(x) \
- (MPFR_UNLIKELY ((x) == 1) ? 0 : \
- __extension__ ({ int _b; mp_limb_t _limb; \
- MPFR_ASSERTN ((x) > 1); \
- _limb = (x) - 1; \
- MPFR_ASSERTN (_limb == (x) - 1); \
- count_leading_zeros (_b, _limb); \
- _b = GMP_NUMB_BITS - _b; \
- MPFR_ASSERTD (_b >= 0); \
- _b; }))
-#else
-# define MPFR_INT_CEIL_LOG2(x) \
- (MPFR_UNLIKELY ((x) == 1) ? 0 : \
- __extension__ ({ int _c = 0; unsigned long _x = (x) - 1; \
- MPFR_ASSERTN ((x) > 1); \
- while (_x != 0) \
- { \
- _x = _x >> 1; \
- _c ++; \
- }; \
- MPFR_ASSERTD (_c >= 0); \
- _c; }))
-#endif /* MPFR_LONG_WITHIN_LIMB */
-#else
-# define MPFR_INT_CEIL_LOG2(x) \
- (MPFR_ASSERTN (x <= ULONG_MAX), __gmpfr_int_ceil_log2(x))
-#endif /* __MPFR_GNUC(2,95) || __MPFR_ICC(8,1,0) */
-
-/* Add two integers with overflow handling */
-/* Example: MPFR_SADD_OVERFLOW (c, a, b, long, unsigned long,
- * LONG_MIN, LONG_MAX,
- * goto overflow, goto underflow); */
-#define MPFR_UADD_OVERFLOW(c,a,b,ACTION_IF_OVERFLOW) \
- do { \
- (c) = (a) + (b); \
- if ((c) < (a)) ACTION_IF_OVERFLOW; \
- } while (0)
-
-#define MPFR_SADD_OVERFLOW(c,a,b,STYPE,UTYPE,MIN,MAX,ACTION_IF_POS_OVERFLOW,ACTION_IF_NEG_OVERFLOW) \
- do { \
- if ((a) >= 0 && (b) >= 0) { \
- UTYPE uc,ua,ub; \
- ua = (UTYPE) (a); ub = (UTYPE) (b); \
- MPFR_UADD_OVERFLOW (uc, ua, ub, ACTION_IF_POS_OVERFLOW); \
- if (uc > (UTYPE)(MAX)) ACTION_IF_POS_OVERFLOW; \
- else (c) = (STYPE) uc; \
- } else if ((a) < 0 && (b) < 0) { \
- UTYPE uc,ua,ub; \
- ua = -(UTYPE) (a); ub = -(UTYPE) (b); \
- MPFR_UADD_OVERFLOW (uc, ua, ub, ACTION_IF_NEG_OVERFLOW); \
- if (uc >= -(UTYPE)(MIN) || uc > (UTYPE)(MAX)) { \
- if (uc == -(UTYPE)(MIN)) (c) = (MIN); \
- else ACTION_IF_NEG_OVERFLOW; } \
- else (c) = -(STYPE) uc; \
- } else (c) = (a) + (b); \
- } while (0)
-
-
-/* Set a number to 1 (Fast) - It doesn't check if 1 is in the exponent range */
-#define MPFR_SET_ONE(x) \
-do { \
- mp_size_t _size = MPFR_LAST_LIMB(x); \
- MPFR_SET_POS(x); \
- MPFR_EXP(x) = 1; \
- MPN_ZERO ( MPFR_MANT(x), _size); \
- MPFR_MANT(x)[_size] = MPFR_LIMB_HIGHBIT; \
-} while (0)
-
-/* Compute s = (-a) % GMP_NUMB_BITS as unsigned */
-#define MPFR_UNSIGNED_MINUS_MODULO(s, a) \
- do \
- { \
- if (IS_POW2 (GMP_NUMB_BITS)) \
- (s) = (- (unsigned int) (a)) % GMP_NUMB_BITS; \
- else \
- { \
- (s) = (a) % GMP_NUMB_BITS; \
- if ((s) != 0) \
- (s) = GMP_NUMB_BITS - (s); \
- } \
- MPFR_ASSERTD ((s) >= 0 && (s) < GMP_NUMB_BITS); \
- } \
- while (0)
-
-/* Test if X (positive) is a power of 2 */
-#define IS_POW2(X) (((X) & ((X) - 1)) == 0)
-#define NOT_POW2(X) (((X) & ((X) - 1)) != 0)
-
-/* Safe absolute value and difference (to avoid possible integer overflow) */
-/* type is the target (unsigned) type */
-#define SAFE_ABS(type,x) ((x) >= 0 ? (type)(x) : -(type)(x))
-#define SAFE_DIFF(type,x,y) (MPFR_ASSERTD((x) >= (y)), (type)(x) - (type)(y))
-
-/* Check whether an integer type (after integer promotion) is signed.
- This can be determined at compilation time, but unfortunately this
- is not a constant expression, so that this cannot be used for a
- static assertion. */
-#define IS_SIGNED(X) ((X) * 0 - 1 < 0)
-
-#define mpfr_get_d1(x) mpfr_get_d(x,__gmpfr_default_rounding_mode)
-
-/* Store in r the size in bits of the mpz_t z */
-#define MPFR_MPZ_SIZEINBASE2(r, z) \
- do { \
- int _cnt; \
- mp_size_t _size; \
- MPFR_ASSERTD (mpz_sgn (z) != 0); \
- _size = ABSIZ(z); \
- MPFR_ASSERTD (_size >= 1); \
- count_leading_zeros (_cnt, PTR(z)[_size-1]); \
- (r) = (mp_bitcnt_t) _size * GMP_NUMB_BITS - _cnt; \
- } while (0)
-
-/* MPFR_LCONV_DPTS can also be forced to 0 or 1 by the user. */
-#ifndef MPFR_LCONV_DPTS
-# if defined(HAVE_LOCALE_H) && \
- defined(HAVE_STRUCT_LCONV_DECIMAL_POINT) && \
- defined(HAVE_STRUCT_LCONV_THOUSANDS_SEP)
-# define MPFR_LCONV_DPTS 1
-# else
-# define MPFR_LCONV_DPTS 0
-# endif
-#endif
-
-/* FIXME: Add support for multibyte decimal_point and thousands_sep since
- this can be found in practice: https://reviews.llvm.org/D27167 says:
- "I found this problem on FreeBSD 11, where thousands_sep in fr_FR.UTF-8
- is a no-break space (U+00A0)."
- Note, however, that this is not allowed by the C standard, which just
- says "character" and not "multibyte character".
- In the mean time, in case of non-single-byte character, revert to the
- default value. */
-#if MPFR_LCONV_DPTS
-#include <locale.h>
-/* Warning! In case of signed char, the value of MPFR_DECIMAL_POINT may
- be negative (the ISO C99 does not seem to forbid negative values). */
-#define MPFR_DECIMAL_POINT \
- (localeconv()->decimal_point[1] != '\0' ? \
- (char) '.' : localeconv()->decimal_point[0])
-#define MPFR_THOUSANDS_SEPARATOR \
- (localeconv()->thousands_sep[0] == '\0' || \
- localeconv()->thousands_sep[1] != '\0' ? \
- (char) '\0' : localeconv()->thousands_sep[0])
-#else
-#define MPFR_DECIMAL_POINT ((char) '.')
-#define MPFR_THOUSANDS_SEPARATOR ((char) '\0')
-#endif
-
-/* Size of an array, as a constant expression. */
-#define numberof_const(x) (sizeof (x) / sizeof ((x)[0]))
-
-/* Size of an array, safe version but not a constant expression:
- Since an array can silently be converted to a pointer, we check
- that this macro is applied on an array, not a pointer.
- Also make sure that the type is signed ("long" is sufficient
- in practice since the sizes come from the MPFR source), so that
- the value can be used in arbitrary expressions without the risk
- of silently switching to unsigned arithmetic. */
-#undef numberof
-#if 0
-/* The following should work with GCC as documented in its manual,
- but fails: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38377#c10
- Thus disabled for now. */
-# define numberof(x) \
- ( __extension__ ({ \
- int is_array = (void *) &(x) == (void *) &(x)[0]; \
- MPFR_STAT_STATIC_ASSERT (__builtin_constant_p (is_array) ? \
- is_array : 1); \
- MPFR_ASSERTN (is_array); \
- (long) numberof_const (x); \
- }) )
-#else
-# define numberof(x) \
- (MPFR_ASSERTN ((void *) &(x) == (void *) &(x)[0]), \
- (long) numberof_const (x))
-#endif
-
-/* Addition with carry (detected by GCC and other good compilers). */
-#define ADD_LIMB(u,v,c) ((u) += (v), (c) = (u) < (v))
-
-
-/******************************************************
- ************ Save exponent/flags macros ************
- ******************************************************/
-
-/* See README.dev for details on how to use the macros.
- They are used to set the exponent range to the maximum
- temporarily */
-
-typedef struct {
- mpfr_flags_t saved_flags;
- mpfr_exp_t saved_emin;
- mpfr_exp_t saved_emax;
-} mpfr_save_expo_t;
-
-#define MPFR_SAVE_EXPO_DECL(x) mpfr_save_expo_t x
-#define MPFR_SAVE_EXPO_MARK(x) \
- ((x).saved_flags = __gmpfr_flags, \
- (x).saved_emin = __gmpfr_emin, \
- (x).saved_emax = __gmpfr_emax, \
- __gmpfr_emin = MPFR_EMIN_MIN, \
- __gmpfr_emax = MPFR_EMAX_MAX)
-#define MPFR_SAVE_EXPO_FREE(x) \
- (__gmpfr_flags = (x).saved_flags, \
- __gmpfr_emin = (x).saved_emin, \
- __gmpfr_emax = (x).saved_emax)
-#define MPFR_SAVE_EXPO_UPDATE_FLAGS(x, flags) \
- (x).saved_flags |= (flags)
-
-/* Speed up final checking */
-#define mpfr_check_range(x,t,r) \
- (MPFR_LIKELY (MPFR_EXP_IN_RANGE (MPFR_EXP (x))) \
- ? ((t) ? (__gmpfr_flags |= MPFR_FLAGS_INEXACT, (t)) : 0) \
- : mpfr_check_range(x,t,r))
-
-
-/******************************************************
- ***************** Inline rounding ******************
- ******************************************************/
-
-/*
- * Note: due to the labels, one cannot use a macro MPFR_RNDRAW* more than
- * once in a function (otherwise these labels would not be unique).
- */
-
-/*
- * Round mantissa (srcp, sprec) to mpfr_t dest using rounding mode rnd
- * assuming dest's sign is sign.
- * In rounding to nearest mode, execute MIDDLE_HANDLER when the value
- * is the middle of two consecutive numbers in dest precision.
- * Execute OVERFLOW_HANDLER in case of overflow when rounding.
- *
- * Note: the exponent field of dest is not used, possibly except by the
- * handlers. It is the caller (via the handlers) who entirely decides
- * how to handle it.
- */
-#define MPFR_RNDRAW_GEN(inexact, dest, srcp, sprec, rnd, sign, \
- MIDDLE_HANDLER, OVERFLOW_HANDLER) \
- do { \
- mp_size_t _dests, _srcs; \
- mp_limb_t *_destp; \
- mpfr_prec_t _destprec, _srcprec; \
- \
- /* Check Trivial Case when Dest Mantissa has more bits than source */ \
- _srcprec = (sprec); \
- _destprec = MPFR_PREC (dest); \
- MPFR_ASSERTD (_srcprec >= MPFR_PREC_MIN); \
- MPFR_ASSERTD (_destprec >= MPFR_PREC_MIN); \
- _destp = MPFR_MANT (dest); \
- if (MPFR_UNLIKELY (_destprec >= _srcprec)) \
- { \
- _srcs = MPFR_PREC2LIMBS (_srcprec); \
- _dests = MPFR_PREC2LIMBS (_destprec) - _srcs; \
- MPN_COPY (_destp + _dests, srcp, _srcs); \
- MPN_ZERO (_destp, _dests); \
- inexact = 0; \
- } \
- else \
- { \
- /* Non trivial case: rounding needed */ \
- mpfr_prec_t _sh; \
- mp_limb_t *_sp; \
- mp_limb_t _rb, _sb, _ulp; \
- \
- /* Compute Position and shift */ \
- _srcs = MPFR_PREC2LIMBS (_srcprec); \
- _dests = MPFR_PREC2LIMBS (_destprec); \
- MPFR_UNSIGNED_MINUS_MODULO (_sh, _destprec); \
- _sp = (srcp) + _srcs - _dests; \
- \
- /* General case when prec % GMP_NUMB_BITS != 0 */ \
- if (MPFR_LIKELY (_sh != 0)) \
- { \
- mp_limb_t _mask; \
- /* Compute Rounding Bit and Sticky Bit */ \
- /* Note: in directed rounding modes, if the rounding bit */ \
- /* is 1, the behavior does not depend on the sticky bit; */ \
- /* thus we will not try to compute it in this case (this */ \
- /* can be much faster and avoids to read uninitialized */ \
- /* data in the current mpfr_mul implementation). We just */ \
- /* make sure that _sb is initialized. */ \
- _mask = MPFR_LIMB_ONE << (_sh - 1); \
- _rb = _sp[0] & _mask; \
- _sb = _sp[0] & (_mask - 1); \
- if ((rnd) == MPFR_RNDN || _rb == 0) \
- { \
- mp_limb_t *_tmp; \
- mp_size_t _n; \
- for (_tmp = _sp, _n = _srcs - _dests ; \
- _n != 0 && _sb == 0 ; _n--) \
- _sb = *--_tmp; \
- } \
- _ulp = 2 * _mask; \
- } \
- else /* _sh == 0 */ \
- { \
- MPFR_ASSERTD (_dests < _srcs); \
- /* Compute Rounding Bit and Sticky Bit - see note above */ \
- _rb = _sp[-1] & MPFR_LIMB_HIGHBIT; \
- _sb = _sp[-1] & (MPFR_LIMB_HIGHBIT-1); \
- if ((rnd) == MPFR_RNDN || _rb == 0) \
- { \
- mp_limb_t *_tmp; \
- mp_size_t _n; \
- for (_tmp = _sp - 1, _n = _srcs - _dests - 1 ; \
- _n != 0 && _sb == 0 ; _n--) \
- _sb = *--_tmp; \
- } \
- _ulp = MPFR_LIMB_ONE; \
- } \
- /* Rounding */ \
- if (rnd == MPFR_RNDF) \
- { \
- inexact = 0; \
- goto trunc_doit; \
- } \
- else if (rnd == MPFR_RNDN) \
- { \
- if (_rb == 0) \
- { \
- trunc: \
- inexact = MPFR_LIKELY ((_sb | _rb) != 0) ? -sign : 0; \
- trunc_doit: \
- MPN_COPY (_destp, _sp, _dests); \
- _destp[0] &= ~(_ulp - 1); \
- } \
- else if (MPFR_UNLIKELY (_sb == 0)) \
- { /* Middle of two consecutive representable numbers */ \
- MIDDLE_HANDLER; \
- } \
- else \
- { \
- if (0) \
- goto addoneulp_doit; /* dummy code to avoid warning */ \
- addoneulp: \
- inexact = sign; \
- addoneulp_doit: \
- if (MPFR_UNLIKELY (mpn_add_1 (_destp, _sp, _dests, _ulp))) \
- { \
- _destp[_dests - 1] = MPFR_LIMB_HIGHBIT; \
- OVERFLOW_HANDLER; \
- } \
- _destp[0] &= ~(_ulp - 1); \
- } \
- } \
- else \
- { /* Directed rounding mode */ \
- if (MPFR_IS_LIKE_RNDZ (rnd, MPFR_IS_NEG_SIGN (sign))) \
- goto trunc; \
- else if (MPFR_UNLIKELY ((_sb | _rb) == 0)) \
- { \
- inexact = 0; \
- goto trunc_doit; \
- } \
- else \
- goto addoneulp; \
- } \
- } \
- } while (0)
-
-/*
- * Round mantissa (srcp, sprec) to mpfr_t dest using rounding mode rnd
- * assuming dest's sign is sign.
- * Execute OVERFLOW_HANDLER in case of overflow when rounding.
- */
-#define MPFR_RNDRAW(inexact, dest, srcp, sprec, rnd, sign, OVERFLOW_HANDLER) \
- MPFR_RNDRAW_GEN (inexact, dest, srcp, sprec, rnd, sign, \
- if ((_sp[0] & _ulp) == 0) \
- { \
- inexact = -sign; \
- goto trunc_doit; \
- } \
- else \
- goto addoneulp; \
- , OVERFLOW_HANDLER)
-
-/*
- * Round mantissa (srcp, sprec) to mpfr_t dest using rounding mode rnd
- * assuming dest's sign is sign.
- * Execute OVERFLOW_HANDLER in case of overflow when rounding.
- * Set inexact to +/- MPFR_EVEN_INEX in case of even rounding.
- */
-#define MPFR_RNDRAW_EVEN(inexact, dest, srcp, sprec, rnd, sign, \
- OVERFLOW_HANDLER) \
- MPFR_RNDRAW_GEN (inexact, dest, srcp, sprec, rnd, sign, \
- if ((_sp[0] & _ulp) == 0) \
- { \
- inexact = -MPFR_EVEN_INEX * sign; \
- goto trunc_doit; \
- } \
- else \
- { \
- inexact = MPFR_EVEN_INEX * sign; \
- goto addoneulp_doit; \
- } \
- , OVERFLOW_HANDLER)
-
-/* Return TRUE if b is non singular and we can round it to precision 'prec'
- and determine the ternary value, with rounding mode 'rnd', and with
- error at most 'error' */
-#define MPFR_CAN_ROUND(b,err,prec,rnd) \
- (!MPFR_IS_SINGULAR (b) && mpfr_round_p (MPFR_MANT (b), MPFR_LIMB_SIZE (b), \
- (err), (prec) + ((rnd)==MPFR_RNDN)))
-
-/* Copy the sign and the significand, and handle the exponent in exp. */
-#define MPFR_SETRAW(inexact,dest,src,exp,rnd) \
- if (dest != src) \
- { \
- MPFR_SET_SIGN (dest, MPFR_SIGN (src)); \
- if (MPFR_PREC (dest) == MPFR_PREC (src)) \
- { \
- MPN_COPY (MPFR_MANT (dest), MPFR_MANT (src), \
- MPFR_LIMB_SIZE (src)); \
- inexact = 0; \
- } \
- else \
- { \
- MPFR_RNDRAW (inexact, dest, MPFR_MANT (src), MPFR_PREC (src), \
- rnd, MPFR_SIGN (src), exp++); \
- } \
- } \
- else \
- inexact = 0;
-
-/* TODO: fix this description (see round_near_x.c). */
-/* Assuming that the function has a Taylor expansion which looks like:
- y=o(f(x)) = o(v + g(x)) with |g(x)| <= 2^(EXP(v)-err)
- we can quickly set y to v if x is small (ie err > prec(y)+1) in most
- cases. It assumes that f(x) is not representable exactly as a FP number.
- v must not be a singular value (NAN, INF or ZERO); usual values are
- v=1 or v=x.
-
- y is the destination (a mpfr_t), v the value to set (a mpfr_t),
- err1+err2 with err2 <= 3 the error term (mpfr_exp_t's), dir (an int) is
- the direction of the committed error (if dir = 0, it rounds toward 0,
- if dir=1, it rounds away from 0), rnd the rounding mode.
-
- It returns from the function a ternary value in case of success.
- If you want to free something, you must fill the "extra" field
- in consequences, otherwise put nothing in it.
-
- The test is less restrictive than necessary, but the function
- will finish the check itself.
-
- Note: err1 + err2 is allowed to overflow as mpfr_exp_t, but it must give
- its real value as mpfr_uexp_t.
-*/
-#define MPFR_FAST_COMPUTE_IF_SMALL_INPUT(y,v,err1,err2,dir,rnd,extra) \
- do { \
- mpfr_ptr _y = (y); \
- mpfr_exp_t _err1 = (err1); \
- mpfr_exp_t _err2 = (err2); \
- if (_err1 > 0) \
- { \
- mpfr_uexp_t _err = (mpfr_uexp_t) _err1 + _err2; \
- if (MPFR_UNLIKELY (_err > MPFR_PREC (_y) + 1)) \
- { \
- int _inexact = mpfr_round_near_x (_y,(v),_err,(dir),(rnd)); \
- if (_inexact != 0) \
- { \
- extra; \
- return _inexact; \
- } \
- } \
- } \
- } while (0)
-
-/* Variant, to be called somewhere after MPFR_SAVE_EXPO_MARK. This variant
- is needed when there are some computations before or when some non-zero
- real constant is used, such as __gmpfr_one for mpfr_cos. */
-#define MPFR_SMALL_INPUT_AFTER_SAVE_EXPO(y,v,err1,err2,dir,rnd,expo,extra) \
- do { \
- mpfr_ptr _y = (y); \
- mpfr_exp_t _err1 = (err1); \
- mpfr_exp_t _err2 = (err2); \
- if (_err1 > 0) \
- { \
- mpfr_uexp_t _err = (mpfr_uexp_t) _err1 + _err2; \
- if (MPFR_UNLIKELY (_err > MPFR_PREC (_y) + 1)) \
- { \
- int _inexact; \
- MPFR_CLEAR_FLAGS (); \
- _inexact = mpfr_round_near_x (_y,(v),_err,(dir),(rnd)); \
- if (_inexact != 0) \
- { \
- extra; \
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); \
- MPFR_SAVE_EXPO_FREE (expo); \
- return mpfr_check_range (_y, _inexact, (rnd)); \
- } \
- } \
- } \
- } while (0)
-
-
-/******************************************************
- ***************** Ziv loop macros ******************
- ******************************************************/
-
-/* To safely increase some precision, detecting integer overflows.
- This macro is particularly useful when determining the initial
- working precision before Ziv's loop. P is a precision, X is an
- arbitrary nonnegative integer.
- Note: On 2012-02-23, the MPFR_PREC_MAX value has been decreased
- by 256 from the maximum value representable in the mpfr_prec_t
- type, in order to avoid some integer overflows when this macro
- is not used (if the result is larger than MPFR_PREC_MAX, this
- should be detected with a later assertion, e.g. in mpfr_init2).
- But this change is mainly for existing code that has not been
- updated yet. So, it is advised to always use MPFR_ADD_PREC or
- MPFR_INC_PREC if the result can be larger than MPFR_PREC_MAX. */
-#define MPFR_ADD_PREC(P,X) \
- (MPFR_ASSERTN ((X) <= MPFR_PREC_MAX - (P)), (P) + (X))
-#define MPFR_INC_PREC(P,X) \
- (MPFR_ASSERTN ((X) <= MPFR_PREC_MAX - (P)), (P) += (X))
-
-#ifndef MPFR_USE_LOGGING
-
-#define MPFR_ZIV_DECL(_x) mpfr_prec_t _x
-#define MPFR_ZIV_INIT(_x, _p) (_x) = GMP_NUMB_BITS
-#define MPFR_ZIV_NEXT(_x, _p) (MPFR_INC_PREC (_p, _x), (_x) = (_p)/2)
-#define MPFR_ZIV_FREE(x)
-
-#else
-
-/* The following test on glibc is there mainly for Darwin (Mac OS X), to
- obtain a better error message. The real test should have been a test
- concerning nested functions in gcc, which are disabled by default on
- Darwin; but it is not possible to do that without a configure test. */
-# if defined (__cplusplus) || !(__MPFR_GNUC(3,0) && __MPFR_GLIBC(2,0))
-# error "Logging not supported (needs gcc >= 3.0 and GNU C Library >= 2.0)."
-# endif
-
-/* Use LOGGING */
-
-/* Note: the mpfr_log_level >= 0 below avoids to take into account
- Ziv loops used by the MPFR functions called by the mpfr_fprintf
- in LOG_PRINT. */
-
-#define MPFR_ZIV_DECL(_x) \
- mpfr_prec_t _x; \
- int _x ## _cpt = 1; \
- static unsigned long _x ## _loop = 0, _x ## _bad = 0; \
- static const char *_x ## _fname = __func__; \
- auto void __attribute__ ((destructor)) x ## _f (void); \
- void __attribute__ ((destructor)) x ## _f (void) { \
- if (_x ## _loop != 0 && (MPFR_LOG_STAT_F & mpfr_log_type)) { \
- fprintf (mpfr_log_file, \
- "%s: Ziv failed %2.2f%% (%lu bad cases / %lu calls)\n", \
- _x ## _fname, (double) 100.0 * _x ## _bad / _x ## _loop, \
- _x ## _bad, _x ## _loop ); \
- if (mpfr_log_flush) \
- fflush (mpfr_log_file); \
- } \
- }
-
-#define MPFR_ZIV_INIT(_x, _p) \
- do \
- { \
- (_x) = GMP_NUMB_BITS; \
- if (mpfr_log_level >= 0) \
- _x ## _loop ++; \
- LOG_PRINT (MPFR_LOG_BADCASE_F, "%s:ZIV 1st prec=%Pd\n", \
- __func__, (mpfr_prec_t) (_p)); \
- } \
- while (0)
-
-#define MPFR_ZIV_NEXT(_x, _p) \
- do \
- { \
- MPFR_INC_PREC (_p, _x); \
- (_x) = (_p) / 2; \
- if (mpfr_log_level >= 0) \
- _x ## _bad += (_x ## _cpt == 1); \
- _x ## _cpt ++; \
- LOG_PRINT (MPFR_LOG_BADCASE_F, "%s:ZIV new prec=%Pd\n", \
- __func__, (mpfr_prec_t) (_p)); \
- } \
- while (0)
-
-#define MPFR_ZIV_FREE(_x) \
- do \
- if (_x ## _cpt > 1) \
- LOG_PRINT (MPFR_LOG_BADCASE_F, "%s:ZIV %d loops\n", \
- __func__, _x ## _cpt); \
- while (0)
-
-#endif
-
-
-/******************************************************
- ****************** Logging macros ******************
- ******************************************************/
-
-/* The different kind of LOG */
-#define MPFR_LOG_INPUT_F 1
-#define MPFR_LOG_OUTPUT_F 2
-#define MPFR_LOG_INTERNAL_F 4
-#define MPFR_LOG_TIME_F 8
-#define MPFR_LOG_BADCASE_F 16
-#define MPFR_LOG_MSG_F 32
-#define MPFR_LOG_STAT_F 64
-
-#ifdef MPFR_USE_LOGGING
-
-/* Check if we can support this feature */
-# ifdef MPFR_USE_THREAD_SAFE
-# error "Enable either `Logging' or `thread-safe', not both"
-# endif
-# if !__MPFR_GNUC(3,0)
-# error "Logging not supported (GCC >= 3.0)"
-# endif
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-__MPFR_DECLSPEC extern FILE *mpfr_log_file;
-__MPFR_DECLSPEC extern int mpfr_log_flush;
-__MPFR_DECLSPEC extern int mpfr_log_type;
-__MPFR_DECLSPEC extern int mpfr_log_level;
-__MPFR_DECLSPEC extern int mpfr_log_current;
-__MPFR_DECLSPEC extern mpfr_prec_t mpfr_log_prec;
-
-#if defined (__cplusplus)
- }
-#endif
-
-/* LOG_PRINT calls mpfr_fprintf on mpfr_log_file with logging disabled
- (recursive logging is not wanted and freezes MPFR). */
-#define LOG_PRINT(type, format, ...) \
- do \
- if ((mpfr_log_type & (type)) && mpfr_log_current <= mpfr_log_level) \
- { \
- int old_level = mpfr_log_level; \
- mpfr_log_level = -1; /* disable logging in mpfr_fprintf */ \
- __gmpfr_cache_const_pi = __gmpfr_logging_pi; \
- __gmpfr_cache_const_log2 = __gmpfr_logging_log2; \
- mpfr_fprintf (mpfr_log_file, format, __VA_ARGS__); \
- if (mpfr_log_flush) \
- fflush (mpfr_log_file); \
- mpfr_log_level = old_level; \
- __gmpfr_cache_const_pi = __gmpfr_normal_pi; \
- __gmpfr_cache_const_log2 = __gmpfr_normal_log2; \
- } \
- while (0)
-
-#define MPFR_LOG_VAR(x) \
- LOG_PRINT (MPFR_LOG_INTERNAL_F, "%s.%d:%s[%#Pu]=%.*Rg\n", __func__, \
- __LINE__, #x, mpfr_get_prec (x), mpfr_log_prec, x)
-
-#define MPFR_LOG_MSG2(format, ...) \
- LOG_PRINT (MPFR_LOG_MSG_F, "%s.%d: "format, __func__, __LINE__, __VA_ARGS__)
-#define MPFR_LOG_MSG(x) MPFR_LOG_MSG2 x
-
-#define MPFR_LOG_BEGIN2(format, ...) \
- mpfr_log_current ++; \
- LOG_PRINT (MPFR_LOG_INPUT_F, "%s:IN "format"\n", __func__, __VA_ARGS__); \
- if ((MPFR_LOG_TIME_F & mpfr_log_type) && \
- (mpfr_log_current <= mpfr_log_level)) \
- __gmpfr_log_time = mpfr_get_cputime ();
-#define MPFR_LOG_BEGIN(x) \
- int __gmpfr_log_time = 0; \
- MPFR_LOG_BEGIN2 x
-
-#define MPFR_LOG_END2(format, ...) \
- LOG_PRINT (MPFR_LOG_TIME_F, "%s:TIM %dms\n", __mpfr_log_fname, \
- mpfr_get_cputime () - __gmpfr_log_time); \
- LOG_PRINT (MPFR_LOG_OUTPUT_F, "%s:OUT "format"\n", __mpfr_log_fname, \
- __VA_ARGS__); \
- mpfr_log_current --;
-#define MPFR_LOG_END(x) \
- static const char *__mpfr_log_fname = __func__; \
- MPFR_LOG_END2 x
-
-#define MPFR_LOG_FUNC(begin,end) \
- static const char *__mpfr_log_fname = __func__; \
- auto void __mpfr_log_cleanup (int *time); \
- void __mpfr_log_cleanup (int *time) { \
- int __gmpfr_log_time = *time; \
- MPFR_LOG_END2 end; } \
- int __gmpfr_log_time __attribute__ ((cleanup (__mpfr_log_cleanup))); \
- __gmpfr_log_time = 0; \
- MPFR_LOG_BEGIN2 begin
-
-#else /* MPFR_USE_LOGGING */
-
-/* Define void macro for logging */
-
-#define MPFR_LOG_VAR(x)
-#define MPFR_LOG_BEGIN(x)
-#define MPFR_LOG_END(x)
-#define MPFR_LOG_MSG(x)
-#define MPFR_LOG_FUNC(x,y)
-
-#endif /* MPFR_USE_LOGGING */
-
-
-/**************************************************************
- ************ Group Initialize Functions Macros *************
- **************************************************************/
-
-#ifndef MPFR_GROUP_STATIC_SIZE
-# define MPFR_GROUP_STATIC_SIZE 16
-#endif
-
-struct mpfr_group_t {
- size_t alloc;
- mp_limb_t *mant;
-#if MPFR_GROUP_STATIC_SIZE != 0
- mp_limb_t tab[MPFR_GROUP_STATIC_SIZE];
-#else
- /* In order to detect memory leaks when testing, MPFR_GROUP_STATIC_SIZE
- can be set to 0, in which case tab will not be used. ISO C does not
- support zero-length arrays[*], thus let's use a flexible array member
- (which will be equivalent here). Note: this is new in C99, but this
- is just used for testing.
- [*] Zero-length arrays are a GNU extension:
- https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
- and as such an extension is forbidden in ISO C, it triggers an
- error with -Werror=pedantic.
- */
- mp_limb_t tab[];
-#endif
-};
-
-#define MPFR_GROUP_DECL(g) struct mpfr_group_t g
-#define MPFR_GROUP_CLEAR(g) do { \
- MPFR_LOG_MSG (("GROUP_CLEAR: ptr = 0x%lX, size = %lu\n", \
- (unsigned long) (g).mant, \
- (unsigned long) (g).alloc)); \
- if ((g).alloc != 0) { \
- MPFR_ASSERTD ((g).mant != (g).tab); \
- mpfr_free_func ((g).mant, (g).alloc); \
- }} while (0)
-
-#define MPFR_GROUP_INIT_TEMPLATE(g, prec, num, handler) do { \
- mpfr_prec_t _prec = (prec); \
- mp_size_t _size; \
- MPFR_ASSERTD (_prec >= MPFR_PREC_MIN); \
- if (MPFR_UNLIKELY (_prec > MPFR_PREC_MAX)) \
- mpfr_abort_prec_max (); \
- _size = MPFR_PREC2LIMBS (_prec); \
- if (_size * (num) > MPFR_GROUP_STATIC_SIZE) \
- { \
- (g).alloc = (num) * _size * sizeof (mp_limb_t); \
- (g).mant = (mp_limb_t *) mpfr_allocate_func ((g).alloc); \
- } \
- else \
- { \
- (g).alloc = 0; \
- (g).mant = (g).tab; \
- } \
- MPFR_LOG_MSG (("GROUP_INIT: ptr = 0x%lX, size = %lu\n", \
- (unsigned long) (g).mant, (unsigned long) (g).alloc)); \
- handler; \
- } while (0)
-#define MPFR_GROUP_TINIT(g, n, x) \
- MPFR_TMP_INIT1 ((g).mant + _size * (n), x, _prec)
-
-#define MPFR_GROUP_INIT_1(g, prec, x) \
- MPFR_GROUP_INIT_TEMPLATE(g, prec, 1, MPFR_GROUP_TINIT(g, 0, x))
-#define MPFR_GROUP_INIT_2(g, prec, x, y) \
- MPFR_GROUP_INIT_TEMPLATE(g, prec, 2, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y))
-#define MPFR_GROUP_INIT_3(g, prec, x, y, z) \
- MPFR_GROUP_INIT_TEMPLATE(g, prec, 3, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z))
-#define MPFR_GROUP_INIT_4(g, prec, x, y, z, t) \
- MPFR_GROUP_INIT_TEMPLATE(g, prec, 4, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z);MPFR_GROUP_TINIT(g, 3, t))
-#define MPFR_GROUP_INIT_5(g, prec, x, y, z, t, a) \
- MPFR_GROUP_INIT_TEMPLATE(g, prec, 5, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z);MPFR_GROUP_TINIT(g, 3, t); \
- MPFR_GROUP_TINIT(g, 4, a))
-#define MPFR_GROUP_INIT_6(g, prec, x, y, z, t, a, b) \
- MPFR_GROUP_INIT_TEMPLATE(g, prec, 6, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z);MPFR_GROUP_TINIT(g, 3, t); \
- MPFR_GROUP_TINIT(g, 4, a);MPFR_GROUP_TINIT(g, 5, b))
-
-#define MPFR_GROUP_REPREC_TEMPLATE(g, prec, num, handler) do { \
- mpfr_prec_t _prec = (prec); \
- size_t _oalloc = (g).alloc; \
- mp_size_t _size; \
- MPFR_LOG_MSG (("GROUP_REPREC: oldptr = 0x%lX, oldsize = %lu\n", \
- (unsigned long) (g).mant, (unsigned long) _oalloc)); \
- MPFR_ASSERTD (_prec >= MPFR_PREC_MIN); \
- if (MPFR_UNLIKELY (_prec > MPFR_PREC_MAX)) \
- mpfr_abort_prec_max (); \
- _size = MPFR_PREC2LIMBS (_prec); \
- (g).alloc = (num) * _size * sizeof (mp_limb_t); \
- if (_oalloc == 0) \
- (g).mant = (mp_limb_t *) mpfr_allocate_func ((g).alloc); \
- else \
- (g).mant = (mp_limb_t *) \
- mpfr_reallocate_func ((g).mant, _oalloc, (g).alloc); \
- MPFR_LOG_MSG (("GROUP_REPREC: newptr = 0x%lX, newsize = %lu\n", \
- (unsigned long) (g).mant, (unsigned long) (g).alloc)); \
- handler; \
- } while (0)
-
-#define MPFR_GROUP_REPREC_1(g, prec, x) \
- MPFR_GROUP_REPREC_TEMPLATE(g, prec, 1, MPFR_GROUP_TINIT(g, 0, x))
-#define MPFR_GROUP_REPREC_2(g, prec, x, y) \
- MPFR_GROUP_REPREC_TEMPLATE(g, prec, 2, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y))
-#define MPFR_GROUP_REPREC_3(g, prec, x, y, z) \
- MPFR_GROUP_REPREC_TEMPLATE(g, prec, 3, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z))
-#define MPFR_GROUP_REPREC_4(g, prec, x, y, z, t) \
- MPFR_GROUP_REPREC_TEMPLATE(g, prec, 4, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z);MPFR_GROUP_TINIT(g, 3, t))
-#define MPFR_GROUP_REPREC_5(g, prec, x, y, z, t, a) \
- MPFR_GROUP_REPREC_TEMPLATE(g, prec, 5, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z);MPFR_GROUP_TINIT(g, 3, t); \
- MPFR_GROUP_TINIT(g, 4, a))
-#define MPFR_GROUP_REPREC_6(g, prec, x, y, z, t, a, b) \
- MPFR_GROUP_REPREC_TEMPLATE(g, prec, 6, \
- MPFR_GROUP_TINIT(g, 0, x);MPFR_GROUP_TINIT(g, 1, y); \
- MPFR_GROUP_TINIT(g, 2, z);MPFR_GROUP_TINIT(g, 3, t); \
- MPFR_GROUP_TINIT(g, 4, a);MPFR_GROUP_TINIT(g, 5, b))
-
-
-/******************************************************
- *************** Internal functions *****************
- ******************************************************/
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-MPFR_COLD_FUNCTION_ATTR __MPFR_DECLSPEC int
- mpfr_underflow (mpfr_ptr, mpfr_rnd_t, int);
-MPFR_COLD_FUNCTION_ATTR __MPFR_DECLSPEC int
- mpfr_overflow (mpfr_ptr, mpfr_rnd_t, int);
-
-__MPFR_DECLSPEC int mpfr_add1 (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub1 (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_add1sp (mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub1sp (mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_can_round_raw (const mp_limb_t *,
- mp_size_t, int, mpfr_exp_t, mpfr_rnd_t, mpfr_rnd_t, mpfr_prec_t);
-
-__MPFR_DECLSPEC int mpfr_set_1_2 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t, int);
-
-__MPFR_DECLSPEC int mpfr_cmp2 (mpfr_srcptr, mpfr_srcptr, mpfr_prec_t *);
-
-__MPFR_DECLSPEC long __gmpfr_ceil_log2 (double);
-__MPFR_DECLSPEC long __gmpfr_floor_log2 (double);
-__MPFR_DECLSPEC double __gmpfr_ceil_exp2 (double);
-__MPFR_DECLSPEC unsigned long __gmpfr_isqrt (unsigned long);
-__MPFR_DECLSPEC unsigned long __gmpfr_cuberoot (unsigned long);
-__MPFR_DECLSPEC int __gmpfr_int_ceil_log2 (unsigned long);
-
-__MPFR_DECLSPEC mpfr_exp_t mpfr_ceil_mul (mpfr_exp_t, int, int);
-
-__MPFR_DECLSPEC int mpfr_exp_2 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_exp_3 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_powerof2_raw (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_powerof2_raw2 (const mp_limb_t *, mp_size_t);
-
-__MPFR_DECLSPEC int mpfr_pow_general (mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t, int, mpfr_save_expo_t *);
-
-__MPFR_DECLSPEC void mpfr_setmax (mpfr_ptr, mpfr_exp_t);
-__MPFR_DECLSPEC void mpfr_setmin (mpfr_ptr, mpfr_exp_t);
-
-__MPFR_DECLSPEC int mpfr_mpn_exp (mp_limb_t *, mpfr_exp_t *, int,
- mpfr_exp_t, size_t);
-
-#ifdef _MPFR_H_HAVE_FILE
-__MPFR_DECLSPEC void mpfr_fdump (FILE *, mpfr_srcptr);
-#endif
-__MPFR_DECLSPEC void mpfr_print_mant_binary (const char*, const mp_limb_t*,
- mpfr_prec_t);
-__MPFR_DECLSPEC void mpfr_set_str_binary (mpfr_ptr, const char*);
-
-__MPFR_DECLSPEC int mpfr_round_raw (mp_limb_t *,
- const mp_limb_t *, mpfr_prec_t, int, mpfr_prec_t, mpfr_rnd_t, int *);
-__MPFR_DECLSPEC int mpfr_round_raw_2 (const mp_limb_t *, mpfr_prec_t, int,
- mpfr_prec_t, mpfr_rnd_t);
-/* No longer defined (see round_prec.c).
- Uncomment if it needs to be defined again.
-__MPFR_DECLSPEC int mpfr_round_raw_3 (const mp_limb_t *,
- mpfr_prec_t, int, mpfr_prec_t, mpfr_rnd_t, int *);
-*/
-__MPFR_DECLSPEC int mpfr_round_raw_4 (mp_limb_t *,
- const mp_limb_t *, mpfr_prec_t, int, mpfr_prec_t, mpfr_rnd_t);
-
-#define mpfr_round_raw2(xp, xn, neg, r, prec) \
- mpfr_round_raw_2((xp),(xn)*GMP_NUMB_BITS,(neg),(prec),(r))
-
-__MPFR_DECLSPEC int mpfr_check (mpfr_srcptr);
-
-__MPFR_DECLSPEC int mpfr_get_cputime (void);
-
-__MPFR_DECLSPEC void mpfr_nexttozero (mpfr_ptr);
-__MPFR_DECLSPEC void mpfr_nexttoinf (mpfr_ptr);
-
-__MPFR_DECLSPEC int mpfr_const_pi_internal (mpfr_ptr,mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_const_log2_internal (mpfr_ptr,mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_const_euler_internal (mpfr_ptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_const_catalan_internal (mpfr_ptr, mpfr_rnd_t);
-
-#if 0
-__MPFR_DECLSPEC void mpfr_init_cache (mpfr_cache_t,
- int(*)(mpfr_ptr,mpfr_rnd_t));
-#endif
-__MPFR_DECLSPEC void mpfr_clear_cache (mpfr_cache_t);
-__MPFR_DECLSPEC int mpfr_cache (mpfr_ptr, mpfr_cache_t, mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_mulhigh_n (mpfr_limb_ptr, mpfr_limb_srcptr,
- mpfr_limb_srcptr, mp_size_t);
-__MPFR_DECLSPEC void mpfr_mullow_n (mpfr_limb_ptr, mpfr_limb_srcptr,
- mpfr_limb_srcptr, mp_size_t);
-__MPFR_DECLSPEC void mpfr_sqrhigh_n (mpfr_limb_ptr, mpfr_limb_srcptr,
- mp_size_t);
-__MPFR_DECLSPEC mp_limb_t mpfr_divhigh_n (mpfr_limb_ptr, mpfr_limb_ptr,
- mpfr_limb_ptr, mp_size_t);
-
-__MPFR_DECLSPEC int mpfr_round_p (mp_limb_t *, mp_size_t, mpfr_exp_t,
- mpfr_prec_t);
-
-__MPFR_DECLSPEC int mpfr_round_near_x (mpfr_ptr, mpfr_srcptr, mpfr_uexp_t, int,
- mpfr_rnd_t);
-__MPFR_DECLSPEC MPFR_COLD_FUNCTION_ATTR MPFR_NORETURN void
- mpfr_abort_prec_max (void);
-
-__MPFR_DECLSPEC void mpfr_rand_raw (mpfr_limb_ptr, gmp_randstate_t,
- mpfr_prec_t);
-
-__MPFR_DECLSPEC mpz_srcptr mpfr_bernoulli_cache (unsigned long);
-__MPFR_DECLSPEC void mpfr_bernoulli_freecache (void);
-
-__MPFR_DECLSPEC int mpfr_sincos_fast (mpfr_t, mpfr_t, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC double mpfr_scale2 (double, int);
-
-__MPFR_DECLSPEC void mpfr_div_ui2 (mpfr_ptr, mpfr_srcptr, unsigned long,
- unsigned long, mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_gamma_one_and_two_third (mpfr_ptr, mpfr_ptr,
- mpfr_prec_t);
-
-__MPFR_DECLSPEC void mpfr_mpz_init (mpz_ptr);
-__MPFR_DECLSPEC void mpfr_mpz_init2 (mpz_t, mp_bitcnt_t);
-__MPFR_DECLSPEC void mpfr_mpz_clear (mpz_ptr);
-
-__MPFR_DECLSPEC int mpfr_odd_p (mpfr_srcptr);
-
-__MPFR_DECLSPEC int mpfr_nbits_ulong (unsigned long);
-
-#ifdef _MPFR_H_HAVE_VA_LIST
-/* Declared only if <stdarg.h> has been included. */
-__MPFR_DECLSPEC int mpfr_vasnprintf_aux (char**, char*, size_t, const char*,
- va_list);
-#endif
-
-#if MPFR_WANT_ASSERT >= 2
-__MPFR_DECLSPEC void flags_fout (FILE *, mpfr_flags_t);
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-
-/*****************************************************
- *************** Internal mpz_t pool ***************
- *****************************************************/
-
-/* don't use the mpz_t pool with mini-gmp */
-#ifdef MPFR_USE_MINI_GMP
-# define MPFR_POOL_NENTRIES 0
-#endif
-
-#ifndef MPFR_POOL_NENTRIES
-# define MPFR_POOL_NENTRIES 32 /* default number of entries of the pool */
-#endif
-
-#if MPFR_POOL_NENTRIES && !defined(MPFR_POOL_DONT_REDEFINE)
-# undef mpz_init
-# undef mpz_init2
-# undef mpz_clear
-# undef mpz_init_set_ui
-# undef mpz_init_set
-# define mpz_init mpfr_mpz_init
-# define mpz_init2 mpfr_mpz_init2
-# define mpz_clear mpfr_mpz_clear
-# define mpz_init_set_ui(a,b) do { mpz_init (a); mpz_set_ui (a, b); } while (0)
-# define mpz_init_set(a,b) do { mpz_init (a); mpz_set (a, b); } while (0)
-#endif
-
-
-/******************************************************
- ******** Compute LOG2(LOG2(MPFR_PREC_MAX)) *********
- ******************************************************/
-
-#if _MPFR_PREC_FORMAT == 1
-# define MPFR_PREC_MAX_TEMP USHRT_MAX
-#elif _MPFR_PREC_FORMAT == 2
-# define MPFR_PREC_MAX_TEMP UINT_MAX
-#elif _MPFR_PREC_FORMAT == 3
-# define MPFR_PREC_MAX_TEMP ULONG_MAX
-#else
-# error "Invalid MPFR Prec format"
-#endif
-
-/* Note: In the constants below, it is sufficient to use the suffix U.
- * A large enough unsigned type will be chosen automatically, but the
- * exact type doesn't matter here.
- */
-
-#if MPFR_PREC_MAX_TEMP == 255U
-# define MPFR_PREC_BITS 8
-# define MPFR_LOG2_PREC_BITS 3
-#elif MPFR_PREC_MAX_TEMP == 65535U
-# define MPFR_PREC_BITS 16
-# define MPFR_LOG2_PREC_BITS 4
-#elif MPFR_PREC_MAX_TEMP == 4294967295U
-# define MPFR_PREC_BITS 32
-# define MPFR_LOG2_PREC_BITS 5
-#elif MPFR_PREC_MAX_TEMP == 18446744073709551615U
-# define MPFR_PREC_BITS 64
-# define MPFR_LOG2_PREC_BITS 6
-#else
-# error "Unsupported MPFR_PREC_MAX_TEMP value"
-#endif
-
-
-/******************************************************
- ************* Value coverage checking **************
- ******************************************************/
-
-#ifdef MPFR_COV_CHECK
-
-/* Variable names should start with the __gmpfr_cov_ prefix. */
-
-#define MPFR_COV_SET(X) (__gmpfr_cov_ ## X = 1)
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-__MPFR_DECLSPEC extern int __gmpfr_cov_div_ui_sb[10][2];
-__MPFR_DECLSPEC extern int __gmpfr_cov_sum_tmd[MPFR_RND_MAX][2][2][3][2][2];
-
-#if defined (__cplusplus)
-}
-#endif
-
-#else /* MPFR_COV_CHECK */
-
-#define MPFR_COV_SET(X) ((void) 0)
-
-#endif /* MPFR_COV_CHECK */
-
-
-/******************************************************
- ***************** Unbounded Floats *****************
- ******************************************************/
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-/* An UBF is like a MPFR number, but with an additional mpz_t member,
- which is assumed to be present (with a value in it) when the usual
- exponent field has the value MPFR_EXP_UBF. The goal of this compatible
- representation is to easily be able to support UBF in "normal" code
- using the public API. This is some form of "subtyping".
-
- Unfortunately this breaks aliasing rules, and C does not provide any way
- to avoid that (except with additional syntax ugliness and API breakage,
- though there is a workaround -- see the end of this comment):
-
- https://news.ycombinator.com/item?id=11753236
-
- The alignment requirement for __mpfr_ubf_struct (UBF) needs to be at least
- as strong as the one for __mpfr_struct (MPFR number); this is not required
- by the C standard, but this should always be the case in practice, since
- __mpfr_ubf_struct starts with the same members as those of __mpfr_struct.
- If ever this would not be the case with some particular C implementation,
- an _Alignas alignment attribute (C11) could be added for UBF.
-
- When an input of a public function is an UBF, the semantic remains
- internal to MPFR and can change in the future. UBF arguments need
- to be explicitly converted to mpfr_ptr (or mpfr_srcptr); be careful
- with variadic functions, as the compiler will not be able to check
- in general. See fmma.c as an example of usage.
-
- In general, the type used for values that may be UBF must be either
- mpfr_ubf_t or mpfr_ubf_ptr. The type mpfr_ptr or mpfr_srcptr may be
- used for UBF only in the case where the pointer has been converted
- from mpfr_ubf_ptr, in order to ensure valid alignment. For instance,
- in mpfr_fmma_aux, one uses mpfr_ubf_t to generate the exact products
- as UBF; then the corresponding pointers are converted to mpfr_srcptr
- for mpfr_add (even though they point to UBF).
-
- Functions that can accept either MPFR arguments (mpfr_ptr type) or
- UBF arguments (mpfr_ubf_ptr type) must use a pointer type that can
- always be converted from both, typically mpfr_ptr or mpfr_srcptr.
- For instance, that's why mpfr_ubf_exp_less_p uses mpfr_srcptr.
- Note: "void *" could also be used, but mpfr_ptr is more meaningful
- and practical.
-
- Note that functions used for logging need to support UBF (currently
- done by printing that a number is an UBF, as it may be difficult to
- do more without significant changes).
-
- --------
-
- A workaround to avoid breaking aliasing rules should be to use mpfr_ptr
- to access the usual mpfr_t members and mpfr_ubf_ptr to access the
- additional member _mpfr_zexp. And never use __mpfr_ubf_struct as a
- declared type; otherwise this would force __mpfr_ubf_struct to be the
- effective type of the whole object. Thus instead of
-
- typedef __mpfr_ubf_struct mpfr_ubf_t[1];
-
- one could use the following definition as a trick to allocate an UBF as
- an automatic variable with the required alignment but without forcing
- the effective type to __mpfr_ubf_struct.
-
- typedef union {
- __mpfr_ubf_struct u[1];
- __mpfr_struct m[1];
- } mpfr_ubf_t;
-
- Then adapt the related code to select to right member, depending on the
- context. Unfortunately, this triggers -Wstrict-aliasing false positives
- with GCC in the MPFR_UBF_CLEAR_EXP expansion:
-
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94337
-
- (see changeset r13820 in the ubf2 branch). So, for the time being,
- as long as the code does not break, do not change anything.
-*/
-
-typedef struct {
- mpfr_prec_t _mpfr_prec;
- mpfr_sign_t _mpfr_sign;
- mpfr_exp_t _mpfr_exp;
- mp_limb_t *_mpfr_d;
- mpz_t _mpfr_zexp;
-} __mpfr_ubf_struct;
-
-typedef __mpfr_ubf_struct mpfr_ubf_t[1];
-typedef __mpfr_ubf_struct *mpfr_ubf_ptr;
-
-__MPFR_DECLSPEC void mpfr_ubf_mul_exact (mpfr_ubf_ptr,
- mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_ubf_exp_less_p (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_ubf_zexp2exp (mpz_ptr);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_ubf_diff_exp (mpfr_srcptr, mpfr_srcptr);
-
-#if defined (__cplusplus)
-}
-#endif
-
-/* Get the _mpfr_zexp field (pointer to a mpz_t) of an UBF object.
- For practical reasons, the type of the argument x can be either
- mpfr_ubf_ptr or mpfr_ptr, since the latter is used in functions
- that accept both MPFR numbers and UBF's; this is checked by the
- code "(x)->_mpfr_exp" (the "sizeof" prevents an access, which
- could be invalid when MPFR_ZEXP(x) is used for an assignment,
- and also avoids breaking the aliasing rules if they are dealt
- with in the future).
- This macro can be used when building an UBF. So we do not check
- that the _mpfr_exp field has the value MPFR_EXP_UBF. */
-#define MPFR_ZEXP(x) \
- ((void) sizeof ((x)->_mpfr_exp), \
- ((mpfr_ubf_ptr) (x))->_mpfr_zexp)
-
-/* If x is an UBF, clear its mpz_t exponent. */
-#define MPFR_UBF_CLEAR_EXP(x) \
- ((void) (MPFR_IS_UBF (x) && (mpz_clear (MPFR_ZEXP (x)), 0)))
-
-/* Like MPFR_GET_EXP, but accepts UBF (with exponent saturated to
- the interval [MPFR_EXP_MIN,MPFR_EXP_MAX]). */
-#define MPFR_UBF_GET_EXP(x) \
- (MPFR_IS_UBF (x) ? mpfr_ubf_zexp2exp (MPFR_ZEXP (x)) : \
- MPFR_GET_EXP ((mpfr_ptr) (x)))
-
-#endif /* __MPFR_IMPL_H__ */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-intmax.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-intmax.h
deleted file mode 100644
index 2fedf5f3285..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-intmax.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* MPFR internal header related to intmax_t.
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* If you need something defined here, do not include this header file
- directly, but define the MPFR_NEED_INTMAX_H macro before including
- "mpfr-impl.h" (or "mpfr-test.h" in the tests). This will ensure that
- this header file "mpfr-intmax.h" is included in a consistent way,
- thus avoiding the various cases that could otherwise be obtained on
- different platforms and compilation options. Note that in particular,
- it needs <limits.h> (always included first in "mpfr-impl.h") if
- <inttypes.h> or <stdint.h> does not exist or does not work. It also
- needs "config.h" if used (HAVE_CONFIG_H defined), but "config.h" is
- also included first in "mpfr-impl.h". */
-
-#ifndef MPFR_NEED_INTMAX_H
-# error "Never include mpfr-intmax.h directly; define MPFR_NEED_INTMAX_H instead."
-#endif
-
-#ifndef __MPFR_INTMAX_H__
-#define __MPFR_INTMAX_H__
-
-/* The ISO C99 standard specifies that in C++ implementations the
- * INTMAX_MAX, ... macros should only be defined if explicitly requested.
- */
-#if defined __cplusplus
-# define __STDC_LIMIT_MACROS
-# define __STDC_CONSTANT_MACROS
-#endif
-
-/* The definition of MPFR_USE_INTMAX_T is needed on systems for which
- * the current (non-standard) macro tests in mpfr.h is not sufficient.
- * This will force the support of intmax_t/uintmax_t if <inttypes.h>
- * and/or <stdint.h> are available. This also avoids a failure in the
- * tests (replace the macro tests in mpfr.h by just
- * #if defined (MPFR_USE_INTMAX_T)
- * to simulate such a system and reproduce the problem).
- * Note: if this makes the build fail on some systems (because these
- * headers are broken), we will need a configure test to undefine
- * HAVE_INTTYPES_H and HAVE_STDINT_H in such a case.
- */
-
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-# define MPFR_USE_INTMAX_T
-#endif
-
-#if HAVE_STDINT_H
-# include <stdint.h>
-# define MPFR_USE_INTMAX_T
-#endif
-
-/* Largest integer type available and fully working for the MPFR build
- (may be smaller than intmax_t / uintmax_t if NPRINTF_J is defined). */
-#if defined(MPFR_USE_INTMAX_T) && !defined(NPRINTF_J)
-typedef uintmax_t mpfr_uintmax_t;
-typedef intmax_t mpfr_intmax_t;
-# define MPFR_UINTMAX_MAX UINTMAX_MAX
-# define MPFR_INTMAX_MAX INTMAX_MAX
-# define MPFR_INTMAX_MIN INTMAX_MIN
-# define MPFR_INTMAX_FSPEC "j"
-#elif defined(HAVE_LONG_LONG) && !defined(NPRINTF_LL)
-typedef unsigned long long mpfr_uintmax_t;
-typedef long long mpfr_intmax_t;
-#if defined(ULLONG_MAX)
-/* standard */
-# define MPFR_UINTMAX_MAX ULLONG_MAX
-# define MPFR_INTMAX_MAX LLONG_MAX
-# define MPFR_INTMAX_MIN LLONG_MIN
-#elif defined(ULONGLONG_MAX)
-/* Silicon Graphics IRIX 6.5 with native /usr/bin/cc */
-# define MPFR_UINTMAX_MAX ULONGLONG_MAX
-# define MPFR_INTMAX_MAX LONGLONG_MAX
-# define MPFR_INTMAX_MIN LONGLONG_MIN
-#else
-/* We do not know any platform in this case (but this case would be a bug).
- Let's give an error. A workaround should be possible, but it should be
- tested first. */
-# error "Neither ULLONG_MAX nor ULONGLONG_MAX is defined."
-#endif
-# define MPFR_INTMAX_FSPEC "ll"
-#else
-typedef unsigned long mpfr_uintmax_t;
-typedef long mpfr_intmax_t;
-# define MPFR_UINTMAX_MAX ULONG_MAX
-# define MPFR_INTMAX_MAX LONG_MAX
-# define MPFR_INTMAX_MIN LONG_MIN
-# define MPFR_INTMAX_FSPEC "l"
-#endif
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-longlong.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-longlong.h
deleted file mode 100644
index 83eda2f5158..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-longlong.h
+++ /dev/null
@@ -1,2230 +0,0 @@
-/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
-
-Copyright 1991-1994, 1996, 1997, 1999-2005, 2007-2009, 2011-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library and has been copied from
-GNU MP 6.2.0, with the following changes:
- * the copyright notice (note: only LGPL 3+ is used in MPFR);
- * the code declared as added for MPFR just below these comments;
- * __GMP_DECLSPEC renamed to __MPFR_DECLSPEC;
- * patch on https://gmplib.org/list-archives/gmp-bugs/2020-June/004807.html
- for arm / aarch64 / 64-bit powerpc applied.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* You have to define the following before including this file:
-
- UWtype -- An unsigned type, default type for operations (typically a "word")
- UHWtype -- An unsigned type, at least half the size of UWtype
- UDWtype -- An unsigned type, at least twice as large a UWtype
- W_TYPE_SIZE -- size in bits of UWtype
-
- SItype, USItype -- Signed and unsigned 32 bit types
- DItype, UDItype -- Signed and unsigned 64 bit types
-
- On a 32 bit machine UWtype should typically be USItype;
- on a 64 bit machine, UWtype should typically be UDItype.
-
- Optionally, define:
-
- LONGLONG_STANDALONE -- Avoid code that needs machine-dependent support files
- NO_ASM -- Disable inline asm
-
-
- CAUTION! Using this version of longlong.h outside of GMP is not safe. You
- need to include gmp.h and gmp-impl.h, or certain things might not work as
- expected.
-*/
-
-/* Code added for MPFR */
-
-#ifndef MPFR_NEED_LONGLONG_H
-# error "Never include mpfr-longlong.h directly; define MPFR_NEED_LONGLONG_H instead."
-#endif
-
-#ifndef __GMP_GNUC_PREREQ
-# define __GMP_GNUC_PREREQ(X,Y) __MPFR_GNUC(X,Y)
-#endif
-
-/* End of code added for MPFR */
-
-#define __BITS4 (W_TYPE_SIZE / 4)
-#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2))
-#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1))
-#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2))
-
-/* This is used to make sure no undesirable sharing between different libraries
- that use this file takes place. */
-#ifndef __MPN
-#define __MPN(x) __##x
-#endif
-
-/* Define auxiliary asm macros.
-
- 1) umul_ppmm(high_prod, low_prod, multiplier, multiplicand) multiplies two
- UWtype integers MULTIPLIER and MULTIPLICAND, and generates a two UWtype
- word product in HIGH_PROD and LOW_PROD.
-
- 2) __umulsidi3(a,b) multiplies two UWtype integers A and B, and returns a
- UDWtype product. This is just a variant of umul_ppmm.
-
- 3) udiv_qrnnd(quotient, remainder, high_numerator, low_numerator,
- denominator) divides a UDWtype, composed by the UWtype integers
- HIGH_NUMERATOR and LOW_NUMERATOR, by DENOMINATOR and places the quotient
- in QUOTIENT and the remainder in REMAINDER. HIGH_NUMERATOR must be less
- than DENOMINATOR for correct operation. If, in addition, the most
- significant bit of DENOMINATOR must be 1, then the pre-processor symbol
- UDIV_NEEDS_NORMALIZATION is defined to 1.
-
- 4) sdiv_qrnnd(quotient, remainder, high_numerator, low_numerator,
- denominator). Like udiv_qrnnd but the numbers are signed. The quotient
- is rounded towards 0.
-
- 5) count_leading_zeros(count, x) counts the number of zero-bits from the
- msb to the first non-zero bit in the UWtype X. This is the number of
- steps X needs to be shifted left to set the msb. Undefined for X == 0,
- unless the symbol COUNT_LEADING_ZEROS_0 is defined to some value.
-
- 6) count_trailing_zeros(count, x) like count_leading_zeros, but counts
- from the least significant end.
-
- 7) add_ssaaaa(high_sum, low_sum, high_addend_1, low_addend_1,
- high_addend_2, low_addend_2) adds two UWtype integers, composed by
- HIGH_ADDEND_1 and LOW_ADDEND_1, and HIGH_ADDEND_2 and LOW_ADDEND_2
- respectively. The result is placed in HIGH_SUM and LOW_SUM. Overflow
- (i.e. carry out) is not stored anywhere, and is lost.
-
- 8) sub_ddmmss(high_difference, low_difference, high_minuend, low_minuend,
- high_subtrahend, low_subtrahend) subtracts two two-word UWtype integers,
- composed by HIGH_MINUEND_1 and LOW_MINUEND_1, and HIGH_SUBTRAHEND_2 and
- LOW_SUBTRAHEND_2 respectively. The result is placed in HIGH_DIFFERENCE
- and LOW_DIFFERENCE. Overflow (i.e. carry out) is not stored anywhere,
- and is lost.
-
- If any of these macros are left undefined for a particular CPU,
- C macros are used.
-
-
- Notes:
-
- For add_ssaaaa the two high and two low addends can both commute, but
- unfortunately gcc only supports one "%" commutative in each asm block.
- This has always been so but is only documented in recent versions
- (eg. pre-release 3.3). Having two or more "%"s can cause an internal
- compiler error in certain rare circumstances.
-
- Apparently it was only the last "%" that was ever actually respected, so
- the code has been updated to leave just that. Clearly there's a free
- choice whether high or low should get it, if there's a reason to favour
- one over the other. Also obviously when the constraints on the two
- operands are identical there's no benefit to the reloader in any "%" at
- all.
-
- */
-
-/* The CPUs come in alphabetical order below.
-
- Please add support for more CPUs here, or improve the current support
- for the CPUs below! */
-
-
-/* count_leading_zeros_gcc_clz is count_leading_zeros implemented with gcc
- 3.4 __builtin_clzl or __builtin_clzll, according to our limb size.
- Similarly count_trailing_zeros_gcc_ctz using __builtin_ctzl or
- __builtin_ctzll.
-
- These builtins are only used when we check what code comes out, on some
- chips they're merely libgcc calls, where we will instead want an inline
- in that case (either asm or generic C).
-
- These builtins are better than an asm block of the same insn, since an
- asm block doesn't give gcc any information about scheduling or resource
- usage. We keep an asm block for use on prior versions of gcc though.
-
- For reference, __builtin_ffs existed in gcc prior to __builtin_clz, but
- it's not used (for count_leading_zeros) because it generally gives extra
- code to ensure the result is 0 when the input is 0, which we don't need
- or want. */
-
-#ifdef _LONG_LONG_LIMB
-#define count_leading_zeros_gcc_clz(count,x) \
- do { \
- ASSERT ((x) != 0); \
- (count) = __builtin_clzll (x); \
- } while (0)
-#else
-#define count_leading_zeros_gcc_clz(count,x) \
- do { \
- ASSERT ((x) != 0); \
- (count) = __builtin_clzl (x); \
- } while (0)
-#endif
-
-#ifdef _LONG_LONG_LIMB
-#define count_trailing_zeros_gcc_ctz(count,x) \
- do { \
- ASSERT ((x) != 0); \
- (count) = __builtin_ctzll (x); \
- } while (0)
-#else
-#define count_trailing_zeros_gcc_ctz(count,x) \
- do { \
- ASSERT ((x) != 0); \
- (count) = __builtin_ctzl (x); \
- } while (0)
-#endif
-
-
-/* FIXME: The macros using external routines like __MPN(count_leading_zeros)
- don't need to be under !NO_ASM */
-#if ! defined (NO_ASM)
-
-#if defined (__alpha) && W_TYPE_SIZE == 64
-/* Most alpha-based machines, except Cray systems. */
-#if defined (__GNUC__)
-#if __GMP_GNUC_PREREQ (3,3)
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDItype __m0 = (m0), __m1 = (m1); \
- (ph) = __builtin_alpha_umulh (__m0, __m1); \
- (pl) = __m0 * __m1; \
- } while (0)
-#else
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("umulh %r1,%2,%0" \
- : "=r" (ph) \
- : "%rJ" (__m0), "rI" (__m1)); \
- (pl) = __m0 * __m1; \
- } while (0)
-#endif
-#else /* ! __GNUC__ */
-#include <machine/builtins.h>
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDItype __m0 = (m0), __m1 = (m1); \
- (ph) = __UMULH (__m0, __m1); \
- (pl) = __m0 * __m1; \
- } while (0)
-#endif
-#ifndef LONGLONG_STANDALONE
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { UWtype __di; \
- __di = __MPN(invert_limb) (d); \
- udiv_qrnnd_preinv (q, r, n1, n0, d, __di); \
- } while (0)
-#define UDIV_PREINV_ALWAYS 1
-#define UDIV_NEEDS_NORMALIZATION 1
-#endif /* LONGLONG_STANDALONE */
-
-/* clz_tab is required in all configurations, since mpn/alpha/cntlz.asm
- always goes into libgmp.so, even when not actually used. */
-#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
-
-#if defined (__GNUC__) && HAVE_HOST_CPU_alpha_CIX
-#define count_leading_zeros(COUNT,X) \
- __asm__("ctlz %1,%0" : "=r"(COUNT) : "r"(X))
-#define count_trailing_zeros(COUNT,X) \
- __asm__("cttz %1,%0" : "=r"(COUNT) : "r"(X))
-#endif /* clz/ctz using cix */
-
-#if ! defined (count_leading_zeros) \
- && defined (__GNUC__) && ! defined (LONGLONG_STANDALONE)
-/* ALPHA_CMPBGE_0 gives "cmpbge $31,src,dst", ie. test src bytes == 0.
- "$31" is written explicitly in the asm, since an "r" constraint won't
- select reg 31. There seems no need to worry about "r31" syntax for cray,
- since gcc itself (pre-release 3.4) emits just $31 in various places. */
-#define ALPHA_CMPBGE_0(dst, src) \
- do { asm ("cmpbge $31, %1, %0" : "=r" (dst) : "r" (src)); } while (0)
-/* Zero bytes are turned into bits with cmpbge, a __clz_tab lookup counts
- them, locating the highest non-zero byte. A second __clz_tab lookup
- counts the leading zero bits in that byte, giving the result. */
-#define count_leading_zeros(count, x) \
- do { \
- UWtype __clz__b, __clz__c, __clz__x = (x); \
- ALPHA_CMPBGE_0 (__clz__b, __clz__x); /* zero bytes */ \
- __clz__b = __clz_tab [(__clz__b >> 1) ^ 0x7F]; /* 8 to 1 byte */ \
- __clz__b = __clz__b * 8 - 7; /* 57 to 1 shift */ \
- __clz__x >>= __clz__b; \
- __clz__c = __clz_tab [__clz__x]; /* 8 to 1 bit */ \
- __clz__b = 65 - __clz__b; \
- (count) = __clz__b - __clz__c; \
- } while (0)
-#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
-#endif /* clz using cmpbge */
-
-#if ! defined (count_leading_zeros) && ! defined (LONGLONG_STANDALONE)
-#if HAVE_ATTRIBUTE_CONST
-long __MPN(count_leading_zeros) (UDItype) __attribute__ ((const));
-#else
-long __MPN(count_leading_zeros) (UDItype);
-#endif
-#define count_leading_zeros(count, x) \
- ((count) = __MPN(count_leading_zeros) (x))
-#endif /* clz using mpn */
-#endif /* __alpha */
-
-#if defined (__AVR) && W_TYPE_SIZE == 8
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- unsigned short __p = (unsigned short) (m0) * (m1); \
- (ph) = __p >> 8; \
- (pl) = __p; \
- } while (0)
-#endif /* AVR */
-
-#if defined (_CRAY) && W_TYPE_SIZE == 64
-#include <intrinsics.h>
-#define UDIV_PREINV_ALWAYS 1
-#define UDIV_NEEDS_NORMALIZATION 1
-long __MPN(count_leading_zeros) (UDItype);
-#define count_leading_zeros(count, x) \
- ((count) = _leadz ((UWtype) (x)))
-#if defined (_CRAYIEEE) /* I.e., Cray T90/ieee, T3D, and T3E */
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDItype __m0 = (m0), __m1 = (m1); \
- (ph) = _int_mult_upper (__m0, __m1); \
- (pl) = __m0 * __m1; \
- } while (0)
-#ifndef LONGLONG_STANDALONE
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { UWtype __di; \
- __di = __MPN(invert_limb) (d); \
- udiv_qrnnd_preinv (q, r, n1, n0, d, __di); \
- } while (0)
-#endif /* LONGLONG_STANDALONE */
-#endif /* _CRAYIEEE */
-#endif /* _CRAY */
-
-#if defined (__ia64) && W_TYPE_SIZE == 64
-/* This form encourages gcc (pre-release 3.4 at least) to emit predicated
- "sub r=r,r" and "sub r=r,r,1", giving a 2 cycle latency. The generic
- code using "al<bl" arithmetically comes out making an actual 0 or 1 in a
- register, which takes an extra cycle. */
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- UWtype __x; \
- __x = (al) - (bl); \
- if ((al) < (bl)) \
- (sh) = (ah) - (bh) - 1; \
- else \
- (sh) = (ah) - (bh); \
- (sl) = __x; \
- } while (0)
-#if defined (__GNUC__) && ! defined (__INTEL_COMPILER)
-/* Do both product parts in assembly, since that gives better code with
- all gcc versions. Some callers will just use the upper part, and in
- that situation we waste an instruction, but not any cycles. */
-#define umul_ppmm(ph, pl, m0, m1) \
- __asm__ ("xma.hu %0 = %2, %3, f0\n\txma.l %1 = %2, %3, f0" \
- : "=&f" (ph), "=f" (pl) \
- : "f" (m0), "f" (m1))
-#define count_leading_zeros(count, x) \
- do { \
- UWtype _x = (x), _y, _a, _c; \
- __asm__ ("mux1 %0 = %1, @rev" : "=r" (_y) : "r" (_x)); \
- __asm__ ("czx1.l %0 = %1" : "=r" (_a) : "r" (-_y | _y)); \
- _c = (_a - 1) << 3; \
- _x >>= _c; \
- if (_x >= 1 << 4) \
- _x >>= 4, _c += 4; \
- if (_x >= 1 << 2) \
- _x >>= 2, _c += 2; \
- _c += _x >> 1; \
- (count) = W_TYPE_SIZE - 1 - _c; \
- } while (0)
-/* similar to what gcc does for __builtin_ffs, but 0 based rather than 1
- based, and we don't need a special case for x==0 here */
-#define count_trailing_zeros(count, x) \
- do { \
- UWtype __ctz_x = (x); \
- __asm__ ("popcnt %0 = %1" \
- : "=r" (count) \
- : "r" ((__ctz_x-1) & ~__ctz_x)); \
- } while (0)
-#endif
-#if defined (__INTEL_COMPILER)
-#include <ia64intrin.h>
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UWtype __m0 = (m0), __m1 = (m1); \
- ph = _m64_xmahu (__m0, __m1, 0); \
- pl = __m0 * __m1; \
- } while (0)
-#endif
-#ifndef LONGLONG_STANDALONE
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { UWtype __di; \
- __di = __MPN(invert_limb) (d); \
- udiv_qrnnd_preinv (q, r, n1, n0, d, __di); \
- } while (0)
-#define UDIV_PREINV_ALWAYS 1
-#define UDIV_NEEDS_NORMALIZATION 1
-#endif
-#endif
-
-
-#if defined (__GNUC__)
-
-/* We sometimes need to clobber "cc" with gcc2, but that would not be
- understood by gcc1. Use cpp to avoid major code duplication. */
-#if __GNUC__ < 2
-#define __CLOBBER_CC
-#define __AND_CLOBBER_CC
-#else /* __GNUC__ >= 2 */
-#define __CLOBBER_CC : "cc"
-#define __AND_CLOBBER_CC , "cc"
-#endif /* __GNUC__ < 2 */
-
-#if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("add %1,%4,%5\n\taddc %0,%2,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "%r" (al), "rI" (bl))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub %1,%4,%5\n\tsubc %0,%2,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "r" (al), "rI" (bl))
-#define umul_ppmm(xh, xl, m0, m1) \
- do { \
- USItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("multiplu %0,%1,%2" \
- : "=r" (xl) \
- : "r" (__m0), "r" (__m1)); \
- __asm__ ("multmu %0,%1,%2" \
- : "=r" (xh) \
- : "r" (__m0), "r" (__m1)); \
- } while (0)
-#define udiv_qrnnd(q, r, n1, n0, d) \
- __asm__ ("dividu %0,%3,%4" \
- : "=r" (q), "=q" (r) \
- : "1" (n1), "r" (n0), "r" (d))
-#define count_leading_zeros(count, x) \
- __asm__ ("clz %0,%1" \
- : "=r" (count) \
- : "r" (x))
-#define COUNT_LEADING_ZEROS_0 32
-#endif /* __a29k__ */
-
-#if defined (__arc__)
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("add.f\t%1, %4, %5\n\tadc\t%0, %2, %3" \
- : "=r" (sh), \
- "=&r" (sl) \
- : "r" ((USItype) (ah)), \
- "rICal" ((USItype) (bh)), \
- "%r" ((USItype) (al)), \
- "rICal" ((USItype) (bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub.f\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), \
- "=&r" (sl) \
- : "r" ((USItype) (ah)), \
- "rICal" ((USItype) (bh)), \
- "r" ((USItype) (al)), \
- "rICal" ((USItype) (bl)))
-#endif
-
-#if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \
- && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("adds\t%1, %4, %5\n\tadc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
-/* FIXME: Extend the immediate range for the low word by using both ADDS and
- SUBS, since they set carry in the same way. We need separate definitions
- for thumb and non-thumb since thumb lacks RSC. */
-#if defined (__thumb__)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- if (__builtin_constant_p (ah) && __builtin_constant_p (bh) \
- && (ah) == (bh)) \
- __asm__ ("subs\t%1, %2, %3\n\tsbc\t%0, %0, %0" \
- : "=r" (sh), "=r" (sl) \
- : "r" (al), "rI" (bl) __CLOBBER_CC); \
- else if (__builtin_constant_p (al)) \
- __asm__ ("rsbs\t%1, %5, %4\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "rI" (al), "r" (bl) __CLOBBER_CC); \
- else if (__builtin_constant_p (bl)) \
- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \
- else \
- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \
- } while (0)
-#else
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- if (__builtin_constant_p (ah) && __builtin_constant_p (bh) \
- && (ah) == (bh)) \
- __asm__ ("subs\t%1, %2, %3\n\tsbc\t%0, %0, %0" \
- : "=r" (sh), "=r" (sl) \
- : "r" (al), "rI" (bl) __CLOBBER_CC); \
- else if (__builtin_constant_p (al)) \
- { \
- if (__builtin_constant_p (ah)) \
- __asm__ ("rsbs\t%1, %5, %4\n\trsc\t%0, %3, %2" \
- : "=r" (sh), "=&r" (sl) \
- : "rI" (ah), "r" (bh), "rI" (al), "r" (bl) __CLOBBER_CC); \
- else \
- __asm__ ("rsbs\t%1, %5, %4\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "rI" (al), "r" (bl) __CLOBBER_CC); \
- } \
- else if (__builtin_constant_p (ah)) \
- { \
- if (__builtin_constant_p (bl)) \
- __asm__ ("subs\t%1, %4, %5\n\trsc\t%0, %3, %2" \
- : "=r" (sh), "=&r" (sl) \
- : "rI" (ah), "r" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \
- else \
- __asm__ ("rsbs\t%1, %5, %4\n\trsc\t%0, %3, %2" \
- : "=r" (sh), "=&r" (sl) \
- : "rI" (ah), "r" (bh), "rI" (al), "r" (bl) __CLOBBER_CC); \
- } \
- else if (__builtin_constant_p (bl)) \
- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \
- else /* only bh might be a constant */ \
- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rI" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \
- } while (0)
-#endif
-#if defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_2A__) \
- || defined (__ARM_ARCH_3__)
-#define umul_ppmm(xh, xl, a, b) \
- do { \
- register USItype __t0, __t1, __t2; \
- __asm__ ("%@ Inlined umul_ppmm\n" \
- " mov %2, %5, lsr #16\n" \
- " mov %0, %6, lsr #16\n" \
- " bic %3, %5, %2, lsl #16\n" \
- " bic %4, %6, %0, lsl #16\n" \
- " mul %1, %3, %4\n" \
- " mul %4, %2, %4\n" \
- " mul %3, %0, %3\n" \
- " mul %0, %2, %0\n" \
- " adds %3, %4, %3\n" \
- " addcs %0, %0, #65536\n" \
- " adds %1, %1, %3, lsl #16\n" \
- " adc %0, %0, %3, lsr #16" \
- : "=&r" ((USItype) (xh)), "=r" ((USItype) (xl)), \
- "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \
- : "r" ((USItype) (a)), "r" ((USItype) (b)) __CLOBBER_CC); \
- } while (0)
-#ifndef LONGLONG_STANDALONE
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { UWtype __r; \
- (q) = __MPN(udiv_qrnnd) (&__r, (n1), (n0), (d)); \
- (r) = __r; \
- } while (0)
-extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
-#endif /* LONGLONG_STANDALONE */
-#else /* ARMv4 or newer */
-#define umul_ppmm(xh, xl, a, b) \
- __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
-#define smul_ppmm(xh, xl, a, b) \
- __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
-#ifndef LONGLONG_STANDALONE
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { UWtype __di; \
- __di = __MPN(invert_limb) (d); \
- udiv_qrnnd_preinv (q, r, n1, n0, d, __di); \
- } while (0)
-#define UDIV_PREINV_ALWAYS 1
-#define UDIV_NEEDS_NORMALIZATION 1
-#endif /* LONGLONG_STANDALONE */
-#endif /* defined(__ARM_ARCH_2__) ... */
-#define count_leading_zeros(count, x) count_leading_zeros_gcc_clz(count, x)
-#define count_trailing_zeros(count, x) count_trailing_zeros_gcc_ctz(count, x)
-#endif /* __arm__ */
-
-#if defined (__aarch64__) && W_TYPE_SIZE == 64
-/* FIXME: Extend the immediate range for the low word by using both
- ADDS and SUBS, since they set carry in the same way. */
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("adds\t%1, %x4, %5\n\tadc\t%0, %x2, %x3" \
- : "=r" (sh), "=&r" (sl) \
- : "rZ" ((UDItype)(ah)), "rZ" ((UDItype)(bh)), \
- "%r" ((UDItype)(al)), "rI" ((UDItype)(bl)) __CLOBBER_CC)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("subs\t%1, %x4, %5\n\tsbc\t%0, %x2, %x3" \
- : "=r,r" (sh), "=&r,&r" (sl) \
- : "rZ,rZ" ((UDItype)(ah)), "rZ,rZ" ((UDItype)(bh)), \
- "r,Z" ((UDItype)(al)), "rI,r" ((UDItype)(bl)) __CLOBBER_CC)
-#if __GMP_GNUC_PREREQ (4,9)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
- __ll_UTItype __ll = (__ll_UTItype)(u) * (v); \
- w1 = __ll >> 64; \
- w0 = __ll; \
- } while (0)
-#endif
-#if !defined (umul_ppmm)
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("umulh\t%0, %1, %2" : "=r" (ph) : "r" (__m0), "r" (__m1)); \
- (pl) = __m0 * __m1; \
- } while (0)
-#endif
-#define count_leading_zeros(count, x) count_leading_zeros_gcc_clz(count, x)
-#define count_trailing_zeros(count, x) count_trailing_zeros_gcc_ctz(count, x)
-#endif /* __aarch64__ */
-
-#if defined (__clipper__) && W_TYPE_SIZE == 32
-#define umul_ppmm(w1, w0, u, v) \
- ({union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __x; \
- __asm__ ("mulwux %2,%0" \
- : "=r" (__x.__ll) \
- : "%0" ((USItype)(u)), "r" ((USItype)(v))); \
- (w1) = __x.__i.__h; (w0) = __x.__i.__l;})
-#define smul_ppmm(w1, w0, u, v) \
- ({union {DItype __ll; \
- struct {SItype __l, __h;} __i; \
- } __x; \
- __asm__ ("mulwx %2,%0" \
- : "=r" (__x.__ll) \
- : "%0" ((SItype)(u)), "r" ((SItype)(v))); \
- (w1) = __x.__i.__h; (w0) = __x.__i.__l;})
-#define __umulsidi3(u, v) \
- ({UDItype __w; \
- __asm__ ("mulwux %2,%0" \
- : "=r" (__w) : "%0" ((USItype)(u)), "r" ((USItype)(v))); \
- __w; })
-#endif /* __clipper__ */
-
-/* Fujitsu vector computers. */
-#if defined (__uxp__) && W_TYPE_SIZE == 32
-#define umul_ppmm(ph, pl, u, v) \
- do { \
- union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __asm__ ("mult.lu %1,%2,%0" : "=r" (__x.__ll) : "%r" (u), "rK" (v));\
- (ph) = __x.__i.__h; \
- (pl) = __x.__i.__l; \
- } while (0)
-#define smul_ppmm(ph, pl, u, v) \
- do { \
- union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __asm__ ("mult.l %1,%2,%0" : "=r" (__x.__ll) : "%r" (u), "rK" (v)); \
- (ph) = __x.__i.__h; \
- (pl) = __x.__i.__l; \
- } while (0)
-#endif
-
-#if defined (__gmicro__) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("add.w %5,%1\n\taddx %3,%0" \
- : "=g" (sh), "=&g" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "%1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub.w %5,%1\n\tsubx %3,%0" \
- : "=g" (sh), "=&g" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define umul_ppmm(ph, pl, m0, m1) \
- __asm__ ("mulx %3,%0,%1" \
- : "=g" (ph), "=r" (pl) \
- : "%0" ((USItype)(m0)), "g" ((USItype)(m1)))
-#define udiv_qrnnd(q, r, nh, nl, d) \
- __asm__ ("divx %4,%0,%1" \
- : "=g" (q), "=r" (r) \
- : "1" ((USItype)(nh)), "0" ((USItype)(nl)), "g" ((USItype)(d)))
-#define count_leading_zeros(count, x) \
- __asm__ ("bsch/1 %1,%0" \
- : "=g" (count) : "g" ((USItype)(x)), "0" ((USItype)0))
-#endif
-
-#if defined (__hppa) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("add%I5 %5,%r4,%1\n\taddc %r2,%r3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rM" (ah), "rM" (bh), "%rM" (al), "rI" (bl))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub%I4 %4,%r5,%1\n\tsubb %r2,%r3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rM" (ah), "rM" (bh), "rI" (al), "rM" (bl))
-#if defined (_PA_RISC1_1)
-#define umul_ppmm(wh, wl, u, v) \
- do { \
- union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __asm__ ("xmpyu %1,%2,%0" : "=*f" (__x.__ll) : "*f" (u), "*f" (v)); \
- (wh) = __x.__i.__h; \
- (wl) = __x.__i.__l; \
- } while (0)
-#endif
-#define count_leading_zeros(count, x) \
- do { \
- USItype __tmp; \
- __asm__ ( \
- "ldi 1,%0\n" \
-" extru,= %1,15,16,%%r0 ; Bits 31..16 zero?\n" \
-" extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n" \
-" ldo 16(%0),%0 ; Yes. Perform add.\n" \
-" extru,= %1,23,8,%%r0 ; Bits 15..8 zero?\n" \
-" extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n" \
-" ldo 8(%0),%0 ; Yes. Perform add.\n" \
-" extru,= %1,27,4,%%r0 ; Bits 7..4 zero?\n" \
-" extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n" \
-" ldo 4(%0),%0 ; Yes. Perform add.\n" \
-" extru,= %1,29,2,%%r0 ; Bits 3..2 zero?\n" \
-" extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n" \
-" ldo 2(%0),%0 ; Yes. Perform add.\n" \
-" extru %1,30,1,%1 ; Extract bit 1.\n" \
-" sub %0,%1,%0 ; Subtract it.\n" \
- : "=r" (count), "=r" (__tmp) : "1" (x)); \
- } while (0)
-#endif /* hppa */
-
-/* These macros are for ABI=2.0w. In ABI=2.0n they can't be used, since GCC
- (3.2) puts longlong into two adjacent 32-bit registers. Presumably this
- is just a case of no direct support for 2.0n but treating it like 1.0. */
-#if defined (__hppa) && W_TYPE_SIZE == 64 && ! defined (_LONG_LONG_LIMB)
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("add%I5 %5,%r4,%1\n\tadd,dc %r2,%r3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rM" (ah), "rM" (bh), "%rM" (al), "rI" (bl))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub%I4 %4,%r5,%1\n\tsub,db %r2,%r3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rM" (ah), "rM" (bh), "rI" (al), "rM" (bl))
-#endif /* hppa */
-
-#if (defined (__i370__) || defined (__s390__) || defined (__mvs__)) && W_TYPE_SIZE == 32
-#if defined (__zarch__) || defined (HAVE_HOST_CPU_s390_zarch)
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- do { \
-/* if (__builtin_constant_p (bl)) \
- __asm__ ("alfi\t%1,%o5\n\talcr\t%0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" (ah), "r" (bh), "%1" (al), "n" (bl) __CLOBBER_CC);\
- else \
-*/ __asm__ ("alr\t%1,%5\n\talcr\t%0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" (ah), "r" (bh), "%1" (al), "r" (bl)__CLOBBER_CC); \
- } while (0)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
-/* if (__builtin_constant_p (bl)) \
- __asm__ ("slfi\t%1,%o5\n\tslbr\t%0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" (ah), "r" (bh), "1" (al), "n" (bl) __CLOBBER_CC); \
- else \
-*/ __asm__ ("slr\t%1,%5\n\tslbr\t%0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" (ah), "r" (bh), "1" (al), "r" (bl) __CLOBBER_CC); \
- } while (0)
-#if __GMP_GNUC_PREREQ (4,5)
-#define umul_ppmm(xh, xl, m0, m1) \
- do { \
- union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __x.__ll = (UDItype) (m0) * (UDItype) (m1); \
- (xh) = __x.__i.__h; (xl) = __x.__i.__l; \
- } while (0)
-#else
-#if 0
-/* FIXME: this fails if gcc knows about the 64-bit registers. Use only
- with a new enough processor pretending we have 32-bit registers. */
-#define umul_ppmm(xh, xl, m0, m1) \
- do { \
- union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __asm__ ("mlr\t%0,%2" \
- : "=r" (__x.__ll) \
- : "%0" (m0), "r" (m1)); \
- (xh) = __x.__i.__h; (xl) = __x.__i.__l; \
- } while (0)
-#else
-#define umul_ppmm(xh, xl, m0, m1) \
- do { \
- /* When we have 64-bit regs and gcc is aware of that, we cannot simply use
- DImode for the product, since that would be allocated to a single 64-bit
- register, whereas mlr uses the low 32-bits of an even-odd register pair.
- */ \
- register USItype __r0 __asm__ ("0"); \
- register USItype __r1 __asm__ ("1") = (m0); \
- __asm__ ("mlr\t%0,%3" \
- : "=r" (__r0), "=r" (__r1) \
- : "r" (__r1), "r" (m1)); \
- (xh) = __r0; (xl) = __r1; \
- } while (0)
-#endif /* if 0 */
-#endif
-#if 0
-/* FIXME: this fails if gcc knows about the 64-bit registers. Use only
- with a new enough processor pretending we have 32-bit registers. */
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __x.__i.__h = n1; __x.__i.__l = n0; \
- __asm__ ("dlr\t%0,%2" \
- : "=r" (__x.__ll) \
- : "0" (__x.__ll), "r" (d)); \
- (q) = __x.__i.__l; (r) = __x.__i.__h; \
- } while (0)
-#else
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- register USItype __r0 __asm__ ("0") = (n1); \
- register USItype __r1 __asm__ ("1") = (n0); \
- __asm__ ("dlr\t%0,%4" \
- : "=r" (__r0), "=r" (__r1) \
- : "r" (__r0), "r" (__r1), "r" (d)); \
- (q) = __r1; (r) = __r0; \
- } while (0)
-#endif /* if 0 */
-#else /* if __zarch__ */
-/* FIXME: this fails if gcc knows about the 64-bit registers. */
-#define smul_ppmm(xh, xl, m0, m1) \
- do { \
- union {DItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __asm__ ("mr\t%0,%2" \
- : "=r" (__x.__ll) \
- : "%0" (m0), "r" (m1)); \
- (xh) = __x.__i.__h; (xl) = __x.__i.__l; \
- } while (0)
-/* FIXME: this fails if gcc knows about the 64-bit registers. */
-#define sdiv_qrnnd(q, r, n1, n0, d) \
- do { \
- union {DItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __x.__i.__h = n1; __x.__i.__l = n0; \
- __asm__ ("dr\t%0,%2" \
- : "=r" (__x.__ll) \
- : "0" (__x.__ll), "r" (d)); \
- (q) = __x.__i.__l; (r) = __x.__i.__h; \
- } while (0)
-#endif /* if __zarch__ */
-#endif
-
-#if defined (__s390x__) && W_TYPE_SIZE == 64
-/* We need to cast operands with register constraints, otherwise their types
- will be assumed to be SImode by gcc. For these machines, such operations
- will insert a value into the low 32 bits, and leave the high 32 bits with
- garbage. */
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- do { \
- __asm__ ("algr\t%1,%5\n\talcgr\t%0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((UDItype)(ah)), "r" ((UDItype)(bh)), \
- "%1" ((UDItype)(al)), "r" ((UDItype)(bl)) __CLOBBER_CC); \
- } while (0)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- __asm__ ("slgr\t%1,%5\n\tslbgr\t%0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((UDItype)(ah)), "r" ((UDItype)(bh)), \
- "1" ((UDItype)(al)), "r" ((UDItype)(bl)) __CLOBBER_CC); \
- } while (0)
-#define umul_ppmm(xh, xl, m0, m1) \
- do { \
- union {unsigned int __attribute__ ((mode(TI))) __ll; \
- struct {UDItype __h, __l;} __i; \
- } __x; \
- __asm__ ("mlgr\t%0,%2" \
- : "=r" (__x.__ll) \
- : "%0" ((UDItype)(m0)), "r" ((UDItype)(m1))); \
- (xh) = __x.__i.__h; (xl) = __x.__i.__l; \
- } while (0)
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- union {unsigned int __attribute__ ((mode(TI))) __ll; \
- struct {UDItype __h, __l;} __i; \
- } __x; \
- __x.__i.__h = n1; __x.__i.__l = n0; \
- __asm__ ("dlgr\t%0,%2" \
- : "=r" (__x.__ll) \
- : "0" (__x.__ll), "r" ((UDItype)(d))); \
- (q) = __x.__i.__l; (r) = __x.__i.__h; \
- } while (0)
-#if 0 /* FIXME: Enable for z10 (?) */
-#define count_leading_zeros(cnt, x) \
- do { \
- union {unsigned int __attribute__ ((mode(TI))) __ll; \
- struct {UDItype __h, __l;} __i; \
- } __clr_cnt; \
- __asm__ ("flogr\t%0,%1" \
- : "=r" (__clr_cnt.__ll) \
- : "r" (x) __CLOBBER_CC); \
- (cnt) = __clr_cnt.__i.__h; \
- } while (0)
-#endif
-#endif
-
-/* On x86 and x86_64, every asm implicitly clobbers "flags" and "fpsr",
- so we don't need __CLOBBER_CC. */
-#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("addl %5,%k1\n\tadcl %3,%k0" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "%1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("subl %5,%k1\n\tsbbl %3,%k0" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("mull %3" \
- : "=a" (w0), "=d" (w1) \
- : "%0" ((USItype)(u)), "rm" ((USItype)(v)))
-#define udiv_qrnnd(q, r, n1, n0, dx) /* d renamed to dx avoiding "=d" */\
- __asm__ ("divl %4" /* stringification in K&R C */ \
- : "=a" (q), "=d" (r) \
- : "0" ((USItype)(n0)), "1" ((USItype)(n1)), "rm" ((USItype)(dx)))
-
-#if HAVE_HOST_CPU_i586 || HAVE_HOST_CPU_pentium || HAVE_HOST_CPU_pentiummmx
-/* Pentium bsrl takes between 10 and 72 cycles depending where the most
- significant 1 bit is, hence the use of the following alternatives. bsfl
- is slow too, between 18 and 42 depending where the least significant 1
- bit is, so let the generic count_trailing_zeros below make use of the
- count_leading_zeros here too. */
-
-#if HAVE_HOST_CPU_pentiummmx && ! defined (LONGLONG_STANDALONE)
-/* The following should be a fixed 14 or 15 cycles, but possibly plus an L1
- cache miss reading from __clz_tab. For P55 it's favoured over the float
- below so as to avoid mixing MMX and x87, since the penalty for switching
- between the two is about 100 cycles.
-
- The asm block sets __shift to -3 if the high 24 bits are clear, -2 for
- 16, -1 for 8, or 0 otherwise. This could be written equivalently as
- follows, but as of gcc 2.95.2 it results in conditional jumps.
-
- __shift = -(__n < 0x1000000);
- __shift -= (__n < 0x10000);
- __shift -= (__n < 0x100);
-
- The middle two sbbl and cmpl's pair, and with luck something gcc
- generates might pair with the first cmpl and the last sbbl. The "32+1"
- constant could be folded into __clz_tab[], but it doesn't seem worth
- making a different table just for that. */
-
-#define count_leading_zeros(c,n) \
- do { \
- USItype __n = (n); \
- USItype __shift; \
- __asm__ ("cmpl $0x1000000, %1\n" \
- "sbbl %0, %0\n" \
- "cmpl $0x10000, %1\n" \
- "sbbl $0, %0\n" \
- "cmpl $0x100, %1\n" \
- "sbbl $0, %0\n" \
- : "=&r" (__shift) : "r" (__n)); \
- __shift = __shift*8 + 24 + 1; \
- (c) = 32 + 1 - __shift - __clz_tab[__n >> __shift]; \
- } while (0)
-#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
-#define COUNT_LEADING_ZEROS_0 31 /* n==0 indistinguishable from n==1 */
-
-#else /* ! pentiummmx || LONGLONG_STANDALONE */
-/* The following should be a fixed 14 cycles or so. Some scheduling
- opportunities should be available between the float load/store too. This
- sort of code is used in gcc 3 for __builtin_ffs (with "n&-n") and is
- apparently suggested by the Intel optimizing manual (don't know exactly
- where). gcc 2.95 or up will be best for this, so the "double" is
- correctly aligned on the stack. */
-#define count_leading_zeros(c,n) \
- do { \
- union { \
- double d; \
- unsigned a[2]; \
- } __u; \
- __u.d = (UWtype) (n); \
- (c) = 0x3FF + 31 - (__u.a[1] >> 20); \
- } while (0)
-#define COUNT_LEADING_ZEROS_0 (0x3FF + 31)
-#endif /* pentiummx */
-
-#else /* ! pentium */
-
-#if __GMP_GNUC_PREREQ (3,4) /* using bsrl */
-#define count_leading_zeros(count,x) count_leading_zeros_gcc_clz(count,x)
-#endif /* gcc clz */
-
-/* On P6, gcc prior to 3.0 generates a partial register stall for
- __cbtmp^31, due to using "xorb $31" instead of "xorl $31", the former
- being 1 code byte smaller. "31-__cbtmp" is a workaround, probably at the
- cost of one extra instruction. Do this for "i386" too, since that means
- generic x86. */
-#if ! defined (count_leading_zeros) && __GNUC__ < 3 \
- && (HAVE_HOST_CPU_i386 \
- || HAVE_HOST_CPU_i686 \
- || HAVE_HOST_CPU_pentiumpro \
- || HAVE_HOST_CPU_pentium2 \
- || HAVE_HOST_CPU_pentium3)
-#define count_leading_zeros(count, x) \
- do { \
- USItype __cbtmp; \
- ASSERT ((x) != 0); \
- __asm__ ("bsrl %1,%0" : "=r" (__cbtmp) : "rm" ((USItype)(x))); \
- (count) = 31 - __cbtmp; \
- } while (0)
-#endif /* gcc<3 asm bsrl */
-
-#ifndef count_leading_zeros
-#define count_leading_zeros(count, x) \
- do { \
- USItype __cbtmp; \
- ASSERT ((x) != 0); \
- __asm__ ("bsrl %1,%0" : "=r" (__cbtmp) : "rm" ((USItype)(x))); \
- (count) = __cbtmp ^ 31; \
- } while (0)
-#endif /* asm bsrl */
-
-#if __GMP_GNUC_PREREQ (3,4) /* using bsfl */
-#define count_trailing_zeros(count,x) count_trailing_zeros_gcc_ctz(count,x)
-#endif /* gcc ctz */
-
-#ifndef count_trailing_zeros
-#define count_trailing_zeros(count, x) \
- do { \
- ASSERT ((x) != 0); \
- __asm__ ("bsfl %1,%k0" : "=r" (count) : "rm" ((USItype)(x))); \
- } while (0)
-#endif /* asm bsfl */
-
-#endif /* ! pentium */
-
-#endif /* 80x86 */
-
-#if defined (__amd64__) && W_TYPE_SIZE == 64
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("addq %5,%q1\n\tadcq %3,%q0" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((UDItype)(ah)), "rme" ((UDItype)(bh)), \
- "%1" ((UDItype)(al)), "rme" ((UDItype)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("subq %5,%q1\n\tsbbq %3,%q0" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((UDItype)(ah)), "rme" ((UDItype)(bh)), \
- "1" ((UDItype)(al)), "rme" ((UDItype)(bl)))
-#if X86_ASM_MULX \
- && (HAVE_HOST_CPU_haswell || HAVE_HOST_CPU_broadwell \
- || HAVE_HOST_CPU_skylake || HAVE_HOST_CPU_bd4 || HAVE_HOST_CPU_zen)
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("mulx\t%3, %0, %1" \
- : "=r" (w0), "=r" (w1) \
- : "%d" ((UDItype)(u)), "rm" ((UDItype)(v)))
-#else
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("mulq\t%3" \
- : "=a" (w0), "=d" (w1) \
- : "%0" ((UDItype)(u)), "rm" ((UDItype)(v)))
-#endif
-#define udiv_qrnnd(q, r, n1, n0, dx) /* d renamed to dx avoiding "=d" */\
- __asm__ ("divq %4" /* stringification in K&R C */ \
- : "=a" (q), "=d" (r) \
- : "0" ((UDItype)(n0)), "1" ((UDItype)(n1)), "rm" ((UDItype)(dx)))
-
-#if HAVE_HOST_CPU_haswell || HAVE_HOST_CPU_broadwell || HAVE_HOST_CPU_skylake \
- || HAVE_HOST_CPU_k10 || HAVE_HOST_CPU_bd1 || HAVE_HOST_CPU_bd2 \
- || HAVE_HOST_CPU_bd3 || HAVE_HOST_CPU_bd4 || HAVE_HOST_CPU_zen \
- || HAVE_HOST_CPU_bobcat || HAVE_HOST_CPU_jaguar
-#define count_leading_zeros(count, x) \
- do { \
- /* This is lzcnt, spelled for older assemblers. Destination and */ \
- /* source must be a 64-bit registers, hence cast and %q. */ \
- __asm__ ("rep;bsr\t%1, %q0" : "=r" (count) : "rm" ((UDItype)(x))); \
- } while (0)
-#define COUNT_LEADING_ZEROS_0 64
-#else
-#define count_leading_zeros(count, x) \
- do { \
- UDItype __cbtmp; \
- ASSERT ((x) != 0); \
- __asm__ ("bsr\t%1,%0" : "=r" (__cbtmp) : "rm" ((UDItype)(x))); \
- (count) = __cbtmp ^ 63; \
- } while (0)
-#endif
-
-#if HAVE_HOST_CPU_bd2 || HAVE_HOST_CPU_bd3 || HAVE_HOST_CPU_bd4 \
- || HAVE_HOST_CPU_zen || HAVE_HOST_CPU_jaguar
-#define count_trailing_zeros(count, x) \
- do { \
- /* This is tzcnt, spelled for older assemblers. Destination and */ \
- /* source must be a 64-bit registers, hence cast and %q. */ \
- __asm__ ("rep;bsf\t%1, %q0" : "=r" (count) : "rm" ((UDItype)(x))); \
- } while (0)
-#define COUNT_TRAILING_ZEROS_0 64
-#else
-#define count_trailing_zeros(count, x) \
- do { \
- ASSERT ((x) != 0); \
- __asm__ ("bsf\t%1, %q0" : "=r" (count) : "rm" ((UDItype)(x))); \
- } while (0)
-#endif
-#endif /* __amd64__ */
-
-#if defined (__i860__) && W_TYPE_SIZE == 32
-#define rshift_rhlc(r,h,l,c) \
- __asm__ ("shr %3,r0,r0\;shrd %1,%2,%0" \
- "=r" (r) : "r" (h), "r" (l), "rn" (c))
-#endif /* i860 */
-
-#if defined (__i960__) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("cmpo 1,0\;addc %5,%4,%1\;addc %3,%2,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "dI" (ah), "dI" (bh), "%dI" (al), "dI" (bl))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("cmpo 0,0\;subc %5,%4,%1\;subc %3,%2,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "dI" (ah), "dI" (bh), "dI" (al), "dI" (bl))
-#define umul_ppmm(w1, w0, u, v) \
- ({union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __x; \
- __asm__ ("emul %2,%1,%0" \
- : "=d" (__x.__ll) : "%dI" (u), "dI" (v)); \
- (w1) = __x.__i.__h; (w0) = __x.__i.__l;})
-#define __umulsidi3(u, v) \
- ({UDItype __w; \
- __asm__ ("emul %2,%1,%0" : "=d" (__w) : "%dI" (u), "dI" (v)); \
- __w; })
-#define udiv_qrnnd(q, r, nh, nl, d) \
- do { \
- union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __nn; \
- __nn.__i.__h = (nh); __nn.__i.__l = (nl); \
- __asm__ ("ediv %d,%n,%0" \
- : "=d" (__rq.__ll) : "dI" (__nn.__ll), "dI" (d)); \
- (r) = __rq.__i.__l; (q) = __rq.__i.__h; \
- } while (0)
-#define count_leading_zeros(count, x) \
- do { \
- USItype __cbtmp; \
- __asm__ ("scanbit %1,%0" : "=r" (__cbtmp) : "r" (x)); \
- (count) = __cbtmp ^ 31; \
- } while (0)
-#define COUNT_LEADING_ZEROS_0 (-32) /* sic */
-#if defined (__i960mx) /* what is the proper symbol to test??? */
-#define rshift_rhlc(r,h,l,c) \
- do { \
- union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __nn; \
- __nn.__i.__h = (h); __nn.__i.__l = (l); \
- __asm__ ("shre %2,%1,%0" : "=d" (r) : "dI" (__nn.__ll), "dI" (c)); \
- }
-#endif /* i960mx */
-#endif /* i960 */
-
-#if (defined (__mc68000__) || defined (__mc68020__) || defined(mc68020) \
- || defined (__m68k__) || defined (__mc5200__) || defined (__mc5206e__) \
- || defined (__mc5307__)) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("add%.l %5,%1\n\taddx%.l %3,%0" \
- : "=d" (sh), "=&d" (sl) \
- : "0" ((USItype)(ah)), "d" ((USItype)(bh)), \
- "%1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub%.l %5,%1\n\tsubx%.l %3,%0" \
- : "=d" (sh), "=&d" (sl) \
- : "0" ((USItype)(ah)), "d" ((USItype)(bh)), \
- "1" ((USItype)(al)), "g" ((USItype)(bl)))
-/* The '020, '030, '040 and CPU32 have 32x32->64 and 64/32->32q-32r. */
-#if defined (__mc68020__) || defined(mc68020) \
- || defined (__mc68030__) || defined (mc68030) \
- || defined (__mc68040__) || defined (mc68040) \
- || defined (__mcpu32__) || defined (mcpu32) \
- || defined (__NeXT__)
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("mulu%.l %3,%1:%0" \
- : "=d" (w0), "=d" (w1) \
- : "%0" ((USItype)(u)), "dmi" ((USItype)(v)))
-#define udiv_qrnnd(q, r, n1, n0, d) \
- __asm__ ("divu%.l %4,%1:%0" \
- : "=d" (q), "=d" (r) \
- : "0" ((USItype)(n0)), "1" ((USItype)(n1)), "dmi" ((USItype)(d)))
-#define sdiv_qrnnd(q, r, n1, n0, d) \
- __asm__ ("divs%.l %4,%1:%0" \
- : "=d" (q), "=d" (r) \
- : "0" ((USItype)(n0)), "1" ((USItype)(n1)), "dmi" ((USItype)(d)))
-#else /* for other 68k family members use 16x16->32 multiplication */
-#define umul_ppmm(xh, xl, a, b) \
- do { USItype __umul_tmp1, __umul_tmp2; \
- __asm__ ("| Inlined umul_ppmm\n" \
-" move%.l %5,%3\n" \
-" move%.l %2,%0\n" \
-" move%.w %3,%1\n" \
-" swap %3\n" \
-" swap %0\n" \
-" mulu%.w %2,%1\n" \
-" mulu%.w %3,%0\n" \
-" mulu%.w %2,%3\n" \
-" swap %2\n" \
-" mulu%.w %5,%2\n" \
-" add%.l %3,%2\n" \
-" jcc 1f\n" \
-" add%.l %#0x10000,%0\n" \
-"1: move%.l %2,%3\n" \
-" clr%.w %2\n" \
-" swap %2\n" \
-" swap %3\n" \
-" clr%.w %3\n" \
-" add%.l %3,%1\n" \
-" addx%.l %2,%0\n" \
-" | End inlined umul_ppmm" \
- : "=&d" (xh), "=&d" (xl), \
- "=d" (__umul_tmp1), "=&d" (__umul_tmp2) \
- : "%2" ((USItype)(a)), "d" ((USItype)(b))); \
- } while (0)
-#endif /* not mc68020 */
-/* The '020, '030, '040 and '060 have bitfield insns.
- GCC 3.4 defines __mc68020__ when in CPU32 mode, check for __mcpu32__ to
- exclude bfffo on that chip (bitfield insns not available). */
-#if (defined (__mc68020__) || defined (mc68020) \
- || defined (__mc68030__) || defined (mc68030) \
- || defined (__mc68040__) || defined (mc68040) \
- || defined (__mc68060__) || defined (mc68060) \
- || defined (__NeXT__)) \
- && ! defined (__mcpu32__)
-#define count_leading_zeros(count, x) \
- __asm__ ("bfffo %1{%b2:%b2},%0" \
- : "=d" (count) \
- : "od" ((USItype) (x)), "n" (0))
-#define COUNT_LEADING_ZEROS_0 32
-#endif
-#endif /* mc68000 */
-
-#if defined (__m88000__) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("addu.co %1,%r4,%r5\n\taddu.ci %0,%r2,%r3" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" (ah), "rJ" (bh), "%rJ" (al), "rJ" (bl))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("subu.co %1,%r4,%r5\n\tsubu.ci %0,%r2,%r3" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" (ah), "rJ" (bh), "rJ" (al), "rJ" (bl))
-#define count_leading_zeros(count, x) \
- do { \
- USItype __cbtmp; \
- __asm__ ("ff1 %0,%1" : "=r" (__cbtmp) : "r" (x)); \
- (count) = __cbtmp ^ 31; \
- } while (0)
-#define COUNT_LEADING_ZEROS_0 63 /* sic */
-#if defined (__m88110__)
-#define umul_ppmm(wh, wl, u, v) \
- do { \
- union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __asm__ ("mulu.d %0,%1,%2" : "=r" (__x.__ll) : "r" (u), "r" (v)); \
- (wh) = __x.__i.__h; \
- (wl) = __x.__i.__l; \
- } while (0)
-#define udiv_qrnnd(q, r, n1, n0, d) \
- ({union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x, __q; \
- __x.__i.__h = (n1); __x.__i.__l = (n0); \
- __asm__ ("divu.d %0,%1,%2" \
- : "=r" (__q.__ll) : "r" (__x.__ll), "r" (d)); \
- (r) = (n0) - __q.__l * (d); (q) = __q.__l; })
-#endif /* __m88110__ */
-#endif /* __m88000__ */
-
-#if defined (__mips) && W_TYPE_SIZE == 32
-#if __GMP_GNUC_PREREQ (4,4)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- UDItype __ll = (UDItype)(u) * (v); \
- w1 = __ll >> 32; \
- w0 = __ll; \
- } while (0)
-#endif
-#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7) && !defined (__clang__)
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
-#endif
-#if !defined (umul_ppmm)
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("multu %2,%3\n\tmflo %0\n\tmfhi %1" \
- : "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
-#endif
-#endif /* __mips */
-
-#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-#if defined (_MIPS_ARCH_MIPS64R6)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- UDItype __m0 = (u), __m1 = (v); \
- (w0) = __m0 * __m1; \
- __asm__ ("dmuhu\t%0, %1, %2" : "=d" (w1) : "d" (__m0), "d" (__m1)); \
- } while (0)
-#endif
-#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (4,4)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
- __ll_UTItype __ll = (__ll_UTItype)(u) * (v); \
- w1 = __ll >> 64; \
- w0 = __ll; \
- } while (0)
-#endif
-#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7) && !defined (__clang__)
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("dmultu %2,%3" \
- : "=l" (w0), "=h" (w1) \
- : "d" ((UDItype)(u)), "d" ((UDItype)(v)))
-#endif
-#if !defined (umul_ppmm)
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("dmultu %2,%3\n\tmflo %0\n\tmfhi %1" \
- : "=d" (w0), "=d" (w1) \
- : "d" ((UDItype)(u)), "d" ((UDItype)(v)))
-#endif
-#endif /* __mips */
-
-#if defined (__mmix__) && W_TYPE_SIZE == 64
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("MULU %0,%2,%3" : "=r" (w0), "=z" (w1) : "r" (u), "r" (v))
-#endif
-
-#if defined (__ns32000__) && W_TYPE_SIZE == 32
-#define umul_ppmm(w1, w0, u, v) \
- ({union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __x; \
- __asm__ ("meid %2,%0" \
- : "=g" (__x.__ll) \
- : "%0" ((USItype)(u)), "g" ((USItype)(v))); \
- (w1) = __x.__i.__h; (w0) = __x.__i.__l;})
-#define __umulsidi3(u, v) \
- ({UDItype __w; \
- __asm__ ("meid %2,%0" \
- : "=g" (__w) \
- : "%0" ((USItype)(u)), "g" ((USItype)(v))); \
- __w; })
-#define udiv_qrnnd(q, r, n1, n0, d) \
- ({union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __x; \
- __x.__i.__h = (n1); __x.__i.__l = (n0); \
- __asm__ ("deid %2,%0" \
- : "=g" (__x.__ll) \
- : "0" (__x.__ll), "g" ((USItype)(d))); \
- (r) = __x.__i.__l; (q) = __x.__i.__h; })
-#define count_trailing_zeros(count,x) \
- do { \
- __asm__ ("ffsd %2,%0" \
- : "=r" (count) \
- : "0" ((USItype) 0), "r" ((USItype) (x))); \
- } while (0)
-#endif /* __ns32000__ */
-
-/* In the past we had a block of various #defines tested
- _ARCH_PPC - AIX
- _ARCH_PWR - AIX
- __powerpc__ - gcc
- __POWERPC__ - BEOS
- __ppc__ - Darwin
- PPC - old gcc, GNU/Linux, SysV
- The plain PPC test was not good for vxWorks, since PPC is defined on all
- CPUs there (eg. m68k too), as a constant one is expected to compare
- CPU_FAMILY against.
-
- At any rate, this was pretty unattractive and a bit fragile. The use of
- HAVE_HOST_CPU_FAMILY is designed to cut through it all and be sure of
- getting the desired effect.
-
- ENHANCE-ME: We should test _IBMR2 here when we add assembly support for
- the system vendor compilers. (Is that vendor compilers with inline asm,
- or what?) */
-
-#if (HAVE_HOST_CPU_FAMILY_power || HAVE_HOST_CPU_FAMILY_powerpc) \
- && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- do { \
- if (__builtin_constant_p (bh) && (bh) == 0) \
- __asm__ ("add%I4c %1,%3,%4\n\taddze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \
- __asm__ ("add%I4c %1,%3,%4\n\taddme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl) \
- __CLOBBER_CC); \
- else \
- __asm__ ("add%I5c %1,%4,%5\n\tadde %0,%2,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "r" (bh), "%r" (al), "rI" (bl) \
- __CLOBBER_CC); \
- } while (0)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- if (__builtin_constant_p (ah) && (ah) == 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (ah) && (ah) == ~(USItype) 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (bh) && (bh) == 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2" \
- : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl) \
- __CLOBBER_CC); \
- else \
- __asm__ ("subf%I4c %1,%5,%4\n\tsubfe %0,%3,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "r" (bh), "rI" (al), "r" (bl) \
- __CLOBBER_CC); \
- } while (0)
-#define count_leading_zeros(count, x) \
- __asm__ ("cntlzw %0,%1" : "=r" (count) : "r" (x))
-#define COUNT_LEADING_ZEROS_0 32
-#if HAVE_HOST_CPU_FAMILY_powerpc
-#if __GMP_GNUC_PREREQ (4,4)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- UDItype __ll = (UDItype)(u) * (v); \
- w1 = __ll >> 32; \
- w0 = __ll; \
- } while (0)
-#endif
-#if !defined (umul_ppmm)
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- USItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("mulhwu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
- (pl) = __m0 * __m1; \
- } while (0)
-#endif
-#define smul_ppmm(ph, pl, m0, m1) \
- do { \
- SItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("mulhw %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
- (pl) = __m0 * __m1; \
- } while (0)
-#else
-#define smul_ppmm(xh, xl, m0, m1) \
- __asm__ ("mul %0,%2,%3" : "=r" (xh), "=q" (xl) : "r" (m0), "r" (m1))
-#define sdiv_qrnnd(q, r, nh, nl, d) \
- __asm__ ("div %0,%2,%4" : "=r" (q), "=q" (r) : "r" (nh), "1" (nl), "r" (d))
-#endif
-#endif /* 32-bit POWER architecture variants. */
-
-/* We should test _IBMR2 here when we add assembly support for the system
- vendor compilers. */
-#if HAVE_HOST_CPU_FAMILY_powerpc && W_TYPE_SIZE == 64
-#if !defined (_LONG_LONG_LIMB)
-/* _LONG_LONG_LIMB is ABI=mode32 where adde operates on 32-bit values. So
- use adde etc only when not _LONG_LONG_LIMB. */
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- do { \
- if (__builtin_constant_p (bh) && (bh) == 0) \
- __asm__ ("add%I4c %1,%3,%4\n\taddze %0,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(ah)), \
- "%r" ((UDItype)(al)), "rI" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
- __asm__ ("add%I4c %1,%3,%4\n\taddme %0,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(ah)), \
- "%r" ((UDItype)(al)), "rI" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- else \
- __asm__ ("add%I5c %1,%4,%5\n\tadde %0,%2,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(ah)), "r" ((UDItype)(bh)), \
- "%r" ((UDItype)(al)), "rI" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- } while (0)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- if (__builtin_constant_p (ah) && (ah) == 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(bh)), \
- "rI" ((UDItype)(al)), "r" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(bh)), \
- "rI" ((UDItype)(al)), "r" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (bh) && (bh) == 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(ah)), \
- "rI" ((UDItype)(al)), "r" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
- __asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(ah)), \
- "rI" ((UDItype)(al)), "r" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- else \
- __asm__ ("subf%I4c %1,%5,%4\n\tsubfe %0,%3,%2" \
- : "=r" (sh), "=&r" (sl) \
- : "r" ((UDItype)(ah)), "r" ((UDItype)(bh)), \
- "rI" ((UDItype)(al)), "r" ((UDItype)(bl)) \
- __CLOBBER_CC); \
- } while (0)
-#endif /* ! _LONG_LONG_LIMB */
-#define count_leading_zeros(count, x) \
- __asm__ ("cntlzd %0,%1" : "=r" (count) : "r" (x))
-#define COUNT_LEADING_ZEROS_0 64
-#if __GMP_GNUC_PREREQ (4,8)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
- __ll_UTItype __ll = (__ll_UTItype)(u) * (v); \
- w1 = __ll >> 64; \
- w0 = __ll; \
- } while (0)
-#endif
-#if !defined (umul_ppmm)
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (__m0), "r" (__m1)); \
- (pl) = __m0 * __m1; \
- } while (0)
-#endif
-#define smul_ppmm(ph, pl, m0, m1) \
- do { \
- DItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("mulhd %0,%1,%2" : "=r" (ph) : "%r" (__m0), "r" (__m1)); \
- (pl) = __m0 * __m1; \
- } while (0)
-#endif /* 64-bit PowerPC. */
-
-#if defined (__pyr__) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("addw %5,%1\n\taddwc %3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "%1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("subw %5,%1\n\tsubwb %3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "1" ((USItype)(al)), "g" ((USItype)(bl)))
-/* This insn works on Pyramids with AP, XP, or MI CPUs, but not with SP. */
-#define umul_ppmm(w1, w0, u, v) \
- ({union {UDItype __ll; \
- struct {USItype __h, __l;} __i; \
- } __x; \
- __asm__ ("movw %1,%R0\n\tuemul %2,%0" \
- : "=&r" (__x.__ll) \
- : "g" ((USItype) (u)), "g" ((USItype)(v))); \
- (w1) = __x.__i.__h; (w0) = __x.__i.__l;})
-#endif /* __pyr__ */
-
-#if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("a %1,%5\n\tae %0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((USItype)(ah)), "r" ((USItype)(bh)), \
- "%1" ((USItype)(al)), "r" ((USItype)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("s %1,%5\n\tse %0,%3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((USItype)(ah)), "r" ((USItype)(bh)), \
- "1" ((USItype)(al)), "r" ((USItype)(bl)))
-#define smul_ppmm(ph, pl, m0, m1) \
- __asm__ ( \
- "s r2,r2\n" \
-" mts r10,%2\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" m r2,%3\n" \
-" cas %0,r2,r0\n" \
-" mfs r10,%1" \
- : "=r" (ph), "=r" (pl) \
- : "%r" ((USItype)(m0)), "r" ((USItype)(m1)) \
- : "r2")
-#define count_leading_zeros(count, x) \
- do { \
- if ((x) >= 0x10000) \
- __asm__ ("clz %0,%1" \
- : "=r" (count) : "r" ((USItype)(x) >> 16)); \
- else \
- { \
- __asm__ ("clz %0,%1" \
- : "=r" (count) : "r" ((USItype)(x))); \
- (count) += 16; \
- } \
- } while (0)
-#endif /* RT/ROMP */
-
-#if defined (__riscv64) && W_TYPE_SIZE == 64
-#define umul_ppmm(ph, pl, u, v) \
- do { \
- UDItype __u = (u), __v = (v); \
- (pl) = __u * __v; \
- __asm__ ("mulhu\t%2, %1, %0" : "=r" (ph) : "%r" (__u), "r" (__v)); \
- } while (0)
-#endif
-
-#if (defined (__SH2__) || defined (__SH3__) || defined (__SH4__)) && W_TYPE_SIZE == 32
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("dmulu.l %2,%3\n\tsts macl,%1\n\tsts mach,%0" \
- : "=r" (w1), "=r" (w0) : "r" (u), "r" (v) : "macl", "mach")
-#endif
-
-#if defined (__sparc__) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("addcc %r4,%5,%1\n\taddx %r2,%3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" (ah), "rI" (bh),"%rJ" (al), "rI" (bl) \
- __CLOBBER_CC)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("subcc %r4,%5,%1\n\tsubx %r2,%3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" (ah), "rI" (bh), "rJ" (al), "rI" (bl) \
- __CLOBBER_CC)
-/* FIXME: When gcc -mcpu=v9 is used on solaris, gcc/config/sol2-sld-64.h
- doesn't define anything to indicate that to us, it only sets __sparcv8. */
-#if defined (__sparc_v9__) || defined (__sparcv9)
-/* Perhaps we should use floating-point operations here? */
-#if 0
-/* Triggers a bug making mpz/tests/t-gcd.c fail.
- Perhaps we simply need explicitly zero-extend the inputs? */
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("mulx %2,%3,%%g1; srl %%g1,0,%1; srlx %%g1,32,%0" : \
- "=r" (w1), "=r" (w0) : "r" (u), "r" (v) : "g1")
-#else
-/* Use v8 umul until above bug is fixed. */
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("umul %2,%3,%1;rd %%y,%0" : "=r" (w1), "=r" (w0) : "r" (u), "r" (v))
-#endif
-/* Use a plain v8 divide for v9. */
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- USItype __q; \
- __asm__ ("mov %1,%%y;nop;nop;nop;udiv %2,%3,%0" \
- : "=r" (__q) : "r" (n1), "r" (n0), "r" (d)); \
- (r) = (n0) - __q * (d); \
- (q) = __q; \
- } while (0)
-#else
-#if defined (__sparc_v8__) /* gcc normal */ \
- || defined (__sparcv8) /* gcc solaris */ \
- || HAVE_HOST_CPU_supersparc
-/* Don't match immediate range because, 1) it is not often useful,
- 2) the 'I' flag thinks of the range as a 13 bit signed interval,
- while we want to match a 13 bit interval, sign extended to 32 bits,
- but INTERPRETED AS UNSIGNED. */
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("umul %2,%3,%1;rd %%y,%0" : "=r" (w1), "=r" (w0) : "r" (u), "r" (v))
-
-#if HAVE_HOST_CPU_supersparc
-#else
-/* Don't use this on SuperSPARC because its udiv only handles 53 bit
- dividends and will trap to the kernel for the rest. */
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- USItype __q; \
- __asm__ ("mov %1,%%y;nop;nop;nop;udiv %2,%3,%0" \
- : "=r" (__q) : "r" (n1), "r" (n0), "r" (d)); \
- (r) = (n0) - __q * (d); \
- (q) = __q; \
- } while (0)
-#endif /* HAVE_HOST_CPU_supersparc */
-
-#else /* ! __sparc_v8__ */
-#if defined (__sparclite__)
-/* This has hardware multiply but not divide. It also has two additional
- instructions scan (ffs from high bit) and divscc. */
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("umul %2,%3,%1;rd %%y,%0" : "=r" (w1), "=r" (w0) : "r" (u), "r" (v))
-#define udiv_qrnnd(q, r, n1, n0, d) \
- __asm__ ("! Inlined udiv_qrnnd\n" \
-" wr %%g0,%2,%%y ! Not a delayed write for sparclite\n" \
-" tst %%g0\n" \
-" divscc %3,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%%g1\n" \
-" divscc %%g1,%4,%0\n" \
-" rd %%y,%1\n" \
-" bl,a 1f\n" \
-" add %1,%4,%1\n" \
-"1: ! End of inline udiv_qrnnd" \
- : "=r" (q), "=r" (r) : "r" (n1), "r" (n0), "rI" (d) \
- : "%g1" __AND_CLOBBER_CC)
-#define count_leading_zeros(count, x) \
- __asm__ ("scan %1,1,%0" : "=r" (count) : "r" (x))
-/* Early sparclites return 63 for an argument of 0, but they warn that future
- implementations might change this. Therefore, leave COUNT_LEADING_ZEROS_0
- undefined. */
-#endif /* __sparclite__ */
-#endif /* __sparc_v8__ */
-#endif /* __sparc_v9__ */
-/* Default to sparc v7 versions of umul_ppmm and udiv_qrnnd. */
-#ifndef umul_ppmm
-#define umul_ppmm(w1, w0, u, v) \
- __asm__ ("! Inlined umul_ppmm\n" \
-" wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr\n" \
-" sra %3,31,%%g2 ! Don't move this insn\n" \
-" and %2,%%g2,%%g2 ! Don't move this insn\n" \
-" andcc %%g0,0,%%g1 ! Don't move this insn\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,%3,%%g1\n" \
-" mulscc %%g1,0,%%g1\n" \
-" add %%g1,%%g2,%0\n" \
-" rd %%y,%1" \
- : "=r" (w1), "=r" (w0) : "%rI" (u), "r" (v) \
- : "%g1", "%g2" __AND_CLOBBER_CC)
-#endif
-#ifndef udiv_qrnnd
-#ifndef LONGLONG_STANDALONE
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { UWtype __r; \
- (q) = __MPN(udiv_qrnnd) (&__r, (n1), (n0), (d)); \
- (r) = __r; \
- } while (0)
-extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
-#endif /* LONGLONG_STANDALONE */
-#endif /* udiv_qrnnd */
-#endif /* __sparc__ */
-
-#if defined (__sparc__) && W_TYPE_SIZE == 64
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ( \
- "addcc %r4,%5,%1\n" \
- " addccc %r6,%7,%%g0\n" \
- " addc %r2,%3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" ((UDItype)(ah)), "rI" ((UDItype)(bh)), \
- "%rJ" ((UDItype)(al)), "rI" ((UDItype)(bl)), \
- "%rJ" ((UDItype)(al) >> 32), "rI" ((UDItype)(bl) >> 32) \
- __CLOBBER_CC)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ( \
- "subcc %r4,%5,%1\n" \
- " subccc %r6,%7,%%g0\n" \
- " subc %r2,%3,%0" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" ((UDItype)(ah)), "rI" ((UDItype)(bh)), \
- "rJ" ((UDItype)(al)), "rI" ((UDItype)(bl)), \
- "rJ" ((UDItype)(al) >> 32), "rI" ((UDItype)(bl) >> 32) \
- __CLOBBER_CC)
-#if __VIS__ >= 0x300
-#undef add_ssaaaa
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ( \
- "addcc %r4, %5, %1\n" \
- " addxc %r2, %r3, %0" \
- : "=r" (sh), "=&r" (sl) \
- : "rJ" ((UDItype)(ah)), "rJ" ((UDItype)(bh)), \
- "%rJ" ((UDItype)(al)), "rI" ((UDItype)(bl)) __CLOBBER_CC)
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDItype __m0 = (m0), __m1 = (m1); \
- (pl) = __m0 * __m1; \
- __asm__ ("umulxhi\t%2, %1, %0" \
- : "=r" (ph) \
- : "%r" (__m0), "r" (__m1)); \
- } while (0)
-#define count_leading_zeros(count, x) \
- __asm__ ("lzd\t%1,%0" : "=r" (count) : "r" (x))
-/* Needed by count_leading_zeros_32 in sparc64.h. */
-#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
-#endif
-#endif
-
-#if (defined (__vax) || defined (__vax__)) && W_TYPE_SIZE == 32
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("addl2 %5,%1\n\tadwc %3,%0" \
- : "=g" (sh), "=&g" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "%1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("subl2 %5,%1\n\tsbwc %3,%0" \
- : "=g" (sh), "=&g" (sl) \
- : "0" ((USItype)(ah)), "g" ((USItype)(bh)), \
- "1" ((USItype)(al)), "g" ((USItype)(bl)))
-#define smul_ppmm(xh, xl, m0, m1) \
- do { \
- union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __x; \
- USItype __m0 = (m0), __m1 = (m1); \
- __asm__ ("emul %1,%2,$0,%0" \
- : "=g" (__x.__ll) : "g" (__m0), "g" (__m1)); \
- (xh) = __x.__i.__h; (xl) = __x.__i.__l; \
- } while (0)
-#define sdiv_qrnnd(q, r, n1, n0, d) \
- do { \
- union {DItype __ll; \
- struct {SItype __l, __h;} __i; \
- } __x; \
- __x.__i.__h = n1; __x.__i.__l = n0; \
- __asm__ ("ediv %3,%2,%0,%1" \
- : "=g" (q), "=g" (r) : "g" (__x.__ll), "g" (d)); \
- } while (0)
-#if 0
-/* FIXME: This instruction appears to be unimplemented on some systems (vax
- 8800 maybe). */
-#define count_trailing_zeros(count,x) \
- do { \
- __asm__ ("ffs 0, 31, %1, %0" \
- : "=g" (count) \
- : "g" ((USItype) (x))); \
- } while (0)
-#endif
-#endif /* vax */
-
-#if defined (__z8000__) && W_TYPE_SIZE == 16
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("add %H1,%H5\n\tadc %H0,%H3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((unsigned int)(ah)), "r" ((unsigned int)(bh)), \
- "%1" ((unsigned int)(al)), "rQR" ((unsigned int)(bl)))
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- __asm__ ("sub %H1,%H5\n\tsbc %H0,%H3" \
- : "=r" (sh), "=&r" (sl) \
- : "0" ((unsigned int)(ah)), "r" ((unsigned int)(bh)), \
- "1" ((unsigned int)(al)), "rQR" ((unsigned int)(bl)))
-#define umul_ppmm(xh, xl, m0, m1) \
- do { \
- union {long int __ll; \
- struct {unsigned int __h, __l;} __i; \
- } __x; \
- unsigned int __m0 = (m0), __m1 = (m1); \
- __asm__ ("mult %S0,%H3" \
- : "=r" (__x.__i.__h), "=r" (__x.__i.__l) \
- : "%1" (m0), "rQR" (m1)); \
- (xh) = __x.__i.__h; (xl) = __x.__i.__l; \
- (xh) += ((((signed int) __m0 >> 15) & __m1) \
- + (((signed int) __m1 >> 15) & __m0)); \
- } while (0)
-#endif /* __z8000__ */
-
-#endif /* __GNUC__ */
-
-#endif /* NO_ASM */
-
-
-/* FIXME: "sidi" here is highly doubtful, should sometimes be "diti". */
-#if !defined (umul_ppmm) && defined (__umulsidi3)
-#define umul_ppmm(ph, pl, m0, m1) \
- do { \
- UDWtype __ll = __umulsidi3 (m0, m1); \
- ph = (UWtype) (__ll >> W_TYPE_SIZE); \
- pl = (UWtype) __ll; \
- } while (0)
-#endif
-
-#if !defined (__umulsidi3)
-#define __umulsidi3(u, v) \
- ({UWtype __hi, __lo; \
- umul_ppmm (__hi, __lo, u, v); \
- ((UDWtype) __hi << W_TYPE_SIZE) | __lo; })
-#endif
-
-
-#if defined (__cplusplus)
-#define __longlong_h_C "C"
-#else
-#define __longlong_h_C
-#endif
-
-/* Use mpn_umul_ppmm or mpn_udiv_qrnnd functions, if they exist. The "_r"
- forms have "reversed" arguments, meaning the pointer is last, which
- sometimes allows better parameter passing, in particular on 64-bit
- hppa. */
-
-#define mpn_umul_ppmm __MPN(umul_ppmm)
-extern __longlong_h_C UWtype mpn_umul_ppmm (UWtype *, UWtype, UWtype);
-
-#if ! defined (umul_ppmm) && HAVE_NATIVE_mpn_umul_ppmm \
- && ! defined (LONGLONG_STANDALONE)
-#define umul_ppmm(wh, wl, u, v) \
- do { \
- UWtype __umul_ppmm__p0; \
- (wh) = mpn_umul_ppmm (&__umul_ppmm__p0, (UWtype) (u), (UWtype) (v));\
- (wl) = __umul_ppmm__p0; \
- } while (0)
-#endif
-
-#define mpn_umul_ppmm_r __MPN(umul_ppmm_r)
-extern __longlong_h_C UWtype mpn_umul_ppmm_r (UWtype, UWtype, UWtype *);
-
-#if ! defined (umul_ppmm) && HAVE_NATIVE_mpn_umul_ppmm_r \
- && ! defined (LONGLONG_STANDALONE)
-#define umul_ppmm(wh, wl, u, v) \
- do { \
- UWtype __umul_p0; \
- (wh) = mpn_umul_ppmm_r ((UWtype) (u), (UWtype) (v), &__umul_p0); \
- (wl) = __umul_p0; \
- } while (0)
-#endif
-
-#define mpn_udiv_qrnnd __MPN(udiv_qrnnd)
-extern __longlong_h_C UWtype mpn_udiv_qrnnd (UWtype *, UWtype, UWtype, UWtype);
-
-#if ! defined (udiv_qrnnd) && HAVE_NATIVE_mpn_udiv_qrnnd \
- && ! defined (LONGLONG_STANDALONE)
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- UWtype __udiv_qrnnd_r; \
- (q) = mpn_udiv_qrnnd (&__udiv_qrnnd_r, \
- (UWtype) (n1), (UWtype) (n0), (UWtype) d); \
- (r) = __udiv_qrnnd_r; \
- } while (0)
-#endif
-
-#define mpn_udiv_qrnnd_r __MPN(udiv_qrnnd_r)
-extern __longlong_h_C UWtype mpn_udiv_qrnnd_r (UWtype, UWtype, UWtype, UWtype *);
-
-#if ! defined (udiv_qrnnd) && HAVE_NATIVE_mpn_udiv_qrnnd_r \
- && ! defined (LONGLONG_STANDALONE)
-#define udiv_qrnnd(q, r, n1, n0, d) \
- do { \
- UWtype __udiv_qrnnd_r; \
- (q) = mpn_udiv_qrnnd_r ((UWtype) (n1), (UWtype) (n0), (UWtype) d, \
- &__udiv_qrnnd_r); \
- (r) = __udiv_qrnnd_r; \
- } while (0)
-#endif
-
-
-/* If this machine has no inline assembler, use C macros. */
-
-#if !defined (add_ssaaaa)
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- do { \
- UWtype __x; \
- __x = (al) + (bl); \
- (sh) = (ah) + (bh) + (__x < (al)); \
- (sl) = __x; \
- } while (0)
-#endif
-
-#if !defined (sub_ddmmss)
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- UWtype __x; \
- __x = (al) - (bl); \
- (sh) = (ah) - (bh) - ((al) < (bl)); \
- (sl) = __x; \
- } while (0)
-#endif
-
-/* If we lack umul_ppmm but have smul_ppmm, define umul_ppmm in terms of
- smul_ppmm. */
-#if !defined (umul_ppmm) && defined (smul_ppmm)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- UWtype __w1; \
- UWtype __xm0 = (u), __xm1 = (v); \
- smul_ppmm (__w1, w0, __xm0, __xm1); \
- (w1) = __w1 + (-(__xm0 >> (W_TYPE_SIZE - 1)) & __xm1) \
- + (-(__xm1 >> (W_TYPE_SIZE - 1)) & __xm0); \
- } while (0)
-#endif
-
-/* If we still don't have umul_ppmm, define it using plain C.
-
- For reference, when this code is used for squaring (ie. u and v identical
- expressions), gcc recognises __x1 and __x2 are the same and generates 3
- multiplies, not 4. The subsequent additions could be optimized a bit,
- but the only place GMP currently uses such a square is mpn_sqr_basecase,
- and chips obliged to use this generic C umul will have plenty of worse
- performance problems than a couple of extra instructions on the diagonal
- of sqr_basecase. */
-
-#if !defined (umul_ppmm)
-#define umul_ppmm(w1, w0, u, v) \
- do { \
- UWtype __x0, __x1, __x2, __x3; \
- UHWtype __ul, __vl, __uh, __vh; \
- UWtype __u = (u), __v = (v); \
- \
- __ul = __ll_lowpart (__u); \
- __uh = __ll_highpart (__u); \
- __vl = __ll_lowpart (__v); \
- __vh = __ll_highpart (__v); \
- \
- __x0 = (UWtype) __ul * __vl; \
- __x1 = (UWtype) __ul * __vh; \
- __x2 = (UWtype) __uh * __vl; \
- __x3 = (UWtype) __uh * __vh; \
- \
- __x1 += __ll_highpart (__x0);/* this can't give carry */ \
- __x1 += __x2; /* but this indeed can */ \
- if (__x1 < __x2) /* did we get it? */ \
- __x3 += __ll_B; /* yes, add it in the proper pos. */ \
- \
- (w1) = __x3 + __ll_highpart (__x1); \
- (w0) = (__x1 << W_TYPE_SIZE/2) + __ll_lowpart (__x0); \
- } while (0)
-#endif
-
-/* If we don't have smul_ppmm, define it using umul_ppmm (which surely will
- exist in one form or another. */
-#if !defined (smul_ppmm)
-#define smul_ppmm(w1, w0, u, v) \
- do { \
- UWtype __w1; \
- UWtype __xm0 = (u), __xm1 = (v); \
- umul_ppmm (__w1, w0, __xm0, __xm1); \
- (w1) = __w1 - (-(__xm0 >> (W_TYPE_SIZE - 1)) & __xm1) \
- - (-(__xm1 >> (W_TYPE_SIZE - 1)) & __xm0); \
- } while (0)
-#endif
-
-/* Define this unconditionally, so it can be used for debugging. */
-#define __udiv_qrnnd_c(q, r, n1, n0, d) \
- do { \
- UWtype __d1, __d0, __q1, __q0, __r1, __r0, __m; \
- \
- ASSERT ((d) != 0); \
- ASSERT ((n1) < (d)); \
- \
- __d1 = __ll_highpart (d); \
- __d0 = __ll_lowpart (d); \
- \
- __q1 = (n1) / __d1; \
- __r1 = (n1) - __q1 * __d1; \
- __m = __q1 * __d0; \
- __r1 = __r1 * __ll_B | __ll_highpart (n0); \
- if (__r1 < __m) \
- { \
- __q1--, __r1 += (d); \
- if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */\
- if (__r1 < __m) \
- __q1--, __r1 += (d); \
- } \
- __r1 -= __m; \
- \
- __q0 = __r1 / __d1; \
- __r0 = __r1 - __q0 * __d1; \
- __m = __q0 * __d0; \
- __r0 = __r0 * __ll_B | __ll_lowpart (n0); \
- if (__r0 < __m) \
- { \
- __q0--, __r0 += (d); \
- if (__r0 >= (d)) \
- if (__r0 < __m) \
- __q0--, __r0 += (d); \
- } \
- __r0 -= __m; \
- \
- (q) = __q1 * __ll_B | __q0; \
- (r) = __r0; \
- } while (0)
-
-/* If the processor has no udiv_qrnnd but sdiv_qrnnd, go through
- __udiv_w_sdiv (defined in libgcc or elsewhere). */
-#if !defined (udiv_qrnnd) && defined (sdiv_qrnnd) \
- && ! defined (LONGLONG_STANDALONE)
-#define udiv_qrnnd(q, r, nh, nl, d) \
- do { \
- UWtype __r; \
- (q) = __MPN(udiv_w_sdiv) (&__r, nh, nl, d); \
- (r) = __r; \
- } while (0)
-__MPFR_DECLSPEC UWtype __MPN(udiv_w_sdiv) (UWtype *, UWtype, UWtype, UWtype);
-#endif
-
-/* If udiv_qrnnd was not defined for this processor, use __udiv_qrnnd_c. */
-#if !defined (udiv_qrnnd)
-#define UDIV_NEEDS_NORMALIZATION 1
-#define udiv_qrnnd __udiv_qrnnd_c
-#endif
-
-#if !defined (count_leading_zeros)
-#define count_leading_zeros(count, x) \
- do { \
- UWtype __xr = (x); \
- UWtype __a; \
- \
- if (W_TYPE_SIZE == 32) \
- { \
- __a = __xr < ((UWtype) 1 << 2*__BITS4) \
- ? (__xr < ((UWtype) 1 << __BITS4) ? 1 : __BITS4 + 1) \
- : (__xr < ((UWtype) 1 << 3*__BITS4) ? 2*__BITS4 + 1 \
- : 3*__BITS4 + 1); \
- } \
- else \
- { \
- for (__a = W_TYPE_SIZE - 8; __a > 0; __a -= 8) \
- if (((__xr >> __a) & 0xff) != 0) \
- break; \
- ++__a; \
- } \
- \
- (count) = W_TYPE_SIZE + 1 - __a - __clz_tab[__xr >> __a]; \
- } while (0)
-/* This version gives a well-defined value for zero. */
-#define COUNT_LEADING_ZEROS_0 (W_TYPE_SIZE - 1)
-#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
-#define COUNT_LEADING_ZEROS_SLOW
-#endif
-
-/* clz_tab needed by mpn/x86/pentium/mod_1.asm in a fat binary */
-#if HAVE_HOST_CPU_FAMILY_x86 && WANT_FAT_BINARY
-#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
-#endif
-
-#ifdef COUNT_LEADING_ZEROS_NEED_CLZ_TAB
-extern const unsigned char __MPFR_DECLSPEC __clz_tab[129];
-#endif
-
-#if !defined (count_trailing_zeros)
-#if !defined (COUNT_LEADING_ZEROS_SLOW)
-/* Define count_trailing_zeros using an asm count_leading_zeros. */
-#define count_trailing_zeros(count, x) \
- do { \
- UWtype __ctz_x = (x); \
- UWtype __ctz_c; \
- ASSERT (__ctz_x != 0); \
- count_leading_zeros (__ctz_c, __ctz_x & -__ctz_x); \
- (count) = W_TYPE_SIZE - 1 - __ctz_c; \
- } while (0)
-#else
-/* Define count_trailing_zeros in plain C, assuming small counts are common.
- We use clz_tab without ado, since the C count_leading_zeros above will have
- pulled it in. */
-#define count_trailing_zeros(count, x) \
- do { \
- UWtype __ctz_x = (x); \
- int __ctz_c; \
- \
- if (LIKELY ((__ctz_x & 0xff) != 0)) \
- (count) = __clz_tab[__ctz_x & -__ctz_x] - 2; \
- else \
- { \
- for (__ctz_c = 8 - 2; __ctz_c < W_TYPE_SIZE - 2; __ctz_c += 8) \
- { \
- __ctz_x >>= 8; \
- if (LIKELY ((__ctz_x & 0xff) != 0)) \
- break; \
- } \
- \
- (count) = __ctz_c + __clz_tab[__ctz_x & -__ctz_x]; \
- } \
- } while (0)
-#endif
-#endif
-
-#ifndef UDIV_NEEDS_NORMALIZATION
-#define UDIV_NEEDS_NORMALIZATION 0
-#endif
-
-/* Whether udiv_qrnnd is actually implemented with udiv_qrnnd_preinv, and
- that hence the latter should always be used. */
-#ifndef UDIV_PREINV_ALWAYS
-#define UDIV_PREINV_ALWAYS 0
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.c b/Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.c
deleted file mode 100644
index abdcb9aa280..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/* mpfr-mini-gmp.c -- Interface functions for mini-gmp.
-
-Copyright 2014-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* The following include will do 2 things: include the config.h
- if there is one (as it may define MPFR_USE_MINI_GMP), and avoid
- an empty translation unit (see ISO C99, 6.9). */
-#include "mpfr-impl.h"
-
-#ifdef MPFR_USE_MINI_GMP
-
-/************************ random generation functions ************************/
-
-#ifdef WANT_gmp_randinit_default
-void
-gmp_randinit_default (gmp_randstate_t state)
-{
-}
-#endif
-
-#ifdef WANT_gmp_randseed_ui
-void
-gmp_randseed_ui (gmp_randstate_t state, unsigned long int seed)
-{
- /* With a portable version of the conversion from unsigned long to long
- (at least GCC and Clang optimize this expression to identity). */
- srand48 (seed > LONG_MAX ? -1 - (long) ~seed : (long) seed);
-}
-#endif
-
-#ifdef WANT_gmp_randclear
-void
-gmp_randclear (gmp_randstate_t state)
-{
-}
-#endif
-
-#ifdef WANT_gmp_randinit_set
-void
-gmp_randinit_set (gmp_randstate_t s1, gmp_randstate_t s2)
-{
-}
-#endif
-
-static mp_limb_t
-random_limb (void)
-{
- /* lrand48() returns a random number in [0, 2^31-1],
- but the low 15 bits do not depend on the random seed,
- thus it is safer to use the upper bits */
-#if GMP_NUMB_BITS < 32
- /* use the upper GMP_NUMB_BITS bits from lrand48 () */
- return (mp_limb_t) (lrand48 () >> (31 - GMP_NUMB_BITS));
-#elif GMP_NUMB_BITS == 32
- /* use the upper 16 bits from two lrand48 calls */
- return (lrand48 () >> 15) + ((lrand48 () >> 15) << 16);
-#elif GMP_NUMB_BITS == 64
- /* use the upper 16 bits from four lrand48 calls */
- return (lrand48 () >> 15) + ((((mp_limb_t) lrand48 ()) >> 15) << 16)
- + ((((mp_limb_t) lrand48 ()) >> 15) << 32)
- + ((((mp_limb_t) lrand48 ()) >> 15) << 48);
-#else
-#error "GMP_NUMB_BITS should be 8, 16, 32 or >= 64"
-#endif
-}
-
-#ifdef WANT_mpz_urandomb
-void
-mpz_urandomb (mpz_t rop, gmp_randstate_t state, mp_bitcnt_t nbits)
-{
- unsigned long n, i;
-
- mpz_realloc2 (rop, nbits);
- n = (nbits - 1) / GMP_NUMB_BITS + 1; /* number of limbs */
- for (i = n; i-- > 0;)
- rop->_mp_d[i] = random_limb ();
- i = n * GMP_NUMB_BITS - nbits;
- /* mask the upper i bits */
- if (i)
- rop->_mp_d[n-1] = MPFR_LIMB_LSHIFT(rop->_mp_d[n-1], i) >> i;
- while (n > 0 && (rop->_mp_d[n-1] == 0))
- n--;
- rop->_mp_size = n;
-}
-#endif
-
-#ifdef WANT_gmp_urandomm_ui
-/* generates a random unsigned long */
-static unsigned long
-random_ulong (void)
-{
-#ifdef MPFR_LONG_WITHIN_LIMB
- /* we assume a limb and an unsigned long have both a number of different
- values that is a power of two, thus when we cast a random limb into
- an unsigned long, we still get an uniform distribution */
- return random_limb ();
-#else
- /* with the same assumption as above, we need to generate as many random
- limbs needed to "fill" an unsigned long */
- unsigned long u, v;
-
- v = MPFR_LIMB_MAX;
- u = random_limb ();
- while (v < ULONG_MAX)
- {
- v = (v << GMP_NUMB_BITS) + MPFR_LIMB_MAX;
- u = (u << GMP_NUMB_BITS) + random_limb ();
- }
- return u;
-#endif
-}
-
-unsigned long
-gmp_urandomm_ui (gmp_randstate_t state, unsigned long n)
-{
- unsigned long p, q, r;
-
- MPFR_ASSERTN (n > 0);
- p = random_ulong (); /* p is in [0, ULONG_MAX], thus p is uniform among
- ULONG_MAX+1 values */
- q = n * (ULONG_MAX / n);
- r = ULONG_MAX % n;
- if (r != n - 1) /* ULONG_MAX+1 is not multiple of n, will happen whenever
- n is not a power of two */
- while (p >= q)
- p = random_ulong ();
- return p % n;
-}
-#endif
-
-#ifdef WANT_gmp_urandomb_ui
-unsigned long
-gmp_urandomb_ui (gmp_randstate_t state, unsigned long n)
-{
-#ifdef MPFR_LONG_WITHIN_LIMB
- return random_limb () % (1UL << n);
-#else
- unsigned long res = 0;
- int m = n; /* remaining bits to generate */
- while (m >= GMP_NUMB_BITS)
- {
- /* we can generate a full limb */
- res = (res << GMP_NUMB_BITS) | (unsigned long) random_limb ();
- m -= GMP_NUMB_BITS;
- }
- /* now m < GMP_NUMB_BITS */
- if (m) /* generate m extra bits */
- res = (res << m) | (unsigned long) (random_limb () % (1UL << m));
- return res;
-#endif
-}
-#endif
-
-/************************* division functions ********************************/
-
-#ifdef WANT_mpn_divrem_1
-mp_limb_t
-mpn_divrem_1 (mp_limb_t *qp, mp_size_t qxn, mp_limb_t *np, mp_size_t nn,
- mp_limb_t d0)
-{
- mpz_t q, r, n, d;
- mp_limb_t ret, dd[1];
-
- d->_mp_d = dd;
- d->_mp_d[0] = d0;
- d->_mp_size = 1;
- mpz_init (q);
- mpz_init (r);
- if (qxn == 0)
- {
- n->_mp_d = np;
- n->_mp_size = nn;
- }
- else
- {
- mpz_init2 (n, (nn + qxn) * GMP_NUMB_BITS);
- mpn_copyi (n->_mp_d + qxn, np, nn);
- mpn_zero (n->_mp_d, qxn);
- n->_mp_size = nn + qxn;
- }
- mpz_tdiv_qr (q, r, n, d);
- if (q->_mp_size > 0)
- mpn_copyi (qp, q->_mp_d, q->_mp_size);
- if (q->_mp_size < nn + qxn)
- mpn_zero (qp + q->_mp_size, nn + qxn - q->_mp_size);
- ret = (r->_mp_size == 1) ? r->_mp_d[0] : 0;
- mpz_clear (q);
- mpz_clear (r);
- if (qxn != 0)
- mpz_clear (n);
- return ret;
-}
-#endif
-
-#ifdef WANT_mpn_divrem
-mp_limb_t
-mpn_divrem (mp_limb_t *qp, mp_size_t qn, mp_limb_t *np,
- mp_size_t nn, const mp_limb_t *dp, mp_size_t dn)
-{
- mpz_t q, r, n, d;
- mp_limb_t ret;
-
- MPFR_ASSERTN(qn == 0);
- qn = nn - dn;
- n->_mp_d = np;
- n->_mp_size = nn;
- d->_mp_d = (mp_limb_t*) dp;
- d->_mp_size = dn;
- mpz_init (q);
- mpz_init (r);
- mpz_tdiv_qr (q, r, n, d);
- MPFR_ASSERTN(q->_mp_size == qn || q->_mp_size == qn + 1);
- mpn_copyi (qp, q->_mp_d, qn);
- ret = (q->_mp_size == qn) ? 0 : q->_mp_d[qn];
- if (r->_mp_size > 0)
- mpn_copyi (np, r->_mp_d, r->_mp_size);
- if (r->_mp_size < dn)
- mpn_zero (np + r->_mp_size, dn - r->_mp_size);
- mpz_clear (q);
- mpz_clear (r);
- return ret;
-}
-#endif
-
-#ifdef WANT_mpn_tdiv_qr
-void
-mpn_tdiv_qr (mp_limb_t *qp, mp_limb_t *rp, mp_size_t qxn,
- const mp_limb_t *np, mp_size_t nn,
- const mp_limb_t *dp, mp_size_t dn)
-{
- mpz_t q, r, n, d;
-
- MPFR_ASSERTN(qxn == 0);
- n->_mp_d = (mp_limb_t*) np;
- n->_mp_size = nn;
- d->_mp_d = (mp_limb_t*) dp;
- d->_mp_size = dn;
- mpz_init (q);
- mpz_init (r);
- mpz_tdiv_qr (q, r, n, d);
- MPFR_ASSERTN(q->_mp_size > 0);
- mpn_copyi (qp, q->_mp_d, q->_mp_size);
- if (q->_mp_size < nn - dn + 1)
- mpn_zero (qp + q->_mp_size, nn - dn + 1 - q->_mp_size);
- if (r->_mp_size > 0)
- mpn_copyi (rp, r->_mp_d, r->_mp_size);
- if (r->_mp_size < dn)
- mpn_zero (rp + r->_mp_size, dn - r->_mp_size);
- mpz_clear (q);
- mpz_clear (r);
-}
-#endif
-
-#if 0 /* this function is useful for debugging, thus please keep it here */
-void
-mpz_dump (mpz_t z)
-{
- mp_size_t n = z->_mp_size;
-
- MPFR_STAT_STATIC_ASSERT ((GMP_NUMB_BITS % 4) == 0);
-
- if (n == 0)
- printf ("0");
- else
- {
- int first = 1;
- if (n < 0)
- {
- printf ("-");
- n = -n;
- }
- while (n > 0)
- {
- if (first)
- {
- printf ("%lx", (unsigned long) z->_mp_d[n-1]);
- first = 0;
- }
- else
- {
- char s[17];
- int len;
- sprintf (s, "%lx", (unsigned long) z->_mp_d[n-1]);
- len = strlen (s);
- /* one character should be printed for 4 bits */
- while (len++ < GMP_NUMB_BITS / 4)
- printf ("0");
- printf ("%lx", (unsigned long) z->_mp_d[n-1]);
- }
- n--;
- }
- }
- printf ("\n");
-}
-#endif
-
-#endif /* MPFR_USE_MINI_GMP */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.h
deleted file mode 100644
index 950ba41bc84..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-mini-gmp.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* mpfr-mini-gmp.h -- Interface header for mini-gmp.
-
-Copyright 2014-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef mp_limb_signed_t
-typedef long mp_limb_signed_t;
-#endif
-
-#ifndef __gmp_allocate_func
-#define __gmp_allocate_func gmp_default_alloc
-#define __gmp_reallocate_func gmp_default_realloc
-#define __gmp_free_func gmp_default_free
-#endif
-
-#ifndef gmp_randstate_t
-typedef long int __gmp_randstate_struct;
-typedef __gmp_randstate_struct gmp_randstate_t[1];
-#endif
-
-#ifndef gmp_randinit_default
-#define WANT_gmp_randinit_default
-void gmp_randinit_default (gmp_randstate_t);
-#endif
-
-#ifndef gmp_randseed_ui
-#define WANT_gmp_randseed_ui
-void gmp_randseed_ui (gmp_randstate_t, unsigned long int);
-#endif
-
-#ifndef gmp_randclear
-#define WANT_gmp_randclear
-void gmp_randclear (gmp_randstate_t);
-#endif
-
-#ifndef gmp_randinit_set
-#define WANT_gmp_randinit_set
-void gmp_randinit_set (gmp_randstate_t, gmp_randstate_t);
-#endif
-
-#ifndef mpn_scan1
-#define WANT_mpn_scan1
-mp_bitcnt_t mpn_scan1 (const mp_limb_t *, mp_bitcnt_t);
-#endif
-
-#ifndef mpz_perfect_square_p
-#define WANT_mpz_perfect_square_p
-int mpz_perfect_square_p (const mpz_t);
-#endif
-
-#ifndef mpz_addmul_ui
-#define WANT_mpz_addmul_ui
-void mpz_addmul_ui (mpz_t, const mpz_t, unsigned long);
-#endif
-
-#ifndef mpn_divrem_1
-#define WANT_mpn_divrem_1
-mp_limb_t mpn_divrem_1 (mp_limb_t*, mp_size_t, mp_limb_t*, mp_size_t,
- mp_limb_t);
-#endif
-
-#ifndef mpz_urandomb
-#define WANT_mpz_urandomb
-void mpz_urandomb (mpz_t, gmp_randstate_t, mp_bitcnt_t);
-#endif
-
-#ifndef mpn_zero
-#define WANT_mpn_zero
-void mpn_zero (mp_limb_t *, mp_size_t);
-#endif
-
-#ifndef mpn_popcount
-#define WANT_mpn_popcount
-mp_bitcnt_t mpn_popcount (const mp_limb_t *, mp_size_t);
-#endif
-
-#ifndef gmp_urandomm_ui
-#define WANT_gmp_urandomm_ui
-unsigned long gmp_urandomm_ui (gmp_randstate_t state, unsigned long n);
-#endif
-
-#ifndef gmp_urandomb_ui
-#define WANT_gmp_urandomb_ui
-unsigned long gmp_urandomb_ui (gmp_randstate_t state, unsigned long n);
-#endif
-
-#ifndef mpn_divrem
-#define WANT_mpn_divrem
-mp_limb_t mpn_divrem (mp_limb_t *, mp_size_t, mp_limb_t *,
- mp_size_t, const mp_limb_t *, mp_size_t);
-#endif
-
-#ifndef mpz_submul
-#define WANT_mpz_submul
-void mpz_submul (mpz_t, const mpz_t, const mpz_t);
-#endif
-
-#ifndef mpz_addmul
-#define WANT_mpz_addmul
-void mpz_addmul (mpz_t, const mpz_t, const mpz_t);
-#endif
-
-#ifndef mpn_tdiv_qr
-#define WANT_mpn_tdiv_qr
-void mpn_tdiv_qr (mp_limb_t *, mp_limb_t *, mp_size_t,
- const mp_limb_t *, mp_size_t, const mp_limb_t *, mp_size_t);
-#endif
-
-#ifndef mpz_rrandomb
-#define mpz_rrandomb mpz_urandomb
-#endif
-
-#ifndef mpz_dump
-void mpz_dump (mpz_t);
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-sassert.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-sassert.h
deleted file mode 100644
index 1c988f28fc5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-sassert.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* MPFR internal header related to Static Assertions
-
-Copyright 2012-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_STATIC_ASSERT_H__
-#define __MPFR_STATIC_ASSERT_H__
-
-#include "mpfr-cvers.h" /* for __MPFR_GNUC */
-
-/* How to use:
- ===========
- MPFR_STAT_STATIC_ASSERT:
- + to check a condition at compile time within the statement section.
-
- Note: In case one would need a static assertion in an expression,
- a sizeof(...) instead of a typedef could be used. For instance,
- see https://stackoverflow.com/questions/9229601/what-is-in-c-code
- (about BUILD_BUG_ON_ZERO in the Linux kernel).
-*/
-
-#ifdef MPFR_USE_STATIC_ASSERT
-
-/* C11 version */
-# if defined (__STDC_VERSION__)
-# if (__STDC_VERSION__ >= 201112L)
-# define MPFR_STAT_STATIC_ASSERT(c) _Static_assert((c), #c )
-# endif
-# endif
-
-/* Default version which should be compatible with nearly all compilers */
-# if !defined(MPFR_STAT_STATIC_ASSERT)
-# if __MPFR_GNUC(4,8)
-/* Get rid of annoying warnings "typedef '...' locally defined but not used"
- (new in GCC 4.8). Thanks to Jonathan Wakely for this solution:
- https://gcc.gnu.org/legacy-ml/gcc-help/2013-07/msg00142.html */
-# define MPFR_TYPEDEF_UNUSED __attribute__ ((unused))
-# else
-# define MPFR_TYPEDEF_UNUSED
-# endif
-# define MPFR_ASSERT_CAT(a,b) MPFR_ASSERT_CAT_(a,b)
-# define MPFR_ASSERT_CAT_(a,b) a ## b
-# define MPFR_STAT_STATIC_ASSERT(c) do { \
- typedef enum { MPFR_ASSERT_CAT(MPFR_STATIC_ASSERT_CONST_,__LINE__) = !(c) } \
- MPFR_ASSERT_CAT(MPFR_ASSERT_,__LINE__)[!!(c) ? 1 : -1] \
- MPFR_TYPEDEF_UNUSED; } while (0)
-# endif
-
-#else
-
-/* No support: default to classic assertions */
-# define MPFR_STAT_STATIC_ASSERT(c) MPFR_ASSERTN(c)
-
-#endif
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr-thread.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr-thread.h
deleted file mode 100644
index 75d51b0a7cf..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr-thread.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/* MPFR internal header related to thread-local variables.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_THREAD_H__
-#define __MPFR_THREAD_H__
-
-/* Note: MPFR_NEED_THREAD_LOCK shall be defined before including this
- header */
-
-/* Note: Let's define MPFR_THREAD_ATTR even after a #error to make the
- error message more visible (e.g. gcc doesn't immediately stop after
- the #error line and outputs many error messages if MPFR_THREAD_ATTR
- is not defined). But some compilers will just output a message and
- may build MPFR "successfully" (without thread support). */
-#ifndef MPFR_THREAD_ATTR
-# ifdef MPFR_USE_THREAD_SAFE
-# if defined(_MSC_VER)
-# define MPFR_THREAD_ATTR __declspec( thread )
-# elif defined(MPFR_USE_C11_THREAD_SAFE)
-# define MPFR_THREAD_ATTR _Thread_local
-# else
-# define MPFR_THREAD_ATTR __thread
-# endif
-# else
-# define MPFR_THREAD_ATTR
-# endif
-#endif
-
-/* If MPFR needs a lock mechanism for thread synchro */
-#ifdef MPFR_NEED_THREAD_LOCK
-
-/**************************************************************************/
-/**************************************************************************/
-/* ISO C11 version */
-/**************************************************************************/
-/**************************************************************************/
-
-#if defined (MPFR_HAVE_C11_LOCK)
-/* NOTE: This version has not been completely tested */
-
-#define MPFR_THREAD_LOCK_METHOD "C11"
-
-#include <threads.h>
-
-#define MPFR_LOCK_DECL(_lock) \
- mtx_t _lock;
-
-#define MPFR_LOCK_C(E) \
- do { \
- if ((E) != thrd_success) \
- abort (); \
- } while (0)
-
-#define MPFR_LOCK_INIT(_lock) MPFR_LOCK_C(mtx_init(&(_lock), mtx_plain))
-#define MPFR_LOCK_CLEAR(_lock) do { mtx_destroy(&(_lock)); } while (0)
-#define MPFR_LOCK_READ(_lock) MPFR_LOCK_C(mtx_lock(&(_lock)))
-#define MPFR_UNLOCK_READ(_lock) MPFR_LOCK_C(mtx_unlock(&(_lock)))
-#define MPFR_LOCK_WRITE(_lock) MPFR_LOCK_C(mtx_lock(&(_lock)))
-#define MPFR_UNLOCK_WRITE(_lock) MPFR_LOCK_C(mtx_unlock(&(_lock)))
-
-#define MPFR_LOCK_READ2WRITE(_lock) do {} while (0)
-#define MPFR_LOCK_WRITE2READ(_lock) do {} while (0)
-
-#define MPFR_ONCE_DECL(_once) \
- once_flag _once;
-
-#define MPFR_ONCE_INIT_VALUE ONCE_FLAG_INIT
-
-#define MPFR_ONCE_CALL(_once, _func) do { \
- call_once(&(_once), (_func)); \
- } while (0)
-
-#define MPFR_NEED_DEFERRED_INIT 1
-
-
-/**************************************************************************/
-/**************************************************************************/
-/* POSIX version */
-/**************************************************************************/
-/**************************************************************************/
-
-#elif defined (HAVE_PTHREAD)
-
-#define MPFR_THREAD_LOCK_METHOD "pthread"
-
-#include <pthread.h>
-
-#define MPFR_LOCK_DECL(_lock) \
- pthread_rwlock_t _lock;
-
-#define MPFR_LOCK_C(E) \
- do { \
- if ((E) != 0) \
- abort (); \
- } while (0)
-
-#define MPFR_LOCK_INIT(_lock) MPFR_LOCK_C(pthread_rwlock_init(&(_lock), NULL))
-
-#define MPFR_LOCK_CLEAR(_lock) do { \
- pthread_rwlock_destroy(&(_lock)); \
- } while (0)
-
-#define MPFR_LOCK_READ(_lock) MPFR_LOCK_C(pthread_rwlock_rdlock(&(_lock)))
-#define MPFR_UNLOCK_READ(_lock) MPFR_LOCK_C(pthread_rwlock_unlock(&(_lock)))
-#define MPFR_LOCK_WRITE(_lock) MPFR_LOCK_C(pthread_rwlock_wrlock(&(_lock)))
-#define MPFR_UNLOCK_WRITE(_lock) MPFR_LOCK_C(pthread_rwlock_unlock(&(_lock)))
-
-#define MPFR_LOCK_READ2WRITE(_lock) do { \
- MPFR_UNLOCK_READ(_lock); \
- MPFR_LOCK_WRITE(_lock); \
- } while (0)
-
-#define MPFR_LOCK_WRITE2READ(_lock) do { \
- MPFR_UNLOCK_WRITE(_lock); \
- MPFR_LOCK_READ(_lock); \
- } while (0)
-
-#define MPFR_ONCE_DECL(_once) \
- pthread_once_t _once ;
-
-#define MPFR_ONCE_INIT_VALUE PTHREAD_ONCE_INIT
-
-#define MPFR_ONCE_CALL(_once, _func) \
- MPFR_LOCK_C(pthread_once (&(_once), (_func)))
-
-#define MPFR_NEED_DEFERRED_INIT 1
-
-#else
-
-/* TODO: Win32 */
-# error "No thread lock / unsupported OS."
-
-#endif
-
-#else
-
-/**************************************************************************/
-/**************************************************************************/
-/* No lock thread version */
-/**************************************************************************/
-/**************************************************************************/
-
-#define MPFR_LOCK_DECL(_lock)
-#define MPFR_LOCK_INIT(_lock) do {} while (0)
-#define MPFR_LOCK_CLEAR(_lock) do {} while (0)
-#define MPFR_LOCK_READ(_lock) do {} while (0)
-#define MPFR_UNLOCK_READ(_lock) do {} while (0)
-#define MPFR_LOCK_WRITE(_lock) do {} while (0)
-#define MPFR_UNLOCK_WRITE(_lock) do {} while (0)
-#define MPFR_LOCK_READ2WRITE(_lock) do {} while (0)
-#define MPFR_LOCK_WRITE2READ(_lock) do {} while (0)
-#define MPFR_ONCE_INIT_VALUE
-#define MPFR_ONCE_DECL(_once)
-#define MPFR_ONCE_CALL(_once,_func) do {} while (0)
-
-#endif
-
-
-
-/**************************************************************************/
-/**************************************************************************/
-
-/**************************************************************************/
-/**************************************************************************/
-
-/* If MPFR Needs a way to init data before using them */
-#if defined(MPFR_NEED_DEFERRED_INIT)
-
-#if defined(MPFR_HAVE_CONSTRUCTOR_ATTR)
-
-/*********************** Use constructor extension ************************/
-#define MPFR_DEFERRED_INIT_MASTER_DECL(_id, _init, _clear) \
- __attribute__ ((constructor)) static void \
- mpfr_init_cache_ ## _id (void) { \
- _init ; \
- } \
- __attribute__ ((destructor)) static void \
- mpfr_clean_cache_ ## _id (void) { \
- _clear; \
- }
-
-#define MPFR_DEFERRED_INIT_CALL(_master) do {} while (0)
-#define MPFR_DEFERRED_INIT_SLAVE_DECL()
-#define MPFR_DEFERRED_INIT_SLAVE_VALUE(_id)
-
-#else
-
-/**************************** Use once semantic ***************************/
-#define MPFR_DEFERRED_INIT_MASTER_DECL(_id, _init, _clear) \
- static void mpfr_once_ ## _id ## _clear_func (void) { \
- _clear ; \
- } \
- static void mpfr_once_ ## _id ## _init_func (void) { \
- _init; \
- atexit(mpfr_once_ ## _id ## _clear_func); \
- }
-
-#define MPFR_DEFERRED_INIT_CALL(_master) \
- MPFR_ONCE_CALL((_master)->once, (_master)->init_once)
-
-#define MPFR_DEFERRED_INIT_SLAVE_DECL() \
- MPFR_ONCE_DECL(once) \
- void (*init_once)(void);
-
-#define MPFR_DEFERRED_INIT_SLAVE_VALUE(_id) \
- , MPFR_ONCE_INIT_VALUE, mpfr_once_ ## _id ## _init_func
-
-#endif
-
-#else
-
-/* No need */
-#define MPFR_DEFERRED_INIT_MASTER_DECL(_id_lock, _init, _clear)
-#define MPFR_DEFERRED_INIT_CALL(_master) do {} while (0)
-#define MPFR_DEFERRED_INIT_SLAVE_DECL()
-#define MPFR_DEFERRED_INIT_SLAVE_VALUE(_id)
-
-#endif
-
-/**************************************************************************/
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpfr.h b/Build/source/libs/mpfr/mpfr-src/src/mpfr.h
deleted file mode 100644
index 109c75f73e5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpfr.h
+++ /dev/null
@@ -1,1173 +0,0 @@
-/* mpfr.h -- Include file for mpfr.
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_H
-#define __MPFR_H
-
-/* Define MPFR version number */
-#define MPFR_VERSION_MAJOR 4
-#define MPFR_VERSION_MINOR 1
-#define MPFR_VERSION_PATCHLEVEL 0
-#define MPFR_VERSION_STRING "4.1.0"
-
-/* User macros:
- MPFR_USE_FILE: Define it to make MPFR define functions dealing
- with FILE* (auto-detect).
- MPFR_USE_INTMAX_T: Define it to make MPFR define functions dealing
- with intmax_t (auto-detect).
- MPFR_USE_VA_LIST: Define it to make MPFR define functions dealing
- with va_list (auto-detect).
- MPFR_USE_C99_FEATURE: Define it to 1 to make MPFR support C99-feature
- (auto-detect), to 0 to bypass the detection.
- MPFR_USE_EXTENSION: Define it to make MPFR use GCC extension to
- reduce warnings.
- MPFR_USE_NO_MACRO: Define it to make MPFR remove any overriding
- function macro.
-*/
-
-/* Macros dealing with MPFR VERSION */
-#define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-#define MPFR_VERSION \
-MPFR_VERSION_NUM(MPFR_VERSION_MAJOR,MPFR_VERSION_MINOR,MPFR_VERSION_PATCHLEVEL)
-
-#ifndef MPFR_USE_MINI_GMP
-#include <gmp.h>
-#else
-#include <mini-gmp.h>
-#endif
-
-/* Avoid some problems with macro expansion if the user defines macros
- with the same name as keywords. By convention, identifiers and macro
- names starting with mpfr_ are reserved by MPFR. */
-typedef void mpfr_void;
-typedef int mpfr_int;
-typedef unsigned int mpfr_uint;
-typedef long mpfr_long;
-typedef unsigned long mpfr_ulong;
-typedef size_t mpfr_size_t;
-
-/* Global (possibly TLS) flags. Might also be used in an mpfr_t in the
- future (there would be room as mpfr_sign_t just needs 1 byte).
- TODO: The tests currently assume that the flags fits in an unsigned int;
- this should be cleaned up, e.g. by defining a function that outputs the
- flags as a string or by using the flags_out function (from tests/tests.c
- directly). */
-typedef unsigned int mpfr_flags_t;
-
-/* Flags macros (in the public API) */
-#define MPFR_FLAGS_UNDERFLOW 1
-#define MPFR_FLAGS_OVERFLOW 2
-#define MPFR_FLAGS_NAN 4
-#define MPFR_FLAGS_INEXACT 8
-#define MPFR_FLAGS_ERANGE 16
-#define MPFR_FLAGS_DIVBY0 32
-#define MPFR_FLAGS_ALL (MPFR_FLAGS_UNDERFLOW | \
- MPFR_FLAGS_OVERFLOW | \
- MPFR_FLAGS_NAN | \
- MPFR_FLAGS_INEXACT | \
- MPFR_FLAGS_ERANGE | \
- MPFR_FLAGS_DIVBY0)
-
-/* Definition of rounding modes (DON'T USE MPFR_RNDNA!).
- Warning! Changing the contents of this enum should be seen as an
- interface change since the old and the new types are not compatible
- (the integer type compatible with the enumerated type can even change,
- see ISO C99, 6.7.2.2#4), and in Makefile.am, AGE should be set to 0.
-
- MPFR_RNDU must appear just before MPFR_RNDD (see
- MPFR_IS_RNDUTEST_OR_RNDDNOTTEST in mpfr-impl.h).
-
- If you change the order of the rounding modes, please update the routines
- in texceptions.c which assume 0=RNDN, 1=RNDZ, 2=RNDU, 3=RNDD, 4=RNDA.
-*/
-typedef enum {
- MPFR_RNDN=0, /* round to nearest, with ties to even */
- MPFR_RNDZ, /* round toward zero */
- MPFR_RNDU, /* round toward +Inf */
- MPFR_RNDD, /* round toward -Inf */
- MPFR_RNDA, /* round away from zero */
- MPFR_RNDF, /* faithful rounding */
- MPFR_RNDNA=-1 /* round to nearest, with ties away from zero (mpfr_round) */
-} mpfr_rnd_t;
-
-/* kept for compatibility with MPFR 2.4.x and before */
-#define GMP_RNDN MPFR_RNDN
-#define GMP_RNDZ MPFR_RNDZ
-#define GMP_RNDU MPFR_RNDU
-#define GMP_RNDD MPFR_RNDD
-
-/* The _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT values are automatically
- defined below. You MUST NOT force a value (this will break the ABI),
- possibly except for a very particular use, in which case you also need
- to rebuild the MPFR library with the chosen values; do not install this
- rebuilt library in a path that is searched by default, otherwise this
- will break applications that are dynamically linked with MPFR.
-
- Using non-default values is not guaranteed to work.
-
- Note: With the following default choices for _MPFR_PREC_FORMAT and
- _MPFR_EXP_FORMAT, mpfr_exp_t will be the same as [mp_exp_t] (at least
- up to GMP 6). */
-
-/* Define precision: 1 (short), 2 (int) or 3 (long).
- DON'T FORCE A VALUE (see above). */
-#ifndef _MPFR_PREC_FORMAT
-# if __GMP_MP_SIZE_T_INT
-# define _MPFR_PREC_FORMAT 2
-# else
-# define _MPFR_PREC_FORMAT 3
-# endif
-#endif
-
-/* Define exponent: 1 (short), 2 (int), 3 (long) or 4 (intmax_t).
- DON'T FORCE A VALUE (see above). */
-#ifndef _MPFR_EXP_FORMAT
-# define _MPFR_EXP_FORMAT _MPFR_PREC_FORMAT
-#endif
-
-#if _MPFR_PREC_FORMAT > _MPFR_EXP_FORMAT
-# error "mpfr_prec_t must not be larger than mpfr_exp_t"
-#endif
-
-/* Let's make mpfr_prec_t signed in order to avoid problems due to the
- usual arithmetic conversions when mixing mpfr_prec_t and mpfr_exp_t
- in an expression (for error analysis) if casts are forgotten.
- Note: mpfr_prec_t is currently limited to "long". This means that
- under MS Windows, the precisions are limited to about 2^31; however,
- these are already huge precisions, probably sufficient in practice
- on this platform. */
-#if _MPFR_PREC_FORMAT == 1
-typedef short mpfr_prec_t;
-typedef unsigned short mpfr_uprec_t;
-#elif _MPFR_PREC_FORMAT == 2
-typedef int mpfr_prec_t;
-typedef unsigned int mpfr_uprec_t;
-#elif _MPFR_PREC_FORMAT == 3
-/* we could use "long long" under Windows 64 here, which can be tested
- with the macro _WIN64 according to
- https://sourceforge.net/p/predef/wiki/OperatingSystems/ */
-typedef long mpfr_prec_t;
-typedef unsigned long mpfr_uprec_t;
-#else
-# error "Invalid MPFR Prec format"
-#endif
-
-/* Definition of precision limits without needing <limits.h> */
-/* Note: The casts allows the expression to yield the wanted behavior
- for _MPFR_PREC_FORMAT == 1 (due to integer promotion rules). We
- also make sure that MPFR_PREC_MIN and MPFR_PREC_MAX have a signed
- integer type. The "- 256" allows more security, avoiding some
- integer overflows in extreme cases; ideally it should be useless. */
-#define MPFR_PREC_MIN 1
-#define MPFR_PREC_MAX ((mpfr_prec_t) ((((mpfr_uprec_t) -1) >> 1) - 256))
-
-/* Definition of sign */
-typedef int mpfr_sign_t;
-
-/* Definition of the exponent. _MPFR_EXP_FORMAT must be large enough
- so that mpfr_exp_t has at least 32 bits. */
-#if _MPFR_EXP_FORMAT == 1
-typedef short mpfr_exp_t;
-typedef unsigned short mpfr_uexp_t;
-#elif _MPFR_EXP_FORMAT == 2
-typedef int mpfr_exp_t;
-typedef unsigned int mpfr_uexp_t;
-#elif _MPFR_EXP_FORMAT == 3
-typedef long mpfr_exp_t;
-typedef unsigned long mpfr_uexp_t;
-#elif _MPFR_EXP_FORMAT == 4
-/* Note: in this case, intmax_t and uintmax_t must be defined before
- the inclusion of mpfr.h (we do not include <stdint.h> here because
- of some non-ISO C99 implementations that support these types). */
-typedef intmax_t mpfr_exp_t;
-typedef uintmax_t mpfr_uexp_t;
-#else
-# error "Invalid MPFR Exp format"
-#endif
-
-/* Definition of the standard exponent limits */
-#define MPFR_EMAX_DEFAULT ((mpfr_exp_t) (((mpfr_ulong) 1 << 30) - 1))
-#define MPFR_EMIN_DEFAULT (-(MPFR_EMAX_DEFAULT))
-
-/* DON'T USE THIS! (For MPFR-public macros only, see below.)
- The mpfr_sgn macro uses the fact that __MPFR_EXP_NAN and __MPFR_EXP_ZERO
- are the smallest values. For a n-bit type, EXP_MAX is 2^(n-1)-1,
- EXP_ZERO is 1-2^(n-1), EXP_NAN is 2-2^(n-1), EXP_INF is 3-2^(n-1).
- This may change in the future. MPFR code should not be based on these
- representations (but if this is absolutely needed, protect the code
- with a static assertion). */
-#define __MPFR_EXP_MAX ((mpfr_exp_t) (((mpfr_uexp_t) -1) >> 1))
-#define __MPFR_EXP_NAN (1 - __MPFR_EXP_MAX)
-#define __MPFR_EXP_ZERO (0 - __MPFR_EXP_MAX)
-#define __MPFR_EXP_INF (2 - __MPFR_EXP_MAX)
-
-/* Definition of the main structure */
-typedef struct {
- mpfr_prec_t _mpfr_prec;
- mpfr_sign_t _mpfr_sign;
- mpfr_exp_t _mpfr_exp;
- mp_limb_t *_mpfr_d;
-} __mpfr_struct;
-
-/* Compatibility with previous types of MPFR */
-#ifndef mp_rnd_t
-# define mp_rnd_t mpfr_rnd_t
-#endif
-#ifndef mp_prec_t
-# define mp_prec_t mpfr_prec_t
-#endif
-
-/*
- The represented number is
- _sign*(_d[k-1]/B+_d[k-2]/B^2+...+_d[0]/B^k)*2^_exp
- where k=ceil(_mp_prec/GMP_NUMB_BITS) and B=2^GMP_NUMB_BITS.
-
- For the msb (most significant bit) normalized representation, we must have
- _d[k-1]>=B/2, unless the number is singular.
-
- We must also have the last k*GMP_NUMB_BITS-_prec bits set to zero.
-*/
-
-typedef __mpfr_struct mpfr_t[1];
-typedef __mpfr_struct *mpfr_ptr;
-typedef const __mpfr_struct *mpfr_srcptr;
-
-/* For those who need a direct and fast access to the sign field.
- However it is not in the API, thus use it at your own risk: it might
- not be supported, or change name, in further versions!
- Unfortunately, it must be defined here (instead of MPFR's internal
- header file mpfr-impl.h) because it is used by some macros below.
-*/
-#define MPFR_SIGN(x) ((x)->_mpfr_sign)
-
-/* Stack interface */
-typedef enum {
- MPFR_NAN_KIND = 0,
- MPFR_INF_KIND = 1,
- MPFR_ZERO_KIND = 2,
- MPFR_REGULAR_KIND = 3
-} mpfr_kind_t;
-
-/* Free cache policy */
-typedef enum {
- MPFR_FREE_LOCAL_CACHE = 1, /* 1 << 0 */
- MPFR_FREE_GLOBAL_CACHE = 2 /* 1 << 1 */
-} mpfr_free_cache_t;
-
-/* GMP defines:
- + size_t: Standard size_t
- + __GMP_NOTHROW For C++: can't throw .
- + __GMP_EXTERN_INLINE Attribute for inline function.
- + __GMP_DECLSPEC_EXPORT compiling to go into a DLL
- + __GMP_DECLSPEC_IMPORT compiling to go into a application
-*/
-/* Extra MPFR defines */
-#define __MPFR_SENTINEL_ATTR
-#if defined (__GNUC__)
-# if __GNUC__ >= 4
-# undef __MPFR_SENTINEL_ATTR
-# define __MPFR_SENTINEL_ATTR __attribute__ ((__sentinel__))
-# endif
-#endif
-
-/* If the user hasn't requested his/her preference
- and if the intention of support by the compiler is C99
- and if the compiler is known to support the C99 feature
- then we can auto-detect the C99 support as OK.
- __GNUC__ is used to detect GNU-C, ICC & CLANG compilers.
- Currently we need only variadic macros, and they are present
- since GCC >= 3. We don't test library version since we don't
- use any feature present in the library too (except intmax_t,
- but they use another detection).*/
-#ifndef MPFR_USE_C99_FEATURE
-# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
-# if defined (__GNUC__)
-# if __GNUC__ >= 3
-# define MPFR_USE_C99_FEATURE 1
-# endif
-# endif
-# endif
-# ifndef MPFR_USE_C99_FEATURE
-# define MPFR_USE_C99_FEATURE 0
-# endif
-#endif
-
-/* Support for WINDOWS Dll:
- Check if we are inside a MPFR build, and if so export the functions.
- Otherwise does the same thing as GMP */
-#if defined(__MPFR_WITHIN_MPFR) && __GMP_LIBGMP_DLL
-# define __MPFR_DECLSPEC __GMP_DECLSPEC_EXPORT
-#else
-# ifndef __GMP_DECLSPEC
-# define __GMP_DECLSPEC
-# endif
-# define __MPFR_DECLSPEC __GMP_DECLSPEC
-#endif
-
-/* Use MPFR_DEPRECATED to mark MPFR functions, types or variables as
- deprecated. Code inspired by Apache Subversion's svn_types.h file.
- For compatibility with MSVC, MPFR_DEPRECATED must be put before
- __MPFR_DECLSPEC (not at the end of the function declaration as
- documented in the GCC manual); GCC does not seem to care.
- Moreover, in order to avoid a warning when testing such functions,
- do something like:
- +------------------------------------------
- |#ifndef _MPFR_NO_DEPRECATED_funcname
- |MPFR_DEPRECATED
- |#endif
- |__MPFR_DECLSPEC int mpfr_funcname (...);
- +------------------------------------------
- and in the corresponding test program:
- +------------------------------------------
- |#define _MPFR_NO_DEPRECATED_funcname
- |#include "mpfr-test.h"
- +------------------------------------------
-*/
-#if defined(__GNUC__) && \
- (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
-# define MPFR_DEPRECATED __attribute__ ((__deprecated__))
-#elif defined(_MSC_VER) && _MSC_VER >= 1300
-# define MPFR_DEPRECATED __declspec(deprecated)
-#else
-# define MPFR_DEPRECATED
-#endif
-/* TODO: Also define MPFR_EXPERIMENTAL for experimental functions?
- See SVN_EXPERIMENTAL in Subversion 1.9+ as an example:
- __attribute__((__warning__("..."))) can be used with GCC 4.3.1+ but
- not __llvm__, and __declspec(deprecated("...")) can be used with
- MSC as above. */
-
-#if defined(__GNUC__) && \
- (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9))
-# define MPFR_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
-#else
-# define MPFR_RETURNS_NONNULL
-#endif
-
-/* Note: In order to be declared, some functions need a specific
- system header to be included *before* "mpfr.h". If the user
- forgets to include the header, the MPFR function prototype in
- the user object file is not correct. To avoid wrong results,
- we raise a linker error in that case by changing their internal
- name in the library (prefixed by __gmpfr instead of mpfr). See
- the lines of the form "#define mpfr_xxx __gmpfr_xxx" below. */
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-__MPFR_DECLSPEC MPFR_RETURNS_NONNULL const char * mpfr_get_version (void);
-__MPFR_DECLSPEC MPFR_RETURNS_NONNULL const char * mpfr_get_patches (void);
-
-__MPFR_DECLSPEC int mpfr_buildopt_tls_p (void);
-__MPFR_DECLSPEC int mpfr_buildopt_float128_p (void);
-__MPFR_DECLSPEC int mpfr_buildopt_decimal_p (void);
-__MPFR_DECLSPEC int mpfr_buildopt_gmpinternals_p (void);
-__MPFR_DECLSPEC int mpfr_buildopt_sharedcache_p (void);
-__MPFR_DECLSPEC MPFR_RETURNS_NONNULL const char *
- mpfr_buildopt_tune_case (void);
-
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emin (void);
-__MPFR_DECLSPEC int mpfr_set_emin (mpfr_exp_t);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emin_min (void);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emin_max (void);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emax (void);
-__MPFR_DECLSPEC int mpfr_set_emax (mpfr_exp_t);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emax_min (void);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emax_max (void);
-
-__MPFR_DECLSPEC void mpfr_set_default_rounding_mode (mpfr_rnd_t);
-__MPFR_DECLSPEC mpfr_rnd_t mpfr_get_default_rounding_mode (void);
-__MPFR_DECLSPEC const char * mpfr_print_rnd_mode (mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_clear_flags (void);
-__MPFR_DECLSPEC void mpfr_clear_underflow (void);
-__MPFR_DECLSPEC void mpfr_clear_overflow (void);
-__MPFR_DECLSPEC void mpfr_clear_divby0 (void);
-__MPFR_DECLSPEC void mpfr_clear_nanflag (void);
-__MPFR_DECLSPEC void mpfr_clear_inexflag (void);
-__MPFR_DECLSPEC void mpfr_clear_erangeflag (void);
-
-__MPFR_DECLSPEC void mpfr_set_underflow (void);
-__MPFR_DECLSPEC void mpfr_set_overflow (void);
-__MPFR_DECLSPEC void mpfr_set_divby0 (void);
-__MPFR_DECLSPEC void mpfr_set_nanflag (void);
-__MPFR_DECLSPEC void mpfr_set_inexflag (void);
-__MPFR_DECLSPEC void mpfr_set_erangeflag (void);
-
-__MPFR_DECLSPEC int mpfr_underflow_p (void);
-__MPFR_DECLSPEC int mpfr_overflow_p (void);
-__MPFR_DECLSPEC int mpfr_divby0_p (void);
-__MPFR_DECLSPEC int mpfr_nanflag_p (void);
-__MPFR_DECLSPEC int mpfr_inexflag_p (void);
-__MPFR_DECLSPEC int mpfr_erangeflag_p (void);
-
-__MPFR_DECLSPEC void mpfr_flags_clear (mpfr_flags_t);
-__MPFR_DECLSPEC void mpfr_flags_set (mpfr_flags_t);
-__MPFR_DECLSPEC mpfr_flags_t mpfr_flags_test (mpfr_flags_t);
-__MPFR_DECLSPEC mpfr_flags_t mpfr_flags_save (void);
-__MPFR_DECLSPEC void mpfr_flags_restore (mpfr_flags_t,
- mpfr_flags_t);
-
-__MPFR_DECLSPEC int mpfr_check_range (mpfr_ptr, int, mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_init2 (mpfr_ptr, mpfr_prec_t);
-__MPFR_DECLSPEC void mpfr_init (mpfr_ptr);
-__MPFR_DECLSPEC void mpfr_clear (mpfr_ptr);
-
-__MPFR_DECLSPEC void
- mpfr_inits2 (mpfr_prec_t, mpfr_ptr, ...) __MPFR_SENTINEL_ATTR;
-__MPFR_DECLSPEC void
- mpfr_inits (mpfr_ptr, ...) __MPFR_SENTINEL_ATTR;
-__MPFR_DECLSPEC void
- mpfr_clears (mpfr_ptr, ...) __MPFR_SENTINEL_ATTR;
-
-__MPFR_DECLSPEC int mpfr_prec_round (mpfr_ptr, mpfr_prec_t, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_can_round (mpfr_srcptr, mpfr_exp_t, mpfr_rnd_t,
- mpfr_rnd_t, mpfr_prec_t);
-__MPFR_DECLSPEC mpfr_prec_t mpfr_min_prec (mpfr_srcptr);
-
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_exp (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_set_exp (mpfr_ptr, mpfr_exp_t);
-__MPFR_DECLSPEC mpfr_prec_t mpfr_get_prec (mpfr_srcptr);
-__MPFR_DECLSPEC void mpfr_set_prec (mpfr_ptr, mpfr_prec_t);
-__MPFR_DECLSPEC void mpfr_set_prec_raw (mpfr_ptr, mpfr_prec_t);
-__MPFR_DECLSPEC void mpfr_set_default_prec (mpfr_prec_t);
-__MPFR_DECLSPEC mpfr_prec_t mpfr_get_default_prec (void);
-
-__MPFR_DECLSPEC int mpfr_set_d (mpfr_ptr, double, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_flt (mpfr_ptr, float, mpfr_rnd_t);
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-/* _Decimal64 is not defined in C++,
- cf https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51364 */
-__MPFR_DECLSPEC int mpfr_set_decimal64 (mpfr_ptr, _Decimal64, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_decimal128 (mpfr_ptr, _Decimal128, mpfr_rnd_t);
-#endif
-__MPFR_DECLSPEC int mpfr_set_ld (mpfr_ptr, long double, mpfr_rnd_t);
-#ifdef MPFR_WANT_FLOAT128
-__MPFR_DECLSPEC int mpfr_set_float128 (mpfr_ptr, _Float128, mpfr_rnd_t);
-__MPFR_DECLSPEC _Float128 mpfr_get_float128 (mpfr_srcptr, mpfr_rnd_t);
-#endif
-__MPFR_DECLSPEC int mpfr_set_z (mpfr_ptr, mpz_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_z_2exp (mpfr_ptr, mpz_srcptr, mpfr_exp_t,
- mpfr_rnd_t);
-__MPFR_DECLSPEC void mpfr_set_nan (mpfr_ptr);
-__MPFR_DECLSPEC void mpfr_set_inf (mpfr_ptr, int);
-__MPFR_DECLSPEC void mpfr_set_zero (mpfr_ptr, int);
-
-#ifndef MPFR_USE_MINI_GMP
- /* mini-gmp does not provide mpf_t, we disable the following functions */
-__MPFR_DECLSPEC int mpfr_set_f (mpfr_ptr, mpf_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_cmp_f (mpfr_srcptr, mpf_srcptr);
-__MPFR_DECLSPEC int mpfr_get_f (mpf_ptr, mpfr_srcptr, mpfr_rnd_t);
-#endif
-__MPFR_DECLSPEC int mpfr_set_si (mpfr_ptr, long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_ui (mpfr_ptr, unsigned long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_si_2exp (mpfr_ptr, long, mpfr_exp_t, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_ui_2exp (mpfr_ptr, unsigned long, mpfr_exp_t,
- mpfr_rnd_t);
-#ifndef MPFR_USE_MINI_GMP
- /* mini-gmp does not provide mpq_t, we disable the following functions */
-__MPFR_DECLSPEC int mpfr_set_q (mpfr_ptr, mpq_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_mul_q (mpfr_ptr, mpfr_srcptr, mpq_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_q (mpfr_ptr, mpfr_srcptr, mpq_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_add_q (mpfr_ptr, mpfr_srcptr, mpq_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub_q (mpfr_ptr, mpfr_srcptr, mpq_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_cmp_q (mpfr_srcptr, mpq_srcptr);
-__MPFR_DECLSPEC void mpfr_get_q (mpq_ptr q, mpfr_srcptr f);
-#endif
-__MPFR_DECLSPEC int mpfr_set_str (mpfr_ptr, const char *, int, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_init_set_str (mpfr_ptr, const char *, int,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set4 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t, int);
-__MPFR_DECLSPEC int mpfr_abs (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_neg (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_signbit (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_setsign (mpfr_ptr, mpfr_srcptr, int, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_copysign (mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_z_2exp (mpz_ptr, mpfr_srcptr);
-__MPFR_DECLSPEC float mpfr_get_flt (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC double mpfr_get_d (mpfr_srcptr, mpfr_rnd_t);
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-__MPFR_DECLSPEC _Decimal64 mpfr_get_decimal64 (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC _Decimal128 mpfr_get_decimal128 (mpfr_srcptr, mpfr_rnd_t);
-#endif
-__MPFR_DECLSPEC long double mpfr_get_ld (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC double mpfr_get_d1 (mpfr_srcptr);
-__MPFR_DECLSPEC double mpfr_get_d_2exp (long*, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC long double mpfr_get_ld_2exp (long*, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_frexp (mpfr_exp_t*, mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC long mpfr_get_si (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC unsigned long mpfr_get_ui (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC size_t mpfr_get_str_ndigits (int, mpfr_prec_t);
-__MPFR_DECLSPEC char * mpfr_get_str (char*, mpfr_exp_t*, int, size_t,
- mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_get_z (mpz_ptr z, mpfr_srcptr f, mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_free_str (char *);
-
-__MPFR_DECLSPEC int mpfr_urandom (mpfr_ptr, gmp_randstate_t, mpfr_rnd_t);
-#ifndef _MPFR_NO_DEPRECATED_GRANDOM /* for the test of this function */
-MPFR_DEPRECATED
-#endif
-__MPFR_DECLSPEC int mpfr_grandom (mpfr_ptr, mpfr_ptr, gmp_randstate_t,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_nrandom (mpfr_ptr, gmp_randstate_t, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_erandom (mpfr_ptr, gmp_randstate_t, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_urandomb (mpfr_ptr, gmp_randstate_t);
-
-__MPFR_DECLSPEC void mpfr_nextabove (mpfr_ptr);
-__MPFR_DECLSPEC void mpfr_nextbelow (mpfr_ptr);
-__MPFR_DECLSPEC void mpfr_nexttoward (mpfr_ptr, mpfr_srcptr);
-
-#ifndef MPFR_USE_MINI_GMP
-__MPFR_DECLSPEC int mpfr_printf (const char*, ...);
-__MPFR_DECLSPEC int mpfr_asprintf (char**, const char*, ...);
-__MPFR_DECLSPEC int mpfr_sprintf (char*, const char*, ...);
-__MPFR_DECLSPEC int mpfr_snprintf (char*, size_t, const char*, ...);
-#endif
-
-__MPFR_DECLSPEC int mpfr_pow (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_pow_si (mpfr_ptr, mpfr_srcptr, long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_pow_ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_ui_pow_ui (mpfr_ptr, unsigned long, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_ui_pow (mpfr_ptr, unsigned long, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_pow_z (mpfr_ptr, mpfr_srcptr, mpz_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_sqrt (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sqrt_ui (mpfr_ptr, unsigned long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_rec_sqrt (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_add (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_mul (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_add_ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub_ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_ui_sub (mpfr_ptr, unsigned long, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_mul_ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_ui_div (mpfr_ptr, unsigned long, mpfr_srcptr,
- mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_add_si (mpfr_ptr, mpfr_srcptr, long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub_si (mpfr_ptr, mpfr_srcptr, long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_si_sub (mpfr_ptr, long, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_mul_si (mpfr_ptr, mpfr_srcptr, long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_si (mpfr_ptr, mpfr_srcptr, long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_si_div (mpfr_ptr, long, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_add_d (mpfr_ptr, mpfr_srcptr, double, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub_d (mpfr_ptr, mpfr_srcptr, double, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_d_sub (mpfr_ptr, double, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_mul_d (mpfr_ptr, mpfr_srcptr, double, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_d (mpfr_ptr, mpfr_srcptr, double, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_d_div (mpfr_ptr, double, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_sqr (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_const_pi (mpfr_ptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_const_log2 (mpfr_ptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_const_euler (mpfr_ptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_const_catalan (mpfr_ptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_agm (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_log (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_log2 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_log10 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_log1p (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_log_ui (mpfr_ptr, unsigned long, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_exp (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_exp2 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_exp10 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_expm1 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_eint (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_li2 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_cmp (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_cmp3 (mpfr_srcptr, mpfr_srcptr, int);
-__MPFR_DECLSPEC int mpfr_cmp_d (mpfr_srcptr, double);
-__MPFR_DECLSPEC int mpfr_cmp_ld (mpfr_srcptr, long double);
-__MPFR_DECLSPEC int mpfr_cmp_ui (mpfr_srcptr, unsigned long);
-__MPFR_DECLSPEC int mpfr_cmp_si (mpfr_srcptr, long);
-__MPFR_DECLSPEC int mpfr_cmp_ui_2exp (mpfr_srcptr, unsigned long, mpfr_exp_t);
-__MPFR_DECLSPEC int mpfr_cmp_si_2exp (mpfr_srcptr, long, mpfr_exp_t);
-__MPFR_DECLSPEC int mpfr_cmpabs (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_cmpabs_ui (mpfr_srcptr, unsigned long);
-__MPFR_DECLSPEC void mpfr_reldiff (mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_eq (mpfr_srcptr, mpfr_srcptr, unsigned long);
-__MPFR_DECLSPEC int mpfr_sgn (mpfr_srcptr);
-
-__MPFR_DECLSPEC int mpfr_mul_2exp (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_2exp (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_mul_2ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_2ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_mul_2si (mpfr_ptr, mpfr_srcptr, long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_2si (mpfr_ptr, mpfr_srcptr, long, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_rint (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_roundeven (mpfr_ptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_round (mpfr_ptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_trunc (mpfr_ptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_ceil (mpfr_ptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_floor (mpfr_ptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_rint_roundeven (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_rint_round (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_rint_trunc (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_rint_ceil (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_rint_floor (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_frac (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_modf (mpfr_ptr, mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_remquo (mpfr_ptr, long*, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_remainder (mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fmod (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fmodquo (mpfr_ptr, long*, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_fits_ulong_p (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fits_slong_p (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fits_uint_p (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fits_sint_p (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fits_ushort_p (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fits_sshort_p (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fits_uintmax_p (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fits_intmax_p (mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_extract (mpz_ptr, mpfr_srcptr, unsigned int);
-__MPFR_DECLSPEC void mpfr_swap (mpfr_ptr, mpfr_ptr);
-__MPFR_DECLSPEC void mpfr_dump (mpfr_srcptr);
-
-__MPFR_DECLSPEC int mpfr_nan_p (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_inf_p (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_number_p (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_integer_p (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_zero_p (mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_regular_p (mpfr_srcptr);
-
-__MPFR_DECLSPEC int mpfr_greater_p (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_greaterequal_p (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_less_p (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_lessequal_p (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_lessgreater_p (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_equal_p (mpfr_srcptr, mpfr_srcptr);
-__MPFR_DECLSPEC int mpfr_unordered_p (mpfr_srcptr, mpfr_srcptr);
-
-__MPFR_DECLSPEC int mpfr_atanh (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_acosh (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_asinh (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_cosh (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sinh (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_tanh (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sinh_cosh (mpfr_ptr, mpfr_ptr, mpfr_srcptr,
- mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_sech (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_csch (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_coth (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_acos (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_asin (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_atan (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sin (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sin_cos (mpfr_ptr, mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_cos (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_tan (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_atan2 (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sec (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_csc (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_cot (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_hypot (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_erf (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_erfc (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_cbrt (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-#ifndef _MPFR_NO_DEPRECATED_ROOT /* for the test of this function */
-MPFR_DEPRECATED
-#endif
-__MPFR_DECLSPEC int mpfr_root (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_rootn_ui (mpfr_ptr, mpfr_srcptr, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_gamma (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_gamma_inc (mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_beta (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_lngamma (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_lgamma (mpfr_ptr, int *, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_digamma (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_zeta (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_zeta_ui (mpfr_ptr, unsigned long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fac_ui (mpfr_ptr, unsigned long, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_j0 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_j1 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_jn (mpfr_ptr, long, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_y0 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_y1 (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_yn (mpfr_ptr, long, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_ai (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_min (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_max (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_dim (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_mul_z (mpfr_ptr, mpfr_srcptr, mpz_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_div_z (mpfr_ptr, mpfr_srcptr, mpz_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_add_z (mpfr_ptr, mpfr_srcptr, mpz_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sub_z (mpfr_ptr, mpfr_srcptr, mpz_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_z_sub (mpfr_ptr, mpz_srcptr, mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_cmp_z (mpfr_srcptr, mpz_srcptr);
-
-__MPFR_DECLSPEC int mpfr_fma (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fms (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fmma (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_fmms (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_srcptr,
- mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_sum (mpfr_ptr, const mpfr_ptr *, unsigned long,
- mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_dot (mpfr_ptr, const mpfr_ptr *, const mpfr_ptr *,
- unsigned long, mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_free_cache (void);
-__MPFR_DECLSPEC void mpfr_free_cache2 (mpfr_free_cache_t);
-__MPFR_DECLSPEC void mpfr_free_pool (void);
-__MPFR_DECLSPEC int mpfr_mp_memory_cleanup (void);
-
-__MPFR_DECLSPEC int mpfr_subnormalize (mpfr_ptr, int, mpfr_rnd_t);
-
-__MPFR_DECLSPEC int mpfr_strtofr (mpfr_ptr, const char *, char **, int,
- mpfr_rnd_t);
-
-__MPFR_DECLSPEC void mpfr_round_nearest_away_begin (mpfr_t);
-__MPFR_DECLSPEC int mpfr_round_nearest_away_end (mpfr_t, int);
-
-__MPFR_DECLSPEC size_t mpfr_custom_get_size (mpfr_prec_t);
-__MPFR_DECLSPEC void mpfr_custom_init (void *, mpfr_prec_t);
-__MPFR_DECLSPEC MPFR_RETURNS_NONNULL void *
- mpfr_custom_get_significand (mpfr_srcptr);
-__MPFR_DECLSPEC mpfr_exp_t mpfr_custom_get_exp (mpfr_srcptr);
-__MPFR_DECLSPEC void mpfr_custom_move (mpfr_ptr, void *);
-__MPFR_DECLSPEC void mpfr_custom_init_set (mpfr_ptr, int, mpfr_exp_t,
- mpfr_prec_t, void *);
-__MPFR_DECLSPEC int mpfr_custom_get_kind (mpfr_srcptr);
-
-__MPFR_DECLSPEC int mpfr_total_order_p (mpfr_srcptr, mpfr_srcptr);
-
-#if defined (__cplusplus)
-}
-#endif
-
-/* Define MPFR_USE_EXTENSION to avoid "gcc -pedantic" warnings. */
-#ifndef MPFR_EXTENSION
-# if defined(MPFR_USE_EXTENSION)
-# define MPFR_EXTENSION __extension__
-# else
-# define MPFR_EXTENSION
-# endif
-#endif
-
-/* Warning! This macro doesn't work with K&R C (e.g., compare the "gcc -E"
- output with and without -traditional) and shouldn't be used internally.
- For public use only, but see the MPFR manual. */
-#define MPFR_DECL_INIT(_x, _p) \
- MPFR_EXTENSION mp_limb_t __gmpfr_local_tab_##_x[((_p)-1)/GMP_NUMB_BITS+1]; \
- MPFR_EXTENSION mpfr_t _x = {{(_p),1,__MPFR_EXP_NAN,__gmpfr_local_tab_##_x}}
-
-#if MPFR_USE_C99_FEATURE
-/* C99 & C11 version: functions with multiple inputs supported */
-#define mpfr_round_nearest_away(func, rop, ...) \
- (mpfr_round_nearest_away_begin(rop), \
- mpfr_round_nearest_away_end((rop), func((rop), __VA_ARGS__, MPFR_RNDN)))
-#else
-/* C89 version: function with one input supported */
-#define mpfr_round_nearest_away(func, rop, op) \
- (mpfr_round_nearest_away_begin(rop), \
- mpfr_round_nearest_away_end((rop), func((rop), (op), MPFR_RNDN)))
-#endif
-
-/* Fast access macros to replace function interface.
- If the USER don't want to use the macro interface, let him make happy
- even if it produces faster and smaller code. */
-#ifndef MPFR_USE_NO_MACRO
-
-/* Inlining these functions is both faster and smaller */
-#define mpfr_nan_p(_x) ((_x)->_mpfr_exp == __MPFR_EXP_NAN)
-#define mpfr_inf_p(_x) ((_x)->_mpfr_exp == __MPFR_EXP_INF)
-#define mpfr_zero_p(_x) ((_x)->_mpfr_exp == __MPFR_EXP_ZERO)
-#define mpfr_regular_p(_x) ((_x)->_mpfr_exp > __MPFR_EXP_INF)
-#define mpfr_sgn(_x) \
- ((_x)->_mpfr_exp < __MPFR_EXP_INF ? \
- (mpfr_nan_p (_x) ? mpfr_set_erangeflag () : (mpfr_void) 0), 0 : \
- MPFR_SIGN (_x))
-
-/* Prevent them from using as lvalues */
-#define MPFR_VALUE_OF(x) (0 ? (x) : (x))
-#define mpfr_get_prec(_x) MPFR_VALUE_OF((_x)->_mpfr_prec)
-#define mpfr_get_exp(_x) MPFR_VALUE_OF((_x)->_mpfr_exp)
-/* Note 1: If need be, the MPFR_VALUE_OF can be used for other expressions
- (of any type). Thanks to Wojtek Lerch and Tim Rentsch for the idea.
- Note 2: Defining mpfr_get_exp() as a macro has the effect to disable
- the check that the argument is a pure FP number (done in the function);
- this increases the risk of undetected error and makes debugging more
- complex. Is it really worth in practice? (Potential FIXME) */
-
-#define mpfr_round(a,b) mpfr_rint((a), (b), MPFR_RNDNA)
-#define mpfr_trunc(a,b) mpfr_rint((a), (b), MPFR_RNDZ)
-#define mpfr_ceil(a,b) mpfr_rint((a), (b), MPFR_RNDU)
-#define mpfr_floor(a,b) mpfr_rint((a), (b), MPFR_RNDD)
-
-#define mpfr_cmp_ui(b,i) mpfr_cmp_ui_2exp((b),(i),0)
-#define mpfr_cmp_si(b,i) mpfr_cmp_si_2exp((b),(i),0)
-#define mpfr_set(a,b,r) mpfr_set4(a,b,r,MPFR_SIGN(b))
-#define mpfr_abs(a,b,r) mpfr_set4(a,b,r,1)
-#define mpfr_copysign(a,b,c,r) mpfr_set4(a,b,r,MPFR_SIGN(c))
-#define mpfr_setsign(a,b,s,r) mpfr_set4(a,b,r,(s) ? -1 : 1)
-#define mpfr_signbit(x) (MPFR_SIGN(x) < 0)
-#define mpfr_cmp(b, c) mpfr_cmp3(b, c, 1)
-#define mpfr_mul_2exp(y,x,n,r) mpfr_mul_2ui((y),(x),(n),(r))
-#define mpfr_div_2exp(y,x,n,r) mpfr_div_2ui((y),(x),(n),(r))
-
-
-/* When using GCC or ICC, optimize certain common comparisons and affectations.
- Added casts to improve robustness in case of undefined behavior and
- compiler extensions based on UB (in particular -fwrapv). MPFR doesn't
- use such extensions, but these macros will be used by 3rd-party code,
- where such extensions may be required.
- Moreover casts to unsigned long have been added to avoid warnings in
- programs that use MPFR and are compiled with -Wconversion; such casts
- are OK since if X is a constant expression, then (unsigned long) X is
- also a constant expression, so that the optimizations still work. The
- warnings are probably related to the following two bugs:
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38470 (possibly a variant)
- and the casts could be removed once these bugs are fixed.
- Casts shouldn't be used on the generic calls (to the ..._2exp functions),
- where implicit conversions are performed. Indeed, having at least one
- implicit conversion in the macro allows the compiler to emit diagnostics
- when normally expected, for instance in the following call:
- mpfr_set_ui (x, "foo", MPFR_RNDN);
- If this is not possible (for future macros), one of the tricks described
- on http://groups.google.com/group/comp.std.c/msg/e92abd24bf9eaf7b could
- be used. */
-#if defined (__GNUC__) && !defined(__cplusplus)
-#if (__GNUC__ >= 2)
-
-#undef mpfr_cmp_ui
-/* We use the fact that mpfr_sgn on NaN sets the erange flag and returns 0.
- But warning! mpfr_sgn is specified as a macro in the API, thus the macro
- mustn't be used if side effects are possible, like here. */
-#define mpfr_cmp_ui(_f,_u) \
- (__builtin_constant_p (_u) && (mpfr_ulong) (_u) == 0 ? \
- (mpfr_sgn) (_f) : \
- mpfr_cmp_ui_2exp ((_f), (_u), 0))
-
-#undef mpfr_cmp_si
-#define mpfr_cmp_si(_f,_s) \
- (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ? \
- mpfr_cmp_ui ((_f), (mpfr_ulong) (mpfr_long) (_s)) : \
- mpfr_cmp_si_2exp ((_f), (_s), 0))
-
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 95
-#undef mpfr_set_ui
-#define mpfr_set_ui(_f,_u,_r) \
- (__builtin_constant_p (_u) && (mpfr_ulong) (_u) == 0 ? \
- __extension__ ({ \
- mpfr_ptr _p = (_f); \
- _p->_mpfr_sign = 1; \
- _p->_mpfr_exp = __MPFR_EXP_ZERO; \
- (mpfr_void) (_r); 0; }) : \
- mpfr_set_ui_2exp ((_f), (_u), 0, (_r)))
-#endif
-
-#undef mpfr_set_si
-#define mpfr_set_si(_f,_s,_r) \
- (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ? \
- mpfr_set_ui ((_f), (mpfr_ulong) (mpfr_long) (_s), (_r)) : \
- mpfr_set_si_2exp ((_f), (_s), 0, (_r)))
-
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-/* If the source is a constant number that is a power of 2,
- optimize the call */
-#undef mpfr_mul_ui
-#define mpfr_mul_ui(_f, _g, _u,_r) \
- (__builtin_constant_p (_u) && (mpfr_ulong) (_u) >= 1 && \
- ((mpfr_ulong) (_u) & ((mpfr_ulong) (_u) - 1)) == 0 ? \
- mpfr_mul_2si((_f), (_g), __builtin_ctzl (_u), (_r)) : \
- mpfr_mul_ui ((_f), (_g), (_u), (_r)))
-#undef mpfr_div_ui
-#define mpfr_div_ui(_f, _g, _u,_r) \
- (__builtin_constant_p (_u) && (mpfr_ulong) (_u) >= 1 && \
- ((mpfr_ulong) (_u) & ((mpfr_ulong) (_u) - 1)) == 0 ? \
- mpfr_mul_2si((_f), (_g), - __builtin_ctzl (_u), (_r)) : \
- mpfr_div_ui ((_f), (_g), (_u), (_r)))
-#endif
-
-/* If the source is a constant number that is non-negative,
- optimize the call */
-#undef mpfr_mul_si
-#define mpfr_mul_si(_f, _g, _s,_r) \
- (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ? \
- mpfr_mul_ui ((_f), (_g), (mpfr_ulong) (mpfr_long) (_s), (_r)) : \
- mpfr_mul_si ((_f), (_g), (_s), (_r)))
-#undef mpfr_div_si
-#define mpfr_div_si(_f, _g, _s,_r) \
- (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ? \
- mpfr_div_ui ((_f), (_g), (mpfr_ulong) (mpfr_long) (_s), (_r)) : \
- mpfr_div_si ((_f), (_g), (_s), (_r)))
-
-#endif
-#endif
-
-/* Macro version of mpfr_stack interface for fast access */
-#define mpfr_custom_get_size(p) ((mpfr_size_t) \
- (((p)+GMP_NUMB_BITS-1)/GMP_NUMB_BITS*sizeof (mp_limb_t)))
-#define mpfr_custom_init(m,p) do {} while (0)
-#define mpfr_custom_get_significand(x) ((mpfr_void*)((x)->_mpfr_d))
-#define mpfr_custom_get_exp(x) ((x)->_mpfr_exp)
-#define mpfr_custom_move(x,m) do { ((x)->_mpfr_d = (mp_limb_t*)(m)); } while (0)
-#define mpfr_custom_init_set(x,k,e,p,m) do { \
- mpfr_ptr _x = (x); \
- mpfr_exp_t _e; \
- mpfr_kind_t _t; \
- mpfr_int _s, _k; \
- _k = (k); \
- if (_k >= 0) { \
- _t = (mpfr_kind_t) _k; \
- _s = 1; \
- } else { \
- _t = (mpfr_kind_t) - _k; \
- _s = -1; \
- } \
- _e = _t == MPFR_REGULAR_KIND ? (e) : \
- _t == MPFR_NAN_KIND ? __MPFR_EXP_NAN : \
- _t == MPFR_INF_KIND ? __MPFR_EXP_INF : __MPFR_EXP_ZERO; \
- _x->_mpfr_prec = (p); \
- _x->_mpfr_sign = _s; \
- _x->_mpfr_exp = _e; \
- _x->_mpfr_d = (mp_limb_t*) (m); \
- } while (0)
-#define mpfr_custom_get_kind(x) \
- ( (x)->_mpfr_exp > __MPFR_EXP_INF ? \
- (mpfr_int) MPFR_REGULAR_KIND * MPFR_SIGN (x) \
- : (x)->_mpfr_exp == __MPFR_EXP_INF ? \
- (mpfr_int) MPFR_INF_KIND * MPFR_SIGN (x) \
- : (x)->_mpfr_exp == __MPFR_EXP_NAN ? (mpfr_int) MPFR_NAN_KIND \
- : (mpfr_int) MPFR_ZERO_KIND * MPFR_SIGN (x) )
-
-
-#endif /* MPFR_USE_NO_MACRO */
-
-/* These are defined to be macros */
-#define mpfr_init_set_si(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_si((x), (i), (rnd)) )
-#define mpfr_init_set_ui(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_ui((x), (i), (rnd)) )
-#define mpfr_init_set_d(x, d, rnd) \
- ( mpfr_init(x), mpfr_set_d((x), (d), (rnd)) )
-#define mpfr_init_set_ld(x, d, rnd) \
- ( mpfr_init(x), mpfr_set_ld((x), (d), (rnd)) )
-#define mpfr_init_set_z(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_z((x), (i), (rnd)) )
-#ifndef MPFR_USE_MINI_GMP
-#define mpfr_init_set_q(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_q((x), (i), (rnd)) )
-#define mpfr_init_set_f(x, y, rnd) \
- ( mpfr_init(x), mpfr_set_f((x), (y), (rnd)) )
-#endif
-#define mpfr_init_set(x, y, rnd) \
- ( mpfr_init(x), mpfr_set((x), (y), (rnd)) )
-
-/* Compatibility layer -- obsolete functions and macros */
-/* Note: it is not possible to output warnings, unless one defines
- * a deprecated variable and uses it, e.g.
- * MPFR_DEPRECATED extern int mpfr_deprecated_feature;
- * #define MPFR_EMIN_MIN ((void)mpfr_deprecated_feature,mpfr_get_emin_min())
- * (the cast to void avoids a warning because the left-hand operand
- * has no effect).
- */
-#define mpfr_cmp_abs mpfr_cmpabs
-#define mpfr_round_prec(x,r,p) mpfr_prec_round(x,p,r)
-#define __gmp_default_rounding_mode (mpfr_get_default_rounding_mode())
-#define __mpfr_emin (mpfr_get_emin())
-#define __mpfr_emax (mpfr_get_emax())
-#define __mpfr_default_fp_bit_precision (mpfr_get_default_fp_bit_precision())
-#define MPFR_EMIN_MIN mpfr_get_emin_min()
-#define MPFR_EMIN_MAX mpfr_get_emin_max()
-#define MPFR_EMAX_MIN mpfr_get_emax_min()
-#define MPFR_EMAX_MAX mpfr_get_emax_max()
-#define mpfr_version (mpfr_get_version())
-#ifndef mpz_set_fr
-# define mpz_set_fr mpfr_get_z
-#endif
-#define mpfr_get_z_exp mpfr_get_z_2exp
-#define mpfr_custom_get_mantissa mpfr_custom_get_significand
-
-#endif /* __MPFR_H */
-
-
-/* Check if <stdint.h> / <inttypes.h> is included or if the user
- explicitly wants intmax_t. Automatic detection is done by
- checking:
- - INTMAX_C and UINTMAX_C, but not if the compiler is a C++ one
- (as suggested by Patrick Pelissier) because the test does not
- work well in this case. See:
- https://sympa.inria.fr/sympa/arc/mpfr/2010-02/msg00025.html
- We do not check INTMAX_MAX and UINTMAX_MAX because under Solaris,
- these macros are always defined by <limits.h> (i.e. even when
- <stdint.h> and <inttypes.h> are not included).
- - _STDINT_H (defined by the glibc), _STDINT_H_ (defined under
- Mac OS X) and _STDINT (defined under MS Visual Studio), but
- this test may not work with all implementations.
- Portable software should not rely on these tests.
-*/
-#if (defined (INTMAX_C) && defined (UINTMAX_C) && !defined(__cplusplus)) || \
- defined (MPFR_USE_INTMAX_T) || \
- defined (_STDINT_H) || defined (_STDINT_H_) || defined (_STDINT) || \
- defined (_SYS_STDINT_H_) /* needed for FreeBSD */
-# ifndef _MPFR_H_HAVE_INTMAX_T
-# define _MPFR_H_HAVE_INTMAX_T 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_set_sj __gmpfr_set_sj
-#define mpfr_set_sj_2exp __gmpfr_set_sj_2exp
-#define mpfr_set_uj __gmpfr_set_uj
-#define mpfr_set_uj_2exp __gmpfr_set_uj_2exp
-#define mpfr_get_sj __gmpfr_mpfr_get_sj
-#define mpfr_get_uj __gmpfr_mpfr_get_uj
-__MPFR_DECLSPEC int mpfr_set_sj (mpfr_t, intmax_t, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_sj_2exp (mpfr_t, intmax_t, intmax_t, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_uj (mpfr_t, uintmax_t, mpfr_rnd_t);
-__MPFR_DECLSPEC int mpfr_set_uj_2exp (mpfr_t, uintmax_t, intmax_t, mpfr_rnd_t);
-__MPFR_DECLSPEC intmax_t mpfr_get_sj (mpfr_srcptr, mpfr_rnd_t);
-__MPFR_DECLSPEC uintmax_t mpfr_get_uj (mpfr_srcptr, mpfr_rnd_t);
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_INTMAX_T */
-#endif
-
-
-/* Check if <stdio.h> has been included or if the user wants FILE */
-#if defined (_GMP_H_HAVE_FILE) || defined (MPFR_USE_FILE)
-# ifndef _MPFR_H_HAVE_FILE
-# define _MPFR_H_HAVE_FILE 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_inp_str __gmpfr_inp_str
-#define mpfr_out_str __gmpfr_out_str
-__MPFR_DECLSPEC size_t mpfr_inp_str (mpfr_ptr, FILE*, int, mpfr_rnd_t);
-__MPFR_DECLSPEC size_t mpfr_out_str (FILE*, int, size_t, mpfr_srcptr,
- mpfr_rnd_t);
-#ifndef MPFR_USE_MINI_GMP
-#define mpfr_fprintf __gmpfr_fprintf
-__MPFR_DECLSPEC int mpfr_fprintf (FILE*, const char*, ...);
-#endif
-#define mpfr_fpif_export __gmpfr_fpif_export
-#define mpfr_fpif_import __gmpfr_fpif_import
-__MPFR_DECLSPEC int mpfr_fpif_export (FILE*, mpfr_ptr);
-__MPFR_DECLSPEC int mpfr_fpif_import (mpfr_ptr, FILE*);
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_FILE */
-#endif
-
-
-/* check if <stdarg.h> has been included or if the user wants va_list */
-#if defined (_GMP_H_HAVE_VA_LIST) || defined (MPFR_USE_VA_LIST)
-# ifndef _MPFR_H_HAVE_VA_LIST
-# define _MPFR_H_HAVE_VA_LIST 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_vprintf __gmpfr_vprintf
-#define mpfr_vasprintf __gmpfr_vasprintf
-#define mpfr_vsprintf __gmpfr_vsprintf
-#define mpfr_vsnprintf __gmpfr_vsnprintf
-__MPFR_DECLSPEC int mpfr_vprintf (const char*, va_list);
-__MPFR_DECLSPEC int mpfr_vasprintf (char**, const char*, va_list);
-__MPFR_DECLSPEC int mpfr_vsprintf (char*, const char*, va_list);
-__MPFR_DECLSPEC int mpfr_vsnprintf (char*, size_t, const char*, va_list);
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_VA_LIST */
-#endif
-
-
-/* check if <stdarg.h> has been included and if FILE is available
- (see above) */
-#if defined (_MPFR_H_HAVE_VA_LIST) && defined (_MPFR_H_HAVE_FILE)
-# ifndef _MPFR_H_HAVE_VA_LIST_FILE
-# define _MPFR_H_HAVE_VA_LIST_FILE 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_vfprintf __gmpfr_vfprintf
-__MPFR_DECLSPEC int mpfr_vfprintf (FILE*, const char*, va_list);
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_VA_LIST_FILE */
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mpn_exp.c b/Build/source/libs/mpfr/mpfr-src/src/mpn_exp.c
deleted file mode 100644
index 983dc77a4a6..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mpn_exp.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/* mpfr_mpn_exp -- auxiliary function for mpfr_get_str and mpfr_set_str
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* count the number of significant bits of e, i.e.,
- nbits(mpfr_exp_t) - count_leading_zeros (e) */
-static int
-nbits_mpfr_exp_t (mpfr_exp_t e)
-{
- int nbits = 0;
-
- MPFR_ASSERTD (e > 0);
- while (e >= 0x10000)
- {
- e >>= 16;
- nbits += 16;
- }
- MPFR_ASSERTD (e <= 0xffff);
- if (e >= 0x100)
- {
- e >>= 8;
- nbits += 8;
- }
- MPFR_ASSERTD (e <= 0xff);
- if (e >= 0x10)
- {
- e >>= 4;
- nbits += 4;
- }
- MPFR_ASSERTD (e <= 0xf);
- if (e >= 4)
- {
- e >>= 2;
- nbits += 2;
- }
- MPFR_ASSERTD (e <= 3);
- /* now e = 1, 2, or 3 */
- return nbits + 1 + (e >= 2);
-}
-
-/* this function computes an approximation to b^e in {a, n}, with exponent
- stored in exp_r. The computed value is rounded toward zero (truncated).
- It returns an integer f such that the final error is bounded by 2^f ulps,
- that is:
- a*2^exp_r <= b^e <= 2^exp_r (a + 2^f),
- where a represents {a, n}, i.e. the integer
- a[0] + a[1]*B + ... + a[n-1]*B^(n-1) where B=2^GMP_NUMB_BITS
-
- Return -1 is the result is exact.
- Return -2 if an overflow occurred in the computation of exp_r.
-*/
-
-int
-mpfr_mpn_exp (mp_limb_t *a, mpfr_exp_t *exp_r, int b, mpfr_exp_t e, size_t n)
-{
- mp_limb_t *c, B;
- mpfr_exp_t f, h;
- int i;
- int t; /* number of bits in e */
- size_t bits, n1;
- unsigned int error; /* (number - 1) of loops a^2b inexact */
- /* error == t means no error */
- int err_s_a2 = 0;
- int err_s_ab = 0; /* number of error when shift A^2, AB */
- MPFR_TMP_DECL(marker);
-
- MPFR_ASSERTN (n > 0 && n <= ((size_t) -1) / GMP_NUMB_BITS);
- MPFR_ASSERTN (e > 0);
- MPFR_ASSERTN (2 <= b && b <= 62);
-
- MPFR_TMP_MARK(marker);
-
- /* initialization of a, b, f, h */
-
- /* normalize the base */
- B = (mp_limb_t) b;
- count_leading_zeros (h, B);
-
- bits = GMP_NUMB_BITS - h;
-
- B = B << h;
- h = - h;
-
- /* allocate space for A and set it to B */
- c = MPFR_TMP_LIMBS_ALLOC (2 * n);
- a [n - 1] = B;
- MPN_ZERO (a, n - 1);
- /* initial exponent for A: invariant is A = {a, n} * 2^f */
- f = h - (n - 1) * GMP_NUMB_BITS;
-
- /* determine number of bits in e */
- t = nbits_mpfr_exp_t (e);
-
- error = t;
- /* t, error <= bitsize(mpfr_exp_t) */
- MPFR_ASSERTD (error >= 0);
-
- MPN_ZERO (c, 2 * n);
-
- for (i = t - 2; i >= 0; i--)
- {
- /* determine precision needed */
- bits = n * GMP_NUMB_BITS - mpn_scan1 (a, 0);
- n1 = (n * GMP_NUMB_BITS - bits) / GMP_NUMB_BITS;
-
- /* square of A : {c+2n1, 2(n-n1)} = {a+n1, n-n1}^2 */
- /* TODO: we should use a short square here, but this needs to redo
- the error analysis */
- mpn_sqr (c + 2 * n1, a + n1, n - n1);
-
- /* set {c+n, 2n1-n} to 0 : {c, n} = {a, n}^2*K^n */
-
- /* check overflow on f */
- if (MPFR_UNLIKELY (f < MPFR_EXP_MIN / 2 || f > MPFR_EXP_MAX / 2))
- {
- overflow:
- MPFR_TMP_FREE(marker);
- return -2;
- }
- /* FIXME: Could f = 2 * f + n * GMP_NUMB_BITS be used? */
- f = 2 * f;
- MPFR_SADD_OVERFLOW (f, f, n * GMP_NUMB_BITS,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- goto overflow, goto overflow);
- if (MPFR_LIMB_MSB (c[2*n - 1]) == 0)
- {
- /* shift A by one bit to the left */
- mpn_lshift (a, c + n, n, 1);
- a[0] |= mpn_lshift (c + n - 1, c + n - 1, 1, 1);
- f --;
- if (error != t)
- err_s_a2 ++;
- }
- else
- MPN_COPY (a, c + n, n);
-
- if (error == t && 2 * n1 <= n &&
- mpn_scan1 (c + 2 * n1, 0) < (n - 2 * n1) * GMP_NUMB_BITS)
- error = i;
-
- if ((e >> i) & 1)
- {
- /* multiply A by B */
- c[2 * n - 1] = mpn_mul_1 (c + n - 1, a, n, B);
- f += h + GMP_NUMB_BITS;
- if ((c[2 * n - 1] & MPFR_LIMB_HIGHBIT) == 0)
- { /* shift A by one bit to the left */
- mpn_lshift (a, c + n, n, 1);
- a[0] |= mpn_lshift (c + n - 1, c + n - 1, 1, 1);
- f --;
- }
- else
- {
- MPN_COPY (a, c + n, n);
- if (error != t)
- err_s_ab ++;
- }
- if (error == t && c[n - 1] != 0)
- error = i;
- }
- }
-
- MPFR_ASSERTD (error >= 0);
- MPFR_ASSERTD (err_s_a2 >= 0);
- MPFR_ASSERTD (err_s_ab >= 0);
-
- MPFR_TMP_FREE(marker);
-
- *exp_r = f;
-
- if (error == t)
- return -1; /* result is exact */
- else /* error <= t-2 <= bitsize(mpfr_exp_t)-2
- err_s_ab, err_s_a2 <= t-1 */
- {
- /* if there are p loops after the first inexact result, with
- j shifts in a^2 and l shifts in a*b, then the final error is
- at most 2^(p+ceil((j+1)/2)+l+1)*ulp(res).
- This is bounded by 2^(5/2*t-1/2) where t is the number of bits of e.
- */
- return error + err_s_ab + err_s_a2 / 2 + 3; /* <= 5t/2-1/2 */
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mul.c b/Build/source/libs/mpfr/mpfr-src/src/mul.c
deleted file mode 100644
index d13fda1c1d2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mul.c
+++ /dev/null
@@ -1,1105 +0,0 @@
-/* mpfr_mul -- multiply two floating-point numbers
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-
-/********* BEGINNING CHECK *************/
-
-/* Check if we have to check the result of mpfr_mul.
- TODO: Find a better (and faster?) check than using old implementation */
-#if MPFR_WANT_ASSERT >= 2
-
-int mpfr_mul2 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode);
-static int
-mpfr_mul3 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- /* Old implementation */
- int sign_product, cc, inexact;
- mpfr_exp_t ax;
- mp_limb_t *tmp;
- mp_limb_t b1;
- mpfr_prec_t bq, cq;
- mp_size_t bn, cn, tn, k;
- MPFR_TMP_DECL(marker);
-
- /* deal with special cases */
- if (MPFR_ARE_SINGULAR(b,c))
- {
- if (MPFR_IS_NAN(b) || MPFR_IS_NAN(c))
- {
- MPFR_SET_NAN(a);
- MPFR_RET_NAN;
- }
- sign_product = MPFR_MULT_SIGN( MPFR_SIGN(b) , MPFR_SIGN(c) );
- if (MPFR_IS_INF(b))
- {
- if (MPFR_IS_INF(c) || MPFR_NOTZERO(c))
- {
- MPFR_SET_SIGN(a, sign_product);
- MPFR_SET_INF(a);
- MPFR_RET(0); /* exact */
- }
- else
- {
- MPFR_SET_NAN(a);
- MPFR_RET_NAN;
- }
- }
- else if (MPFR_IS_INF(c))
- {
- if (MPFR_NOTZERO(b))
- {
- MPFR_SET_SIGN(a, sign_product);
- MPFR_SET_INF(a);
- MPFR_RET(0); /* exact */
- }
- else
- {
- MPFR_SET_NAN(a);
- MPFR_RET_NAN;
- }
- }
- else
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(b) || MPFR_IS_ZERO(c));
- MPFR_SET_SIGN(a, sign_product);
- MPFR_SET_ZERO(a);
- MPFR_RET(0); /* 0 * 0 is exact */
- }
- }
- sign_product = MPFR_MULT_SIGN( MPFR_SIGN(b) , MPFR_SIGN(c) );
-
- ax = MPFR_GET_EXP (b) + MPFR_GET_EXP (c);
-
- bq = MPFR_PREC (b);
- cq = MPFR_PREC (c);
-
- MPFR_ASSERTN ((mpfr_uprec_t) bq + cq <= MPFR_PREC_MAX);
-
- bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */
- cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */
- k = bn + cn; /* effective nb of limbs used by b*c (= tn or tn+1) below */
- tn = MPFR_PREC2LIMBS (bq + cq);
- /* <= k, thus no int overflow */
- MPFR_ASSERTD(tn <= k);
-
- /* Check for no size_t overflow*/
- MPFR_ASSERTD((size_t) k <= ((size_t) -1) / MPFR_BYTES_PER_MP_LIMB);
- MPFR_TMP_MARK(marker);
- tmp = MPFR_TMP_LIMBS_ALLOC (k);
-
- /* multiplies two mantissa in temporary allocated space */
- b1 = (MPFR_LIKELY(bn >= cn)) ?
- mpn_mul (tmp, MPFR_MANT(b), bn, MPFR_MANT(c), cn)
- : mpn_mul (tmp, MPFR_MANT(c), cn, MPFR_MANT(b), bn);
-
- /* now tmp[0]..tmp[k-1] contains the product of both mantissa,
- with tmp[k-1]>=2^(GMP_NUMB_BITS-2) */
- b1 >>= GMP_NUMB_BITS - 1; /* msb from the product */
- MPFR_ASSERTD (b1 == 0 || b1 == 1);
-
- /* if the mantissas of b and c are uniformly distributed in ]1/2, 1],
- then their product is in ]1/4, 1/2] with probability 2*ln(2)-1 ~ 0.386
- and in [1/2, 1] with probability 2-2*ln(2) ~ 0.614 */
- tmp += k - tn;
- if (MPFR_UNLIKELY(b1 == 0))
- mpn_lshift (tmp, tmp, tn, 1); /* tn <= k, so no stack corruption */
- cc = mpfr_round_raw (MPFR_MANT (a), tmp, bq + cq,
- MPFR_IS_NEG_SIGN(sign_product),
- MPFR_PREC (a), rnd_mode, &inexact);
- MPFR_ASSERTD (cc == 0 || cc == 1);
-
- /* cc = 1 ==> result is a power of two */
- if (MPFR_UNLIKELY(cc))
- MPFR_MANT(a)[MPFR_LIMB_SIZE(a)-1] = MPFR_LIMB_HIGHBIT;
-
- MPFR_TMP_FREE(marker);
-
- {
- /* We need to cast b1 to a signed integer type in order to use
- signed integer arithmetic only, as the expression can involve
- negative integers. Let's recall that both b1 and cc are 0 or 1,
- and since cc is an int, let's choose int for this part. */
- mpfr_exp_t ax2 = ax + ((int) b1 - 1 + cc);
- if (MPFR_UNLIKELY( ax2 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, sign_product);
- if (MPFR_UNLIKELY( ax2 < __gmpfr_emin))
- {
- /* In the rounding to the nearest mode, if the exponent of the exact
- result (i.e. before rounding, i.e. without taking cc into account)
- is < __gmpfr_emin - 1 or the exact result is a power of 2 (i.e. if
- both arguments are powers of 2) in absolute value, then round to
- zero. */
- if (rnd_mode == MPFR_RNDN &&
- (ax + (mpfr_exp_t) b1 < __gmpfr_emin ||
- (mpfr_powerof2_raw (b) && mpfr_powerof2_raw (c))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, sign_product);
- }
- MPFR_SET_EXP (a, ax2);
- MPFR_SET_SIGN(a, sign_product);
- }
- MPFR_RET (inexact);
-}
-
-int
-mpfr_mul (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_t ta, tb, tc;
- mpfr_flags_t old_flags, flags1, flags2;
- int inexact1, inexact2;
-
- if (rnd_mode == MPFR_RNDF)
- return mpfr_mul2 (a, b, c, rnd_mode);
-
- old_flags = __gmpfr_flags;
-
- mpfr_init2 (ta, MPFR_PREC (a));
- mpfr_init2 (tb, MPFR_PREC (b));
- mpfr_init2 (tc, MPFR_PREC (c));
- MPFR_ASSERTN (mpfr_set (tb, b, MPFR_RNDN) == 0);
- MPFR_ASSERTN (mpfr_set (tc, c, MPFR_RNDN) == 0);
-
- /* Note: If b or c is NaN, then the NaN flag has been set by mpfr_set above.
- Thus restore the old flags just below to make sure that mpfr_mul3 is
- tested under the real conditions. */
-
- __gmpfr_flags = old_flags;
- inexact2 = mpfr_mul3 (ta, tb, tc, rnd_mode);
- flags2 = __gmpfr_flags;
-
- __gmpfr_flags = old_flags;
- inexact1 = mpfr_mul2 (a, b, c, rnd_mode);
- flags1 = __gmpfr_flags;
-
- /* Convert the ternary values to (-1,0,1). */
- inexact2 = VSIGN (inexact2);
- inexact1 = VSIGN (inexact1);
-
- if (! ((MPFR_IS_NAN (ta) && MPFR_IS_NAN (a)) || mpfr_equal_p (ta, a)) ||
- inexact1 != inexact2 || flags1 != flags2)
- {
- /* We do not have MPFR_PREC_FSPEC, so let's use mpfr_eexp_t and
- MPFR_EXP_FSPEC since mpfr_prec_t values are guaranteed to be
- representable in mpfr_exp_t, thus in mpfr_eexp_t. */
- fprintf (stderr, "mpfr_mul return different values for %s\n"
- "Prec_a = %" MPFR_EXP_FSPEC "d, "
- "Prec_b = %" MPFR_EXP_FSPEC "d, "
- "Prec_c = %" MPFR_EXP_FSPEC "d\n",
- mpfr_print_rnd_mode (rnd_mode),
- (mpfr_eexp_t) MPFR_PREC (a),
- (mpfr_eexp_t) MPFR_PREC (b),
- (mpfr_eexp_t) MPFR_PREC (c));
- /* Note: We output tb and tc instead of b and c, in case a = b or c
- (this is why tb and tc have been created in the first place). */
- fprintf (stderr, "b = ");
- mpfr_fdump (stderr, tb);
- fprintf (stderr, "c = ");
- mpfr_fdump (stderr, tc);
- fprintf (stderr, "OldMul: ");
- mpfr_fdump (stderr, ta);
- fprintf (stderr, "NewMul: ");
- mpfr_fdump (stderr, a);
- fprintf (stderr, "OldMul: ternary = %2d, flags =", inexact2);
- flags_fout (stderr, flags2);
- fprintf (stderr, "NewMul: ternary = %2d, flags =", inexact1);
- flags_fout (stderr, flags1);
- MPFR_ASSERTN(0);
- }
-
- mpfr_clears (ta, tb, tc, (mpfr_ptr) 0);
- return inexact1;
-}
-
-# define mpfr_mul mpfr_mul2
-
-#endif /* MPFR_WANT_ASSERT >= 2 */
-
-/****** END OF CHECK *******/
-
-/* Multiply 2 mpfr_t */
-
-#if !defined(MPFR_GENERIC_ABI)
-
-/* Disabled for now since the mul_1_extracted.c is not formally proven yet.
- Once it is proven, replace MPFR_WANT_PROVEN_CODExxx by MPFR_WANT_PROVEN_CODE. */
-#if defined(MPFR_WANT_PROVEN_CODExxx) && GMP_NUMB_BITS == 64 && \
- UINT_MAX == 0xffffffff && MPFR_PREC_BITS == 64 && \
- _MPFR_PREC_FORMAT == 3 && _MPFR_EXP_FORMAT == _MPFR_PREC_FORMAT
-
-/* The code assumes that mp_limb_t has 64 bits exactly, unsigned int
- has 32 bits exactly, mpfr_prec_t and mpfr_exp_t are of type long,
- which has 64 bits exactly. */
-
-#include "mul_1_extracted.c"
-
-#else
-
-/* Special code for prec(a) < GMP_NUMB_BITS and
- prec(b), prec(c) <= GMP_NUMB_BITS.
- Note: this code was copied in sqr.c, function mpfr_sqr_1 (this saves a few cycles
- with respect to have this function exported). As a consequence, any change here
- should be reported in mpfr_sqr_1. */
-static int
-mpfr_mul_1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mp_limb_t a0;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mp_limb_t b0 = MPFR_MANT(b)[0];
- mp_limb_t c0 = MPFR_MANT(c)[0];
- mpfr_exp_t ax;
- mpfr_prec_t sh = GMP_NUMB_BITS - p;
- mp_limb_t rb, sb, mask = MPFR_LIMB_MASK(sh);
-
- /* When prec(b), prec(c) <= GMP_NUMB_BITS / 2, we could replace umul_ppmm
- by a limb multiplication as follows, but we assume umul_ppmm is as fast
- as a limb multiplication on modern processors:
- a0 = (b0 >> (GMP_NUMB_BITS / 2)) * (c0 >> (GMP_NUMB_BITS / 2));
- sb = 0;
- */
- ax = MPFR_GET_EXP(b) + MPFR_GET_EXP(c);
- umul_ppmm (a0, sb, b0, c0);
- if (a0 < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- /* TODO: This is actually an addition with carry (no shifts and no OR
- needed in asm). Make sure that GCC generates optimized code once
- it supports carry-in. */
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- }
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
-
- MPFR_SIGN(a) = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c));
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- if (ax == __gmpfr_emin - 1 && ap[0] == MPFR_LIMB(~mask) &&
- ((rnd_mode == MPFR_RNDN && rb) ||
- (MPFR_IS_LIKE_RNDA(rnd_mode, MPFR_IS_NEG (a)) && (rb | sb))))
- goto rounding; /* no underflow */
- /* For RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either ax < emin - 1
- (b) or ax = emin - 1 and ap[0] = 1000....000 and rb = sb = 0 */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[0] == MPFR_LIMB_HIGHBIT && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- if (ap[0] == 0)
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-#endif /* MPFR_WANT_PROVEN_CODE */
-
-/* Special code for prec(a) = GMP_NUMB_BITS and
- prec(b), prec(c) <= GMP_NUMB_BITS. */
-static int
-mpfr_mul_1n (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mp_limb_t a0;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mp_limb_t b0 = MPFR_MANT(b)[0];
- mp_limb_t c0 = MPFR_MANT(c)[0];
- mpfr_exp_t ax;
- mp_limb_t rb, sb;
-
- ax = MPFR_GET_EXP(b) + MPFR_GET_EXP(c);
- umul_ppmm (a0, sb, b0, c0);
- if (a0 < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- /* TODO: This is actually an addition with carry (no shifts and no OR
- needed in asm). Make sure that GCC generates optimized code once
- it supports carry-in. */
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- }
- rb = sb & MPFR_LIMB_HIGHBIT;
- sb = sb & ~MPFR_LIMB_HIGHBIT;
- ap[0] = a0;
-
- MPFR_SIGN(a) = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c));
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow.
- Note: this case can only occur when the initial a0 (after the umul_ppmm
- call above) had its most significant bit 0, since the largest a0 is
- obtained for b0 = c0 = B-1 where B=2^GMP_NUMB_BITS, thus b0*c0 <= (B-1)^2
- thus a0 <= B-2. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- if (ax == __gmpfr_emin - 1 && ap[0] == ~MPFR_LIMB_ZERO &&
- ((rnd_mode == MPFR_RNDN && rb) ||
- (MPFR_IS_LIKE_RNDA(rnd_mode, MPFR_IS_NEG (a)) && (rb | sb))))
- goto rounding; /* no underflow */
- /* For RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either ax < emin - 1
- (b) or ax = emin - 1 and ap[0] = 1000....000 and rb = sb = 0 */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[0] == MPFR_LIMB_HIGHBIT && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & MPFR_LIMB_ONE) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE;
- if (ap[0] == 0)
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* Special code for GMP_NUMB_BITS < prec(a) < 2*GMP_NUMB_BITS and
- GMP_NUMB_BITS < prec(b), prec(c) <= 2*GMP_NUMB_BITS.
- Note: this code was copied in sqr.c, function mpfr_sqr_2 (this saves a few cycles
- with respect to have this function exported). As a consequence, any change here
- should be reported in mpfr_sqr_2. */
-static int
-mpfr_mul_2 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mp_limb_t h, l, u, v, w;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mpfr_exp_t ax = MPFR_GET_EXP(b) + MPFR_GET_EXP(c);
- mpfr_prec_t sh = 2 * GMP_NUMB_BITS - p;
- mp_limb_t rb, sb, sb2, mask = MPFR_LIMB_MASK(sh);
- mp_limb_t *bp = MPFR_MANT(b), *cp = MPFR_MANT(c);
-
- /* we store the 4-limb product in h=ap[1], l=ap[0], sb=ap[-1], sb2=ap[-2] */
- umul_ppmm (h, l, bp[1], cp[1]);
- umul_ppmm (u, v, bp[1], cp[0]);
- l += u;
- h += (l < u);
- umul_ppmm (u, w, bp[0], cp[1]);
- l += u;
- h += (l < u);
-
- /* now the full product is {h, l, v + w + high(b0*c0), low(b0*c0)},
- where the lower part contributes to less than 3 ulps to {h, l} */
-
- /* If h has its most significant bit set and the low sh-1 bits of l are not
- 000...000 nor 111...111 nor 111...110, then we can round correctly;
- if h has zero as most significant bit, we have to shift left h and l,
- thus if the low sh-2 bits are not 000...000 nor 111...111 nor 111...110,
- then we can round correctly. To avoid an extra test we consider the latter
- case (if we can round, we can also round in the former case).
- For sh <= 3, we have mask <= 7, thus (mask>>2) <= 1, and the approximation
- cannot be enough. */
- if (MPFR_LIKELY(((l + 2) & (mask >> 2)) > 2))
- sb = sb2 = 1; /* result cannot be exact in that case */
- else
- {
- umul_ppmm (sb, sb2, bp[0], cp[0]);
- /* the full product is {h, l, sb + v + w, sb2} */
- sb += v;
- l += (sb < v);
- h += (l == 0) && (sb < v);
- sb += w;
- l += (sb < w);
- h += (l == 0) && (sb < w);
- }
- if (h < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- h = (h << 1) | (l >> (GMP_NUMB_BITS - 1));
- l = (l << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- /* no need to shift sb2 since we only want to know if it is zero or not */
- }
- ap[1] = h;
- rb = l & (MPFR_LIMB_ONE << (sh - 1));
- sb |= ((l & mask) ^ rb) | sb2;
- ap[0] = l & ~mask;
-
- MPFR_SIGN(a) = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c));
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- if (ax == __gmpfr_emin - 1 &&
- ap[1] == MPFR_LIMB_MAX &&
- ap[0] == MPFR_LIMB(~mask) &&
- ((rnd_mode == MPFR_RNDN && rb) ||
- (MPFR_IS_LIKE_RNDA(rnd_mode, MPFR_IS_NEG (a)) && (rb | sb))))
- goto rounding; /* no underflow */
- /* for RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[1] == MPFR_LIMB_HIGHBIT && ap[0] == 0 && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- if (ap[1] == 0)
- {
- ap[1] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* Special code for 2*GMP_NUMB_BITS < prec(a) < 3*GMP_NUMB_BITS and
- 2*GMP_NUMB_BITS < prec(b), prec(c) <= 3*GMP_NUMB_BITS. */
-static int
-mpfr_mul_3 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mp_limb_t a0, a1, a2, h, l, cy;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mpfr_exp_t ax = MPFR_GET_EXP(b) + MPFR_GET_EXP(c);
- mpfr_prec_t sh = 3 * GMP_NUMB_BITS - p;
- mp_limb_t rb, sb, sb2, mask = MPFR_LIMB_MASK(sh);
- mp_limb_t *bp = MPFR_MANT(b), *cp = MPFR_MANT(c);
-
- /* we store the upper 3-limb product in a2, a1, a0:
- b2*c2, b2*c1+b1*c2, b2*c0+b1*c1+b0*c2 */
- umul_ppmm (a2, a1, bp[2], cp[2]);
- umul_ppmm (h, a0, bp[2], cp[1]);
- a1 += h;
- a2 += (a1 < h);
- umul_ppmm (h, l, bp[1], cp[2]);
- a1 += h;
- a2 += (a1 < h);
- a0 += l;
- cy = a0 < l; /* carry in a1 */
- umul_ppmm (h, l, bp[2], cp[0]);
- a0 += h;
- cy += (a0 < h);
- umul_ppmm (h, l, bp[1], cp[1]);
- a0 += h;
- cy += (a0 < h);
- umul_ppmm (h, l, bp[0], cp[2]);
- a0 += h;
- cy += (a0 < h);
- /* now propagate cy */
- a1 += cy;
- a2 += (a1 < cy);
-
- /* Now the approximate product {a2, a1, a0} has an error of less than
- 5 ulps (3 ulps for the ignored low limbs of b2*c0+b1*c1+b0*c2,
- plus 2 ulps for the ignored b1*c0+b0*c1 (plus b0*c0)).
- Since we might shift by 1 bit, we make sure the low sh-2 bits of a0
- are not 0, -1, -2, -3 or -4. */
-
- if (MPFR_LIKELY(((a0 + 4) & (mask >> 2)) > 4))
- sb = sb2 = 1; /* result cannot be exact in that case */
- else
- {
- mp_limb_t p[6];
- mpn_mul_n (p, bp, cp, 3);
- a2 = p[5];
- a1 = p[4];
- a0 = p[3];
- sb = p[2];
- sb2 = p[1] | p[0];
- }
- if (a2 < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- a2 = (a2 << 1) | (a1 >> (GMP_NUMB_BITS - 1));
- a1 = (a1 << 1) | (a0 >> (GMP_NUMB_BITS - 1));
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- /* no need to shift sb2: we only need to know if it is zero or not */
- }
- ap[2] = a2;
- ap[1] = a1;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= ((a0 & mask) ^ rb) | sb2;
- ap[0] = a0 & ~mask;
-
- MPFR_SIGN(a) = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c));
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- if (ax == __gmpfr_emin - 1 &&
- ap[2] == MPFR_LIMB_MAX &&
- ap[1] == MPFR_LIMB_MAX &&
- ap[0] == MPFR_LIMB(~mask) &&
- ((rnd_mode == MPFR_RNDN && rb) ||
- (MPFR_IS_LIKE_RNDA(rnd_mode, MPFR_IS_NEG (a)) && (rb | sb))))
- goto rounding; /* no underflow */
- /* for RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[2] == MPFR_LIMB_HIGHBIT && ap[1] == 0 && ap[0] == 0
- && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- ap[2] += (ap[1] == 0) && (ap[0] == 0);
- if (ap[2] == 0)
- {
- ap[2] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN(a));
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-#endif /* !defined(MPFR_GENERIC_ABI) */
-
-/* Note: mpfr_sqr will call mpfr_mul if bn > MPFR_SQR_THRESHOLD,
- in order to use Mulders' mulhigh, which is handled only here
- to avoid partial code duplication. There is some overhead due
- to the additional tests, but slowdown should not be noticeable
- as this code is not executed in very small precisions. */
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_mul (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- int sign, inexact;
- mpfr_exp_t ax, ax2;
- mp_limb_t *tmp;
- mp_limb_t b1;
- mpfr_prec_t aq, bq, cq;
- mp_size_t bn, cn, tn, k, threshold;
- MPFR_TMP_DECL (marker);
-
- MPFR_LOG_FUNC
- (("b[%Pu]=%.*Rg c[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (b), mpfr_log_prec, b,
- mpfr_get_prec (c), mpfr_log_prec, c, rnd_mode),
- ("a[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (a), mpfr_log_prec, a, inexact));
-
- /* deal with special cases */
- if (MPFR_ARE_SINGULAR (b, c))
- {
- if (MPFR_IS_NAN (b) || MPFR_IS_NAN (c))
- {
- MPFR_SET_NAN (a);
- MPFR_RET_NAN;
- }
- sign = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c));
- if (MPFR_IS_INF (b))
- {
- if (!MPFR_IS_ZERO (c))
- {
- MPFR_SET_SIGN (a, sign);
- MPFR_SET_INF (a);
- MPFR_RET (0);
- }
- else
- {
- MPFR_SET_NAN (a);
- MPFR_RET_NAN;
- }
- }
- else if (MPFR_IS_INF (c))
- {
- if (!MPFR_IS_ZERO (b))
- {
- MPFR_SET_SIGN (a, sign);
- MPFR_SET_INF (a);
- MPFR_RET(0);
- }
- else
- {
- MPFR_SET_NAN (a);
- MPFR_RET_NAN;
- }
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO(b) || MPFR_IS_ZERO(c));
- MPFR_SET_SIGN (a, sign);
- MPFR_SET_ZERO (a);
- MPFR_RET (0);
- }
- }
-
- aq = MPFR_GET_PREC (a);
- bq = MPFR_GET_PREC (b);
- cq = MPFR_GET_PREC (c);
-
-#if !defined(MPFR_GENERIC_ABI)
- if (aq == bq && aq == cq)
- {
- if (aq < GMP_NUMB_BITS)
- return mpfr_mul_1 (a, b, c, rnd_mode, aq);
-
- if (GMP_NUMB_BITS < aq && aq < 2 * GMP_NUMB_BITS)
- return mpfr_mul_2 (a, b, c, rnd_mode, aq);
-
- if (aq == GMP_NUMB_BITS)
- return mpfr_mul_1n (a, b, c, rnd_mode);
-
- if (2 * GMP_NUMB_BITS < aq && aq < 3 * GMP_NUMB_BITS)
- return mpfr_mul_3 (a, b, c, rnd_mode, aq);
- }
-#endif
-
- sign = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c));
-
- ax = MPFR_GET_EXP (b) + MPFR_GET_EXP (c);
- /* Note: the exponent of the exact result will be e = bx + cx + ec with
- ec in {-1,0,1} and the following assumes that e is representable. */
-
- /* FIXME: Useful since we do an exponent check after?
- * It is useful iff the precision is big, there is an overflow
- * and we are doing further mults...*/
-#ifdef HUGE
- if (MPFR_UNLIKELY (ax > __gmpfr_emax + 1))
- return mpfr_overflow (a, rnd_mode, sign);
- if (MPFR_UNLIKELY (ax < __gmpfr_emin - 2))
- return mpfr_underflow (a, rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode,
- sign);
-#endif
-
- MPFR_ASSERTN ((mpfr_uprec_t) bq + cq <= MPFR_PREC_MAX);
-
- bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */
- cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */
- k = bn + cn; /* effective nb of limbs used by b*c (= tn or tn+1) below */
- tn = MPFR_PREC2LIMBS (bq + cq);
- MPFR_ASSERTD (tn <= k); /* tn <= k, thus no int overflow */
-
- /* Check for no size_t overflow. */
- MPFR_ASSERTD ((size_t) k <= ((size_t) -1) / MPFR_BYTES_PER_MP_LIMB);
- MPFR_TMP_MARK (marker);
- tmp = MPFR_TMP_LIMBS_ALLOC (k);
-
- /* multiplies two mantissa in temporary allocated space */
- if (MPFR_UNLIKELY (bn < cn))
- {
- mpfr_srcptr z = b;
- mp_size_t zn = bn;
- b = c;
- bn = cn;
- c = z;
- cn = zn;
- }
- MPFR_ASSERTD (bn >= cn);
- if (bn <= 2)
- {
- /* The 3 cases perform the same first operation. */
- umul_ppmm (tmp[1], tmp[0], MPFR_MANT (b)[0], MPFR_MANT (c)[0]);
- if (bn == 1)
- {
- /* 1 limb * 1 limb */
- b1 = tmp[1];
- }
- else if (MPFR_UNLIKELY (cn == 1))
- {
- /* 2 limbs * 1 limb */
- mp_limb_t t;
- umul_ppmm (tmp[2], t, MPFR_MANT (b)[1], MPFR_MANT (c)[0]);
- add_ssaaaa (tmp[2], tmp[1], tmp[2], tmp[1], 0, t);
- b1 = tmp[2];
- }
- else
- {
- /* 2 limbs * 2 limbs */
- mp_limb_t t1, t2, t3;
- /* First 2 limbs * 1 limb */
- umul_ppmm (tmp[2], t1, MPFR_MANT (b)[1], MPFR_MANT (c)[0]);
- add_ssaaaa (tmp[2], tmp[1], tmp[2], tmp[1], 0, t1);
- /* Second, the other 2 limbs * 1 limb product */
- umul_ppmm (t1, t2, MPFR_MANT (b)[0], MPFR_MANT (c)[1]);
- umul_ppmm (tmp[3], t3, MPFR_MANT (b)[1], MPFR_MANT (c)[1]);
- add_ssaaaa (tmp[3], t1, tmp[3], t1, 0, t3);
- /* Sum those two partial products */
- add_ssaaaa (tmp[2], tmp[1], tmp[2], tmp[1], t1, t2);
- tmp[3] += (tmp[2] < t1);
- b1 = tmp[3];
- }
- b1 >>= (GMP_NUMB_BITS - 1);
- tmp += k - tn;
- if (MPFR_UNLIKELY (b1 == 0))
- mpn_lshift (tmp, tmp, tn, 1); /* tn <= k, so no stack corruption */
- }
- else /* bn >= cn and bn >= 3 */
- /* Mulders' mulhigh. This code can also be used via mpfr_sqr,
- hence the tests b != c. */
- if (MPFR_UNLIKELY (cn > (threshold = b != c ?
- MPFR_MUL_THRESHOLD : MPFR_SQR_THRESHOLD)))
- {
- mp_limb_t *bp, *cp;
- mp_size_t n;
- mpfr_prec_t p;
-
- /* First check if we can reduce the precision of b or c:
- exact values are a nightmare for the short product trick */
- bp = MPFR_MANT (b);
- cp = MPFR_MANT (c);
- MPFR_STAT_STATIC_ASSERT (MPFR_MUL_THRESHOLD >= 1 &&
- MPFR_SQR_THRESHOLD >= 1);
- if (MPFR_UNLIKELY ((bp[0] == 0 && bp[1] == 0) ||
- (cp[0] == 0 && cp[1] == 0)))
- {
- mpfr_t b_tmp, c_tmp;
-
- MPFR_TMP_FREE (marker);
- /* Check for b */
- while (*bp == 0)
- {
- bp++;
- bn--;
- MPFR_ASSERTD (bn > 0);
- } /* This must end since the most significant limb is != 0 */
-
- /* Check for c too: if b == c, this will do nothing */
- while (*cp == 0)
- {
- cp++;
- cn--;
- MPFR_ASSERTD (cn > 0);
- } /* This must end since the most significant limb is != 0 */
-
- /* It is not the fastest way, but it is safer. */
- MPFR_SET_SAME_SIGN (b_tmp, b);
- MPFR_SET_EXP (b_tmp, MPFR_GET_EXP (b));
- MPFR_PREC (b_tmp) = bn * GMP_NUMB_BITS;
- MPFR_MANT (b_tmp) = bp;
-
- if (b != c)
- {
- MPFR_SET_SAME_SIGN (c_tmp, c);
- MPFR_SET_EXP (c_tmp, MPFR_GET_EXP (c));
- MPFR_PREC (c_tmp) = cn * GMP_NUMB_BITS;
- MPFR_MANT (c_tmp) = cp;
-
- /* Call again mpfr_mul with the fixed arguments */
- return mpfr_mul (a, b_tmp, c_tmp, rnd_mode);
- }
- else
- /* Call mpfr_mul instead of mpfr_sqr as the precision
- is probably still high enough. It is thus better to call
- mpfr_mul again, but it should not give an infinite loop
- if we call mpfr_sqr. */
- return mpfr_mul (a, b_tmp, b_tmp, rnd_mode);
- }
-
- /* Compute estimated precision of mulhigh.
- We could use `+ (n < cn) + (n < bn)' instead of `+ 2',
- but does it worth it? */
- n = MPFR_LIMB_SIZE (a) + 1;
- n = MIN (n, cn);
- MPFR_ASSERTD (n >= 1 && 2*n <= k && n <= cn && n <= bn);
- p = n * GMP_NUMB_BITS - MPFR_INT_CEIL_LOG2 (n + 2);
- bp += bn - n;
- cp += cn - n;
-
- /* Check if MulHigh can produce a roundable result.
- We may lose 1 bit due to RNDN, 1 due to final shift. */
- if (MPFR_UNLIKELY (aq > p - 5))
- {
- if (MPFR_UNLIKELY (aq > p - 5 + GMP_NUMB_BITS
- || bn <= threshold + 1))
- {
- /* MulHigh can't produce a roundable result. */
- MPFR_LOG_MSG (("mpfr_mulhigh can't be used (%lu VS %lu)\n",
- aq, p));
- goto full_multiply;
- }
- /* Add one extra limb to mantissa of b and c. */
- if (bn > n)
- bp --;
- else
- {
- bp = MPFR_TMP_LIMBS_ALLOC (n + 1);
- bp[0] = 0;
- MPN_COPY (bp + 1, MPFR_MANT (b) + bn - n, n);
- }
- if (b != c)
- {
-#if GMP_NUMB_BITS <= 32
- if (cn > n)
- cp --; /* This can only happen on a 32-bit computer,
- and is very unlikely to happen.
- Indeed, since n = MIN (an + 1, cn), with
- an = MPFR_LIMB_SIZE(a), we can have cn > n
- only when n = an + 1 < cn.
- We are in the case aq > p - 5, with
- aq = PREC(a) = an*W - sh, with W = GMP_NUMB_BITS
- and 0 <= sh < W, and p = n*W - ceil(log2(n+2)),
- thus an*W - sh > n*W - ceil(log2(n+2)) - 5.
- Thus n < an + (ceil(log2(n+2)) + 5 - sh)/W.
- To get n = an + 1, we need
- ceil(log2(n+2)) + 5 - sh > W, thus since sh>=0
- we need ceil(log2(n+2)) + 5 > W.
- With W=32 this can only happen for n>=2^27-1,
- thus for a precision of 2^32-64 for a,
- and with W=64 for n>=2^59-1, which would give
- a precision >= 2^64. */
- else
-#endif
- {
- cp = MPFR_TMP_LIMBS_ALLOC (n + 1);
- cp[0] = 0;
- MPN_COPY (cp + 1, MPFR_MANT (c) + cn - n, n);
- }
- }
- /* We will compute with one extra limb */
- n++;
- /* ceil(log2(n+2)) takes into account the lost bits due to
- Mulders' short product */
- p = n * GMP_NUMB_BITS - MPFR_INT_CEIL_LOG2 (n + 2);
- /* Due to some nasty reasons we can have only 4 bits */
- MPFR_ASSERTD (aq <= p - 4);
-
- if (MPFR_LIKELY (k < 2*n))
- {
- tmp = MPFR_TMP_LIMBS_ALLOC (2 * n);
- tmp += 2*n-k; /* `tmp' still points to an area of `k' limbs */
- }
- }
- MPFR_LOG_MSG (("Use mpfr_mulhigh (%lu VS %lu)\n", aq, p));
- /* Compute an approximation of the product of b and c */
- if (b != c)
- mpfr_mulhigh_n (tmp + k - 2 * n, bp, cp, n);
- else
- mpfr_sqrhigh_n (tmp + k - 2 * n, bp, n);
- /* now tmp[k-n]..tmp[k-1] contains an approximation of the n upper
- limbs of the product, with tmp[k-1] >= 2^(GMP_NUMB_BITS-2) */
- b1 = tmp[k-1] >> (GMP_NUMB_BITS - 1); /* msb from the product */
-
- /* If the mantissas of b and c are uniformly distributed in (1/2, 1],
- then their product is in (1/4, 1/2] with probability 2*ln(2)-1
- ~ 0.386 and in [1/2, 1] with probability 2-2*ln(2) ~ 0.614 */
- if (MPFR_UNLIKELY (b1 == 0))
- /* Warning: the mpfr_mulhigh_n call above only surely affects
- tmp[k-n-1..k-1], thus we shift only those limbs */
- mpn_lshift (tmp + k - n - 1, tmp + k - n - 1, n + 1, 1);
- tmp += k - tn;
- /* now the approximation is in tmp[tn-n]...tmp[tn-1] */
- MPFR_ASSERTD (MPFR_LIMB_MSB (tmp[tn-1]) != 0);
-
- /* for RNDF, we simply use RNDZ, since anyway here we multiply numbers
- with large precisions, thus the overhead of RNDZ is small */
- if (rnd_mode == MPFR_RNDF)
- rnd_mode = MPFR_RNDZ;
-
- /* if the most significant bit b1 is zero, we have only p-1 correct
- bits */
- if (MPFR_UNLIKELY (!mpfr_round_p (tmp, tn, p + b1 - 1,
- aq + (rnd_mode == MPFR_RNDN))))
- {
- tmp -= k - tn; /* tmp may have changed, FIX IT!!!!! */
- goto full_multiply;
- }
- }
- else
- {
- full_multiply:
- MPFR_LOG_MSG (("Use mpn_mul\n", 0));
- b1 = mpn_mul (tmp, MPFR_MANT (b), bn, MPFR_MANT (c), cn);
-
- /* now tmp[0]..tmp[k-1] contains the product of both mantissa,
- with tmp[k-1]>=2^(GMP_NUMB_BITS-2) */
- b1 >>= GMP_NUMB_BITS - 1; /* msb from the product */
-
- /* if the mantissas of b and c are uniformly distributed in (1/2, 1],
- then their product is in (1/4, 1/2] with probability 2*ln(2)-1
- ~ 0.386 and in [1/2, 1] with probability 2-2*ln(2) ~ 0.614 */
- tmp += k - tn;
- if (MPFR_UNLIKELY (b1 == 0))
- mpn_lshift (tmp, tmp, tn, 1); /* tn <= k, so no stack corruption */
- }
-
- /* b1 is 0 or 1 (most significant bit from the raw product) */
- ax2 = ax + ((int) b1 - 1);
- MPFR_RNDRAW (inexact, a, tmp, bq + cq, rnd_mode, sign, ax2++);
- MPFR_TMP_FREE (marker);
- MPFR_EXP (a) = ax2; /* Can't use MPFR_SET_EXP: Expo may be out of range */
- MPFR_SET_SIGN (a, sign);
- if (MPFR_UNLIKELY (ax2 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, sign);
- if (MPFR_UNLIKELY (ax2 < __gmpfr_emin))
- {
- /* In the rounding to the nearest mode, if the exponent of the exact
- result (i.e. before rounding, i.e. without taking cc into account)
- is < __gmpfr_emin - 1 or the exact result is a power of 2 (i.e. if
- both arguments are powers of 2), then round to zero. */
- if (rnd_mode == MPFR_RNDN
- && (ax + (mpfr_exp_t) b1 < __gmpfr_emin
- || (mpfr_powerof2_raw (b) && mpfr_powerof2_raw (c))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, sign);
- }
- MPFR_RET (inexact);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mul_1_extracted.c b/Build/source/libs/mpfr/mpfr-src/src/mul_1_extracted.c
deleted file mode 100644
index 06c51032756..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mul_1_extracted.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/* mpfr_mul_1 -- internal function to perform a one-limb multiplication
- This code was extracted by Kremlin from a formal proof in F*
- done by Jianyang Pan in April-August 2018: do not modify it!
-
-Source: https://github.com/project-everest/hacl-star/tree/dev_mpfr/code/mpfr
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define int64_t long
-#define uint32_t unsigned int
-#define uint64_t mp_limb_t
-#define bool int
-
-typedef struct K___int64_t_uint64_t_uint64_t_s
-{
- int64_t fst;
- uint64_t snd;
- uint64_t thd;
-}
-K___int64_t_uint64_t_uint64_t;
-
-#define MPFR_Lib_mpfr_struct __mpfr_struct
-#define MPFR_Lib_mpfr_RET(I) (I) != 0 ? ((__gmpfr_flags |= MPFR_FLAGS_INEXACT), (I)) : 0
-#define MPFR_Exceptions_mpfr_overflow mpfr_overflow
-#define MPFR_Exceptions_mpfr_underflow mpfr_underflow
-#define mpfr_prec _mpfr_prec
-#define mpfr_exp _mpfr_exp
-#define mpfr_d _mpfr_d
-#define mpfr_sign _mpfr_sign
-#define MPFR_Lib_gmp_NUMB_BITS GMP_NUMB_BITS
-#define MPFR_Lib_mpfr_EMAX __gmpfr_emax
-#define MPFR_Lib_mpfr_EMIN __gmpfr_emin
-#define MPFR_RoundingMode_MPFR_RNDZ MPFR_RNDZ
-
-#define MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode) (rnd_mode == MPFR_RNDN)
-#define MPFR_RoundingMode_mpfr_IS_LIKE_RNDZ MPFR_IS_LIKE_RNDZ
-#define MPFR_RoundingMode_mpfr_IS_LIKE_RNDA MPFR_IS_LIKE_RNDA
-
-/* Special code for prec(a) < GMP_NUMB_BITS and
- prec(b), prec(c) <= GMP_NUMB_BITS.
- Note: this code was copied in sqr.c, function mpfr_sqr_1 (this saves a few cycles
- with respect to have this function exported). As a consequence, any change here
- should be reported in mpfr_sqr_1. */
-static int
-mpfr_mul_1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- uint64_t *ap = a->mpfr_d;
- uint64_t *bp = b->mpfr_d;
- uint64_t *cp = c->mpfr_d;
- uint64_t b0 = bp[0U];
- uint64_t c0 = cp[0U];
- int64_t sh = MPFR_Lib_gmp_NUMB_BITS - p;
- uint64_t mask = ((uint64_t)1U << (uint32_t)sh) - (uint64_t)1U;
- int64_t ax = b->mpfr_exp + c->mpfr_exp;
- //K___uint64_t_uint64_t scrut0 = MPFR_Umul_ppmm_umul_ppmm(b0, c0);
- //uint64_t a0 = scrut0.fst;
- //uint64_t sb = scrut0.snd;
- uint64_t a0, sb;
- umul_ppmm (a0, sb, b0, c0);
- K___int64_t_uint64_t_uint64_t scrut;
- if (a0 < (uint64_t)0x8000000000000000U)
- scrut =
- (
- (K___int64_t_uint64_t_uint64_t){
- .fst = ax - (int64_t)1,
- .snd = a0 << (uint32_t)1U | sb >> (uint32_t)(MPFR_Lib_gmp_NUMB_BITS - (int64_t)1),
- .thd = sb << (uint32_t)1U
- }
- );
- else
- scrut = ((K___int64_t_uint64_t_uint64_t){ .fst = ax, .snd = a0, .thd = sb });
- int64_t ax1 = scrut.fst;
- uint64_t a01 = scrut.snd;
- uint64_t sb1 = scrut.thd;
- uint64_t rb = a01 & (uint64_t)1U << (uint32_t)(sh - (int64_t)1);
- uint64_t sb2 = sb1 | ((a01 & mask) ^ rb);
- ap[0U] = a01 & ~mask;
- MPFR_Lib_mpfr_struct uu___73_2756 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___73_2756.mpfr_prec,
- .mpfr_sign = b->mpfr_sign * c->mpfr_sign,
- .mpfr_exp = uu___73_2756.mpfr_exp,
- .mpfr_d = uu___73_2756.mpfr_d
- }
- );
- uint64_t *ap1 = a->mpfr_d;
- uint64_t a02 = ap1[0U];
- if (ax1 > MPFR_Lib_mpfr_EMAX)
- return MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- else if (ax1 < MPFR_Lib_mpfr_EMIN)
- {
- bool aneg = a->mpfr_sign < (int32_t)0;
- if
- (
- ax1
- == MPFR_Lib_mpfr_EMIN - (int64_t)1
- && a02 == ~mask
- &&
- ((MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode) && rb > (uint64_t)0U)
- || ((rb | sb2) > (uint64_t)0U && MPFR_RoundingMode_mpfr_IS_LIKE_RNDA(rnd_mode, aneg)))
- )
- {
- uint64_t *ap2 = a->mpfr_d;
- uint64_t a03 = ap2[0U];
- MPFR_Lib_mpfr_struct uu___72_2907 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_2907.mpfr_prec,
- .mpfr_sign = uu___72_2907.mpfr_sign,
- .mpfr_exp = ax1,
- .mpfr_d = uu___72_2907.mpfr_d
- }
- );
- if (rb == (uint64_t)0U && sb2 == (uint64_t)0U)
- return MPFR_Lib_mpfr_RET((int32_t)0);
- else if (MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode))
- if
- (
- rb
- == (uint64_t)0U
- || (sb2 == (uint64_t)0U && (a03 & (uint64_t)1U << (uint32_t)sh) == (uint64_t)0U)
- )
- {
- int32_t ite;
- if (a->mpfr_sign == (int32_t)1)
- ite = (int32_t)-1;
- else
- ite = (int32_t)1;
- return MPFR_Lib_mpfr_RET(ite);
- }
- else
- {
- uint64_t *ap3 = a->mpfr_d;
- ap3[0U] = ap3[0U] + ((uint64_t)1U << (uint32_t)sh);
- if (ap3[0U] == (uint64_t)0U)
- {
- ap3[0U] = (uint64_t)0x8000000000000000U;
- if (ax1 + (int64_t)1 > MPFR_Lib_mpfr_EMAX)
- return MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- else
- {
- MPFR_Lib_mpfr_struct uu___72_3047 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3047.mpfr_prec,
- .mpfr_sign = uu___72_3047.mpfr_sign,
- .mpfr_exp = ax1 + (int64_t)1,
- .mpfr_d = uu___72_3047.mpfr_d
- }
- );
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
- else
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- else if (MPFR_RoundingMode_mpfr_IS_LIKE_RNDZ(rnd_mode, a->mpfr_sign < (int32_t)0))
- {
- int32_t ite;
- if (a->mpfr_sign == (int32_t)1)
- ite = (int32_t)-1;
- else
- ite = (int32_t)1;
- return MPFR_Lib_mpfr_RET(ite);
- }
- else
- {
- uint64_t *ap3 = a->mpfr_d;
- ap3[0U] = ap3[0U] + ((uint64_t)1U << (uint32_t)sh);
- if (ap3[0U] == (uint64_t)0U)
- {
- ap3[0U] = (uint64_t)0x8000000000000000U;
- if (ax1 + (int64_t)1 > MPFR_Lib_mpfr_EMAX)
- return MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- else
- {
- MPFR_Lib_mpfr_struct uu___72_3237 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3237.mpfr_prec,
- .mpfr_sign = uu___72_3237.mpfr_sign,
- .mpfr_exp = ax1 + (int64_t)1,
- .mpfr_d = uu___72_3237.mpfr_d
- }
- );
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
- else
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
- else if
- (
- MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode)
- &&
- (ax1
- < MPFR_Lib_mpfr_EMIN - (int64_t)1
- || (a02 == (uint64_t)0x8000000000000000U && (rb | sb2) == (uint64_t)0U))
- )
- return MPFR_Exceptions_mpfr_underflow(a, MPFR_RoundingMode_MPFR_RNDZ, a->mpfr_sign);
- else
- return MPFR_Exceptions_mpfr_underflow(a, rnd_mode, a->mpfr_sign);
- }
- else
- {
- uint64_t *ap2 = a->mpfr_d;
- uint64_t a03 = ap2[0U];
- MPFR_Lib_mpfr_struct uu___72_3422 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3422.mpfr_prec,
- .mpfr_sign = uu___72_3422.mpfr_sign,
- .mpfr_exp = ax1,
- .mpfr_d = uu___72_3422.mpfr_d
- }
- );
- if (rb == (uint64_t)0U && sb2 == (uint64_t)0U)
- return MPFR_Lib_mpfr_RET((int32_t)0);
- else if (MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode))
- if
- (
- rb
- == (uint64_t)0U
- || (sb2 == (uint64_t)0U && (a03 & (uint64_t)1U << (uint32_t)sh) == (uint64_t)0U)
- )
- {
- int32_t ite;
- if (a->mpfr_sign == (int32_t)1)
- ite = (int32_t)-1;
- else
- ite = (int32_t)1;
- return MPFR_Lib_mpfr_RET(ite);
- }
- else
- {
- uint64_t *ap3 = a->mpfr_d;
- ap3[0U] = ap3[0U] + ((uint64_t)1U << (uint32_t)sh);
- if (ap3[0U] == (uint64_t)0U)
- {
- ap3[0U] = (uint64_t)0x8000000000000000U;
- if (ax1 + (int64_t)1 > MPFR_Lib_mpfr_EMAX)
- return MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- else
- {
- MPFR_Lib_mpfr_struct uu___72_3562 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3562.mpfr_prec,
- .mpfr_sign = uu___72_3562.mpfr_sign,
- .mpfr_exp = ax1 + (int64_t)1,
- .mpfr_d = uu___72_3562.mpfr_d
- }
- );
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
- else
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- else if (MPFR_RoundingMode_mpfr_IS_LIKE_RNDZ(rnd_mode, a->mpfr_sign < (int32_t)0))
- {
- int32_t ite;
- if (a->mpfr_sign == (int32_t)1)
- ite = (int32_t)-1;
- else
- ite = (int32_t)1;
- return MPFR_Lib_mpfr_RET(ite);
- }
- else
- {
- uint64_t *ap3 = a->mpfr_d;
- ap3[0U] = ap3[0U] + ((uint64_t)1U << (uint32_t)sh);
- if (ap3[0U] == (uint64_t)0U)
- {
- ap3[0U] = (uint64_t)0x8000000000000000U;
- if (ax1 + (int64_t)1 > MPFR_Lib_mpfr_EMAX)
- return MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- else
- {
- MPFR_Lib_mpfr_struct uu___72_3752 = a[0U];
- a[0U] =
- (
- (MPFR_Lib_mpfr_struct){
- .mpfr_prec = uu___72_3752.mpfr_prec,
- .mpfr_sign = uu___72_3752.mpfr_sign,
- .mpfr_exp = ax1 + (int64_t)1,
- .mpfr_d = uu___72_3752.mpfr_d
- }
- );
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
- else
- return MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mul_2exp.c b/Build/source/libs/mpfr/mpfr-src/src/mul_2exp.c
deleted file mode 100644
index 9ae1be8695b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mul_2exp.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* mpfr_mul_2exp -- multiply a floating-point number by a power of two
-
-Copyright 1999, 2001, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Obsolete function, use mpfr_mul_2ui or mpfr_mul_2si instead. */
-
-#undef mpfr_mul_2exp
-
-int
-mpfr_mul_2exp (mpfr_ptr y, mpfr_srcptr x, unsigned long int n, mpfr_rnd_t rnd_mode)
-{
- return mpfr_mul_2ui (y, x, n, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mul_2si.c b/Build/source/libs/mpfr/mpfr-src/src/mul_2si.c
deleted file mode 100644
index bbf5fea48fc..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mul_2si.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* mpfr_mul_2si -- multiply a floating-point number by a power of two
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_mul_2si (mpfr_ptr y, mpfr_srcptr x, long int n, mpfr_rnd_t rnd_mode)
-{
- int inexact;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg n=%ld rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, n, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- return mpfr_set (y, x, rnd_mode);
- else
- {
- mpfr_exp_t exp = MPFR_GET_EXP (x);
- MPFR_SETRAW (inexact, y, x, exp, rnd_mode);
- if (MPFR_UNLIKELY(n >= 0 && (__gmpfr_emax < MPFR_EMIN_MIN + n ||
- exp > __gmpfr_emax - n)))
- return mpfr_overflow (y, rnd_mode, MPFR_SIGN(y));
- else if (MPFR_UNLIKELY(n < 0 && (__gmpfr_emin > MPFR_EMAX_MAX + n ||
- exp < __gmpfr_emin - n)))
- {
- if (rnd_mode == MPFR_RNDN &&
- (__gmpfr_emin > MPFR_EMAX_MAX + (n + 1) ||
- exp < __gmpfr_emin - (n + 1) ||
- ((MPFR_IS_NEG (y) ? inexact <= 0 : inexact >= 0) &&
- mpfr_powerof2_raw (y))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (y, rnd_mode, MPFR_SIGN(y));
- }
- MPFR_SET_EXP (y, exp + n);
- }
-
- MPFR_RET (inexact);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mul_2ui.c b/Build/source/libs/mpfr/mpfr-src/src/mul_2ui.c
deleted file mode 100644
index 11bf3a1d34b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mul_2ui.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* mpfr_mul_2ui -- multiply a floating-point number by a power of two
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_mul_2ui (mpfr_ptr y, mpfr_srcptr x, unsigned long int n, mpfr_rnd_t rnd_mode)
-{
- int inexact;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg n=%lu rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, n, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- inexact = (y != x) ? mpfr_set (y, x, rnd_mode) : 0;
-
- if (MPFR_LIKELY (MPFR_IS_PURE_FP (y)))
- {
- mpfr_exp_t exp = MPFR_GET_EXP (y);
- mpfr_exp_t diffexp;
-
- diffexp = __gmpfr_emax - exp; /* diff of two valid exponents */
- if (MPFR_UNLIKELY (n > diffexp)) /* exp + n > emax */
- return mpfr_overflow (y, rnd_mode, MPFR_SIGN (y));
- /* Now, 0 <= n <= diffexp, thus n fits in a mpfr_exp_t,
- and exp + n <= emax (no integer overflow). */
- MPFR_SET_EXP (y, exp + (mpfr_exp_t) n);
- }
-
- return inexact;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mul_d.c b/Build/source/libs/mpfr/mpfr-src/src/mul_d.c
deleted file mode 100644
index 20fa43a10ff..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mul_d.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* mpfr_mul_d -- multiply a multiple precision floating-point number
- by a machine double precision float
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_mul_d (mpfr_ptr a, mpfr_srcptr b, double c, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t d;
- mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("b[%Pu]=%.*Rg c=%.20g rnd=%d",
- mpfr_get_prec(b), mpfr_log_prec, b, c, rnd_mode),
- ("a[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (a), mpfr_log_prec, a, inexact));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(tmp_man, d, IEEE_DBL_MANT_DIG);
- inexact = mpfr_set_d (d, c, rnd_mode);
- MPFR_ASSERTD (inexact == 0);
-
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_mul (a, b, d, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (a, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mul_ui.c b/Build/source/libs/mpfr/mpfr-src/src/mul_ui.c
deleted file mode 100644
index 408133a4c91..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mul_ui.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* mpfr_mul_ui -- multiply a floating-point number by a machine integer
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#undef mpfr_mul_ui
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_mul_ui (mpfr_ptr y, mpfr_srcptr x, unsigned long int u, mpfr_rnd_t rnd_mode)
-{
- int inexact;
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- if (u != 0)
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0); /* infinity is exact */
- }
- else /* 0 * infinity */
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- }
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0); /* zero is exact */
- }
- }
- else if (u <= 1)
- {
- if (u < 1)
- {
- MPFR_SET_ZERO (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0); /* zero is exact */
- }
- else
- return mpfr_set (y, x, rnd_mode);
- }
- else if (MPFR_UNLIKELY (IS_POW2 (u)))
- return mpfr_mul_2si (y, x, MPFR_INT_CEIL_LOG2 (u), rnd_mode);
-
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- mp_limb_t *yp;
- mp_size_t xn;
- int cnt;
- MPFR_TMP_DECL (marker);
-
- yp = MPFR_MANT (y);
- xn = MPFR_LIMB_SIZE (x);
-
- MPFR_ASSERTD (xn < MP_SIZE_T_MAX);
- MPFR_TMP_MARK(marker);
- yp = MPFR_TMP_LIMBS_ALLOC (xn + 1);
-
- MPFR_ASSERTN (u == (mp_limb_t) u);
- yp[xn] = mpn_mul_1 (yp, MPFR_MANT (x), xn, u);
-
- /* x * u is stored in yp[xn], ..., yp[0] */
-
- /* since the case u=1 was treated above, we have u >= 2, thus
- yp[xn] >= 1 since x was msb-normalized */
- MPFR_ASSERTD (yp[xn] != 0);
- if (MPFR_LIKELY (MPFR_LIMB_MSB (yp[xn]) == 0))
- {
- count_leading_zeros (cnt, yp[xn]);
- mpn_lshift (yp, yp, xn + 1, cnt);
- }
- else
- {
- cnt = 0;
- }
-
- /* now yp[xn], ..., yp[0] is msb-normalized too, and has at most
- PREC(x) + (GMP_NUMB_BITS - cnt) non-zero bits */
- MPFR_RNDRAW (inexact, y, yp, (mpfr_prec_t) (xn + 1) * GMP_NUMB_BITS,
- rnd_mode, MPFR_SIGN (x), cnt -- );
-
- MPFR_TMP_FREE (marker);
-
- cnt = GMP_NUMB_BITS - cnt;
- if (MPFR_UNLIKELY (__gmpfr_emax < MPFR_EMAX_MIN + cnt
- || MPFR_GET_EXP (x) > __gmpfr_emax - cnt))
- return mpfr_overflow (y, rnd_mode, MPFR_SIGN(x));
-
- MPFR_SET_EXP (y, MPFR_GET_EXP (x) + cnt);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (inexact);
- }
-#else
- {
- mpfr_t uu;
- MPFR_SAVE_EXPO_DECL (expo);
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- /* Warning: u might be outside the current exponent range! */
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_set_ui (uu, u, MPFR_RNDZ);
- inexact = mpfr_mul (y, x, uu, rnd_mode);
- mpfr_clear (uu);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
- }
-#endif /* MPFR_LONG_WITHIN_LIMB */
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/mulders.c b/Build/source/libs/mpfr/mpfr-src/src/mulders.c
deleted file mode 100644
index a08e0a61416..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/mulders.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/* Mulders' short product, square and division.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* References:
- [1] Short Division of Long Integers, David Harvey and Paul Zimmermann,
- Proceedings of the 20th Symposium on Computer Arithmetic (ARITH-20),
- July 25-27, 2011, pages 7-14.
-*/
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Don't use MPFR_MULHIGH_SIZE since it is handled by tuneup */
-#ifdef MPFR_MULHIGH_TAB_SIZE
-static short mulhigh_ktab[MPFR_MULHIGH_TAB_SIZE];
-#else
-static short mulhigh_ktab[] = {MPFR_MULHIGH_TAB};
-#define MPFR_MULHIGH_TAB_SIZE (numberof_const (mulhigh_ktab))
-#endif
-
-/* Put in rp[n..2n-1] an approximation of the n high limbs
- of {up, n} * {vp, n}. The error is less than n ulps of rp[n] (and the
- approximation is always less or equal to the truncated full product).
- Assume 2n limbs are allocated at rp.
-
- Implements Algorithm ShortMulNaive from [1].
-*/
-static void
-mpfr_mulhigh_n_basecase (mpfr_limb_ptr rp, mpfr_limb_srcptr up,
- mpfr_limb_srcptr vp, mp_size_t n)
-{
- mp_size_t i;
-
- rp += n - 1;
- umul_ppmm (rp[1], rp[0], up[n-1], vp[0]); /* we neglect up[0..n-2]*vp[0],
- which is less than B^n */
- for (i = 1 ; i < n ; i++)
- /* here, we neglect up[0..n-i-2] * vp[i], which is less than B^n too */
- rp[i + 1] = mpn_addmul_1 (rp, up + (n - i - 1), i + 1, vp[i]);
- /* in total, we neglect less than n*B^n, i.e., n ulps of rp[n]. */
-}
-
-/* Put in rp[n..2n-1] an approximation of the n high limbs
- of {np, n} * {mp, n}. The error is less than n ulps of rp[n] (and the
- approximation is always less or equal to the truncated full product).
-
- Implements Algorithm ShortMul from [1].
-*/
-void
-mpfr_mulhigh_n (mpfr_limb_ptr rp, mpfr_limb_srcptr np, mpfr_limb_srcptr mp,
- mp_size_t n)
-{
- mp_size_t k;
-
- MPFR_STAT_STATIC_ASSERT (MPFR_MULHIGH_TAB_SIZE >= 8); /* so that 3*(n/4) > n/2 */
- k = MPFR_LIKELY (n < MPFR_MULHIGH_TAB_SIZE) ? mulhigh_ktab[n] : 3*(n/4);
- /* Algorithm ShortMul from [1] requires k >= (n+3)/2, which translates
- into k >= (n+4)/2 in the C language. */
- MPFR_ASSERTD (k == -1 || k == 0 || (k >= (n+4)/2 && k < n));
- if (k < 0)
- mpn_mul_basecase (rp, np, n, mp, n); /* result is exact, no error */
- else if (k == 0)
- mpfr_mulhigh_n_basecase (rp, np, mp, n); /* basecase error < n ulps */
- else if (n > MUL_FFT_THRESHOLD)
- mpn_mul_n (rp, np, mp, n); /* result is exact, no error */
- else
- {
- mp_size_t l = n - k;
- mp_limb_t cy;
-
- mpn_mul_n (rp + 2 * l, np + l, mp + l, k); /* fills rp[2l..2n-1] */
- mpfr_mulhigh_n (rp, np + k, mp, l); /* fills rp[l-1..2l-1] */
- cy = mpn_add_n (rp + n - 1, rp + n - 1, rp + l - 1, l + 1);
- mpfr_mulhigh_n (rp, np, mp + k, l); /* fills rp[l-1..2l-1] */
- cy += mpn_add_n (rp + n - 1, rp + n - 1, rp + l - 1, l + 1);
- mpn_add_1 (rp + n + l, rp + n + l, k, cy); /* propagate carry */
- }
-}
-
-#ifdef MPFR_SQRHIGH_TAB_SIZE
-static short sqrhigh_ktab[MPFR_SQRHIGH_TAB_SIZE];
-#else
-static short sqrhigh_ktab[] = {MPFR_SQRHIGH_TAB};
-#define MPFR_SQRHIGH_TAB_SIZE (numberof_const (sqrhigh_ktab))
-#endif
-
-/* Put in rp[n..2n-1] an approximation of the n high limbs
- of {np, n}^2. The error is less than n ulps of rp[n]. */
-void
-mpfr_sqrhigh_n (mpfr_limb_ptr rp, mpfr_limb_srcptr np, mp_size_t n)
-{
- mp_size_t k;
-
- MPFR_STAT_STATIC_ASSERT (MPFR_SQRHIGH_TAB_SIZE > 2); /* ensures k < n */
- k = MPFR_LIKELY (n < MPFR_SQRHIGH_TAB_SIZE) ? sqrhigh_ktab[n]
- : (n+4)/2; /* ensures that k >= (n+3)/2 */
- MPFR_ASSERTD (k == -1 || k == 0 || (k >= (n+4)/2 && k < n));
- if (k < 0)
- /* we can't use mpn_sqr_basecase here, since it requires
- n <= SQR_KARATSUBA_THRESHOLD, where SQR_KARATSUBA_THRESHOLD
- is not exported by GMP */
- mpn_sqr (rp, np, n);
- else if (k == 0)
- mpfr_mulhigh_n_basecase (rp, np, np, n);
- else
- {
- mp_size_t l = n - k;
- mp_limb_t cy;
-
- mpn_sqr (rp + 2 * l, np + l, k); /* fills rp[2l..2n-1] */
- mpfr_mulhigh_n (rp, np, np + k, l); /* fills rp[l-1..2l-1] */
- /* {rp+n-1,l+1} += 2 * {rp+l-1,l+1} */
- cy = mpn_lshift (rp + l - 1, rp + l - 1, l + 1, 1);
- cy += mpn_add_n (rp + n - 1, rp + n - 1, rp + l - 1, l + 1);
- mpn_add_1 (rp + n + l, rp + n + l, k, cy); /* propagate carry */
- }
-}
-
-#ifdef MPFR_DIVHIGH_TAB_SIZE
-static short divhigh_ktab[MPFR_DIVHIGH_TAB_SIZE];
-#else
-static short divhigh_ktab[] = {MPFR_DIVHIGH_TAB};
-#define MPFR_DIVHIGH_TAB_SIZE (numberof_const (divhigh_ktab))
-#endif
-
-/* Put in Q={qp, n} an approximation of N={np, 2*n} divided by D={dp, n},
- with the most significant limb of the quotient as return value (0 or 1).
- Assumes the most significant bit of D is set. Clobbers N.
-
- The approximate quotient Q satisfies - 2(n-1) < N/D - Q <= 4.
-
- Assumes n >= 2.
-*/
-static mp_limb_t
-mpfr_divhigh_n_basecase (mpfr_limb_ptr qp, mpfr_limb_ptr np,
- mpfr_limb_srcptr dp, mp_size_t n)
-{
- mp_limb_t qh, d1, d0, q2, q1, q0;
- mpfr_pi1_t dinv2;
-
- MPFR_ASSERTD(n >= 2);
-
- np += n;
-
- if ((qh = (mpn_cmp (np, dp, n) >= 0)))
- mpn_sub_n (np, np, dp, n);
-
- /* now {np, n} is less than D={dp, n}, which implies np[n-1] <= dp[n-1] */
-
- d1 = dp[n - 1];
-
- /* we assumed n >= 2 */
- d0 = dp[n - 2];
- invert_pi1 (dinv2, d1, d0);
- /* dinv2.inv32 = floor ((B^3 - 1) / (d0 + d1 B)) - B */
- while (n > 1)
- {
- /* Invariant: it remains to reduce n limbs from N (in addition to the
- initial low n limbs).
- Since n >= 2 here, necessarily we had n >= 2 initially, which means
- that in addition to the limb np[n-1] to reduce, we have at least 2
- extra limbs, thus accessing np[n-3] is valid. */
-
- /* Warning: we can have np[n-1]>d1 or (np[n-1]=d1 and np[n-2]>=d0) here,
- since we truncate the divisor at each step, but since {np,n} < D
- originally, the largest possible partial quotient is B-1. */
- if (MPFR_UNLIKELY(np[n-1] > d1 || (np[n-1] == d1 && np[n-2] >= d0)))
- q2 = MPFR_LIMB_MAX;
- else
- udiv_qr_3by2 (q2, q1, q0, np[n - 1], np[n - 2], np[n - 3],
- d1, d0, dinv2.inv32);
- /* since q2 = floor((np[n-1]*B^2+np[n-2]*B+np[n-3])/(d1*B+d0)),
- we have q2 <= (np[n-1]*B^2+np[n-2]*B+np[n-3])/(d1*B+d0),
- thus np[n-1]*B^2+np[n-2]*B+np[n-3] >= q2*(d1*B+d0)
- and {np-1, n} >= q2*D - q2*B^(n-2) >= q2*D - B^(n-1)
- thus {np-1, n} - (q2-1)*D >= D - B^(n-1) >= 0
- which proves that at most one correction is needed */
- q0 = mpn_submul_1 (np - 1, dp, n, q2);
- if (MPFR_UNLIKELY(q0 > np[n - 1]))
- {
- mpn_add_n (np - 1, np - 1, dp, n);
- q2 --;
- }
- qp[--n] = q2;
- dp ++;
- }
-
- /* we have B+dinv2 = floor((B^3-1)/(d1*B+d0)) < B^2/d1
- q1 = floor(np[0]*(B+dinv2)/B) <= floor(np[0]*B/d1)
- <= floor((np[0]*B+np[1])/d1)
- thus q1 is not larger than the true quotient.
- q1 > np[0]*(B+dinv2)/B - 1 > np[0]*(B^3-1)/(d1*B+d0)/B - 2
- For d1*B+d0 <> B^2/2, we have B+dinv2 = floor(B^3/(d1*B+d0))
- thus q1 > np[0]*B^2/(d1*B+d0) - 2, i.e.,
- (d1*B+d0)*q1 > np[0]*B^2 - 2*(d1*B+d0)
- d1*B*q1 > np[0]*B^2 - 2*d1*B - 2*d0 - d0*q1 >= np[0]*B^2 - 2*d1*B - B^2
- thus q1 > np[0]*B/d1 - 2 - B/d1 > np[0]*B/d1 - 4.
-
- For d1*B+d0 = B^2/2, dinv2 = B-1 thus q1 > np[0]*(2B-1)/B - 1 >
- np[0]*B/d1 - 2.
-
- In all cases, if q = floor((np[0]*B+np[1])/d1), we have:
- q - 4 <= q1 <= q
- */
- umul_ppmm (q1, q0, np[0], dinv2.inv32);
- qp[0] = np[0] + q1;
-
- return qh;
-}
-
-/* Put in {qp, n} an approximation of N={np, 2*n} divided by D={dp, n},
- with the most significant limb of the quotient as return value (0 or 1).
- Assumes the most significant bit of D is set. Clobbers N.
-
- This implements the ShortDiv algorithm from reference [1].
-
- Assumes n >= 2 (which should be fulfilled also in the recursive calls).
-*/
-mp_limb_t
-mpfr_divhigh_n (mpfr_limb_ptr qp, mpfr_limb_ptr np, mpfr_limb_ptr dp,
- mp_size_t n)
-{
- mp_size_t k, l;
- mp_limb_t qh, cy;
- mpfr_limb_ptr tp;
- MPFR_TMP_DECL(marker);
-
- MPFR_STAT_STATIC_ASSERT (MPFR_DIVHIGH_TAB_SIZE >= 15); /* so that 2*(n/3) >= (n+4)/2 */
- MPFR_ASSERTD(n >= 2);
- k = MPFR_LIKELY (n < MPFR_DIVHIGH_TAB_SIZE) ? divhigh_ktab[n] : 2*(n/3);
-
- if (k == 0)
- {
-#if defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_SBPI1_DIVAPPR_Q)
- mpfr_pi1_t dinv2;
- invert_pi1 (dinv2, dp[n - 1], dp[n - 2]);
- if (n > 2) /* sbpi1_divappr_q wants n > 2 */
- return __gmpn_sbpi1_divappr_q (qp, np, n + n, dp, n, dinv2.inv32);
- else
- return mpfr_divhigh_n_basecase (qp, np, dp, n);
-#else /* use our own code for base-case short division */
- return mpfr_divhigh_n_basecase (qp, np, dp, n);
-#endif
- }
-
- /* Check the bounds from [1]. In addition, we forbid k=n-1, which would
- give l=1 in the recursive call. It follows n >= 5. */
- MPFR_ASSERTD ((n+4)/2 <= k && k < n-1);
-
- MPFR_TMP_MARK (marker);
- l = n - k;
- /* first divide the most significant 2k limbs from N by the most significant
- k limbs of D */
- qh = mpn_divrem (qp + l, 0, np + 2 * l, 2 * k, dp + l, k); /* exact */
-
- /* it remains {np,2l+k} = {np,n+l} as remainder */
-
- /* now we have to subtract high(Q1)*D0 where Q1=qh*B^k+{qp+l,k} and
- D0={dp,l} */
- tp = MPFR_TMP_LIMBS_ALLOC (2 * l);
- mpfr_mulhigh_n (tp, qp + k, dp, l);
- /* we are only interested in the upper l limbs from {tp,2l} */
- cy = mpn_sub_n (np + n, np + n, tp + l, l);
- if (qh)
- cy += mpn_sub_n (np + n, np + n, dp, l);
- while (cy > 0) /* Q1 was too large: subtract 1 to Q1 and add D to np+l */
- {
- qh -= mpn_sub_1 (qp + l, qp + l, k, MPFR_LIMB_ONE);
- cy -= mpn_add_n (np + l, np + l, dp, n);
- }
-
- /* now it remains {np,n+l} to divide by D */
- cy = mpfr_divhigh_n (qp, np + k, dp + k, l);
- qh += mpn_add_1 (qp + l, qp + l, k, cy);
- MPFR_TMP_FREE(marker);
-
- return qh;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/nbits_ulong.c b/Build/source/libs/mpfr/mpfr-src/src/nbits_ulong.c
deleted file mode 100644
index 88d978c8c6e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/nbits_ulong.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* mpfr_nbits_ulong -- number of significant bits in an unsigned long
-
-Copyright 2018-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H /* for count_leading_zeros */
-#include "mpfr-impl.h"
-
-/* count the number of significant bits of n, i.e.,
- nbits(unsigned long) - count_leading_zeros (n) */
-int
-mpfr_nbits_ulong (unsigned long n)
-{
- int cnt;
-
- MPFR_ASSERTD (n > 0);
-
-#ifdef MPFR_LONG_WITHIN_LIMB
-
- count_leading_zeros (cnt, (mp_limb_t) n);
- cnt = GMP_NUMB_BITS - cnt;
-
-#else
-
- cnt = 0;
-
- while (n >= 0x10000)
- {
- n >>= 16;
- cnt += 16;
- }
-
- MPFR_ASSERTD (n <= 0xffff);
-
- if (n >= 0x100)
- {
- n >>= 8;
- cnt += 8;
- }
-
- MPFR_ASSERTD (n <= 0xff);
-
- if (n >= 0x10)
- {
- n >>= 4;
- cnt += 4;
- }
-
- MPFR_ASSERTD (n <= 0xf);
-
- if (n >= 4)
- {
- n >>= 2;
- cnt += 2;
- }
-
- MPFR_ASSERTD (n <= 3);
-
- /* now n = 1, 2, or 3 */
- cnt += 1 + (n >= 2);
-
-#endif
-
- MPFR_ASSERTD (cnt >= 0);
- return cnt;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/neg.c b/Build/source/libs/mpfr/mpfr-src/src/neg.c
deleted file mode 100644
index f2d072f9b8f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/neg.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* mpfr_neg -- change the sign of a floating-point number
-
-Copyright 1999-2001, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_neg (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY(a != b))
- return mpfr_set4 (a, b, rnd_mode, -MPFR_SIGN(b));
- else
- {
- MPFR_CHANGE_SIGN (a);
- if (MPFR_UNLIKELY (MPFR_IS_NAN (b)))
- MPFR_RET_NAN;
- else
- MPFR_RET (0);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/next.c b/Build/source/libs/mpfr/mpfr-src/src/next.c
deleted file mode 100644
index e119d866d2a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/next.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward -- next representable
-floating-point number
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Note concerning the exceptions: In case of NaN result, the NaN flag is
- * set as usual. No underflow or overflow is generated (this contradicts
- * the obsolete IEEE 754-1985 standard for Nextafter, but conforms to the
- * current standard IEEE 754-2008 for nextUp and nextDown).
- */
-
-#include "mpfr-impl.h"
-
-void
-mpfr_nexttozero (mpfr_ptr x)
-{
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_INF (x))
- {
- mpfr_setmax (x, __gmpfr_emax);
- }
- else
- {
- MPFR_ASSERTN (MPFR_IS_ZERO (x));
- MPFR_CHANGE_SIGN(x);
- mpfr_setmin (x, __gmpfr_emin);
- }
- }
- else
- {
- mp_size_t xn;
- int sh;
- mp_limb_t *xp;
-
- xn = MPFR_LIMB_SIZE (x);
- MPFR_UNSIGNED_MINUS_MODULO (sh, MPFR_PREC(x));
- xp = MPFR_MANT(x);
- mpn_sub_1 (xp, xp, xn, MPFR_LIMB_ONE << sh);
- if (MPFR_UNLIKELY (MPFR_LIMB_MSB (xp[xn-1]) == 0))
- { /* was an exact power of two: not normalized any more,
- thus do not use MPFR_GET_EXP. */
- mpfr_exp_t exp = MPFR_EXP (x);
- if (MPFR_UNLIKELY (exp == __gmpfr_emin))
- MPFR_SET_ZERO(x);
- else
- {
- MPFR_SET_EXP (x, exp - 1);
- /* The following is valid whether xn = 1 or xn > 1. */
- xp[xn-1] |= MPFR_LIMB_HIGHBIT;
- }
- }
- }
-}
-
-void
-mpfr_nexttoinf (mpfr_ptr x)
-{
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_ZERO (x))
- mpfr_setmin (x, __gmpfr_emin);
- }
- else
- {
- mp_size_t xn;
- int sh;
- mp_limb_t *xp;
-
- xn = MPFR_LIMB_SIZE (x);
- MPFR_UNSIGNED_MINUS_MODULO (sh, MPFR_PREC(x));
- xp = MPFR_MANT(x);
- if (MPFR_UNLIKELY (mpn_add_1 (xp, xp, xn, MPFR_LIMB_ONE << sh)))
- /* got 1.0000... */
- {
- mpfr_exp_t exp = MPFR_EXP (x);
- if (MPFR_UNLIKELY (exp == __gmpfr_emax))
- MPFR_SET_INF (x);
- else
- {
- MPFR_SET_EXP (x, exp + 1);
- xp[xn-1] = MPFR_LIMB_HIGHBIT;
- }
- }
- }
-}
-
-void
-mpfr_nextabove (mpfr_ptr x)
-{
- if (MPFR_UNLIKELY(MPFR_IS_NAN(x)))
- {
- __gmpfr_flags |= MPFR_FLAGS_NAN;
- return;
- }
- if (MPFR_IS_NEG(x))
- mpfr_nexttozero (x);
- else
- mpfr_nexttoinf (x);
-}
-
-void
-mpfr_nextbelow (mpfr_ptr x)
-{
- if (MPFR_UNLIKELY(MPFR_IS_NAN(x)))
- {
- __gmpfr_flags |= MPFR_FLAGS_NAN;
- return;
- }
-
- if (MPFR_IS_NEG(x))
- mpfr_nexttoinf (x);
- else
- mpfr_nexttozero (x);
-}
-
-void
-mpfr_nexttoward (mpfr_ptr x, mpfr_srcptr y)
-{
- int s;
-
- if (MPFR_UNLIKELY(MPFR_IS_NAN(x)))
- {
- __gmpfr_flags |= MPFR_FLAGS_NAN;
- return;
- }
- else if (MPFR_UNLIKELY(MPFR_IS_NAN(x) || MPFR_IS_NAN(y)))
- {
- MPFR_SET_NAN(x);
- __gmpfr_flags |= MPFR_FLAGS_NAN;
- return;
- }
-
- s = mpfr_cmp (x, y);
- if (s == 0)
- return;
- else if (s < 0)
- mpfr_nextabove (x);
- else
- mpfr_nextbelow (x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/nrandom.c b/Build/source/libs/mpfr/mpfr-src/src/nrandom.c
deleted file mode 100644
index b081c87adda..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/nrandom.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* mpfr_nrandom (rop, state, rnd_mode) -- Generate a normal deviate with mean 0
- and variance 1 and round it to the precision of rop according to the given
- rounding mode.
-
-Copyright 2013-2020 Free Software Foundation, Inc.
-Contributed by Charles Karney <charles@karney.com>, SRI International.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/*
- * Sampling from the normal distribution with zero mean and unit variance.
- * This uses Algorithm N given in:
- * Charles F. F. Karney,
- * "Sampling exactly from the normal distribution",
- * ACM Trans. Math. Software 42(1), 3:1-14 (Jan. 2016).
- * https://dx.doi.org/10.1145/2710016
- * http://arxiv.org/abs/1303.6257
- *
- * The implementation here closely follows the C++ one given in the paper
- * above. However, here, C is simplified by using gmp_urandomm_ui; the initial
- * rejection step in H just tests the leading bit of p; and the assignment of
- * the sign to the deviate using gmp_urandomb_ui. Finally, the C++
- * implementation benefits from caching temporary random deviates across calls.
- * This isn't possible in C without additional machinery which would complicate
- * the interface.
- *
- * There are a few "weasel words" regarding the accuracy of this
- * implementation. The algorithm produces exactly rounded normal deviates
- * provided that gmp's random number engine delivers truly random bits. If it
- * did, the algorithm would be perfect; however, this implementation would have
- * problems, e.g., in that the integer part of the normal deviate is
- * represented by an unsigned long, whereas in reality the integer part in
- * unbounded. In this implementation, asserts catch overflow in the integer
- * part and similar (very, very) unlikely events. In reality, of course, gmp's
- * random number engine has a finite internal state (19937 bits in the case of
- * the MT19937 method). This means that these unlikely events in fact won't
- * occur. If the asserts are triggered, then this is an indication that the
- * random number engine is defective. (Even if a hardware random number
- * generator were used, the most likely explanation for the triggering of the
- * asserts would be that the hardware generator was broken.)
- */
-
-#include "random_deviate.h"
-
-/* Algorithm H: true with probability exp(-1/2). */
-static int
-H (gmp_randstate_t r, mpfr_random_deviate_t p, mpfr_random_deviate_t q)
-{
- /* p and q are temporaries */
- mpfr_random_deviate_reset (p);
- if (mpfr_random_deviate_tstbit (p, 1, r))
- return 1;
- for (;;)
- {
- mpfr_random_deviate_reset (q);
- if (!mpfr_random_deviate_less (q, p, r))
- return 0;
- mpfr_random_deviate_reset (p);
- if (!mpfr_random_deviate_less (p, q, r))
- return 1;
- }
-}
-
-/* Step N1: return n >= 0 with prob. exp(-n/2) * (1 - exp(-1/2)). */
-static unsigned long
-G (gmp_randstate_t r, mpfr_random_deviate_t p, mpfr_random_deviate_t q)
-{
- /* p and q are temporaries */
- unsigned long n = 0;
-
- while (H (r, p, q))
- {
- ++n;
- /* Catch n wrapping around to 0; for a 32-bit unsigned long, the
- * probability of this is exp(-2^30)). */
- MPFR_ASSERTN (n != 0UL);
- }
- return n;
-}
-
-/* Step N2: true with probability exp(-m*n/2). */
-static int
-P (unsigned long m, unsigned long n, gmp_randstate_t r,
- mpfr_random_deviate_t p, mpfr_random_deviate_t q)
-{
- /* p and q are temporaries. m*n is passed as two separate parameters to deal
- * with the case where m*n overflows an unsigned long. This may be called
- * with m = 0 and n = (unsigned long)(-1) and, because m in handled in to the
- * outer loop, this routine will correctly return 1. */
- while (m--)
- {
- unsigned long k = n;
- while (k--)
- {
- if (!H (r, p, q))
- return 0;
- }
- }
- return 1;
-}
-
-/* Algorithm C: return (-1, 0, 1) with prob (1/m, 1/m, 1-2/m). */
-static int
-C (unsigned long m, gmp_randstate_t r)
-{
- unsigned long n = gmp_urandomm_ui (r, m);
- return n == 0 ? -1 : (n == 1 ? 0 : 1);
-}
-
-/* Algorithm B: true with prob exp(-x * (2*k + x) / (2*k + 2)). */
-static int
-B (unsigned long k, mpfr_random_deviate_t x, gmp_randstate_t r,
- mpfr_random_deviate_t p, mpfr_random_deviate_t q)
-{
- /* p and q are temporaries */
-
- unsigned long m = 2 * k + 2;
- /* n tracks the parity of the loop; s == 1 on first trip through loop. */
- unsigned n = 0, s = 1;
- int f;
-
- /* Check if 2 * k + 2 would overflow; for a 32-bit unsigned long, the
- * probability of this is exp(-2^61)). */
- MPFR_ASSERTN (k < ((unsigned long)(-1) >> 1));
-
- for (;; ++n, s = 0) /* overflow of n is innocuous */
- {
- if ( ((f = k ? 0 : C (m, r)) < 0) ||
- (mpfr_random_deviate_reset (q),
- !mpfr_random_deviate_less (q, s ? x : p, r)) ||
- ((f = k ? C (m, r) : f) < 0) ||
- (f == 0 &&
- (mpfr_random_deviate_reset (p),
- !mpfr_random_deviate_less (p, x, r))) )
- break;
- mpfr_random_deviate_swap (p, q); /* an efficient way of doing p = q */
- }
- return (n & 1U) == 0;
-}
-
-/* return a normal random deviate with mean 0 and variance 1 as a MPFR */
-int
-mpfr_nrandom (mpfr_t z, gmp_randstate_t r, mpfr_rnd_t rnd)
-{
- mpfr_random_deviate_t x, p, q;
- int inex;
- unsigned long k, j;
-
- mpfr_random_deviate_init (x);
- mpfr_random_deviate_init (p);
- mpfr_random_deviate_init (q);
- for (;;)
- {
- k = G (r, p, q); /* step 1 */
- if (!P (k, k - 1, r, p, q))
- continue; /* step 2 */
- mpfr_random_deviate_reset (x); /* step 3 */
- for (j = 0; j <= k && B (k, x, r, p, q); ++j); /* step 4 */
- if (j > k)
- break;
- }
- mpfr_random_deviate_clear (q);
- mpfr_random_deviate_clear (p);
- /* steps 5, 6, 7 */
- inex = mpfr_random_deviate_value (gmp_urandomb_ui (r, 1), k, x, z, r, rnd);
- mpfr_random_deviate_clear (x);
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/odd_p.c b/Build/source/libs/mpfr/mpfr-src/src/odd_p.c
deleted file mode 100644
index c06f3ce697c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/odd_p.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* mpfr_odd_p -- check for odd integers
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Return 1 if y is an odd integer, 0 otherwise.
- Assumes y is not singular. */
-int
-mpfr_odd_p (mpfr_srcptr y)
-{
- mpfr_exp_t expo;
- mpfr_prec_t prec;
- mp_size_t yn;
- mp_limb_t *yp;
-
- /* NAN, INF or ZERO are not allowed */
- MPFR_ASSERTD (!MPFR_IS_SINGULAR (y));
-
- expo = MPFR_GET_EXP (y);
- if (expo <= 0)
- return 0; /* |y| < 1 and not 0 */
-
- prec = MPFR_PREC(y);
- if ((mpfr_prec_t) expo > prec)
- return 0; /* y is a multiple of 2^(expo-prec), thus not odd */
-
- /* 0 < expo <= prec:
- y = 1xxxxxxxxxt.zzzzzzzzzzzzzzzzzz[000]
- expo bits (prec-expo) bits
-
- We have to check that:
- (a) the bit 't' is set
- (b) all the 'z' bits are zero
- */
-
- prec = MPFR_PREC2LIMBS (prec) * GMP_NUMB_BITS - expo;
- /* number of z+0 bits */
-
- yn = prec / GMP_NUMB_BITS;
- MPFR_ASSERTN(yn >= 0);
- /* yn is the index of limb containing the 't' bit */
-
- yp = MPFR_MANT(y);
- /* if expo is a multiple of GMP_NUMB_BITS, t is bit 0 */
- if (expo % GMP_NUMB_BITS == 0 ? (yp[yn] & 1) == 0
- : MPFR_LIMB_LSHIFT(yp[yn], (expo % GMP_NUMB_BITS) - 1) != MPFR_LIMB_HIGHBIT)
- return 0;
- while (--yn >= 0)
- if (yp[yn] != 0)
- return 0;
- return 1;
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/out_str.c b/Build/source/libs/mpfr/mpfr-src/src/out_str.c
deleted file mode 100644
index 81dd173eb42..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/out_str.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* mpfr_out_str -- output a floating-point number to a stream
-
-Copyright 1999, 2001-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Warning! S should not contain "%". */
-#define OUT_STR_RET(S) \
- do \
- { \
- int r; \
- r = fprintf (stream, (S)); \
- return r < 0 ? 0 : r; \
- } \
- while (0)
-
-size_t
-mpfr_out_str (FILE *stream, int base, size_t n_digits, mpfr_srcptr op,
- mpfr_rnd_t rnd_mode)
-{
- char *s, *s0;
- size_t l;
- mpfr_exp_t e;
- int err, r;
-
- MPFR_ASSERTN ((base >= -36 && base <= -2) || (base >= 2 && base <= 62));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (op)))
- {
- if (MPFR_IS_NAN (op))
- OUT_STR_RET ("@NaN@");
- else if (MPFR_IS_INF (op))
- OUT_STR_RET (MPFR_IS_POS (op) ? "@Inf@" : "-@Inf@");
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (op));
- OUT_STR_RET (MPFR_IS_POS (op) ? "0" : "-0");
- }
- }
-
- s = mpfr_get_str (NULL, &e, base, n_digits, op, rnd_mode);
-
- s0 = s;
- /* for op=3.1416 we have s = "31416" and e = 1 */
-
- l = strlen (s) + 1; /* size of allocated block returned by mpfr_get_str
- - may be incorrect, as only an upper bound? */
-
- /* outputs possible sign and significand */
- err = (*s == '-' && fputc (*s++, stream) == EOF)
- || fputc (*s++, stream) == EOF /* leading digit */
- || fputc ((unsigned char) MPFR_DECIMAL_POINT, stream) == EOF
- || fputs (s, stream) == EOF; /* trailing significand */
- mpfr_free_func (s0, l);
- if (MPFR_UNLIKELY (err))
- return 0;
-
- e--; /* due to the leading digit */
-
- /* outputs exponent */
- r = fprintf (stream, (base <= 10 ?
- "e%" MPFR_EXP_FSPEC "d" :
- "@%" MPFR_EXP_FSPEC "d"), (mpfr_eexp_t) e);
-
- /* Check error from fprintf or integer overflow (wrapping) on size_t */
- if (MPFR_UNLIKELY (r < 0 || l + r < l))
- return 0;
-
- return l + r;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/pool.c b/Build/source/libs/mpfr/mpfr-src/src/pool.c
deleted file mode 100644
index 775d7875c96..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/pool.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* mpz_t pool
-
-Copyright 2014-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_POOL_DONT_REDEFINE
-#include "mpfr-impl.h"
-
-#ifndef MPFR_POOL_MAX_SIZE
-# define MPFR_POOL_MAX_SIZE 32 /* maximal size (in limbs) for each entry */
-#endif
-
-/* If the number of entries of the mpz_t pool is not zero */
-#if MPFR_POOL_NENTRIES
-
-/* Index in the stack table of mpz_t and stack table of mpz_t */
-static MPFR_THREAD_ATTR int n_alloc = 0;
-static MPFR_THREAD_ATTR __mpz_struct mpz_tab[MPFR_POOL_NENTRIES];
-
-MPFR_HOT_FUNCTION_ATTR void
-mpfr_mpz_init (mpz_t z)
-{
- if (MPFR_LIKELY (n_alloc > 0))
- {
- /* Get a mpz_t from the MPFR stack of previously used mpz_t.
- It reduces memory pressure, and it allows to reuse
- a mpz_t that should be sufficiently big. */
- MPFR_ASSERTD (n_alloc <= numberof (mpz_tab));
- memcpy (z, &mpz_tab[--n_alloc], sizeof (mpz_t));
- SIZ(z) = 0;
- }
- else
- {
- /* Call the real GMP function */
- mpz_init (z);
- }
-}
-
-MPFR_HOT_FUNCTION_ATTR void
-mpfr_mpz_init2 (mpz_t z, mp_bitcnt_t n)
-{
- /* The condition on n is used below as the argument n will be ignored if
- the mpz_t is obtained from the MPFR stack of previously used mpz_t.
- Said otherwise, it z is expected to have a large size at the end, then
- it is better to allocate this size directly than to get a mpz_t of
- small size, with possibly several realloc's on it. But if n satisfies
- the condition and is larger than the stacked mpz_t, this may still
- yield useless realloc's. This is not ideal. We might consider to use
- mpz_init2 with the maximum size in mpfr_mpz_init to solve this issue. */
- if (MPFR_LIKELY (n_alloc > 0 && n <= MPFR_POOL_MAX_SIZE * GMP_NUMB_BITS))
- {
- /* Get a mpz_t from the MPFR stack of previously used mpz_t.
- It reduces memory pressure, and it allows to reuse
- a mpz_t that should be sufficiently big. */
- MPFR_ASSERTD (n_alloc <= numberof (mpz_tab));
- memcpy (z, &mpz_tab[--n_alloc], sizeof (mpz_t));
- SIZ(z) = 0;
- }
- else
- {
- /* Call the real GMP function */
- mpz_init2 (z, n);
- }
-}
-
-
-MPFR_HOT_FUNCTION_ATTR void
-mpfr_mpz_clear (mpz_t z)
-{
- /* We only put objects with at most MPFR_POOL_MAX_SIZE in the mpz_t pool,
- to avoid it takes too much memory (and anyway the speedup is mainly
- for small precision). */
- if (MPFR_LIKELY (n_alloc < numberof (mpz_tab) &&
- ALLOC (z) <= MPFR_POOL_MAX_SIZE))
- {
- /* Push back the mpz_t inside the stack of the used mpz_t */
- MPFR_ASSERTD (n_alloc >= 0);
- memcpy (&mpz_tab[n_alloc++], z, sizeof (mpz_t));
- }
- else
- {
- /* Call the real GMP function */
- mpz_clear (z);
- }
-}
-
-#endif
-
-void
-mpfr_free_pool (void)
-{
-#if MPFR_POOL_NENTRIES
- int i;
-
- MPFR_ASSERTD (n_alloc >= 0 && n_alloc <= numberof (mpz_tab));
- for (i = 0; i < n_alloc; i++)
- mpz_clear (&mpz_tab[i]);
- n_alloc = 0;
-#endif
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/pow.c b/Build/source/libs/mpfr/mpfr-src/src/pow.c
deleted file mode 100644
index d6ebc910663..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/pow.c
+++ /dev/null
@@ -1,693 +0,0 @@
-/* mpfr_pow -- power function x^y
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#ifndef MPFR_POW_EXP_THRESHOLD
-# define MPFR_POW_EXP_THRESHOLD (MAX (sizeof(mpfr_exp_t) * CHAR_BIT, 256))
-#endif
-
-/* return non zero iff x^y is exact.
- Assumes x and y are ordinary numbers,
- y is not an integer, x is not a power of 2 and x is positive
-
- If x^y is exact, it computes it and sets *inexact.
-*/
-static int
-mpfr_pow_is_exact (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y,
- mpfr_rnd_t rnd_mode, int *inexact)
-{
- mpz_t a, c;
- mpfr_exp_t d, b, i;
- int res;
-
- MPFR_ASSERTD (!MPFR_IS_SINGULAR (y));
- MPFR_ASSERTD (!MPFR_IS_SINGULAR (x));
- MPFR_ASSERTD (!mpfr_integer_p (y));
- MPFR_ASSERTD (mpfr_cmp_si_2exp (x, MPFR_INT_SIGN (x),
- MPFR_GET_EXP (x) - 1) != 0);
- MPFR_ASSERTD (MPFR_IS_POS (x));
-
- if (MPFR_IS_NEG (y))
- return 0; /* x is not a power of two => x^-y is not exact */
-
- /* Compute d such that y = c*2^d with c odd integer.
- Since c comes from a regular MPFR number, due to the constraints on the
- exponent and the precision, there can be no integer overflow below. */
- mpz_init (c);
- d = mpfr_get_z_2exp (c, y);
- i = mpz_scan1 (c, 0);
- mpz_fdiv_q_2exp (c, c, i);
- d += i;
- /* now y=c*2^d with c odd */
- /* Since y is not an integer, d is necessarily < 0 */
- MPFR_ASSERTD (d < 0);
-
- /* Compute a,b such that x=a*2^b.
- Since a comes from a regular MPFR number, due to the constrainst on the
- exponent and the precision, there can be no integer overflow below. */
- mpz_init (a);
- b = mpfr_get_z_2exp (a, x);
- i = mpz_scan1 (a, 0);
- mpz_fdiv_q_2exp (a, a, i);
- b += i;
- /* now x=a*2^b with a is odd */
-
- for (res = 1 ; d != 0 ; d++)
- {
- /* a*2^b is a square iff
- (i) a is a square when b is even
- (ii) 2*a is a square when b is odd */
- if (b % 2 != 0)
- {
- mpz_mul_2exp (a, a, 1); /* 2*a */
- b --;
- }
- MPFR_ASSERTD ((b % 2) == 0);
- if (!mpz_perfect_square_p (a))
- {
- res = 0;
- goto end;
- }
- mpz_sqrt (a, a);
- b = b / 2;
- }
- /* Now x = (a'*2^b')^(2^-d) with d < 0
- so x^y = ((a'*2^b')^(2^-d))^(c*2^d)
- = ((a'*2^b')^c with c odd integer */
- {
- mpfr_t tmp;
- mpfr_prec_t p;
- MPFR_MPZ_SIZEINBASE2 (p, a);
- mpfr_init2 (tmp, p); /* prec = 1 should not be possible */
- res = mpfr_set_z (tmp, a, MPFR_RNDN);
- MPFR_ASSERTD (res == 0);
- res = mpfr_mul_2si (tmp, tmp, b, MPFR_RNDN);
- MPFR_ASSERTD (res == 0);
- *inexact = mpfr_pow_z (z, tmp, c, rnd_mode);
- mpfr_clear (tmp);
- res = 1;
- }
- end:
- mpz_clear (a);
- mpz_clear (c);
- return res;
-}
-
-/* Assumes that the exponent range has already been extended and if y is
- an integer, then the result is not exact in unbounded exponent range.
- If y_is_integer is non-zero, y is an integer (always when x < 0).
- expo is the saved exponent range and flags (at the call to mpfr_pow).
-*/
-int
-mpfr_pow_general (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y,
- mpfr_rnd_t rnd_mode, int y_is_integer, mpfr_save_expo_t *expo)
-{
- mpfr_t t, u, k, absx;
- int neg_result = 0;
- int k_non_zero = 0;
- int check_exact_case = 0;
- int inexact;
- /* Declaration of the size variable */
- mpfr_prec_t Nz = MPFR_PREC(z); /* target precision */
- mpfr_prec_t Nt; /* working precision */
- mpfr_exp_t err; /* error */
- MPFR_ZIV_DECL (ziv_loop);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg y[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x,
- mpfr_get_prec (y), mpfr_log_prec, y, rnd_mode),
- ("z[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (z), mpfr_log_prec, z, inexact));
-
- /* We put the absolute value of x in absx, pointing to the significand
- of x to avoid allocating memory for the significand of absx. */
- MPFR_ALIAS(absx, x, /*sign=*/ 1, /*EXP=*/ MPFR_EXP(x));
-
- /* We will compute the absolute value of the result. So, let's
- invert the rounding mode if the result is negative (in which case
- y not an integer was already filtered out). */
- if (MPFR_IS_NEG (x))
- {
- MPFR_ASSERTD (y_is_integer);
- if (mpfr_odd_p (y))
- {
- neg_result = 1;
- rnd_mode = MPFR_INVERT_RND (rnd_mode);
- }
- }
-
- /* Compute the precision of intermediary variable. */
- /* The increment 9 + MPFR_INT_CEIL_LOG2 (Nz) gives few Ziv failures
- in binary64 and binary128 formats:
- mfv5 -p53 -e1 mpfr_pow: 5903 / 6469.59 / 6686
- mfv5 -p113 -e1 mpfr_pow: 10913 / 11989.46 / 12321 */
- Nt = Nz + 9 + MPFR_INT_CEIL_LOG2 (Nz);
-
- /* initialize of intermediary variable */
- mpfr_init2 (t, Nt);
-
- MPFR_ZIV_INIT (ziv_loop, Nt);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags1);
-
- /* compute exp(y*ln|x|), using MPFR_RNDU to get an upper bound, so
- that we can detect underflows. */
- mpfr_log (t, absx, MPFR_IS_NEG (y) ? MPFR_RNDD : MPFR_RNDU); /* ln|x| */
- mpfr_mul (t, y, t, MPFR_RNDU); /* y*ln|x| */
- if (k_non_zero)
- {
- MPFR_LOG_MSG (("subtract k * ln(2)\n", 0));
- mpfr_const_log2 (u, MPFR_RNDD);
- mpfr_mul (u, u, k, MPFR_RNDD);
- /* Error on u = k * log(2): < k * 2^(-Nt) < 1. */
- mpfr_sub (t, t, u, MPFR_RNDU);
- MPFR_LOG_MSG (("t = y * ln|x| - k * ln(2)\n", 0));
- MPFR_LOG_VAR (t);
- }
- /* estimate of the error -- see pow function in algorithms.tex.
- The error on t is at most 1/2 + 3*2^(EXP(t)+1) ulps, which is
- <= 2^(EXP(t)+3) for EXP(t) >= -1, and <= 2 ulps for EXP(t) <= -2.
- Additional error if k_no_zero: treal = t * errk, with
- 1 - |k| * 2^(-Nt) <= exp(-|k| * 2^(-Nt)) <= errk <= 1,
- i.e., additional absolute error <= 2^(EXP(k)+EXP(t)-Nt).
- Total error <= 2^err1 + 2^err2 <= 2^(max(err1,err2)+1). */
- err = MPFR_NOTZERO (t) && MPFR_GET_EXP (t) >= -1 ?
- MPFR_GET_EXP (t) + 3 : 1;
- if (k_non_zero)
- {
- if (MPFR_GET_EXP (k) > err)
- err = MPFR_GET_EXP (k);
- err++;
- }
- MPFR_BLOCK (flags1, mpfr_exp (t, t, MPFR_RNDN)); /* exp(y*ln|x|)*/
- /* We need to test */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (t) || MPFR_UNDERFLOW (flags1)))
- {
- mpfr_prec_t Ntmin;
- MPFR_BLOCK_DECL (flags2);
-
- MPFR_ASSERTN (!k_non_zero);
- MPFR_ASSERTN (!MPFR_IS_NAN (t));
-
- /* Real underflow? */
- if (MPFR_IS_ZERO (t))
- {
- /* Underflow. We computed rndn(exp(t)), where t >= y*ln|x|.
- Therefore rndn(|x|^y) = 0, and we have a real underflow on
- |x|^y. */
- inexact = mpfr_underflow (z, rnd_mode == MPFR_RNDN ? MPFR_RNDZ
- : rnd_mode, MPFR_SIGN_POS);
- if (expo != NULL)
- MPFR_SAVE_EXPO_UPDATE_FLAGS (*expo, MPFR_FLAGS_INEXACT
- | MPFR_FLAGS_UNDERFLOW);
- break;
- }
-
- /* Real overflow? */
- if (MPFR_IS_INF (t))
- {
- /* Note: we can probably use a low precision for this test. */
- mpfr_log (t, absx, MPFR_IS_NEG (y) ? MPFR_RNDU : MPFR_RNDD);
- mpfr_mul (t, y, t, MPFR_RNDD); /* y * ln|x| */
- MPFR_BLOCK (flags2, mpfr_exp (t, t, MPFR_RNDD));
- /* t = lower bound on exp(y * ln|x|) */
- if (MPFR_OVERFLOW (flags2))
- {
- /* We have computed a lower bound on |x|^y, and it
- overflowed. Therefore we have a real overflow
- on |x|^y. */
- inexact = mpfr_overflow (z, rnd_mode, MPFR_SIGN_POS);
- if (expo != NULL)
- MPFR_SAVE_EXPO_UPDATE_FLAGS (*expo, MPFR_FLAGS_INEXACT
- | MPFR_FLAGS_OVERFLOW);
- break;
- }
- }
-
- k_non_zero = 1;
- Ntmin = sizeof(mpfr_exp_t) * CHAR_BIT;
- if (Ntmin > Nt)
- {
- Nt = Ntmin;
- mpfr_set_prec (t, Nt);
- }
- mpfr_init2 (u, Nt);
- mpfr_init2 (k, Ntmin);
- mpfr_log2 (k, absx, MPFR_RNDN);
- mpfr_mul (k, y, k, MPFR_RNDN);
- mpfr_round (k, k);
- MPFR_LOG_VAR (k);
- /* |y| < 2^Ntmin, therefore |k| < 2^Nt. */
- continue;
- }
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, Nt - err, Nz, rnd_mode)))
- {
- inexact = mpfr_set (z, t, rnd_mode);
- break;
- }
-
- /* check exact power, except when y is an integer (since the
- exact cases for y integer have already been filtered out) */
- if (check_exact_case == 0 && ! y_is_integer)
- {
- if (mpfr_pow_is_exact (z, absx, y, rnd_mode, &inexact))
- break;
- check_exact_case = 1;
- }
-
- /* reactualisation of the precision */
- MPFR_ZIV_NEXT (ziv_loop, Nt);
- mpfr_set_prec (t, Nt);
- if (k_non_zero)
- mpfr_set_prec (u, Nt);
- }
- MPFR_ZIV_FREE (ziv_loop);
-
- if (k_non_zero)
- {
- int inex2;
- long lk;
-
- /* The rounded result in an unbounded exponent range is z * 2^k. As
- * MPFR chooses underflow after rounding, the mpfr_mul_2si below will
- * correctly detect underflows and overflows. However, in rounding to
- * nearest, if z * 2^k = 2^(emin - 2), then the double rounding may
- * affect the result. We need to cope with that before overwriting z.
- * This can occur only if k < 0 (this test is necessary to avoid a
- * potential integer overflow).
- * If inexact >= 0, then the real result is <= 2^(emin - 2), so that
- * o(2^(emin - 2)) = +0 is correct. If inexact < 0, then the real
- * result is > 2^(emin - 2) and we need to round to 2^(emin - 1).
- */
- MPFR_ASSERTN (MPFR_EXP_MAX <= LONG_MAX);
- lk = mpfr_get_si (k, MPFR_RNDN);
- /* Due to early overflow detection, |k| should not be much larger than
- * MPFR_EMAX_MAX, and as MPFR_EMAX_MAX <= MPFR_EXP_MAX/2 <= LONG_MAX/2,
- * an overflow should not be possible in mpfr_get_si (and lk is exact).
- * And one even has the following assertion. TODO: complete proof.
- */
- MPFR_ASSERTD (lk > LONG_MIN && lk < LONG_MAX);
- /* Note: even in case of overflow (lk inexact), the code is correct.
- * Indeed, for the 3 occurrences of lk:
- * - The test lk < 0 is correct as sign(lk) = sign(k).
- * - In the test MPFR_GET_EXP (z) == __gmpfr_emin - 1 - lk,
- * if lk is inexact, then lk = LONG_MIN <= MPFR_EXP_MIN
- * (the minimum value of the mpfr_exp_t type), and
- * __gmpfr_emin - 1 - lk >= MPFR_EMIN_MIN - 1 - 2 * MPFR_EMIN_MIN
- * >= - MPFR_EMIN_MIN - 1 = MPFR_EMAX_MAX - 1. However, from the
- * choice of k, z has been chosen to be around 1, so that the
- * result of the test is false, as if lk were exact.
- * - In the mpfr_mul_2si (z, z, lk, rnd_mode), if lk is inexact,
- * then |lk| >= LONG_MAX >= MPFR_EXP_MAX, and as z is around 1,
- * mpfr_mul_2si underflows or overflows in the same way as if
- * lk were exact.
- * TODO: give a bound on |t|, then on |EXP(z)|.
- */
- if (rnd_mode == MPFR_RNDN && inexact < 0 && lk < 0 &&
- MPFR_GET_EXP (z) == __gmpfr_emin - 1 - lk && mpfr_powerof2_raw (z))
- /* Rounding to nearest, real result > z * 2^k = 2^(emin - 2),
- * underflow case: we will obtain the correct result and exceptions
- * by replacing z by nextabove(z).
- */
- mpfr_nextabove (z);
- MPFR_CLEAR_FLAGS ();
- inex2 = mpfr_mul_2si (z, z, lk, rnd_mode);
- if (inex2) /* underflow or overflow */
- {
- inexact = inex2;
- if (expo != NULL)
- MPFR_SAVE_EXPO_UPDATE_FLAGS (*expo, __gmpfr_flags);
- }
- mpfr_clears (u, k, (mpfr_ptr) 0);
- }
- mpfr_clear (t);
-
- /* update the sign of the result if x was negative */
- if (neg_result)
- {
- MPFR_SET_NEG(z);
- inexact = -inexact;
- }
-
- return inexact;
-}
-
-/* The computation of z = pow(x,y) is done by
- z = exp(y * log(x)) = x^y
- For the special cases, see Section F.9.4.4 of the C standard:
- _ pow(±0, y) = ±inf for y an odd integer < 0.
- _ pow(±0, y) = +inf for y < 0 and not an odd integer.
- _ pow(±0, y) = ±0 for y an odd integer > 0.
- _ pow(±0, y) = +0 for y > 0 and not an odd integer.
- _ pow(-1, ±inf) = 1.
- _ pow(+1, y) = 1 for any y, even a NaN.
- _ pow(x, ±0) = 1 for any x, even a NaN.
- _ pow(x, y) = NaN for finite x < 0 and finite non-integer y.
- _ pow(x, -inf) = +inf for |x| < 1.
- _ pow(x, -inf) = +0 for |x| > 1.
- _ pow(x, +inf) = +0 for |x| < 1.
- _ pow(x, +inf) = +inf for |x| > 1.
- _ pow(-inf, y) = -0 for y an odd integer < 0.
- _ pow(-inf, y) = +0 for y < 0 and not an odd integer.
- _ pow(-inf, y) = -inf for y an odd integer > 0.
- _ pow(-inf, y) = +inf for y > 0 and not an odd integer.
- _ pow(+inf, y) = +0 for y < 0.
- _ pow(+inf, y) = +inf for y > 0. */
-int
-mpfr_pow (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- int cmp_x_1;
- int y_is_integer;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg y[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x,
- mpfr_get_prec (y), mpfr_log_prec, y, rnd_mode),
- ("z[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (z), mpfr_log_prec, z, inexact));
-
- if (MPFR_ARE_SINGULAR (x, y))
- {
- /* pow(x, 0) returns 1 for any x, even a NaN. */
- if (MPFR_UNLIKELY (MPFR_IS_ZERO (y)))
- return mpfr_set_ui (z, 1, rnd_mode);
- else if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (z);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_NAN (y))
- {
- /* pow(+1, NaN) returns 1. */
- if (mpfr_cmp_ui (x, 1) == 0)
- return mpfr_set_ui (z, 1, rnd_mode);
- MPFR_SET_NAN (z);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (y))
- {
- if (MPFR_IS_INF (x))
- {
- if (MPFR_IS_POS (y))
- MPFR_SET_INF (z);
- else
- MPFR_SET_ZERO (z);
- MPFR_SET_POS (z);
- MPFR_RET (0);
- }
- else
- {
- int cmp;
- cmp = mpfr_cmpabs (x, __gmpfr_one) * MPFR_INT_SIGN (y);
- MPFR_SET_POS (z);
- if (cmp > 0)
- {
- /* Return +inf. */
- MPFR_SET_INF (z);
- MPFR_RET (0);
- }
- else if (cmp < 0)
- {
- /* Return +0. */
- MPFR_SET_ZERO (z);
- MPFR_RET (0);
- }
- else
- {
- /* Return 1. */
- return mpfr_set_ui (z, 1, rnd_mode);
- }
- }
- }
- else if (MPFR_IS_INF (x))
- {
- int negative;
- /* Determine the sign now, in case y and z are the same object */
- negative = MPFR_IS_NEG (x) && mpfr_odd_p (y);
- if (MPFR_IS_POS (y))
- MPFR_SET_INF (z);
- else
- MPFR_SET_ZERO (z);
- if (negative)
- MPFR_SET_NEG (z);
- else
- MPFR_SET_POS (z);
- MPFR_RET (0);
- }
- else
- {
- int negative;
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- /* Determine the sign now, in case y and z are the same object */
- negative = MPFR_IS_NEG(x) && mpfr_odd_p (y);
- if (MPFR_IS_NEG (y))
- {
- MPFR_ASSERTD (! MPFR_IS_INF (y));
- MPFR_SET_INF (z);
- MPFR_SET_DIVBY0 ();
- }
- else
- MPFR_SET_ZERO (z);
- if (negative)
- MPFR_SET_NEG (z);
- else
- MPFR_SET_POS (z);
- MPFR_RET (0);
- }
- }
-
- /* x^y for x < 0 and y not an integer is not defined */
- y_is_integer = mpfr_integer_p (y);
- if (MPFR_IS_NEG (x) && ! y_is_integer)
- {
- MPFR_SET_NAN (z);
- MPFR_RET_NAN;
- }
-
- /* now the result cannot be NaN:
- (1) either x > 0
- (2) or x < 0 and y is an integer */
-
- cmp_x_1 = mpfr_cmpabs (x, __gmpfr_one);
- if (cmp_x_1 == 0)
- return mpfr_set_si (z, MPFR_IS_NEG (x) && mpfr_odd_p (y) ? -1 : 1, rnd_mode);
-
- /* now we have:
- (1) either x > 0
- (2) or x < 0 and y is an integer
- and in addition |x| <> 1.
- */
-
- /* detect overflow: an overflow is possible if
- (a) |x| > 1 and y > 0
- (b) |x| < 1 and y < 0.
- FIXME: this assumes 1 is always representable.
-
- FIXME2: maybe we can test overflow and underflow simultaneously.
- The idea is the following: first compute an approximation to
- y * log2|x|, using rounding to nearest. If |x| is not too near from 1,
- this approximation should be accurate enough, and in most cases enable
- one to prove that there is no underflow nor overflow.
- Otherwise, it should enable one to check only underflow or overflow,
- instead of both cases as in the present case.
- */
-
- /* fast check for cases where no overflow nor underflow is possible:
- if |y| <= 2^15, and -32767 < EXP(x) <= 32767, then
- |y*log2(x)| <= 2^15*32767 < 1073741823, thus for the default
- emax=1073741823 and emin=-emax there can be no overflow nor underflow */
- if (__gmpfr_emax >= 1073741823 && __gmpfr_emin <= -1073741823 &&
- MPFR_EXP(y) <= 15 && -32767 < MPFR_EXP(x) && MPFR_EXP(x) <= 32767)
- goto no_overflow_nor_underflow;
-
- if (cmp_x_1 * MPFR_SIGN (y) > 0)
- {
- mpfr_t t, x_abs;
- int negative, overflow;
-
- /* FIXME: since we round y*log2|x| toward zero, we could also do early
- underflow detection */
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_init2 (t, sizeof (mpfr_exp_t) * CHAR_BIT);
- /* we want a lower bound on y*log2|x| */
- MPFR_TMP_INIT_ABS (x_abs, x);
- mpfr_log2 (t, x_abs, MPFR_RNDZ);
- mpfr_mul (t, t, y, MPFR_RNDZ);
- overflow = mpfr_cmp_si (t, __gmpfr_emax) >= 0;
- /* if t >= emax, then |z| >= 2^t >= 2^emax and we have overflow */
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- if (overflow)
- {
- MPFR_LOG_MSG (("early overflow detection\n", 0));
- negative = MPFR_IS_NEG (x) && mpfr_odd_p (y);
- return mpfr_overflow (z, rnd_mode, negative ? -1 : 1);
- }
- }
-
- /* Basic underflow checking. One has:
- * - if y > 0, |x^y| < 2^(EXP(x) * y);
- * - if y < 0, |x^y| <= 2^((EXP(x) - 1) * y);
- * so that one can compute a value ebound such that |x^y| < 2^ebound.
- * If we have ebound <= emin - 2 (emin - 1 in directed rounding modes),
- * then there is an underflow and we can decide the return value.
- */
- if (MPFR_IS_NEG (y) ? (MPFR_GET_EXP (x) > 1) : (MPFR_GET_EXP (x) < 0))
- {
- mp_limb_t tmp_limb[MPFR_EXP_LIMB_SIZE];
- mpfr_t tmp;
- mpfr_eexp_t ebound;
- int inex2;
-
- /* We must restore the flags. */
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_TMP_INIT1 (tmp_limb, tmp, sizeof (mpfr_exp_t) * CHAR_BIT);
- inex2 = mpfr_set_exp_t (tmp, MPFR_GET_EXP (x), MPFR_RNDN);
- MPFR_ASSERTN (inex2 == 0);
- if (MPFR_IS_NEG (y))
- {
- inex2 = mpfr_sub_ui (tmp, tmp, 1, MPFR_RNDN);
- MPFR_ASSERTN (inex2 == 0);
- }
- mpfr_mul (tmp, tmp, y, MPFR_RNDU);
- if (MPFR_IS_NEG (y))
- mpfr_nextabove (tmp);
- /* tmp doesn't necessarily fit in ebound, but that doesn't matter
- since we get the minimum value in such a case. */
- ebound = mpfr_get_exp_t (tmp, MPFR_RNDU);
- MPFR_SAVE_EXPO_FREE (expo);
- if (MPFR_UNLIKELY (ebound <=
- __gmpfr_emin - (rnd_mode == MPFR_RNDN ? 2 : 1)))
- {
- /* warning: mpfr_underflow rounds away from 0 for MPFR_RNDN */
- MPFR_LOG_MSG (("early underflow detection\n", 0));
- return mpfr_underflow (z,
- rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode,
- MPFR_IS_NEG (x) && mpfr_odd_p (y) ? -1 : 1);
- }
- }
-
- no_overflow_nor_underflow:
-
- /* If y is an integer, we can use mpfr_pow_z (based on multiplications),
- but if y is very large (I'm not sure about the best threshold -- VL),
- we shouldn't use it, as it can be very slow and take a lot of memory
- (and even crash or make other programs crash, as several hundred of
- MBs may be necessary). Note that in such a case, either x = +/-2^b
- (this case is handled below) or x^y cannot be represented exactly in
- any precision supported by MPFR (the general case uses this property).
- Note: the threshold of 256 should not be decreased too much, see the
- comments about (-2^b)^y just below. */
- if (y_is_integer && MPFR_GET_EXP (y) <= MPFR_POW_EXP_THRESHOLD)
- {
- mpz_t zi;
-
- MPFR_LOG_MSG (("special code for y not too large integer\n", 0));
- mpz_init (zi);
- mpfr_get_z (zi, y, MPFR_RNDN);
- inexact = mpfr_pow_z (z, x, zi, rnd_mode);
- mpz_clear (zi);
- return inexact;
- }
-
- /* Special case (+/-2^b)^Y which could be exact. If x is negative, then
- necessarily y is a large integer. */
- if (mpfr_powerof2_raw (x))
- {
- mpfr_exp_t b = MPFR_GET_EXP (x) - 1;
- mpfr_t tmp;
-
- MPFR_STAT_STATIC_ASSERT (MPFR_POW_EXP_THRESHOLD >=
- sizeof(mpfr_exp_t) * CHAR_BIT);
-
- /* For x < 0, we have EXP(y) > MPFR_POW_EXP_THRESHOLD, thus
- EXP(y) > bitsize of mpfr_exp_t (1). Therefore, since |x| <> 1:
- (a) either |x| >= 2, and we have an overflow due to (1), but
- this was detected by the early overflow detection above,
- i.e. this case is not possible;
- (b) either |x| <= 1/2, and we have underflow. */
- if (MPFR_SIGN (x) < 0)
- {
- MPFR_ASSERTD (MPFR_EXP (x) <= 0);
- MPFR_ASSERTD (MPFR_EXP (y) > sizeof(mpfr_exp_t) * CHAR_BIT);
- return mpfr_underflow (z,
- rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode,
- MPFR_IS_NEG (x) && mpfr_odd_p (y) ? -1 : 1);
- }
-
- MPFR_ASSERTN (b >= LONG_MIN && b <= LONG_MAX); /* FIXME... */
-
- MPFR_LOG_MSG (("special case (+/-2^b)^Y\n", 0));
- /* now x = +/-2^b, so x^y = (+/-1)^y*2^(b*y) is exact whenever b*y is
- an integer */
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_init2 (tmp, MPFR_PREC (y) + sizeof (long) * CHAR_BIT);
- inexact = mpfr_mul_si (tmp, y, b, MPFR_RNDN); /* exact */
- MPFR_ASSERTN (inexact == 0);
- /* Note: as the exponent range has been extended, an overflow is not
- possible (due to basic overflow and underflow checking above, as
- the result is ~ 2^tmp), and an underflow is not possible either
- because b is an integer (thus either 0 or >= 1). */
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_exp2 (z, tmp, rnd_mode);
- mpfr_clear (tmp);
- /* Without the following, the overflows3 test in tpow.c fails. */
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (z, inexact, rnd_mode);
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Case where y * log(x) is very small. Warning: x can be negative, in
- that case y is a large integer. */
- {
- mpfr_exp_t err, expx, logt;
-
- /* We need an upper bound on the exponent of y * log(x). */
- if (MPFR_IS_POS(x))
- expx = cmp_x_1 > 0 ? MPFR_EXP(x) : 1 - MPFR_EXP(x);
- else
- expx = mpfr_cmp_si (x, -1) > 0 ? 1 - MPFR_EXP(x) : MPFR_EXP(x);
- MPFR_ASSERTD(expx >= 0);
- /* now |log(x)| < expx */
- logt = MPFR_INT_CEIL_LOG2 (expx);
- /* now expx <= 2^logt */
- err = MPFR_GET_EXP (y) + logt;
- MPFR_CLEAR_FLAGS ();
- MPFR_SMALL_INPUT_AFTER_SAVE_EXPO (z, __gmpfr_one, - err, 0,
- (MPFR_IS_POS (y)) ^ (cmp_x_1 < 0),
- rnd_mode, expo, {});
- }
-
- /* General case */
- inexact = mpfr_pow_general (z, x, y, rnd_mode, y_is_integer, &expo);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (z, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/pow_si.c b/Build/source/libs/mpfr/mpfr-src/src/pow_si.c
deleted file mode 100644
index 081580e1ca4..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/pow_si.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/* mpfr_pow_si -- power function x^y with y a signed int
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H /* for MPFR_INT_CEIL_LOG2 */
-#include "mpfr-impl.h"
-
-/* The computation of y = pow_si(x,n) is done by
- * y = pow_ui(x,n) if n >= 0
- * y = 1 / pow_ui(x,-n) if n < 0
- */
-
-int
-mpfr_pow_si (mpfr_ptr y, mpfr_srcptr x, long int n, mpfr_rnd_t rnd)
-{
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg n=%ld rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, n, rnd),
- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y));
-
- if (n >= 0)
- return mpfr_pow_ui (y, x, n, rnd);
- else
- {
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else
- {
- int positive = MPFR_IS_POS (x) || ((unsigned long) n & 1) == 0;
- if (MPFR_IS_INF (x))
- MPFR_SET_ZERO (y);
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_INF (y);
- MPFR_SET_DIVBY0 ();
- }
- if (positive)
- MPFR_SET_POS (y);
- else
- MPFR_SET_NEG (y);
- MPFR_RET (0);
- }
- }
-
- /* detect exact powers: x^(-n) is exact iff x is a power of 2 */
- if (mpfr_cmp_si_2exp (x, MPFR_SIGN(x), MPFR_EXP(x) - 1) == 0)
- {
- mpfr_exp_t expx = MPFR_EXP (x) - 1, expy;
- MPFR_ASSERTD (n < 0);
- /* Warning: n * expx may overflow!
- *
- * Some systems (apparently alpha-freebsd) abort with
- * LONG_MIN / 1, and LONG_MIN / -1 is undefined.
- * http://www.freebsd.org/cgi/query-pr.cgi?pr=72024
- *
- * Proof of the overflow checking. The expressions below are
- * assumed to be on the rational numbers, but the word "overflow"
- * still has its own meaning in the C context. / still denotes
- * the integer (truncated) division, and // denotes the exact
- * division.
- * - First, (__gmpfr_emin - 1) / n and (__gmpfr_emax - 1) / n
- * cannot overflow due to the constraints on the exponents of
- * MPFR numbers.
- * - If n = -1, then n * expx = - expx, which is representable
- * because of the constraints on the exponents of MPFR numbers.
- * - If expx = 0, then n * expx = 0, which is representable.
- * - If n < -1 and expx > 0:
- * + If expx > (__gmpfr_emin - 1) / n, then
- * expx >= (__gmpfr_emin - 1) / n + 1
- * > (__gmpfr_emin - 1) // n,
- * and
- * n * expx < __gmpfr_emin - 1,
- * i.e.
- * n * expx <= __gmpfr_emin - 2.
- * This corresponds to an underflow, with a null result in
- * the rounding-to-nearest mode.
- * + If expx <= (__gmpfr_emin - 1) / n, then n * expx cannot
- * overflow since 0 < expx <= (__gmpfr_emin - 1) / n and
- * 0 > n * expx >= n * ((__gmpfr_emin - 1) / n)
- * >= __gmpfr_emin - 1.
- * - If n < -1 and expx < 0:
- * + If expx < (__gmpfr_emax - 1) / n, then
- * expx <= (__gmpfr_emax - 1) / n - 1
- * < (__gmpfr_emax - 1) // n,
- * and
- * n * expx > __gmpfr_emax - 1,
- * i.e.
- * n * expx >= __gmpfr_emax.
- * This corresponds to an overflow (2^(n * expx) has an
- * exponent > __gmpfr_emax).
- * + If expx >= (__gmpfr_emax - 1) / n, then n * expx cannot
- * overflow since 0 > expx >= (__gmpfr_emax - 1) / n and
- * 0 < n * expx <= n * ((__gmpfr_emax - 1) / n)
- * <= __gmpfr_emax - 1.
- * Note: one could use expx bounds based on MPFR_EXP_MIN and
- * MPFR_EXP_MAX instead of __gmpfr_emin and __gmpfr_emax. The
- * current bounds do not lead to noticeably slower code and
- * allow us to avoid a bug in Sun's compiler for Solaris/x86
- * (when optimizations are enabled); known affected versions:
- * cc: Sun C 5.8 2005/10/13
- * cc: Sun C 5.8 Patch 121016-02 2006/03/31
- * cc: Sun C 5.8 Patch 121016-04 2006/10/18
- */
- expy =
- n != -1 && expx > 0 && expx > (__gmpfr_emin - 1) / n ?
- MPFR_EMIN_MIN - 2 /* Underflow */ :
- n != -1 && expx < 0 && expx < (__gmpfr_emax - 1) / n ?
- MPFR_EMAX_MAX /* Overflow */ : n * expx;
- return mpfr_set_si_2exp (y, n % 2 ? MPFR_INT_SIGN (x) : 1,
- expy, rnd);
- }
-
- /* General case */
- {
- /* Declaration of the intermediary variable */
- mpfr_t t;
- /* Declaration of the size variable */
- mpfr_prec_t Ny; /* target precision */
- mpfr_prec_t Nt; /* working precision */
- mpfr_rnd_t rnd1;
- int size_n;
- int inexact;
- unsigned long abs_n;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
-
- abs_n = - (unsigned long) n;
- size_n = mpfr_nbits_ulong (abs_n);
-
- /* initial working precision */
- Ny = MPFR_PREC (y);
- Nt = Ny + size_n + 3 + MPFR_INT_CEIL_LOG2 (Ny);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* initialize of intermediary variable */
- mpfr_init2 (t, Nt);
-
- /* We will compute rnd(rnd1(1/x) ^ |n|), where rnd1 is the rounding
- toward sign(x), to avoid spurious overflow or underflow, as in
- mpfr_pow_z. */
- rnd1 = MPFR_EXP (x) < 1 ? MPFR_RNDZ :
- (MPFR_IS_POS (x) ? MPFR_RNDU : MPFR_RNDD);
-
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- /* compute (1/x)^|n| */
- MPFR_BLOCK (flags, mpfr_ui_div (t, 1, x, rnd1));
- MPFR_ASSERTD (! MPFR_UNDERFLOW (flags));
- /* t = (1/x)*(1+theta) where |theta| <= 2^(-Nt) */
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
- goto overflow;
- MPFR_BLOCK (flags, mpfr_pow_ui (t, t, abs_n, rnd));
- /* t = (1/x)^|n|*(1+theta')^(|n|+1) where |theta'| <= 2^(-Nt).
- If (|n|+1)*2^(-Nt) <= 1/2, which is satisfied as soon as
- Nt >= bits(n)+2, then we can use Lemma \ref{lemma_graillat}
- from algorithms.tex, which yields x^n*(1+theta) with
- |theta| <= 2(|n|+1)*2^(-Nt), thus the error is bounded by
- 2(|n|+1) ulps <= 2^(bits(n)+2) ulps. */
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
- {
- overflow:
- MPFR_ZIV_FREE (loop);
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- MPFR_LOG_MSG (("overflow\n", 0));
- return mpfr_overflow (y, rnd, abs_n & 1 ?
- MPFR_SIGN (x) : MPFR_SIGN_POS);
- }
- if (MPFR_UNLIKELY (MPFR_UNDERFLOW (flags)))
- {
- MPFR_ZIV_FREE (loop);
- mpfr_clear (t);
- MPFR_LOG_MSG (("underflow\n", 0));
- if (rnd == MPFR_RNDN)
- {
- mpfr_t y2, nn;
-
- /* We cannot decide now whether the result should be
- rounded toward zero or away from zero. So, like
- in mpfr_pow_pos_z, let's use the general case of
- mpfr_pow in precision 2. */
- MPFR_ASSERTD (mpfr_cmp_si_2exp (x, MPFR_SIGN (x),
- MPFR_EXP (x) - 1) != 0);
- mpfr_init2 (y2, 2);
- mpfr_init2 (nn, sizeof (long) * CHAR_BIT);
- inexact = mpfr_set_si (nn, n, MPFR_RNDN);
- MPFR_ASSERTN (inexact == 0);
- inexact = mpfr_pow_general (y2, x, nn, rnd, 1,
- (mpfr_save_expo_t *) NULL);
- mpfr_clear (nn);
- mpfr_set (y, y2, MPFR_RNDN);
- mpfr_clear (y2);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_UNDERFLOW);
- goto end;
- }
- else
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (y, rnd, abs_n & 1 ?
- MPFR_SIGN (x) : MPFR_SIGN_POS);
- }
- }
- /* error estimate -- see pow function in algorithms.ps */
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, Nt - size_n - 2, Ny, rnd)))
- break;
-
- /* actualization of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (y, t, rnd);
- mpfr_clear (t);
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd);
- }
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/pow_ui.c b/Build/source/libs/mpfr/mpfr-src/src/pow_ui.c
deleted file mode 100644
index 456d6d18e74..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/pow_ui.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* mpfr_pow_ui-- compute the power of a floating-point
- by a machine integer
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* sets y to x^n, and return 0 if exact, non-zero otherwise */
-int
-mpfr_pow_ui (mpfr_ptr y, mpfr_srcptr x, unsigned long int n, mpfr_rnd_t rnd)
-{
- unsigned long m;
- mpfr_t res;
- mpfr_prec_t prec, err;
- int inexact;
- mpfr_rnd_t rnd1;
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_ZIV_DECL (loop);
- MPFR_BLOCK_DECL (flags);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg n=%lu rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, n, rnd),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- /* x^0 = 1 for any x, even a NaN */
- if (MPFR_UNLIKELY (n == 0))
- return mpfr_set_ui (y, 1, rnd);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- /* Inf^n = Inf, (-Inf)^n = Inf for n even, -Inf for n odd */
- if (MPFR_IS_NEG (x) && (n & 1) == 1)
- MPFR_SET_NEG (y);
- else
- MPFR_SET_POS (y);
- MPFR_SET_INF (y);
- MPFR_RET (0);
- }
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- /* 0^n = 0 for any n */
- MPFR_SET_ZERO (y);
- if (MPFR_IS_POS (x) || (n & 1) == 0)
- MPFR_SET_POS (y);
- else
- MPFR_SET_NEG (y);
- MPFR_RET (0);
- }
- }
- else if (MPFR_UNLIKELY (n <= 2))
- {
- if (n < 2)
- /* x^1 = x */
- return mpfr_set (y, x, rnd);
- else
- /* x^2 = sqr(x) */
- return mpfr_sqr (y, x, rnd);
- }
-
- /* Augment exponent range */
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* setup initial precision */
- prec = MPFR_PREC (y) + 3 + GMP_NUMB_BITS
- + MPFR_INT_CEIL_LOG2 (MPFR_PREC (y));
- mpfr_init2 (res, prec);
-
- rnd1 = MPFR_IS_POS (x) ? MPFR_RNDU : MPFR_RNDD; /* away */
-
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- int i;
-
- for (m = n, i = 0; m; i++, m >>= 1)
- ;
- /* now 2^(i-1) <= n < 2^i */
- MPFR_ASSERTD (prec > (mpfr_prec_t) i);
- err = prec - 1 - (mpfr_prec_t) i;
- /* First step: compute square from x */
- MPFR_BLOCK (flags,
- inexact = mpfr_sqr (res, x, MPFR_RNDU);
- MPFR_ASSERTD (i >= 2);
- if (n & (1UL << (i-2)))
- inexact |= mpfr_mul (res, res, x, rnd1);
- for (i -= 3; i >= 0 && !MPFR_BLOCK_EXCEP; i--)
- {
- inexact |= mpfr_sqr (res, res, MPFR_RNDU);
- if (n & (1UL << i))
- inexact |= mpfr_mul (res, res, x, rnd1);
- });
- /* let r(n) be the number of roundings: we have r(2)=1, r(3)=2,
- and r(2n)=2r(n)+1, r(2n+1)=2r(n)+2, thus r(n)=n-1.
- Using Higham's method, to each rounding corresponds a factor
- (1-theta) with 0 <= theta <= 2^(1-p), thus at the end the
- absolute error is bounded by (n-1)*2^(1-p)*res <= 2*(n-1)*ulp(res)
- since 2^(-p)*x <= ulp(x). Since n < 2^i, this gives a maximal
- error of 2^(1+i)*ulp(res).
- */
- if (MPFR_LIKELY (inexact == 0
- || MPFR_OVERFLOW (flags) || MPFR_UNDERFLOW (flags)
- || MPFR_CAN_ROUND (res, err, MPFR_PREC (y), rnd)))
- break;
- /* Actualisation of the precision */
- MPFR_ZIV_NEXT (loop, prec);
- mpfr_set_prec (res, prec);
- }
- MPFR_ZIV_FREE (loop);
-
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags) || MPFR_UNDERFLOW (flags)))
- {
- mpz_t z;
-
- /* Internal overflow or underflow. However the approximation error has
- * not been taken into account. So, let's solve this problem by using
- * mpfr_pow_z, which can handle it. This case could be improved in the
- * future, without having to use mpfr_pow_z.
- */
- MPFR_LOG_MSG (("Internal overflow or underflow,"
- " let's use mpfr_pow_z.\n", 0));
- mpfr_clear (res);
- MPFR_SAVE_EXPO_FREE (expo);
- mpz_init (z);
- mpz_set_ui (z, n);
- inexact = mpfr_pow_z (y, x, z, rnd);
- mpz_clear (z);
- return inexact;
- }
-
- inexact = mpfr_set (y, res, rnd);
- mpfr_clear (res);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/pow_z.c b/Build/source/libs/mpfr/mpfr-src/src/pow_z.c
deleted file mode 100644
index 3b4e62fd684..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/pow_z.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/* mpfr_pow_z -- power function x^z with z a MPZ
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* y <- x^|z| with z != 0
- if cr=1: ensures correct rounding of y
- if cr=0: does not ensure correct rounding, but avoid spurious overflow
- or underflow, and uses the precision of y as working precision (warning,
- y and x might be the same variable). */
-static int
-mpfr_pow_pos_z (mpfr_ptr y, mpfr_srcptr x, mpz_srcptr z, mpfr_rnd_t rnd, int cr)
-{
- mpfr_t res;
- mpfr_prec_t prec, err;
- int inexact;
- mpfr_rnd_t rnd1, rnd2;
- mpz_t absz;
- mp_size_t size_z;
- MPFR_ZIV_DECL (loop);
- MPFR_BLOCK_DECL (flags);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg z=%Zd rnd=%d cr=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, z, rnd, cr),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- MPFR_ASSERTD (mpz_sgn (z) != 0);
-
- if (MPFR_UNLIKELY (mpz_cmpabs_ui (z, 1) == 0))
- return mpfr_set (y, x, rnd);
-
- absz[0] = z[0];
- SIZ (absz) = ABSIZ (absz); /* Hack to get abs(z) */
- MPFR_MPZ_SIZEINBASE2 (size_z, z);
-
- /* round toward 1 (or -1) to avoid spurious overflow or underflow,
- i.e. if an overflow or underflow occurs, it is a real exception
- and is not just due to the rounding error. */
- rnd1 = (MPFR_EXP(x) >= 1) ? MPFR_RNDZ
- : (MPFR_IS_POS(x) ? MPFR_RNDU : MPFR_RNDD);
- rnd2 = (MPFR_EXP(x) >= 1) ? MPFR_RNDD : MPFR_RNDU;
-
- if (cr != 0)
- prec = MPFR_PREC (y) + 3 + size_z + MPFR_INT_CEIL_LOG2 (MPFR_PREC (y));
- else
- prec = MPFR_PREC (y);
- mpfr_init2 (res, prec);
-
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- unsigned int inexmul; /* will be non-zero if res may be inexact */
- mp_size_t i = size_z;
-
- /* now 2^(i-1) <= z < 2^i */
- /* see below (case z < 0) for the error analysis, which is identical,
- except if z=n, the maximal relative error is here 2(n-1)2^(-prec)
- instead of 2(2n-1)2^(-prec) for z<0. */
- MPFR_ASSERTD (prec > (mpfr_prec_t) i);
- err = prec - 1 - (mpfr_prec_t) i;
-
- MPFR_BLOCK (flags,
- inexmul = mpfr_sqr (res, x, rnd2);
- MPFR_ASSERTD (i >= 2);
- if (mpz_tstbit (absz, i - 2))
- inexmul |= mpfr_mul (res, res, x, rnd1);
- for (i -= 3; i >= 0 && !MPFR_BLOCK_EXCEP; i--)
- {
- inexmul |= mpfr_sqr (res, res, rnd2);
- if (mpz_tstbit (absz, i))
- inexmul |= mpfr_mul (res, res, x, rnd1);
- });
- if (MPFR_LIKELY (inexmul == 0 || cr == 0
- || MPFR_OVERFLOW (flags) || MPFR_UNDERFLOW (flags)
- || MPFR_CAN_ROUND (res, err, MPFR_PREC (y), rnd)))
- break;
- /* Can't decide correct rounding, increase the precision */
- MPFR_ZIV_NEXT (loop, prec);
- mpfr_set_prec (res, prec);
- }
- MPFR_ZIV_FREE (loop);
-
- /* Check Overflow */
- if (MPFR_OVERFLOW (flags))
- {
- MPFR_LOG_MSG (("overflow\n", 0));
- inexact = mpfr_overflow (y, rnd, mpz_odd_p (absz) ?
- MPFR_SIGN (x) : MPFR_SIGN_POS);
- }
- /* Check Underflow */
- else if (MPFR_UNDERFLOW (flags))
- {
- MPFR_LOG_MSG (("underflow\n", 0));
- if (rnd == MPFR_RNDN)
- {
- mpfr_t y2, zz;
-
- /* We cannot decide now whether the result should be rounded
- toward zero or +Inf. So, let's use the general case of
- mpfr_pow, which can do that. But the problem is that the
- result can be exact! However, it is sufficient to try to
- round on 2 bits (the precision does not matter in case of
- underflow, since MPFR does not have subnormals), in which
- case, the result cannot be exact due to previous filtering
- of trivial cases. */
- MPFR_ASSERTD (mpfr_cmp_si_2exp (x, MPFR_SIGN (x),
- MPFR_EXP (x) - 1) != 0);
- mpfr_init2 (y2, 2);
- mpfr_init2 (zz, ABSIZ (z) * GMP_NUMB_BITS);
- inexact = mpfr_set_z (zz, z, MPFR_RNDN);
- MPFR_ASSERTN (inexact == 0);
- inexact = mpfr_pow_general (y2, x, zz, rnd, 1,
- (mpfr_save_expo_t *) NULL);
- mpfr_clear (zz);
- mpfr_set (y, y2, MPFR_RNDN);
- mpfr_clear (y2);
- __gmpfr_flags = MPFR_FLAGS_INEXACT | MPFR_FLAGS_UNDERFLOW;
- }
- else
- {
- inexact = mpfr_underflow (y, rnd, mpz_odd_p (absz) ?
- MPFR_SIGN (x) : MPFR_SIGN_POS);
- }
- }
- else
- inexact = mpfr_set (y, res, rnd);
-
- mpfr_clear (res);
- return inexact;
-}
-
-/* The computation of y = pow(x,z) is done by
- * y = set_ui(1) if z = 0
- * y = pow_ui(x,z) if z > 0
- * y = pow_ui(1/x,-z) if z < 0
- *
- * Note: in case z < 0, we could also compute 1/pow_ui(x,-z). However, in
- * case MAX < 1/MIN, where MAX is the largest positive value, i.e.,
- * MAX = nextbelow(+Inf), and MIN is the smallest positive value, i.e.,
- * MIN = nextabove(+0), then x^(-z) might produce an overflow, whereas
- * x^z is representable.
- */
-
-int
-mpfr_pow_z (mpfr_ptr y, mpfr_srcptr x, mpz_srcptr z, mpfr_rnd_t rnd)
-{
- int inexact;
- mpz_t tmp;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg z=%Zd rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, z, rnd),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- /* x^0 = 1 for any x, even a NaN */
- if (MPFR_UNLIKELY (mpz_sgn (z) == 0))
- return mpfr_set_ui (y, 1, rnd);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x))
- {
- /* Inf^n = Inf, (-Inf)^n = Inf for n even, -Inf for n odd */
- /* Inf ^(-n) = 0, sign = + if x>0 or z even */
- if (mpz_sgn (z) > 0)
- MPFR_SET_INF (y);
- else
- MPFR_SET_ZERO (y);
- if (MPFR_UNLIKELY (MPFR_IS_NEG (x) && mpz_odd_p (z)))
- MPFR_SET_NEG (y);
- else
- MPFR_SET_POS (y);
- MPFR_RET (0);
- }
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO(x));
- if (mpz_sgn (z) > 0)
- /* 0^n = +/-0 for any n */
- MPFR_SET_ZERO (y);
- else
- {
- /* 0^(-n) if +/- INF */
- MPFR_SET_INF (y);
- MPFR_SET_DIVBY0 ();
- }
- if (MPFR_LIKELY (MPFR_IS_POS (x) || mpz_even_p (z)))
- MPFR_SET_POS (y);
- else
- MPFR_SET_NEG (y);
- MPFR_RET(0);
- }
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* detect exact powers: x^-n is exact iff x is a power of 2
- Do it if n > 0 too as this is faster and this filtering is
- needed in case of underflow. */
- if (MPFR_UNLIKELY (mpfr_cmp_si_2exp (x, MPFR_SIGN (x),
- MPFR_EXP (x) - 1) == 0))
- {
- mpfr_exp_t expx = MPFR_EXP (x); /* warning: x and y may be the same
- variable */
-
- MPFR_LOG_MSG (("x^n with x power of two\n", 0));
- mpfr_set_si (y, mpz_odd_p (z) ? MPFR_INT_SIGN(x) : 1, rnd);
- MPFR_ASSERTD (MPFR_IS_FP (y));
- mpz_init (tmp);
- mpz_mul_si (tmp, z, expx - 1);
- MPFR_ASSERTD (MPFR_GET_EXP (y) == 1);
- mpz_add_ui (tmp, tmp, 1);
- inexact = 0;
- if (MPFR_UNLIKELY (mpz_cmp_si (tmp, __gmpfr_emin) < 0))
- {
- MPFR_LOG_MSG (("underflow\n", 0));
- /* |y| is a power of two, thus |y| <= 2^(emin-2), and in
- rounding to nearest, the value must be rounded to 0. */
- if (rnd == MPFR_RNDN)
- rnd = MPFR_RNDZ;
- inexact = mpfr_underflow (y, rnd, MPFR_SIGN (y));
- }
- else if (MPFR_UNLIKELY (mpz_cmp_si (tmp, __gmpfr_emax) > 0))
- {
- MPFR_LOG_MSG (("overflow\n", 0));
- inexact = mpfr_overflow (y, rnd, MPFR_SIGN (y));
- }
- else
- MPFR_SET_EXP (y, mpz_get_si (tmp));
- mpz_clear (tmp);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- }
- else if (mpz_sgn (z) > 0)
- {
- inexact = mpfr_pow_pos_z (y, x, z, rnd, 1);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- }
- else
- {
- /* Declaration of the intermediary variable */
- mpfr_t t;
- mpfr_prec_t Nt; /* Precision of the intermediary variable */
- mpfr_rnd_t rnd1;
- mp_size_t size_z;
- MPFR_ZIV_DECL (loop);
-
- MPFR_MPZ_SIZEINBASE2 (size_z, z);
-
- /* initial working precision */
- Nt = MPFR_PREC (y);
- Nt = Nt + size_z + 3 + MPFR_INT_CEIL_LOG2 (Nt);
- /* ensures Nt >= bits(z)+2 */
-
- /* initialize of intermediary variable */
- mpfr_init2 (t, Nt);
-
- /* We will compute rnd(rnd1(1/x) ^ (-z)), where rnd1 is the rounding
- toward sign(x), to avoid spurious overflow or underflow. */
- rnd1 = MPFR_EXP (x) < 1 ? MPFR_RNDZ :
- (MPFR_IS_POS (x) ? MPFR_RNDU : MPFR_RNDD);
-
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- /* compute (1/x)^(-z), -z>0 */
- /* As emin = -emax, an underflow cannot occur in the division.
- And if an overflow occurs, then this means that x^z overflows
- too (since we have rounded toward 1 or -1). */
- MPFR_BLOCK (flags, mpfr_ui_div (t, 1, x, rnd1));
- MPFR_ASSERTD (! MPFR_UNDERFLOW (flags));
- /* t = (1/x)*(1+theta) where |theta| <= 2^(-Nt) */
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
- goto overflow;
- MPFR_BLOCK (flags, mpfr_pow_pos_z (t, t, z, rnd, 0));
- /* Now if z=-n, t = x^z*(1+theta)^(2n-1) where |theta| <= 2^(-Nt),
- with theta maybe different from above. If (2n-1)*2^(-Nt) <= 1/2,
- which is satisfied as soon as Nt >= bits(z)+2, then we can use
- Lemma \ref{lemma_graillat} from algorithms.tex, which yields
- t = x^z*(1+theta) with |theta| <= 2(2n-1)*2^(-Nt), thus the
- error is bounded by 2(2n-1) ulps <= 2^(bits(z)+2) ulps. */
- if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
- {
- overflow:
- MPFR_ZIV_FREE (loop);
- mpfr_clear (t);
- MPFR_SAVE_EXPO_FREE (expo);
- MPFR_LOG_MSG (("overflow\n", 0));
- return mpfr_overflow (y, rnd,
- mpz_odd_p (z) ? MPFR_SIGN (x) :
- MPFR_SIGN_POS);
- }
- if (MPFR_UNLIKELY (MPFR_UNDERFLOW (flags)))
- {
- MPFR_ZIV_FREE (loop);
- mpfr_clear (t);
- MPFR_LOG_MSG (("underflow\n", 0));
- if (rnd == MPFR_RNDN)
- {
- mpfr_t y2, zz;
-
- /* We cannot decide now whether the result should be
- rounded toward zero or away from zero. So, like
- in mpfr_pow_pos_z, let's use the general case of
- mpfr_pow in precision 2. */
- MPFR_ASSERTD (mpfr_cmp_si_2exp (x, MPFR_SIGN (x),
- MPFR_EXP (x) - 1) != 0);
- mpfr_init2 (y2, 2);
- mpfr_init2 (zz, ABSIZ (z) * GMP_NUMB_BITS);
- inexact = mpfr_set_z (zz, z, MPFR_RNDN);
- MPFR_ASSERTN (inexact == 0);
- inexact = mpfr_pow_general (y2, x, zz, rnd, 1,
- (mpfr_save_expo_t *) NULL);
- mpfr_clear (zz);
- mpfr_set (y, y2, MPFR_RNDN);
- mpfr_clear (y2);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_UNDERFLOW);
- goto end;
- }
- else
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_underflow (y, rnd, mpz_odd_p (z) ?
- MPFR_SIGN (x) : MPFR_SIGN_POS);
- }
- }
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, Nt - size_z - 2, MPFR_PREC (y),
- rnd)))
- break;
- /* actualization of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- mpfr_set_prec (t, Nt);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (y, t, rnd);
- mpfr_clear (t);
- }
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/powerof2.c b/Build/source/libs/mpfr/mpfr-src/src/powerof2.c
deleted file mode 100644
index f403671b387..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/powerof2.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* mpfr_powerof2_raw -- test whether a floating-point number is a power of 2
-
-Copyright 2002-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* This is an internal function and one assumes that x is a non-special
- * number (more precisely, only its significand is considered and this
- * function can be used even if the exponent field of x has not been
- * initialized). It returns 1 (true) if |x| is a power of 2, else 0.
- */
-
-int
-mpfr_powerof2_raw (mpfr_srcptr x)
-{
- /* This is an internal function, and we may call it with some
- wrong numbers (ie good mantissa but wrong flags or exp)
- So we don't want to test if it is a pure FP.
- MPFR_ASSERTN(MPFR_IS_PURE_FP(x)); */
- return mpfr_powerof2_raw2 (MPFR_MANT(x), MPFR_LIMB_SIZE(x));
-}
-
-int
-mpfr_powerof2_raw2 (const mp_limb_t *xp, mp_size_t xn)
-{
- if (xp[--xn] != MPFR_LIMB_HIGHBIT)
- return 0;
- while (xn > 0)
- if (xp[--xn] != 0)
- return 0;
- return 1;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/powerpc64/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/powerpc64/mparam.h
deleted file mode 100644
index 2b34da50078..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/powerpc64/mparam.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 4.8.5 */
-/* generated on gcc110.fsffrance.org (POWER7) with GMP 6.1.2,
- where GMP uses -m64 -mtune=power7 -O3 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,19,19,19, \
- 21,21,22,24,24,24,24,24,24,24,24,24,30,30,32,42, \
- 30,34,34,34,34,38,38,32,32,32,40,40,52,40,42,42, \
- 42,52,52,52,52,48,48,48,48,52,52,52,52,52,52,52, \
- 52,52,52,52,52,52,56,52,52,60,60,60,60,60,64,60, \
- 64,68,68,68,68,68,68,68,68,75,68,74,68,78,75,74, \
- 75,68,75,86,78,87,87,87,93,93,87,87,87,93,87,87, \
- 87,99,86,87,87,87,99,90,92,93,84,99,99,74,93,99, \
- 99,99,98,126,99,99,99,99,102,102,102,104,104,108,110,110, \
- 108,111,111,114,114,117,117,117,117,117,122,123,123,123,123,123, \
- 123,123,126,128,128,123,141,153,123,141,141,141,138,141,141,152, \
- 153,153,120,153,152,153,153,153,152,162,153,117,153,153,153,153, \
- 153,153,128,153,153,152,153,153,153,152,153,153,153,153,153,156, \
- 156,152,153,153,153,153,153,153,153,153,153,153,153,153,153,177, \
- 177,177,177,153,176,216,153,177,204,153,204,177,168,204,204,168, \
- 204,204,204,204,204,177,204,204,204,204,204,204,202,204,204,204, \
- 204,204,204,202,203,204,204,204,204,204,204,204,204,204,204,204, \
- 204,204,203,204,204,204,204,204,204,204,204,204,204,204,204,204, \
- 236,204,204,234,204,204,203,236,236,236,236,236,236,236,236,236, \
- 236,236,235,236,235,236,236,236,236,236,236,236,236,236,236,236, \
- 236,236,236,236,236,236,268,268,236,268,236,268,268,268,268,268, \
- 268,268,268,266,267,268,267,268,268,268,268,268,267,268,268,268, \
- 268,268,267,268,268,306,306,306,306,304,305,306,306,336,306,306, \
- 236,305,306,306,306,306,306,306,306,306,306,306,306,306,306,306, \
- 306,306,306,306,306,306,306,306,306,306,306,306,306,306,305,306, \
- 306,306,306,306,306,306,306,306,330,306,306,305,306,306,306,305, \
- 306,306,306,306,354,306,354,354,353,306,353,354,354,354,354,354, \
- 354,354,353,354,354,354,353,354,354,354,354,354,354,354,354,354, \
- 424,354,354,354,354,354,353,354,354,354,352,408,354,354,354,354, \
- 354,408,408,354,408,408,408,407,408,408,408,408,408,408,407,408, \
- 408,408,408,408,402,408,402,402,407,408,408,408,408,408,408,407, \
- 408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408, \
- 406,407,408,408,408,408,408,408,408,406,408,408,408,408,407,408, \
- 408,408,407,408,408,407,408,408,408,408,408,407,407,408,408,408, \
- 408,408,408,472,472,472,472,472,472,472,472,472,472,472,472,472, \
- 472,472,472,472,472,472,472,472,471,472,472,472,472,472,472,472, \
- 470,471,472,472,472,472,472,472,472,472,472,472,472,472,472,472, \
- 472,472,471,472,472,470,472,472,472,472,470,471,472,472,472,472, \
- 472,472,472,472,536,536,536,536,535,536,535,536,536,536,535,536, \
- 536,536,536,535,536,536,536,534,535,536,536,536,536,536,536,536, \
- 536,535,536,536,536,536,536,536,536,536,535,536,536,536,536,536, \
- 536,536,535,535,536,535,536,536,536,536,536,535,536,536,536,536, \
- 536,536,536,535,536,536,536,536,536,536,536,536,536,591,536,536, \
- 536,536,592,590,536,591,592,592,592,591,591,592,592,591,592,592, \
- 592,591,591,592,592,592,592,592,592,592,591,592,592,590,590,592, \
- 592,592,590,591,592,592,592,592,592,592,592,592,592,592,592,592, \
- 591,592,592,592,592,591,592,592,616,592,592,591,591,616,592,592, \
- 592,592,616,616,616,592,616,616,592,616,592,616,640,616,616,591, \
- 592,592,589,592,640,591,592,616,688,688,592,688,688,687,688,686, \
- 688,688,688,688,687,688,688,688,686,687,688,688,688,687,688,688, \
- 688,686,688,688,688,615,688,685,688,688,687,688,688,687,688,688, \
- 688,688,686,687,688,688,688,688,688,688,688,688,688,687,687,688, \
- 688,688,688,688,688,688,688,688,688,686,687,688,688,688,688,688, \
- 688,688,712,736,736,688,686,736,688,736,688,736,687,735,736,736, \
- 688,736,734,735,736,688,688,736,688,736,688,687,687,688,688,688, \
- 688,736,736,688,688,736,736,736,736,736,784,736,688,736,736,782, \
- 783,784,783,784,784,784,784,776,784,784,783,784,784,782,783,784, \
- 784,784,784,783,784,784,783,784,784,784,784,784,784,784,784,784, \
- 783,784,784,784,783,783,784,784,784,784,784,784,784,784,784,784, \
- 784,784,784,783,784,784,783,783,784,784,784,782,783,784,784,783, \
- 784,784,783,784,783,784,784,784,784,783,784,783,784,784,784,784, \
- 784,784,783,784,784,783,784,784,784,783,784,784,784,784,784,783, \
- 782,783,784,784,784,784,784,784,784,784,783,784,784,784,784,784 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,-1,0,0,0,-1,-1,-1,7,8,-1,10,11,11,11, \
- 11,11,11,11,13,13,13,13,15,15,15,15,16,17,19,19, \
- 19,19,19,19,21,22,23,23,23,23,24,25,27,27,25,29, \
- 27,27,29,29,31,31,31,31,31,38,38,38,38,38,38,38, \
- 38,36,36,38,38,38,38,38,42,42,44,42,46,44,46,44, \
- 45,46,46,46,46,46,50,54,50,50,52,52,54,54,54,50, \
- 52,52,54,54,52,52,54,54,54,54,56,58,60,60,60,62, \
- 60,62,62,64,64,64,76,75,76,76,76,72,75,76,76,76, \
- 76,76,76,76,84,84,76,76,84,88,88,88,88,92,92,92, \
- 92,92,92,84,92,76,92,92,88,92,92,92,88,90,92,92, \
- 92,88,92,92,91,91,92,92,91,92,92,92,92,92,92,92, \
- 92,92,95,111,111,111,111,110,111,111,111,111,111,111,111,111, \
- 111,111,111,111,111,114,111,114,117,116,111,110,121,116,129,129, \
- 134,135,135,135,129,135,192,135,135,135,135,135,135,135,135,135, \
- 135,135,141,135,129,129,129,135,135,135,135,135,135,134,135,141, \
- 140,141,141,135,144,135,160,184,147,141,147,153,147,152,153,159, \
- 153,159,159,159,159,159,159,165,159,159,159,159,159,165,164,159, \
- 159,159,158,159,159,159,177,171,177,159,159,177,158,177,159,159, \
- 159,158,159,159,159,171,171,159,159,171,171,159,177,177,171,171, \
- 177,174,177,159,177,177,171,177,176,177,171,171,177,177,176,171, \
- 177,177,177,175,176,177,177,176,177,177,204,204,196,196,204,212, \
- 204,188,212,212,196,196,211,212,212,212,212,212,212,212,211,212, \
- 204,204,212,212,212,212,212,211,212,212,212,212,212,220,220,236, \
- 220,220,220,228,228,228,220,236,228,228,228,236,236,244,234,235, \
- 236,236,236,236,244,244,236,243,244,244,244,244,244,244,244,236, \
- 244,244,227,236,243,236,244,236,236,236,244,244,244,244,244,244, \
- 244,244,244,244,244,244,220,219,220,244,228,220,236,236,228,233, \
- 236,235,236,236,236,240,236,244,236,236,244,244,242,243,244,243, \
- 244,244,244,244,244,244,243,244,244,236,244,244,244,318,318,244, \
- 244,244,318,318,318,270,244,318,244,244,270,270,270,270,318,318, \
- 318,318,318,318,282,318,318,318,318,318,318,318,318,318,318,318, \
- 294,293,294,318,294,294,305,306,306,306,294,305,306,317,306,306, \
- 306,306,318,318,318,318,318,317,318,317,318,318,318,318,318,318, \
- 330,318,318,317,306,318,318,317,318,318,318,318,342,342,342,318, \
- 318,318,318,408,318,318,318,330,354,342,318,318,354,353,354,354, \
- 354,354,342,354,353,354,354,360,342,354,342,354,353,342,354,354, \
- 342,341,342,353,354,354,354,353,354,354,354,354,354,354,354,354, \
- 354,354,354,360,360,376,392,318,423,424,391,424,376,376,392,376, \
- 392,391,408,392,376,392,408,423,424,424,392,424,423,424,424,424, \
- 424,354,424,408,424,424,424,424,424,424,408,424,424,423,408,424, \
- 424,408,424,424,424,424,424,424,424,423,424,424,424,424,424,424, \
- 424,439,423,424,424,424,424,424,424,424,440,440,424,439,423,424, \
- 600,439,423,424,456,424,424,472,424,424,456,456,456,423,424,424, \
- 456,424,424,472,472,472,424,424,424,471,472,424,424,424,424,424, \
- 424,424,472,472,488,424,423,424,424,424,488,488,488,439,488,487, \
- 440,440,440,488,488,488,472,440,456,440,472,456,455,455,472,472, \
- 456,456,456,472,456,472,472,472,472,488,488,471,471,486,472,472, \
- 472,472,472,472,472,471,472,472,472,472,471,488,488,488,488,488, \
- 488,504,488,504,600,391,488,752,488,488,488,408,568,488,488,488, \
- 488,488,488,487,488,488,488,488,488,488,488,488,488,472,472,488, \
- 488,488,488,599,488,600,600,488,488,488,599,600,600,599,600,488, \
- 600,600,599,600,600,600,600,600,600,600,600,600,600,600,600,599, \
- 598,599,600,600,600,599,600,600,600,600,616,600,424,568,568,568, \
- 568,584,568,600,598,568,600,568,431,824,600,600,600,599,600,600, \
- 600,600,600,600,-1,784,600,600,600,599,595,600,600,440,600,600, \
- 600,600,600,600,600,599,600,600,600,600,597,600,600,600,600,600, \
- 600,600,600,597,600,600,600,600,600,600,600,600,599,600,599,600, \
- 600,600,600,599,600,600,599,600,600,600,600,598,662,600,600,600, \
- 600,600,600,600,599,599,600,600,664,600,600,599,600,664,664,663, \
- 664,664,664,600,664,664,664,664,664,664,600,664,664,664,664,664, \
- 600,600,600,664,600,663,600,600,600,600,664,600,600,600,696,664, \
- 696,598,600,600,600,664,600,600,664,664,600,600,600,600,600,600, \
- 600,600,728,728,600,728,728,728,728,600,725,727,727,728,727,728, \
- 727,728,728,727,728,728,728,728,728,728,728,728,727,728,728,728 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41, /*64-79*/ \
- 42,42,0,0,48,48,0,46,48,48,50,49,49,48,49,50, /*80-95*/ \
- 51,0,0,0,79,52,0,0,0,54,57,68,60,58,0,59, /*96-111*/ \
- 58,59,62,0,60,66,68,66,68,68,68,66,66,68,68,68, /*112-127*/ \
- 76,68,76,68,68,69,75,76,70,79,73,84,76,75,78,76, /*128-143*/ \
- 81,84,80,80,84,81,80,84,84,80,80,81,80,84,84,85, /*144-159*/ \
- 84,83,104,96,84,96,96,92,96,96,96,132,104,100,98,104, /*160-175*/ \
- 104,104,104,104,104,104,104,104,104,104,104,104,104,104,100,100, /*176-191*/ \
- 104,104,112,104,100,120,120,104,104,119,112,112,118,104,120,120, /*192-207*/ \
- 112,120,118,118,119,120,113,114,119,112,128,136,112,120,116,122, /*208-223*/ \
- 118,132,120,119,120,136,118,120,119,120,128,136,128,136,132,136, /*224-239*/ \
- 132,128,136,135,136,132,128,136,130,136,136,132,135,135,136,132, /*240-255*/ \
- 132,136,136,134,135,135,136,149,135,136,135,136,136,136,138,140, /*256-271*/ \
- 156,150,156,148,150,149,161,150,148,162,160,148,156,160,150,152, /*272-287*/ \
- 157,150,168,160,160,150,150,152,160,160,168,168,168,156,156,160, /*288-303*/ \
- 156,161,160,168,160,160,160,162,168,160,160,167,168,166,174,173, /*304-319*/ \
- 167,168,198,192,168,168,174,192,168,192,168,168,168,168,184,192, /*320-335*/ \
- 192,194,208,193,192,192,192,192,208,192,192,208,197,206,204,208, /*336-351*/ \
- 192,207,200,204,204,191,192,208,204,208,192,208,208,208,208,209, /*352-367*/ \
- 208,208,208,208,208,216,192,208,192,209,192,198,208,206,204,208, /*368-383*/ \
- 208,208,208,207,208,208,216,208,208,216,208,208,208,208,206,208, /*384-399*/ \
- 208,206,207,222,206,208,208,208,208,209,208,207,240,208,209,223, /*400-415*/ \
- 240,233,240,220,234,216,240,240,219,233,240,222,222,224,224,232, /*416-431*/ \
- 240,240,239,240,236,240,240,240,240,241,240,238,240,240,240,240, /*432-447*/ \
- 300,240,245,239,240,240,233,240,236,240,240,240,240,240,241,236, /*448-463*/ \
- 240,426,240,240,240,256,240,240,240,240,239,240,270,272,241,241, /*464-479*/ \
- 256,246,245,256,246,245,257,272,246,256,256,272,264,272,272,268, /*480-495*/ \
- 256,256,272,255,272,264,256,270,270,272,272,272,269,256,304,272, /*496-511*/ \
- 268,300,306,300,272,304,300,299,264,300,294,270,270,490,272,300, /*512-527*/ \
- 272,272,272,300,306,300,301,298,304,300,300,312,298,304,304,306, /*528-543*/ \
- 300,299,306,312,336,312,300,298,298,300,300,318,288,299,282,305, /*544-559*/ \
- 304,298,304,305,299,303,300,300,300,304,304,312,312,306,306,299, /*560-575*/ \
- 304,312,312,312,300,312,324,304,529,299,300,318,306,312,336,304, /*576-591*/ \
- 300,300,300,306,312,312,312,332,305,336,336,384,336,312,324,312, /*592-607*/ \
- 316,312,348,312,312,328,312,353,336,320,336,336,336,318,336,332, /*608-623*/ \
- 335,348,336,336,328,324,335,336,336,322,335,336,336,336,324,328, /*624-639*/ \
- 384,384,384,336,384,336,336,336,336,336,336,384,336,342,335,384, /*640-655*/ \
- 336,336,384,335,384,336,336,383,335,408,335,408,336,384,408,384, /*656-671*/ \
- 408,408,407,384,384,408,416,384,384,408,408,384,408,408,408,408, /*672-687*/ \
- 408,408,384,408,408,408,408,408,416,408,416,408,408,408,408,416, /*688-703*/ \
- 408,384,408,416,416,408,408,408,408,408,408,407,408,408,416,384, /*704-719*/ \
- 408,407,408,408,384,383,406,407,407,416,384,415,416,408,416,408, /*720-735*/ \
- 407,416,408,408,416,406,384,384,408,408,408,406,408,407,408,408, /*736-751*/ \
- 384,408,408,408,408,416,408,408,408,416,415,408,384,408,415,408, /*752-767*/ \
- 408,408,408,405,408,408,408,408,408,408,408,408,416,416,416,408, /*768-783*/ \
- 416,416,406,416,408,414,407,408,407,407,414,408,408,408,416,408, /*784-799*/ \
- 415,416,416,408,408,416,415,416,416,416,416,416,416,416,448,415, /*800-815*/ \
- 416,472,416,416,415,416,415,480,416,416,416,480,440,416,480,448, /*816-831*/ \
- 440,464,440,466,477,424,472,432,470,472,456,460,464,480,448,480, /*832-847*/ \
- 440,480,480,480,472,464,480,464,480,472,467,480,480,479,480,480, /*848-863*/ \
- 478,480,472,472,480,480,479,480,472,480,480,470,480,480,480,472, /*864-879*/ \
- 480,468,464,470,472,472,476,480,480,472,478,478,480,480,877,472, /*880-895*/ \
- 480,479,480,480,512,480,479,480,756,466,472,480,466,464,478,466, /*896-911*/ \
- 480,480,472,480,462,480,472,480,478,478,480,480,479,480,480,480, /*912-927*/ \
- 488,480,478,472,480,480,488,480,480,480,480,472,480,480,480,536, /*928-943*/ \
- 477,512,480,480,480,536,480,477,479,480,480,792,511,512,512,512, /*944-959*/ \
- 493,512,501,512,527,512,528,536,488,536,512,536,512,512,535,528, /*960-975*/ \
- 508,534,512,512,512,512,544,512,532,512,528,534,536,536,544,536, /*976-991*/ \
- 535,540,528,528,610,536,528,528,609,612,608,536,544,612,544,536, /*992-1007*/ \
- 540,536,612,536,607,536,612,610,610,612,612,612,612,544,612,611 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 9 /* limbs */
-#define MPFR_SQR_THRESHOLD 14 /* limbs */
-#define MPFR_DIV_THRESHOLD 3 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 580 /* bits */
-#define MPFR_EXP_THRESHOLD 10480 /* bits */
-#define MPFR_SINCOS_THRESHOLD 22904 /* bits */
-#define MPFR_AI_THRESHOLD1 -12474 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 1158
-#define MPFR_AI_THRESHOLD3 20165
-/* Tuneup completed successfully, took 571 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/print_raw.c b/Build/source/libs/mpfr/mpfr-src/src/print_raw.c
deleted file mode 100644
index f49247e8105..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/print_raw.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* mpfr_print_mant_binary -- print the internal binary representation
- of a significand of floating-point number (for the tests and
- debugging purpose)
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-void
-mpfr_print_mant_binary (const char *str, const mp_limb_t *p, mpfr_prec_t r)
-{
- int i;
- mpfr_prec_t count = 0;
- mp_size_t n = MPFR_PREC2LIMBS (r);
-
- printf ("%s ", str);
- for (n-- ; n >= 0 ; n--)
- {
- for (i = GMP_NUMB_BITS - 1 ; i >=0 ; i--)
- {
- putchar ((p[n] & (MPFR_LIMB_ONE << i)) ? '1' : '0');
- if (++count == r)
- putchar ('[');
- }
- putchar ('.');
- }
- if (count >= r)
- putchar (']');
- putchar ('\n');
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/print_rnd_mode.c b/Build/source/libs/mpfr/mpfr-src/src/print_rnd_mode.c
deleted file mode 100644
index fd36ab83745..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/print_rnd_mode.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* mpfr_print_rnd_mode -- convert a given rounding mode to a string
-
-Copyright 1999, 2001-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* WARNING! When adding a new rounding mode, do not forget to update the
- description of this mpfr_print_rnd_mode function in the manual. */
-
-const char *
-mpfr_print_rnd_mode (mpfr_rnd_t rnd_mode)
-{
- /* If we forget to update this function after a new rounding mode
- is added, this will be detected by the following assertion. */
- MPFR_STAT_STATIC_ASSERT (MPFR_RND_MAX == MPFR_RNDF + 1);
- switch (rnd_mode)
- {
- case MPFR_RNDD:
- return "MPFR_RNDD";
- case MPFR_RNDU:
- return "MPFR_RNDU";
- case MPFR_RNDN:
- return "MPFR_RNDN";
- case MPFR_RNDZ:
- return "MPFR_RNDZ";
- case MPFR_RNDA:
- return "MPFR_RNDA";
- case MPFR_RNDF:
- return "MPFR_RNDF";
- default:
- return (const char*) 0;
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/printf.c b/Build/source/libs/mpfr/mpfr-src/src/printf.c
deleted file mode 100644
index 7b5f0620c61..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/printf.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Formatted output functions (printf functions family).
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-/* The mpfr_printf-like functions are defined only if <stdarg.h> exists.
- Since they use mpf_t, they cannot be defined with mini-gmp. */
-#if defined(HAVE_STDARG) && !defined(MPFR_USE_MINI_GMP)
-
-#include <stdarg.h>
-
-#include "mpfr-impl.h"
-
-#ifdef _MPFR_H_HAVE_FILE
-
-/* Each printf-like function calls mpfr_vasnprintf_aux (directly or
- via mpfr_vasprintf), which
- - returns the number of characters to be written excluding the
- terminating null character (disregarding the size argument);
- - returns -1 and sets the erange flag if this number exceeds INT_MAX
- (in that case, also sets errno to EOVERFLOW on POSIX systems). */
-
-#define GET_STR_VA(sz, str, fmt, ap) \
- do \
- { \
- sz = mpfr_vasprintf (&(str), fmt, ap); \
- if (sz < 0) \
- { \
- if (str) \
- mpfr_free_str (str); \
- return -1; \
- } \
- } while (0)
-
-#define GET_STR(sz, str, fmt) \
- do \
- { \
- va_list ap; \
- va_start(ap, fmt); \
- sz = mpfr_vasprintf (&(str), fmt, ap); \
- va_end (ap); \
- if (sz < 0) \
- { \
- if (str) \
- mpfr_free_str (str); \
- return -1; \
- } \
- } while (0)
-
-int
-mpfr_printf (const char *fmt, ...)
-{
- char *str;
- int ret;
-
- GET_STR (ret, str, fmt);
- ret = printf ("%s", str);
-
- mpfr_free_str (str);
- return ret;
-}
-
-int
-mpfr_vprintf (const char *fmt, va_list ap)
-{
- char *str;
- int ret;
-
- GET_STR_VA (ret, str, fmt, ap);
- ret = printf ("%s", str);
-
- mpfr_free_str (str);
- return ret;
-}
-
-
-int
-mpfr_fprintf (FILE *fp, const char *fmt, ...)
-{
- char *str;
- int ret;
-
- GET_STR (ret, str, fmt);
- ret = fprintf (fp, "%s", str);
-
- mpfr_free_str (str);
- return ret;
-}
-
-int
-mpfr_vfprintf (FILE *fp, const char *fmt, va_list ap)
-{
- char *str;
- int ret;
-
- GET_STR_VA (ret, str, fmt, ap);
- ret = fprintf (fp, "%s", str);
-
- mpfr_free_str (str);
- return ret;
-}
-
-#endif /* _MPFR_H_HAVE_FILE */
-
-int
-mpfr_sprintf (char *buf, const char *fmt, ...)
-{
- char *str;
- int ret;
-
- GET_STR (ret, str, fmt);
- ret = sprintf (buf, "%s", str);
-
- mpfr_free_str (str);
- return ret;
-}
-
-int
-mpfr_vsprintf (char *buf, const char *fmt, va_list ap)
-{
- char *str;
- int ret;
-
- GET_STR_VA (ret, str, fmt, ap);
- ret = sprintf (buf, "%s", str);
-
- mpfr_free_str (str);
- return ret;
-}
-
-int
-mpfr_snprintf (char *buf, size_t size, const char *fmt, ...)
-{
- int ret;
- va_list ap;
-
- va_start(ap, fmt);
- ret = mpfr_vasnprintf_aux (NULL, buf, size, fmt, ap);
- va_end (ap);
-
- return ret;
-}
-
-int
-mpfr_vsnprintf (char *buf, size_t size, const char *fmt, va_list ap)
-{
- return mpfr_vasnprintf_aux (NULL, buf, size, fmt, ap);
-}
-
-int
-mpfr_asprintf (char **pp, const char *fmt, ...)
-{
- int ret;
-
- GET_STR (ret, *pp, fmt);
-
- return ret;
-}
-
-int
-mpfr_vasprintf (char **ptr, const char *fmt, va_list ap)
-{
- return mpfr_vasnprintf_aux (ptr, NULL, 0, fmt, ap);
-}
-
-#else /* HAVE_STDARG */
-
-/* Avoid an empty translation unit (see ISO C99, 6.9) */
-typedef int foo;
-
-#endif /* HAVE_STDARG */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/random_deviate.c b/Build/source/libs/mpfr/mpfr-src/src/random_deviate.c
deleted file mode 100644
index 72531e774fa..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/random_deviate.c
+++ /dev/null
@@ -1,383 +0,0 @@
-/* random_deviate routines for mpfr_erandom and mpfr_nrandom.
-
-Copyright 2013-2020 Free Software Foundation, Inc.
-Contributed by Charles Karney <charles@karney.com>, SRI International.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/*
- * A mpfr_random_deviate represents the initial portion e bits of a random
- * deviate uniformly distributed in (0,1) as
- *
- * typedef struct {
- * unsigned long e; // bits in the fraction
- * unsigned long h; // the high W bits of the fraction
- * mpz_t f; // the rest of the fraction
- * } mpfr_random_deviate_t[1];
- *
- * e is always a multiple of RANDOM_CHUNK. The first RANDOM_CHUNK bits, the
- * high fraction, are held in an unsigned long, h, and the rest are held in an
- * mpz_t, f. The data in h is undefined if e == 0 and, similarly the data in f
- * is undefined if e <= RANDOM_CHUNK.
- */
-
-#define MPFR_NEED_LONGLONG_H
-#include "random_deviate.h"
-
-/*
- * RANDOM_CHUNK can be picked in the range 1 <= RANDOM_CHUNK <= 64. Low values
- * of RANDOM_CHUNK are good for testing, since they are more likely to make
- * bugs obvious. For portability, pick RANDOM_CHUNK <= 32 (since an unsigned
- * long may only hold 32 bits). For reproducibility across platforms,
- * standardize on RANDOM_CHUNK = 32.
- *
- * When RANDOM_CHUNK = 32, this representation largely avoids manipulating
- * mpz's (until the final cast to an mpfr is done). In addition
- * mpfr_random_deviate_less usually entails just a single comparison of
- * unsigned longs. In this way, we can stick with the published interface for
- * extracting portions of an mpz (namely through mpz_tstbit) without hurting
- * efficiency.
- */
-#if !defined(RANDOM_CHUNK)
-/* note: for MPFR, we could use RANDOM_CHUNK = 32 or 64 according to the
- number of bits per limb, but we use 32 everywhere to get reproducible
- results on 32-bit and 64-bit computers */
-#define RANDOM_CHUNK 32 /* Require 1 <= RANDOM_CHUNK <= 32; recommend 32 */
-#endif
-
-#define W RANDOM_CHUNK /* W is just an shorter name for RANDOM_CHUNK */
-
-/* allocate and set to (0,1) */
-void
-mpfr_random_deviate_init (mpfr_random_deviate_t x)
-{
- mpz_init (x->f);
- x->e = 0;
-}
-
-/* reset to (0,1) */
-void
-mpfr_random_deviate_reset (mpfr_random_deviate_t x)
-{
- x->e = 0;
-}
-
-/* deallocate */
-void
-mpfr_random_deviate_clear (mpfr_random_deviate_t x)
-{
- mpz_clear (x->f);
-}
-
-/* swap two random deviates */
-void
-mpfr_random_deviate_swap (mpfr_random_deviate_t x, mpfr_random_deviate_t y)
-{
- mpfr_random_size_t s;
- unsigned long t;
-
- /* swap x->e and y->e */
- s = x->e;
- x->e = y->e;
- y->e = s;
-
- /* swap x->h and y->h */
- t = x->h;
- x->h = y->h;
- y->h = t;
-
- /* swap x->f and y->f */
- mpz_swap (x->f, y->f);
-}
-
-/* ensure x has at least k bits */
-static void
-random_deviate_generate (mpfr_random_deviate_t x, mpfr_random_size_t k,
- gmp_randstate_t r, mpz_t t)
-{
- /* Various compile time checks on mpfr_random_deviate_t */
-
- /* Check that the h field of a mpfr_random_deviate_t can hold W bits */
- MPFR_STAT_STATIC_ASSERT (W > 0 && W <= sizeof (unsigned long) * CHAR_BIT);
-
- /* Check mpfr_random_size_t can hold 32 bits and a mpfr_uprec_t. This
- * ensures that max(mpfr_random_size_t) exceeds MPFR_PREC_MAX by at least
- * 2^31 because mpfr_prec_t is a signed version of mpfr_uprec_t. This allows
- * random deviates with many leading zeros in the fraction to be handled
- * correctly. */
- MPFR_STAT_STATIC_ASSERT (sizeof (mpfr_random_size_t) * CHAR_BIT >= 32 &&
- sizeof (mpfr_random_size_t) >=
- sizeof (mpfr_uprec_t));
-
- /* Finally, at run time, check that k is not too big. e is set to ceil(k/W)*W
- * and we require that this allows x->e + 1 in random_deviate_leading_bit to
- * be computed without overflow. */
- MPFR_ASSERTN (k <= (mpfr_random_size_t)(-((int) W + 1)));
-
- /* if t is non-null, it is used as a temporary */
- if (x->e >= k)
- return;
-
- if (x->e == 0)
- {
- x->h = gmp_urandomb_ui (r, W); /* Generate the high fraction */
- x->e = W;
- if (x->e >= k)
- return; /* Maybe that's it? */
- }
-
- if (t)
- {
- /* passed a mpz_t so compute needed bits in one call to mpz_urandomb */
- k = ((k + (W-1)) / W) * W; /* Round up to multiple of W */
- k -= x->e; /* The number of new bits */
- mpz_urandomb (x->e == W ? x->f : t, r, k); /* Copy directly to x->f? */
- if (x->e > W)
- {
- mpz_mul_2exp (x->f, x->f, k);
- mpz_add (x->f, x->f, t);
- }
- x->e += k;
- }
- else
- {
- /* no mpz_t so compute the bits W at a time via gmp_urandomb_ui */
- while (x->e < k)
- {
- unsigned long w = gmp_urandomb_ui (r, W);
- if (x->e == W)
- mpz_set_ui (x->f, w);
- else
- {
- mpz_mul_2exp (x->f, x->f, W);
- mpz_add_ui (x->f, x->f, w);
- }
- x->e += W;
- }
- }
-}
-
-#ifndef MPFR_LONG_WITHIN_LIMB /* a long does not fit in a mp_limb_t */
-/*
- * return index [0..127] of highest bit set. Return 0 if x = 1, 2 if x = 4,
- * etc. Assume x > 0. (From Algorithms for programmers by Joerg Arndt.)
- */
-static int
-highest_bit_idx (unsigned long x)
-{
- unsigned long y;
- int r = 0;
-
- MPFR_ASSERTD(x > 0);
- MPFR_STAT_STATIC_ASSERT (sizeof (unsigned long) * CHAR_BIT <= 128);
-
- /* A compiler with VRP (like GCC) will optimize and not generate any code
- for the following lines if unsigned long has at most 64 values bits. */
- y = ((x >> 16) >> 24) >> 24; /* portable x >> 64 */
- if (y != 0)
- {
- x = y;
- r += 64;
- }
-
- if (x & ~0xffffffffUL) { x >>= 16; x >>= 16; r +=32; }
- if (x & 0xffff0000UL) { x >>= 16; r += 16; }
- if (x & 0x0000ff00UL) { x >>= 8; r += 8; }
- if (x & 0x000000f0UL) { x >>= 4; r += 4; }
- if (x & 0x0000000cUL) { x >>= 2; r += 2; }
- if (x & 0x00000002UL) { r += 1; }
- return r;
-}
-#else /* a long fits in a mp_limb_t */
-/*
- * return index [0..63] of highest bit set. Assume x > 0.
- * Return 0 if x = 1, 63 is if x = ~0 (for 64-bit unsigned long).
- * See alternate code above too.
- */
-static int
-highest_bit_idx (unsigned long x)
-{
- int cnt;
-
- MPFR_ASSERTD(x > 0);
- count_leading_zeros (cnt, (mp_limb_t) x);
- MPFR_ASSERTD (cnt <= GMP_NUMB_BITS - 1);
- return GMP_NUMB_BITS - 1 - cnt;
-}
-#endif /* MPFR_LONG_WITHIN_LIMB */
-
-/* return position of leading bit, counting from 1 */
-static mpfr_random_size_t
-random_deviate_leading_bit (mpfr_random_deviate_t x, gmp_randstate_t r)
-{
- mpfr_random_size_t l;
- random_deviate_generate (x, W, r, 0);
- if (x->h)
- return W - highest_bit_idx (x->h);
- random_deviate_generate (x, 2 * W, r, 0);
- while (mpz_sgn (x->f) == 0)
- random_deviate_generate (x, x->e + 1, r, 0);
- l = x->e + 1 - mpz_sizeinbase (x->f, 2);
- /* Guard against a ridiculously long string of leading zeros in the fraction;
- * probability of this happening is 2^(-2^31). In particular ensure that
- * p + 1 + l in mpfr_random_deviate_value doesn't overflow with p =
- * MPFR_PREC_MAX. */
- MPFR_ASSERTN (l + 1 < (mpfr_random_size_t)(-MPFR_PREC_MAX));
- return l;
-}
-
-/* return kth bit of fraction, representing 2^-k */
-int
-mpfr_random_deviate_tstbit (mpfr_random_deviate_t x, mpfr_random_size_t k,
- gmp_randstate_t r)
-{
- if (k == 0)
- return 0;
- random_deviate_generate (x, k, r, 0);
- if (k <= W)
- return (x->h >> (W - k)) & 1UL;
- return mpz_tstbit (x->f, x->e - k);
-}
-
-/* compare two random deviates, x < y */
-int
-mpfr_random_deviate_less (mpfr_random_deviate_t x, mpfr_random_deviate_t y,
- gmp_randstate_t r)
-{
- mpfr_random_size_t k = 1;
-
- if (x == y)
- return 0;
- random_deviate_generate (x, W, r, 0);
- random_deviate_generate (y, W, r, 0);
- if (x->h != y->h)
- return x->h < y->h; /* Compare the high fractions */
- k += W;
- for (; ; ++k)
- { /* Compare the rest of the fraction bit by bit */
- int a = mpfr_random_deviate_tstbit (x, k, r);
- int b = mpfr_random_deviate_tstbit (y, k, r);
- if (a != b)
- return a < b;
- }
-}
-
-/* set mpfr_t z = (neg ? -1 : 1) * (n + x) */
-int
-mpfr_random_deviate_value (int neg, unsigned long n,
- mpfr_random_deviate_t x, mpfr_t z,
- gmp_randstate_t r, mpfr_rnd_t rnd)
-{
- /* r is used to add as many bits as necessary to match the precision of z */
- int s;
- mpfr_random_size_t l; /* The leading bit is 2^(s*l) */
- mpfr_random_size_t p = mpfr_get_prec (z); /* Number of bits in result */
- mpz_t t;
- int inex;
-
- if (n == 0)
- {
- s = -1;
- l = random_deviate_leading_bit (x, r); /* l > 0 */
- }
- else
- {
- s = 1;
- l = highest_bit_idx (n); /* l >= 0 */
- }
-
- /*
- * Leading bit is 2^(s*l); thus the trailing bit in result is 2^(s*l-p+1) =
- * 2^-(p-1-s*l). For the sake of illustration, take l = 0 and p = 4, thus
- * bits through the 1/8 position need to be generated; assume that these bits
- * are 1.010 = 10/8 which represents a deviate in the range (10,11)/8.
- *
- * If the rounding mode is one of RNDZ, RNDU, RNDD, RNDA, we add a 1 bit to
- * the result to give 1.0101 = (10+1/2)/8. When this is converted to a MPFR
- * the result is rounded to 10/8, 11/8, 10/8, 11/8, respectively, and the
- * inexact flag is set to -1, 1, -1, 1.
- *
- * If the rounding mode is RNDN, an additional random bit must be generated
- * to determine if the result is in (10,10+1/2)/8 or (10+1/2,11)/8. Assume
- * that this random bit is 0, so the result is 1.0100 = (10+0/2)/8. Then an
- * additional 1 bit is added to give 1.010101 = (10+1/4)/8. This last bit
- * avoids the "round ties to even rule" (because there are no ties) and sets
- * the inexact flag so that the result is 10/8 with the inexact flag = 1.
- *
- * Here we always generate at least 2 additional random bits, so that bit
- * position 2^-(p+1-s*l) is generated. (The result often contains more
- * random bits than this because random bits are added in batches of W and
- * because additional bits may have been required in the process of
- * generating the random deviate.) The integer and all the bits in the
- * fraction are then copied into an mpz, the least significant bit is
- * unconditionally set to 1, the sign is set, and the result together with
- * the exponent -x->e is used to generate an mpfr using mpfr_set_z_2exp.
- *
- * If random bits were very expensive, we would only need to generate to the
- * 2^-(p-1-s*l) bit (no extra bits) for the RNDZ, RNDU, RNDD, RNDA modes and
- * to the 2^-(p-s*l) bit (1 extra bit) for RNDN. By always generating 2 bits
- * we save on some bit shuffling when formed the mpz to be converted to an
- * mpfr. The implementation of the RandomNumber class in RandomLib
- * illustrates the more parsimonious approach (which was taken to allow
- * accurate counts of the number of random digits to be made).
- */
- mpz_init (t);
- /*
- * This is the only call to random_deviate_generate where a mpz_t is passed
- * (because an arbitrarily large number of bits may need to be generated).
- */
- if ((s > 0 && p + 1 > l) ||
- (s < 0 && p + 1 + l > 0))
- random_deviate_generate (x, s > 0 ? p + 1 - l : p + 1 + l, r, t);
- if (n == 0)
- {
- /* Since the minimum prec is 2 we know that x->h has been generated. */
- mpz_set_ui (t, x->h); /* Set high fraction */
- }
- else
- {
- mpz_set_ui (t, n); /* The integer part */
- if (x->e > 0)
- {
- mpz_mul_2exp (t, t, W); /* Shift to allow for high fraction */
- mpz_add_ui (t, t, x->h); /* Add high fraction */
- }
- }
- if (x->e > W)
- {
- mpz_mul_2exp (t, t, x->e - W); /* Shift to allow for low fraction */
- mpz_add (t, t, x->f); /* Add low fraction */
- }
- /*
- * We could trim off any excess bits here by shifting rightward. This is an
- * unnecessary complication.
- */
- mpz_setbit (t, 0); /* Set the trailing bit so result is always inexact */
- if (neg)
- mpz_neg (t, t);
- /* Is -x->e representable as a mpfr_exp_t? */
- MPFR_ASSERTN (x->e <= (mpfr_uexp_t)(-1) >> 1);
- /*
- * Let mpfr_set_z_2exp do all the work of rounding to the requested
- * precision, setting overflow/underflow flags, and returning the right
- * inexact value.
- */
- inex = mpfr_set_z_2exp (z, t, -x->e, rnd);
- mpz_clear (t);
- return inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/random_deviate.h b/Build/source/libs/mpfr/mpfr-src/src/random_deviate.h
deleted file mode 100644
index fe924623619..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/random_deviate.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Declarations of random_deviate routines for mpfr_erandom and mpfr_nrandom.
-
-Copyright 2013-2020 Free Software Foundation, Inc.
-Contributed by Charles Karney <charles@karney.com>, SRI International.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#if !defined(MPFR_RANDOM_DEVIATE_H)
-#define MPFR_RANDOM_DEVIATE_H 1
-
-#include "mpfr-impl.h"
-
-/* This should be an unsigned type with a width of at least 32 and capable of
- * representing at least 2*MPFR_PREC_MAX. This is used to count the bits in
- * the fraction of a mpfr_random_deviate_t. See the checks made on this type
- * in random_deviate_generate. */
-typedef unsigned long mpfr_random_size_t;
-
-typedef struct {
- mpfr_random_size_t e; /* total number of bits in the fraction */
- unsigned long h; /* the high W bits of the fraction */
- mpz_t f; /* the rest of the fraction */
-} __mpfr_random_deviate_struct;
-
-typedef __mpfr_random_deviate_struct mpfr_random_deviate_t[1];
-typedef __mpfr_random_deviate_struct *mpfr_random_deviate_ptr;
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* allocate and set to (0,1) */
-__MPFR_DECLSPEC void
- mpfr_random_deviate_init (mpfr_random_deviate_ptr);
-
-/* reset to (0,1) */
-__MPFR_DECLSPEC void
- mpfr_random_deviate_reset (mpfr_random_deviate_ptr);
-
-/* deallocate */
-__MPFR_DECLSPEC void
- mpfr_random_deviate_clear (mpfr_random_deviate_ptr);
-
-/* swap two random deviates */
-__MPFR_DECLSPEC void
- mpfr_random_deviate_swap (mpfr_random_deviate_ptr,
- mpfr_random_deviate_ptr);
-
-/* return kth bit of fraction, representing 2^-k */
-__MPFR_DECLSPEC int
- mpfr_random_deviate_tstbit (mpfr_random_deviate_ptr,
- mpfr_random_size_t,
- gmp_randstate_t);
-
-/* compare two random deviates, x < y */
-__MPFR_DECLSPEC int
- mpfr_random_deviate_less (mpfr_random_deviate_ptr,
- mpfr_random_deviate_ptr,
- gmp_randstate_t);
-
-/* set mpfr_t z = (neg ? -1 : 1) * (n + x) */
-__MPFR_DECLSPEC int
- mpfr_random_deviate_value (int, unsigned long,
- mpfr_random_deviate_ptr, mpfr_t,
- gmp_randstate_t, mpfr_rnd_t);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/rec_sqrt.c b/Build/source/libs/mpfr/mpfr-src/src/rec_sqrt.c
deleted file mode 100644
index a95d3caa548..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/rec_sqrt.c
+++ /dev/null
@@ -1,575 +0,0 @@
-/* mpfr_rec_sqrt -- inverse square root
-
-Copyright 2008-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H /* for umul_ppmm */
-#include "mpfr-impl.h"
-
-#define LIMB_SIZE(x) ((((x)-1)>>MPFR_LOG2_GMP_NUMB_BITS) + 1)
-
-#define MPFR_COM_N(x,y,n) \
- do \
- { \
- mp_size_t i; \
- for (i = 0; i < n; i++) \
- *((x)+i) = ~*((y)+i); \
- } \
- while (0)
-
-/* Put in X a p-bit approximation of 1/sqrt(A),
- where X = {x, n}/B^n, n = ceil(p/GMP_NUMB_BITS),
- A = 2^(1+as)*{a, an}/B^an, as is 0 or 1, an = ceil(ap/GMP_NUMB_BITS),
- where B = 2^GMP_NUMB_BITS.
-
- We have 1 <= A < 4 and 1/2 <= X < 1.
-
- The error in the approximate result with respect to the true
- value 1/sqrt(A) is bounded by 1 ulp(X), i.e., 2^{-p} since 1/2 <= X < 1.
-
- Note: x and a are left-aligned, i.e., the most significant bit of
- a[an-1] is set, and so is the most significant bit of the output x[n-1].
-
- If p is not a multiple of GMP_NUMB_BITS, the extra low bits of the input
- A are taken into account to compute the approximation of 1/sqrt(A), but
- whether or not they are zero, the error between X and 1/sqrt(A) is bounded
- by 1 ulp(X) [in precision p].
- The extra low bits of the output X (if p is not a multiple of GMP_NUMB_BITS)
- are set to 0.
-
- Assumptions:
- (1) A should be normalized, i.e., the most significant bit of a[an-1]
- should be 1. If as=0, we have 1 <= A < 2; if as=1, we have 2 <= A < 4.
- (2) p >= 12
- (3) {a, an} and {x, n} should not overlap
- (4) GMP_NUMB_BITS >= 12 and is even
-
- Note: this routine is much more efficient when ap is small compared to p,
- including the case where ap <= GMP_NUMB_BITS, thus it can be used to
- implement an efficient mpfr_rec_sqrt_ui function.
-
- References:
- [1] Modern Computer Algebra, Richard Brent and Paul Zimmermann,
- https://members.loria.fr/PZimmermann/mca/pub226.html
-*/
-static void
-mpfr_mpn_rec_sqrt (mpfr_limb_ptr x, mpfr_prec_t p,
- mpfr_limb_srcptr a, mpfr_prec_t ap, int as)
-
-{
- /* the following T1 and T2 are bipartite tables giving initial
- approximation for the inverse square root, with 13-bit input split in
- 5+4+4, and 11-bit output. More precisely, if 2048 <= i < 8192,
- with i = a*2^8 + b*2^4 + c, we use for approximation of
- 2048/sqrt(i/2048) the value x = T1[16*(a-8)+b] + T2[16*(a-8)+c].
- The largest error is obtained for i = 2054, where x = 2044,
- and 2048/sqrt(i/2048) = 2045.006576...
- */
- static short int T1[384] = {
-2040, 2033, 2025, 2017, 2009, 2002, 1994, 1987, 1980, 1972, 1965, 1958, 1951,
-1944, 1938, 1931, /* a=8 */
-1925, 1918, 1912, 1905, 1899, 1892, 1886, 1880, 1874, 1867, 1861, 1855, 1849,
-1844, 1838, 1832, /* a=9 */
-1827, 1821, 1815, 1810, 1804, 1799, 1793, 1788, 1783, 1777, 1772, 1767, 1762,
-1757, 1752, 1747, /* a=10 */
-1742, 1737, 1733, 1728, 1723, 1718, 1713, 1709, 1704, 1699, 1695, 1690, 1686,
-1681, 1677, 1673, /* a=11 */
-1669, 1664, 1660, 1656, 1652, 1647, 1643, 1639, 1635, 1631, 1627, 1623, 1619,
-1615, 1611, 1607, /* a=12 */
-1603, 1600, 1596, 1592, 1588, 1585, 1581, 1577, 1574, 1570, 1566, 1563, 1559,
-1556, 1552, 1549, /* a=13 */
-1545, 1542, 1538, 1535, 1532, 1528, 1525, 1522, 1518, 1515, 1512, 1509, 1505,
-1502, 1499, 1496, /* a=14 */
-1493, 1490, 1487, 1484, 1481, 1478, 1475, 1472, 1469, 1466, 1463, 1460, 1457,
-1454, 1451, 1449, /* a=15 */
-1446, 1443, 1440, 1438, 1435, 1432, 1429, 1427, 1424, 1421, 1419, 1416, 1413,
-1411, 1408, 1405, /* a=16 */
-1403, 1400, 1398, 1395, 1393, 1390, 1388, 1385, 1383, 1380, 1378, 1375, 1373,
-1371, 1368, 1366, /* a=17 */
-1363, 1360, 1358, 1356, 1353, 1351, 1349, 1346, 1344, 1342, 1340, 1337, 1335,
-1333, 1331, 1329, /* a=18 */
-1327, 1325, 1323, 1321, 1319, 1316, 1314, 1312, 1310, 1308, 1306, 1304, 1302,
-1300, 1298, 1296, /* a=19 */
-1294, 1292, 1290, 1288, 1286, 1284, 1282, 1280, 1278, 1276, 1274, 1272, 1270,
-1268, 1266, 1265, /* a=20 */
-1263, 1261, 1259, 1257, 1255, 1253, 1251, 1250, 1248, 1246, 1244, 1242, 1241,
-1239, 1237, 1235, /* a=21 */
-1234, 1232, 1230, 1229, 1227, 1225, 1223, 1222, 1220, 1218, 1217, 1215, 1213,
-1212, 1210, 1208, /* a=22 */
-1206, 1204, 1203, 1201, 1199, 1198, 1196, 1195, 1193, 1191, 1190, 1188, 1187,
-1185, 1184, 1182, /* a=23 */
-1181, 1180, 1178, 1177, 1175, 1174, 1172, 1171, 1169, 1168, 1166, 1165, 1163,
-1162, 1160, 1159, /* a=24 */
-1157, 1156, 1154, 1153, 1151, 1150, 1149, 1147, 1146, 1144, 1143, 1142, 1140,
-1139, 1137, 1136, /* a=25 */
-1135, 1133, 1132, 1131, 1129, 1128, 1127, 1125, 1124, 1123, 1121, 1120, 1119,
-1117, 1116, 1115, /* a=26 */
-1114, 1113, 1111, 1110, 1109, 1108, 1106, 1105, 1104, 1103, 1101, 1100, 1099,
-1098, 1096, 1095, /* a=27 */
-1093, 1092, 1091, 1090, 1089, 1087, 1086, 1085, 1084, 1083, 1081, 1080, 1079,
-1078, 1077, 1076, /* a=28 */
-1075, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1065, 1064, 1063, 1062, 1061,
-1060, 1059, 1058, /* a=29 */
-1057, 1056, 1055, 1054, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044,
-1043, 1042, 1041, /* a=30 */
-1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028,
-1027, 1026, 1025 /* a=31 */
-};
- static unsigned char T2[384] = {
- 7, 7, 6, 6, 5, 5, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, /* a=8 */
- 6, 5, 5, 5, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 0, 0, /* a=9 */
- 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, /* a=10 */
- 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, /* a=11 */
- 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, /* a=12 */
- 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* a=13 */
- 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, /* a=14 */
- 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* a=15 */
- 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* a=16 */
- 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* a=17 */
- 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, /* a=18 */
- 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* a=19 */
- 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* a=20 */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* a=21 */
- 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a=22 */
- 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* a=23 */
- 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a=24 */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* a=25 */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* a=26 */
- 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a=27 */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* a=28 */
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* a=29 */
- 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a=30 */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* a=31 */
-};
- mp_size_t n = LIMB_SIZE(p); /* number of limbs of X */
- mp_size_t an = LIMB_SIZE(ap); /* number of limbs of A */
-
- /* A should be normalized */
- MPFR_ASSERTD((a[an - 1] & MPFR_LIMB_HIGHBIT) != 0);
- /* We should have enough bits in one limb and GMP_NUMB_BITS should be even.
- Since that does not depend on MPFR, we always check this. */
- MPFR_STAT_STATIC_ASSERT ((GMP_NUMB_BITS & 1) == 0);
- /* {a, an} and {x, n} should not overlap */
- MPFR_ASSERTD((a + an <= x) || (x + n <= a));
- MPFR_ASSERTD(p >= 11);
-
- if (MPFR_UNLIKELY(an > n)) /* we can cut the input to n limbs */
- {
- a += an - n;
- an = n;
- }
-
- if (p == 11) /* should happen only from recursive calls */
- {
- unsigned long i, ab, ac;
- unsigned int t;
-
- /* take the 12+as most significant bits of A */
-#if GMP_NUMB_BITS >= 16
- i = a[an - 1] >> (GMP_NUMB_BITS - (12 + as));
-#else
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 8);
- {
- unsigned int a12 = a[an - 1] << 8;
- if (an >= 2)
- a12 |= a[an - 2];
- MPFR_ASSERTN(GMP_NUMB_BITS >= 4 + as);
- i = a12 >> (GMP_NUMB_BITS - (4 + as));
- }
-#endif
- /* if one wants faithful rounding for p=11, replace #if 0 by #if 1 */
- ab = i >> 4;
- ac = (ab & 0x3F0) | (i & 0x0F);
- t = T1[ab - 0x80] + T2[ac - 0x80]; /* fits on 16 bits */
-#if GMP_NUMB_BITS >= 16
- /* x has only one limb */
- x[0] = (mp_limb_t) t << (GMP_NUMB_BITS - p);
-#else
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 8);
- MPFR_ASSERTD (1024 <= t && t <= 2047);
- x[1] = t >> 3; /* 128 <= x[1] <= 255 */
- x[0] = MPFR_LIMB_LSHIFT(t, 5);
-#endif
- }
- else /* p >= 12 */
- {
- mpfr_prec_t h, pl;
- mpfr_limb_ptr r, s, t, u;
- mp_size_t xn, rn, th, ln, tn, sn, ahn, un;
- mp_limb_t neg, cy, cu;
- MPFR_TMP_DECL(marker);
-
- /* compared to Algorithm 3.9 of [1], we have {a, an} = A/2 if as=0,
- and A/4 if as=1. */
-
- /* h = max(11, ceil((p+3)/2)) is the bitsize of the recursive call */
- h = (p < 18) ? 11 : (p >> 1) + 2;
-
- xn = LIMB_SIZE(h); /* limb size of the recursive Xh */
- rn = LIMB_SIZE(2 * h); /* a priori limb size of Xh^2 */
- ln = n - xn; /* remaining limbs to be computed */
-
- /* Since |Xh - A^{-1/2}| <= 2^{-h}, then by multiplying by Xh + A^{-1/2}
- we get |Xh^2 - 1/A| <= 2^{-h+1}, thus |A*Xh^2 - 1| <= 2^{-h+3},
- thus the h-3 most significant bits of t should be zero,
- which is in fact h+1+as-3 because of the normalization of A.
- This corresponds to th=floor((h+1+as-3)/GMP_NUMB_BITS) limbs.
-
- More precisely we have |Xh^2 - 1/A| <= 2^{-h} * (Xh + A^{-1/2})
- <= 2^{-h} * (2 A^{-1/2} + 2^{-h}) <= 2.001 * 2^{-h} * A^{-1/2}
- since A < 4 and h >= 11, thus
- |A*Xh^2 - 1| <= 2.001 * 2^{-h} * A^{1/2} <= 1.001 * 2^{2-h}.
- This is sufficient to prove that the upper limb of {t,tn} below is
- less that 0.501 * 2^GMP_NUMB_BITS, thus cu = 0 below.
- */
- th = (h + 1 + as - 3) >> MPFR_LOG2_GMP_NUMB_BITS;
- tn = LIMB_SIZE(2 * h + 1 + as);
-
- /* we need h+1+as bits of a */
- ahn = LIMB_SIZE(h + 1 + as); /* number of high limbs of A
- needed for the recursive call */
- if (MPFR_UNLIKELY(ahn > an))
- ahn = an;
- mpfr_mpn_rec_sqrt (x + ln, h, a + an - ahn, ahn * GMP_NUMB_BITS, as);
- /* the most h significant bits of X are set, X has ceil(h/GMP_NUMB_BITS)
- limbs, the low (-h) % GMP_NUMB_BITS bits are zero */
-
- /* compared to Algorithm 3.9 of [1], we have {x+ln,xn} = X_h */
-
- MPFR_TMP_MARK (marker);
- /* first step: square X in r, result is exact */
- un = xn + (tn - th);
- /* We use the same temporary buffer to store r and u: r needs 2*xn
- limbs where u needs xn+(tn-th) limbs. Since tn can store at least
- 2h bits, and th at most h bits, then tn-th can store at least h bits,
- thus tn - th >= xn, and reserving the space for u is enough. */
- MPFR_ASSERTD(2 * xn <= un);
- u = r = MPFR_TMP_LIMBS_ALLOC (un);
- if (2 * h <= GMP_NUMB_BITS) /* xn=rn=1, and since p <= 2h-3, n=1,
- thus ln = 0 */
- {
- MPFR_ASSERTD(ln == 0);
- cy = x[0] >> (GMP_NUMB_BITS >> 1);
- r ++;
- r[0] = cy * cy;
- }
- else if (xn == 1) /* xn=1, rn=2 */
- umul_ppmm(r[1], r[0], x[ln], x[ln]);
- else
- {
- mpn_mul_n (r, x + ln, x + ln, xn);
- /* we have {r, 2*xn} = X_h^2 */
- if (rn < 2 * xn)
- r ++;
- }
- /* now the 2h most significant bits of {r, rn} contains X^2, r has rn
- limbs, and the low (-2h) % GMP_NUMB_BITS bits are zero */
-
- /* Second step: s <- A * (r^2), and truncate the low ap bits,
- i.e., at weight 2^{-2h} (s is aligned to the low significant bits)
- */
- sn = an + rn;
- s = MPFR_TMP_LIMBS_ALLOC (sn);
- if (rn == 1) /* rn=1 implies n=1, since rn*GMP_NUMB_BITS >= 2h,
- and 2h >= p+3 */
- {
- /* necessarily p <= GMP_NUMB_BITS-3: we can ignore the two low
- bits from A */
- /* since n=1, and we ensured an <= n, we also have an=1 */
- MPFR_ASSERTD(an == 1);
- umul_ppmm (s[1], s[0], r[0], a[0]);
- }
- else
- {
- /* we have p <= n * GMP_NUMB_BITS
- 2h <= rn * GMP_NUMB_BITS with p+3 <= 2h <= p+4
- thus n <= rn <= n + 1 */
- MPFR_ASSERTD(rn <= n + 1);
- /* since we ensured an <= n, we have an <= rn */
- MPFR_ASSERTD(an <= rn);
- mpn_mul (s, r, rn, a, an);
- /* s should be near B^sn/2^(1+as), thus s[sn-1] is either
- 100000... or 011111... if as=0, or
- 010000... or 001111... if as=1.
- We ignore the bits of s after the first 2h+1+as ones.
- We have {s, rn+an} = A*X_h^2/2 if as=0, A*X_h^2/4 if as=1. */
- }
-
- /* We ignore the bits of s after the first 2h+1+as ones: s has rn + an
- limbs, where rn = LIMBS(2h), an=LIMBS(a), and tn = LIMBS(2h+1+as). */
- t = s + sn - tn; /* pointer to low limb of the high part of t */
- /* the upper h-3 bits of 1-t should be zero,
- where 1 corresponds to the most significant bit of t[tn-1] if as=0,
- and to the 2nd most significant bit of t[tn-1] if as=1 */
-
- /* compute t <- 1 - t, which is B^tn - {t, tn+1},
- with rounding toward -Inf, i.e., rounding the input t toward +Inf.
- We could only modify the low tn - th limbs from t, but it gives only
- a small speedup, and would make the code more complex.
- */
- neg = t[tn - 1] & (MPFR_LIMB_HIGHBIT >> as);
- if (neg == 0) /* Ax^2 < 1: we have t = th + eps, where 0 <= eps < ulp(th)
- is the part truncated above, thus 1 - t rounded to -Inf
- is 1 - th - ulp(th) */
- {
- /* since the 1+as most significant bits of t are zero, set them
- to 1 before the one-complement */
- t[tn - 1] |= MPFR_LIMB_HIGHBIT | (MPFR_LIMB_HIGHBIT >> as);
- MPFR_COM_N (t, t, tn);
- /* we should add 1 here to get 1-th complement, and subtract 1 for
- -ulp(th), thus we do nothing */
- }
- else /* negative case: we want 1 - t rounded toward -Inf, i.e.,
- th + eps rounded toward +Inf, which is th + ulp(th):
- we discard the bit corresponding to 1,
- and we add 1 to the least significant bit of t */
- {
- t[tn - 1] ^= neg;
- mpn_add_1 (t, t, tn, 1);
- }
- tn -= th; /* we know at least th = floor((h+1+as-3)/GMP_NUMB_LIMBS) of
- the high limbs of {t, tn} are zero */
-
- /* tn = rn - th, where rn * GMP_NUMB_BITS >= 2*h and
- th * GMP_NUMB_BITS <= h+1+as-3, thus tn > 0 */
- MPFR_ASSERTD(tn > 0);
-
- /* u <- x * t, where {t, tn} contains at least h+3 bits,
- and {x, xn} contains h bits, thus tn >= xn */
- MPFR_ASSERTD(tn >= xn);
- if (tn == 1) /* necessarily xn=1 */
- umul_ppmm (u[1], u[0], t[0], x[ln]);
- else
- mpn_mul (u, t, tn, x + ln, xn);
-
- /* we have {u, tn+xn} = T_l X_h/2 if as=0, T_l X_h/4 if as=1 */
-
- /* we have already discarded the upper th high limbs of t, thus we only
- have to consider the upper n - th limbs of u */
- un = n - th; /* un cannot be zero, since p <= n*GMP_NUMB_BITS,
- h = ceil((p+3)/2) <= (p+4)/2,
- th*GMP_NUMB_BITS <= h-1 <= p/2+1,
- thus (n-th)*GMP_NUMB_BITS >= p/2-1.
- */
- MPFR_ASSERTD(un > 0);
- u += (tn + xn) - un; /* xn + tn - un = xn + (original_tn - th) - (n - th)
- = xn + original_tn - n
- = LIMBS(h) + LIMBS(2h+1+as) - LIMBS(p) > 0
- since 2h >= p+3 */
- MPFR_ASSERTD(tn + xn > un); /* will allow to access u[-1] below */
-
- /* In case as=0, u contains |x*(1-Ax^2)/2|, which is exactly what we
- need to add or subtract.
- In case as=1, u contains |x*(1-Ax^2)/4|, thus we need to multiply
- u by 2. */
-
- if (as == 1)
- /* shift on un+1 limbs to get most significant bit of u[-1] into
- least significant bit of u[0] */
- mpn_lshift (u - 1, u - 1, un + 1, 1);
-
- /* now {u,un} represents U / 2 from Algorithm 3.9 */
-
- pl = n * GMP_NUMB_BITS - p; /* low bits from x */
- /* We want that the low pl bits are zero after rounding to nearest,
- thus we round u to nearest at bit pl-1 of u[0] */
- if (pl > 0)
- {
- cu = mpn_add_1 (u, u, un,
- u[0] & MPFR_LIMB_LSHIFT(MPFR_LIMB_ONE, pl - 1));
- /* mask bits 0..pl-1 of u[0] */
- u[0] &= MPFR_LIMB(~MPFR_LIMB_MASK(pl));
- }
- else /* round bit is in u[-1] */
- cu = mpn_add_1 (u, u, un, u[-1] >> (GMP_NUMB_BITS - 1));
- MPFR_ASSERTN(cu == 0);
-
- /* We already have filled {x + ln, xn = n - ln}, and we want to add or
- subtract {u, un} at position x.
- un = n - th, where th contains <= h+1+as-3<=h-1 bits
- ln = n - xn, where xn contains >= h bits
- thus un > ln.
- Warning: ln might be zero.
- */
- MPFR_ASSERTD(un > ln);
- /* we can have un = ln + 2, for example with GMP_NUMB_BITS=32 and
- p=62, as=0, then h=33, n=2, th=0, xn=2, thus un=2 and ln=0. */
- MPFR_ASSERTD(un == ln + 1 || un == ln + 2);
- /* the high un-ln limbs of u will overlap the low part of {x+ln,xn},
- we need to add or subtract the overlapping part {u + ln, un - ln} */
- /* Warning! th may be 0, in which case the mpn_add_1 and mpn_sub_1
- below (with size = th) mustn't be used. */
- if (neg == 0)
- {
- if (ln > 0)
- MPN_COPY (x, u, ln);
- cy = mpn_add (x + ln, x + ln, xn, u + ln, un - ln);
- /* cy is the carry at x + (ln + xn) = x + n */
- }
- else /* negative case */
- {
- /* subtract {u+ln, un-ln} from {x+ln,un} */
- cy = mpn_sub (x + ln, x + ln, xn, u + ln, un - ln);
- /* cy is the borrow at x + (ln + xn) = x + n */
-
- /* cy cannot be non-zero, since the most significant bit of Xh is 1,
- and the correction is bounded by 2^{-h+3} */
- MPFR_ASSERTD(cy == 0);
- if (ln > 0)
- {
- MPFR_COM_N (x, u, ln);
- /* we must add one for the 2-complement ... */
- cy = mpn_add_1 (x, x, n, MPFR_LIMB_ONE);
- /* ... and subtract 1 at x[ln], where n = ln + xn */
- cy -= mpn_sub_1 (x + ln, x + ln, xn, MPFR_LIMB_ONE);
- }
- }
-
- /* cy can be 1 when A=1, i.e., {a, n} = B^n. In that case we should
- have X = B^n, and setting X to 1-2^{-p} satisfies the error bound
- of 1 ulp. */
- if (MPFR_UNLIKELY(cy != 0))
- {
- cy -= mpn_sub_1 (x, x, n, MPFR_LIMB_ONE << pl);
- MPFR_ASSERTD(cy == 0);
- }
-
- MPFR_TMP_FREE (marker);
- }
-}
-
-int
-mpfr_rec_sqrt (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t rp, up, wp;
- mp_size_t rn, wn;
- int s, cy, inex;
- mpfr_limb_ptr x;
- MPFR_TMP_DECL(marker);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (u), mpfr_log_prec, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (r), mpfr_log_prec, r, inex));
-
- /* special values */
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(u)))
- {
- if (MPFR_IS_NAN(u))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_ZERO(u)) /* 1/sqrt(+0) = 1/sqrt(-0) = +Inf */
- {
- /* +0 or -0 */
- MPFR_SET_INF(r);
- MPFR_SET_POS(r);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0); /* Inf is exact */
- }
- else
- {
- MPFR_ASSERTD(MPFR_IS_INF(u));
- /* 1/sqrt(-Inf) = NAN */
- if (MPFR_IS_NEG(u))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- /* 1/sqrt(+Inf) = +0 */
- MPFR_SET_POS(r);
- MPFR_SET_ZERO(r);
- MPFR_RET(0);
- }
- }
-
- /* if u < 0, 1/sqrt(u) is NaN */
- if (MPFR_UNLIKELY(MPFR_IS_NEG(u)))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
-
- MPFR_SET_POS(r);
-
- rp = MPFR_PREC(r); /* output precision */
- up = MPFR_PREC(u); /* input precision */
- wp = rp + 11; /* initial working precision */
-
- /* Let u = U*2^e, where e = EXP(u), and 1/2 <= U < 1.
- If e is even, we compute an approximation of X of (4U)^{-1/2},
- and the result is X*2^(-(e-2)/2) [case s=1].
- If e is odd, we compute an approximation of X of (2U)^{-1/2},
- and the result is X*2^(-(e-1)/2) [case s=0]. */
-
- /* parity of the exponent of u */
- s = 1 - ((mpfr_uexp_t) MPFR_GET_EXP (u) & 1);
-
- rn = LIMB_SIZE(rp);
-
- /* for the first iteration, if rp + 11 fits into rn limbs, we round up
- up to a full limb to maximize the chance of rounding, while avoiding
- to allocate extra space */
- wp = rp + 11;
- if (wp < rn * GMP_NUMB_BITS)
- wp = rn * GMP_NUMB_BITS;
- for (;;)
- {
- MPFR_TMP_MARK (marker);
- wn = LIMB_SIZE(wp);
- if (r == u || wn > rn) /* out of place, i.e., we cannot write to r */
- x = MPFR_TMP_LIMBS_ALLOC (wn);
- else
- x = MPFR_MANT(r);
- mpfr_mpn_rec_sqrt (x, wp, MPFR_MANT(u), up, s);
- /* If the input was not truncated, the error is at most one ulp;
- if the input was truncated, the error is at most two ulps
- (see algorithms.tex). */
- if (MPFR_LIKELY (mpfr_round_p (x, wn, wp - (wp < up),
- rp + (rnd_mode == MPFR_RNDN))))
- break;
-
- /* We detect only now the exact case where u=2^(2e), to avoid
- slowing down the average case. This can happen only when the
- mantissa is exactly 1/2 and the exponent is odd. */
- if (s == 0 && mpfr_cmp_ui_2exp (u, 1, MPFR_EXP(u) - 1) == 0)
- {
- mpfr_prec_t pl = wn * GMP_NUMB_BITS - wp;
-
- /* we should have x=111...111 */
- mpn_add_1 (x, x, wn, MPFR_LIMB_ONE << pl);
- x[wn - 1] = MPFR_LIMB_HIGHBIT;
- s += 2;
- break; /* go through */
- }
- MPFR_TMP_FREE(marker);
-
- wp += GMP_NUMB_BITS;
- }
- cy = mpfr_round_raw (MPFR_MANT(r), x, wp, 0, rp, rnd_mode, &inex);
- MPFR_EXP(r) = - (MPFR_EXP(u) - 1 - s) / 2;
- if (MPFR_UNLIKELY(cy != 0))
- {
- MPFR_EXP(r) ++;
- MPFR_MANT(r)[rn - 1] = MPFR_LIMB_HIGHBIT;
- }
- MPFR_TMP_FREE(marker);
- return mpfr_check_range (r, inex, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/reldiff.c b/Build/source/libs/mpfr/mpfr-src/src/reldiff.c
deleted file mode 100644
index 9afd01608de..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/reldiff.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* mpfr_reldiff -- compute relative difference of two floating-point numbers.
-
-Copyright 2000-2001, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* reldiff(b, c) = abs(b-c)/b */
-void
-mpfr_reldiff (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_t b_copy;
-
- if (MPFR_ARE_SINGULAR (b, c))
- {
- if (MPFR_IS_NAN(b) || MPFR_IS_NAN(c))
- {
- MPFR_SET_NAN(a);
- return;
- }
- else if (MPFR_IS_INF(b))
- {
- if (MPFR_IS_INF (c) && (MPFR_SIGN (c) == MPFR_SIGN (b)))
- MPFR_SET_ZERO(a);
- else
- MPFR_SET_NAN(a);
- return;
- }
- else if (MPFR_IS_INF(c))
- {
- MPFR_SET_SAME_SIGN (a, b);
- MPFR_SET_INF (a);
- return;
- }
- else if (MPFR_IS_ZERO(b)) /* reldiff = abs(c)/c = sign(c) */
- {
- mpfr_set_si (a, MPFR_INT_SIGN (c), rnd_mode);
- return;
- }
- /* Fall through */
- }
-
- if (a == b)
- {
- mpfr_init2 (b_copy, MPFR_PREC(b));
- mpfr_set (b_copy, b, MPFR_RNDN);
- }
-
- mpfr_sub (a, b, c, rnd_mode);
- mpfr_abs (a, a, rnd_mode); /* for compatibility with MPF */
- mpfr_div (a, a, (a == b) ? b_copy : b, rnd_mode);
-
- if (a == b)
- mpfr_clear (b_copy);
-
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/rem1.c b/Build/source/libs/mpfr/mpfr-src/src/rem1.c
deleted file mode 100644
index 9e75e428798..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/rem1.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* mpfr_rem1 -- internal function
- mpfr_fmod -- compute the floating-point remainder of x/y
- mpfr_remquo and mpfr_remainder -- argument reduction functions
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* we return as many bits as we can, keeping just one bit for the sign */
-# define WANTED_BITS (sizeof(long) * CHAR_BIT - 1)
-
-/*
- rem1 works as follows:
- The first rounding mode rnd_q indicate if we are actually computing
- a fmod (MPFR_RNDZ) or a remainder/remquo (MPFR_RNDN).
-
- Let q = x/y rounded to an integer in the direction rnd_q.
- Put x - q*y in rem, rounded according to rnd.
- If quo is not null, the value stored in *quo has the sign of q,
- and agrees with q with the 2^n low order bits.
- In other words, *quo = q (mod 2^n) and *quo q >= 0.
- If rem is zero, then it has the sign of x.
- The returned 'int' is the inexact flag giving the place of rem wrt x - q*y.
-
- If x or y is NaN: *quo is undefined, rem is NaN.
- If x is Inf, whatever y: *quo is undefined, rem is NaN.
- If y is Inf, x not NaN nor Inf: *quo is 0, rem is x.
- If y is 0, whatever x: *quo is undefined, rem is NaN.
- If x is 0, whatever y (not NaN nor 0): *quo is 0, rem is x.
-
- Otherwise if x and y are neither NaN, Inf nor 0, q is always defined,
- thus *quo is.
- Since |x - q*y| <= y/2, no overflow is possible.
- Only an underflow is possible when y is very small.
- */
-
-static int
-mpfr_rem1 (mpfr_ptr rem, long *quo, mpfr_rnd_t rnd_q,
- mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd)
-{
- mpfr_exp_t ex, ey;
- int compare, inex, q_is_odd, sign, signx = MPFR_SIGN (x);
- mpz_t mx, my, r;
- int tiny = 0;
-
- MPFR_ASSERTD (rnd_q == MPFR_RNDN || rnd_q == MPFR_RNDZ);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x) || MPFR_IS_SINGULAR (y)))
- {
- if (MPFR_IS_NAN (x) || MPFR_IS_NAN (y) || MPFR_IS_INF (x)
- || MPFR_IS_ZERO (y))
- {
- /* for remquo, quo is undefined */
- MPFR_SET_NAN (rem);
- MPFR_RET_NAN;
- }
- else /* either y is Inf and x is 0 or non-special,
- or x is 0 and y is non-special,
- in both cases the quotient is zero. */
- {
- if (quo)
- *quo = 0;
- return mpfr_set (rem, x, rnd);
- }
- }
-
- /* now neither x nor y is NaN, Inf or zero */
-
- mpz_init (mx);
- mpz_init (my);
- mpz_init (r);
-
- ex = mpfr_get_z_2exp (mx, x); /* x = mx*2^ex */
- ey = mpfr_get_z_2exp (my, y); /* y = my*2^ey */
-
- /* to get rid of sign problems, we compute it separately:
- quo(-x,-y) = quo(x,y), rem(-x,-y) = -rem(x,y)
- quo(-x,y) = -quo(x,y), rem(-x,y) = -rem(x,y)
- thus quo = sign(x/y)*quo(|x|,|y|), rem = sign(x)*rem(|x|,|y|) */
- sign = (signx == MPFR_SIGN (y)) ? 1 : -1;
- mpz_abs (mx, mx);
- mpz_abs (my, my);
- q_is_odd = 0;
-
- /* Divide my by 2^k if possible to make operations mod my easier.
- Since my comes from a regular MPFR number, due to the constraints on the
- exponent and the precision, there can be no integer overflow below. */
- {
- mpfr_exp_t k = mpz_scan1 (my, 0);
- ey += k;
- mpz_fdiv_q_2exp (my, my, k);
- }
-
- if (ex <= ey)
- {
- /* q = x/y = mx/(my*2^(ey-ex)) */
-
- /* First detect cases where q=0, to avoid creating a huge number
- my*2^(ey-ex): if sx = mpz_sizeinbase (mx, 2) and sy =
- mpz_sizeinbase (my, 2), we have x < 2^(ex + sx) and
- y >= 2^(ey + sy - 1), thus if ex + sx <= ey + sy - 1
- the quotient is 0 */
- if (ex + (mpfr_exp_t) mpz_sizeinbase (mx, 2) <
- ey + (mpfr_exp_t) mpz_sizeinbase (my, 2))
- {
- tiny = 1;
- mpz_set (r, mx);
- mpz_set_ui (mx, 0);
- }
- else
- {
- mpz_mul_2exp (my, my, ey - ex); /* divide mx by my*2^(ey-ex) */
-
- /* since mx > 0 and my > 0, we can use mpz_tdiv_qr in all cases */
- mpz_tdiv_qr (mx, r, mx, my);
- /* 0 <= |r| <= |my|, r has the same sign as mx */
- }
-
- if (rnd_q == MPFR_RNDN)
- q_is_odd = mpz_tstbit (mx, 0);
- if (quo) /* mx is the quotient */
- {
- mpz_tdiv_r_2exp (mx, mx, WANTED_BITS);
- *quo = mpz_get_si (mx);
- }
- }
- else /* ex > ey */
- {
- if (quo) /* remquo case */
- /* for remquo, to get the low WANTED_BITS more bits of the quotient,
- we first compute R = X mod Y*2^WANTED_BITS, where X and Y are
- defined below. Then the low WANTED_BITS of the quotient are
- floor(R/Y). */
- mpz_mul_2exp (my, my, WANTED_BITS); /* 2^WANTED_BITS*Y */
-
- else if (rnd_q == MPFR_RNDN) /* remainder case */
- /* Let X = mx*2^(ex-ey) and Y = my. Then both X and Y are integers.
- Assume X = R mod Y, then x = X*2^ey = R*2^ey mod (Y*2^ey=y).
- To be able to perform the rounding, we need the least significant
- bit of the quotient, i.e., one more bit in the remainder,
- which is obtained by dividing by 2Y. */
- mpz_mul_2exp (my, my, 1); /* 2Y */
-
- /* Warning: up to GMP 6.2.0, mpz_powm_ui is not optimized when BASE^EXP
- has about the same size as MOD, in which case it should first compute
- BASE^EXP exactly, then reduce it modulo MOD:
- https://gmplib.org/list-archives/gmp-bugs/2020-February/004736.html
- Thus when 2^(ex-ey) is less than my^3, we use this algorithm. */
- if (ex - ey > 3 * mpz_sizeinbase (my, 2))
- {
- mpz_set_ui (r, 2);
- mpz_powm_ui (r, r, ex - ey, my); /* 2^(ex-ey) mod my */
- }
- else
- mpz_ui_pow_ui (r, 2, ex - ey);
- mpz_mul (r, r, mx);
- mpz_mod (r, r, my);
-
- if (quo) /* now 0 <= r < 2^WANTED_BITS*Y */
- {
- mpz_fdiv_q_2exp (my, my, WANTED_BITS); /* back to Y */
- mpz_tdiv_qr (mx, r, r, my);
- /* oldr = mx*my + newr */
- *quo = mpz_get_si (mx);
- q_is_odd = *quo & 1;
- }
- else if (rnd_q == MPFR_RNDN) /* now 0 <= r < 2Y in the remainder case */
- {
- mpz_fdiv_q_2exp (my, my, 1); /* back to Y */
- /* least significant bit of q */
- q_is_odd = mpz_cmpabs (r, my) >= 0;
- if (q_is_odd)
- mpz_sub (r, r, my);
- }
- /* now 0 <= |r| < |my|, and if needed,
- q_is_odd is the least significant bit of q */
- }
-
- if (mpz_cmp_ui (r, 0) == 0)
- {
- inex = mpfr_set_ui (rem, 0, MPFR_RNDN);
- /* take into account sign of x */
- if (signx < 0)
- mpfr_neg (rem, rem, MPFR_RNDN);
- }
- else
- {
- if (rnd_q == MPFR_RNDN)
- {
- /* FIXME: the comparison 2*r < my could be done more efficiently
- at the mpn level */
- mpz_mul_2exp (r, r, 1);
- /* if tiny=1, we should compare r with my*2^(ey-ex) */
- if (tiny)
- {
- if (ex + (mpfr_exp_t) mpz_sizeinbase (r, 2) <
- ey + (mpfr_exp_t) mpz_sizeinbase (my, 2))
- compare = 0; /* r*2^ex < my*2^ey */
- else
- {
- mpz_mul_2exp (my, my, ey - ex);
- compare = mpz_cmpabs (r, my);
- }
- }
- else
- compare = mpz_cmpabs (r, my);
- mpz_fdiv_q_2exp (r, r, 1);
- compare = ((compare > 0) ||
- ((rnd_q == MPFR_RNDN) && (compare == 0) && q_is_odd));
- /* if compare != 0, we need to subtract my to r, and add 1 to quo */
- if (compare)
- {
- mpz_sub (r, r, my);
- if (quo && (rnd_q == MPFR_RNDN))
- *quo += 1;
- }
- }
- /* take into account sign of x */
- if (signx < 0)
- mpz_neg (r, r);
- inex = mpfr_set_z_2exp (rem, r, ex > ey ? ey : ex, rnd);
- }
-
- if (quo)
- *quo *= sign;
-
- mpz_clear (mx);
- mpz_clear (my);
- mpz_clear (r);
-
- return inex;
-}
-
-int
-mpfr_remainder (mpfr_ptr rem, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd)
-{
- return mpfr_rem1 (rem, (long *) 0, MPFR_RNDN, x, y, rnd);
-}
-
-int
-mpfr_remquo (mpfr_ptr rem, long *quo,
- mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd)
-{
- return mpfr_rem1 (rem, quo, MPFR_RNDN, x, y, rnd);
-}
-
-int
-mpfr_fmod (mpfr_ptr rem, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd)
-{
- return mpfr_rem1 (rem, (long *) 0, MPFR_RNDZ, x, y, rnd);
-}
-
-int
-mpfr_fmodquo (mpfr_ptr rem, long *quo, mpfr_srcptr x, mpfr_srcptr y,
- mpfr_rnd_t rnd)
-{
- return mpfr_rem1 (rem, quo, MPFR_RNDZ, x, y, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/rint.c b/Build/source/libs/mpfr/mpfr-src/src/rint.c
deleted file mode 100644
index 199533568a0..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/rint.c
+++ /dev/null
@@ -1,477 +0,0 @@
-/* mpfr_rint -- Round to an integer.
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Merge the following mpfr_rint code with mpfr_round_raw_generic? */
-
-/* For all the round-to-integer functions, we don't need to extend the
- * exponent range. And it is better not to do so, so that we can test
- * the flag setting for intermediate overflow in the test suite without
- * involving huge non-integer numbers (thus in huge precision). This
- * should also be faster.
- *
- * We also need to be careful with the flags.
- */
-
-int
-mpfr_rint (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- int sign;
- int rnd_away;
- mpfr_exp_t exp;
-
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(u) ))
- {
- if (MPFR_IS_NAN(u))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- MPFR_SET_SAME_SIGN(r, u);
- if (MPFR_IS_INF(u))
- {
- MPFR_SET_INF(r);
- MPFR_RET(0); /* infinity is exact */
- }
- else /* now u is zero */
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(u));
- MPFR_SET_ZERO(r);
- MPFR_RET(0); /* zero is exact */
- }
- }
- MPFR_SET_SAME_SIGN (r, u); /* Does nothing if r==u */
-
- sign = MPFR_INT_SIGN (u);
- exp = MPFR_GET_EXP (u);
-
- rnd_away =
- rnd_mode == MPFR_RNDD ? sign < 0 :
- rnd_mode == MPFR_RNDU ? sign > 0 :
- rnd_mode == MPFR_RNDZ ? 0 :
- rnd_mode == MPFR_RNDA ? 1 :
- -1; /* round to nearest-even (RNDN) or nearest-away (RNDNA) */
-
- /* rnd_away:
- 1 if round away from zero,
- 0 if round to zero,
- -1 if not decided yet.
- */
-
- if (MPFR_UNLIKELY (exp <= 0)) /* 0 < |u| < 1 ==> round |u| to 0 or 1 */
- {
- /* Note: in the MPFR_RNDN mode, 0.5 must be rounded to 0. */
- if (rnd_away != 0 &&
- (rnd_away > 0 ||
- (exp == 0 && (rnd_mode == MPFR_RNDNA ||
- !mpfr_powerof2_raw (u)))))
- {
- /* The flags will correctly be set and overflow will correctly
- be handled by mpfr_set_si. */
- mpfr_set_si (r, sign, rnd_mode);
- MPFR_RET(sign > 0 ? 2 : -2);
- }
- else
- {
- MPFR_SET_ZERO(r); /* r = 0 */
- MPFR_RET(sign > 0 ? -2 : 2);
- }
- }
- else /* exp > 0, |u| >= 1 */
- {
- mp_limb_t *up, *rp;
- mp_size_t un, rn, ui;
- int sh, idiff;
- int uflags;
-
- /*
- * uflags will contain:
- * _ 0 if u is an integer representable in r,
- * _ 1 if u is an integer not representable in r,
- * _ 2 if u is not an integer.
- */
-
- up = MPFR_MANT(u);
- rp = MPFR_MANT(r);
-
- un = MPFR_LIMB_SIZE(u);
- rn = MPFR_LIMB_SIZE(r);
- MPFR_UNSIGNED_MINUS_MODULO (sh, MPFR_PREC (r));
-
- /* exp is in the current exponent range: obtained from the input. */
- MPFR_SET_EXP (r, exp); /* Does nothing if r==u */
-
- if ((exp - 1) / GMP_NUMB_BITS >= un)
- {
- ui = un;
- idiff = 0;
- uflags = 0; /* u is an integer, representable or not in r */
- }
- else
- {
- mp_size_t uj;
-
- ui = (exp - 1) / GMP_NUMB_BITS + 1; /* #limbs of the int part */
- MPFR_ASSERTD (un >= ui);
- uj = un - ui; /* lowest limb of the integer part */
- idiff = exp % GMP_NUMB_BITS; /* #int-part bits in up[uj] or 0 */
-
- uflags = idiff == 0 || MPFR_LIMB_LSHIFT(up[uj],idiff) == 0 ? 0 : 2;
- if (uflags == 0)
- while (uj > 0)
- if (up[--uj] != 0)
- {
- uflags = 2;
- break;
- }
- }
-
- if (ui > rn)
- {
- /* More limbs in the integer part of u than in r.
- Just round u with the precision of r. */
- MPFR_ASSERTD (rp != up && un > rn);
- MPN_COPY (rp, up + (un - rn), rn); /* r != u */
- if (rnd_away < 0)
- {
- /* This is a rounding to nearest mode (MPFR_RNDN or MPFR_RNDNA).
- Decide the rounding direction here. */
- if (rnd_mode == MPFR_RNDN &&
- (rp[0] & (MPFR_LIMB_ONE << sh)) == 0)
- { /* halfway cases rounded toward zero */
- mp_limb_t a, b;
- /* a: rounding bit and some of the following bits */
- /* b: boundary for a (weight of the rounding bit in a) */
- if (sh != 0)
- {
- a = rp[0] & ((MPFR_LIMB_ONE << sh) - 1);
- b = MPFR_LIMB_ONE << (sh - 1);
- }
- else
- {
- a = up[un - rn - 1];
- b = MPFR_LIMB_HIGHBIT;
- }
- rnd_away = a > b;
- if (a == b)
- {
- mp_size_t i;
- for (i = un - rn - 1 - (sh == 0); i >= 0; i--)
- if (up[i] != 0)
- {
- rnd_away = 1;
- break;
- }
- }
- }
- else /* halfway cases rounded away from zero */
- rnd_away = /* rounding bit */
- ((sh != 0 && (rp[0] & (MPFR_LIMB_ONE << (sh - 1))) != 0) ||
- (sh == 0 && (up[un - rn - 1] & MPFR_LIMB_HIGHBIT) != 0));
- }
- if (uflags == 0)
- { /* u is an integer; determine if it is representable in r */
- if (sh != 0 && MPFR_LIMB_LSHIFT(rp[0], GMP_NUMB_BITS - sh) != 0)
- uflags = 1; /* u is not representable in r */
- else
- {
- mp_size_t i;
- for (i = un - rn - 1; i >= 0; i--)
- if (up[i] != 0)
- {
- uflags = 1; /* u is not representable in r */
- break;
- }
- }
- }
- }
- else /* ui <= rn */
- {
- mp_size_t uj, rj;
- int ush;
-
- uj = un - ui; /* lowest limb of the integer part in u */
- rj = rn - ui; /* lowest limb of the integer part in r */
-
- if (rp != up)
- MPN_COPY(rp + rj, up + uj, ui);
-
- /* Ignore the lowest rj limbs, all equal to zero. */
- rp += rj;
- rn = ui;
-
- /* number of fractional bits in whole rp[0] */
- ush = idiff == 0 ? 0 : GMP_NUMB_BITS - idiff;
-
- if (rj == 0 && ush < sh)
- {
- /* If u is an integer (uflags == 0), we need to determine
- if it is representable in r, i.e. if its sh - ush bits
- in the non-significant part of r are all 0. */
- if (uflags == 0 && (rp[0] & ((MPFR_LIMB_ONE << sh) -
- (MPFR_LIMB_ONE << ush))) != 0)
- uflags = 1; /* u is an integer not representable in r */
- }
- else /* The integer part of u fits in r, we'll round to it. */
- sh = ush;
-
- if (rnd_away < 0)
- {
- /* This is a rounding to nearest mode.
- Decide the rounding direction here. */
- if (uj == 0 && sh == 0)
- rnd_away = 0; /* rounding bit = 0 (not represented in u) */
- else if (rnd_mode == MPFR_RNDN &&
- (rp[0] & (MPFR_LIMB_ONE << sh)) == 0)
- { /* halfway cases rounded toward zero */
- mp_limb_t a, b;
- /* a: rounding bit and some of the following bits */
- /* b: boundary for a (weight of the rounding bit in a) */
- if (sh != 0)
- {
- a = rp[0] & ((MPFR_LIMB_ONE << sh) - 1);
- b = MPFR_LIMB_ONE << (sh - 1);
- }
- else
- {
- MPFR_ASSERTD (uj >= 1); /* see above */
- a = up[uj - 1];
- b = MPFR_LIMB_HIGHBIT;
- }
- rnd_away = a > b;
- if (a == b)
- {
- mp_size_t i;
- for (i = uj - 1 - (sh == 0); i >= 0; i--)
- if (up[i] != 0)
- {
- rnd_away = 1;
- break;
- }
- }
- }
- else /* halfway cases rounded away from zero */
- rnd_away = /* rounding bit */
- ((sh != 0 && (rp[0] & (MPFR_LIMB_ONE << (sh - 1))) != 0) ||
- (sh == 0 && (MPFR_ASSERTD (uj >= 1),
- up[uj - 1] & MPFR_LIMB_HIGHBIT) != 0));
- }
- /* Now we can make the low rj limbs to 0 */
- MPN_ZERO (rp-rj, rj);
- }
-
- if (sh != 0)
- rp[0] &= MPFR_LIMB_MAX << sh;
-
- /* If u is a representable integer, there is no rounding. */
- if (uflags == 0)
- MPFR_RET(0);
-
- MPFR_ASSERTD (rnd_away >= 0); /* rounding direction is defined */
- if (rnd_away && mpn_add_1 (rp, rp, rn, MPFR_LIMB_ONE << sh))
- {
- if (exp == __gmpfr_emax)
- return mpfr_overflow (r, rnd_mode, sign) >= 0 ?
- uflags : -uflags;
- else /* no overflow */
- {
- MPFR_SET_EXP(r, exp + 1);
- rp[rn-1] = MPFR_LIMB_HIGHBIT;
- }
- }
-
- MPFR_RET (rnd_away ^ (sign < 0) ? uflags : -uflags);
- } /* exp > 0, |u| >= 1 */
-}
-
-#undef mpfr_roundeven
-
-int
-mpfr_roundeven (mpfr_ptr r, mpfr_srcptr u)
-{
- return mpfr_rint (r, u, MPFR_RNDN);
-}
-
-#undef mpfr_round
-
-int
-mpfr_round (mpfr_ptr r, mpfr_srcptr u)
-{
- return mpfr_rint (r, u, MPFR_RNDNA);
-}
-
-#undef mpfr_trunc
-
-int
-mpfr_trunc (mpfr_ptr r, mpfr_srcptr u)
-{
- return mpfr_rint (r, u, MPFR_RNDZ);
-}
-
-#undef mpfr_ceil
-
-int
-mpfr_ceil (mpfr_ptr r, mpfr_srcptr u)
-{
- return mpfr_rint (r, u, MPFR_RNDU);
-}
-
-#undef mpfr_floor
-
-int
-mpfr_floor (mpfr_ptr r, mpfr_srcptr u)
-{
- return mpfr_rint (r, u, MPFR_RNDD);
-}
-
-/* We need to save the flags and restore them after calling the mpfr_round,
- * mpfr_trunc, mpfr_ceil, mpfr_floor functions because these functions set
- * the inexact flag when the argument is not an integer.
- */
-
-#undef mpfr_rint_roundeven
-
-int
-mpfr_rint_roundeven (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(u) ) || mpfr_integer_p (u))
- return mpfr_set (r, u, rnd_mode);
- else
- {
- mpfr_t tmp;
- int inex;
- mpfr_flags_t saved_flags = __gmpfr_flags;
- MPFR_BLOCK_DECL (flags);
-
- mpfr_init2 (tmp, MPFR_PREC (u));
- /* round(u) is representable in tmp unless an overflow occurs */
- MPFR_BLOCK (flags, mpfr_roundeven (tmp, u));
- __gmpfr_flags = saved_flags;
- inex = (MPFR_OVERFLOW (flags)
- ? mpfr_overflow (r, rnd_mode, MPFR_SIGN (u))
- : mpfr_set (r, tmp, rnd_mode));
- mpfr_clear (tmp);
- return inex;
- }
-}
-
-#undef mpfr_rint_round
-
-int
-mpfr_rint_round (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(u) ) || mpfr_integer_p (u))
- return mpfr_set (r, u, rnd_mode);
- else
- {
- mpfr_t tmp;
- int inex;
- mpfr_flags_t saved_flags = __gmpfr_flags;
- MPFR_BLOCK_DECL (flags);
-
- mpfr_init2 (tmp, MPFR_PREC (u));
- /* round(u) is representable in tmp unless an overflow occurs */
- MPFR_BLOCK (flags, mpfr_round (tmp, u));
- __gmpfr_flags = saved_flags;
- inex = (MPFR_OVERFLOW (flags)
- ? mpfr_overflow (r, rnd_mode, MPFR_SIGN (u))
- : mpfr_set (r, tmp, rnd_mode));
- mpfr_clear (tmp);
- return inex;
- }
-}
-
-#undef mpfr_rint_trunc
-
-int
-mpfr_rint_trunc (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(u) ) || mpfr_integer_p (u))
- return mpfr_set (r, u, rnd_mode);
- else
- {
- mpfr_t tmp;
- int inex;
- mpfr_flags_t saved_flags = __gmpfr_flags;
-
- mpfr_init2 (tmp, MPFR_PREC (u));
- /* trunc(u) is always representable in tmp */
- mpfr_trunc (tmp, u);
- __gmpfr_flags = saved_flags;
- inex = mpfr_set (r, tmp, rnd_mode);
- mpfr_clear (tmp);
- return inex;
- }
-}
-
-#undef mpfr_rint_ceil
-
-int
-mpfr_rint_ceil (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(u) ) || mpfr_integer_p (u))
- return mpfr_set (r, u, rnd_mode);
- else
- {
- mpfr_t tmp;
- int inex;
- mpfr_flags_t saved_flags = __gmpfr_flags;
- MPFR_BLOCK_DECL (flags);
-
- mpfr_init2 (tmp, MPFR_PREC (u));
- /* ceil(u) is representable in tmp unless an overflow occurs */
- MPFR_BLOCK (flags, mpfr_ceil (tmp, u));
- __gmpfr_flags = saved_flags;
- inex = (MPFR_OVERFLOW (flags)
- ? mpfr_overflow (r, rnd_mode, MPFR_SIGN_POS)
- : mpfr_set (r, tmp, rnd_mode));
- mpfr_clear (tmp);
- return inex;
- }
-}
-
-#undef mpfr_rint_floor
-
-int
-mpfr_rint_floor (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(u) ) || mpfr_integer_p (u))
- return mpfr_set (r, u, rnd_mode);
- else
- {
- mpfr_t tmp;
- int inex;
- mpfr_flags_t saved_flags = __gmpfr_flags;
- MPFR_BLOCK_DECL (flags);
-
- mpfr_init2 (tmp, MPFR_PREC (u));
- /* floor(u) is representable in tmp unless an overflow occurs */
- MPFR_BLOCK (flags, mpfr_floor (tmp, u));
- __gmpfr_flags = saved_flags;
- inex = (MPFR_OVERFLOW (flags)
- ? mpfr_overflow (r, rnd_mode, MPFR_SIGN_NEG)
- : mpfr_set (r, tmp, rnd_mode));
- mpfr_clear (tmp);
- return inex;
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/rndna.c b/Build/source/libs/mpfr/mpfr-src/src/rndna.c
deleted file mode 100644
index 23997bf0ee7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/rndna.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* mpfr_round_nearest_away -- round to nearest away
-
-Copyright 2012-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Note: this doesn't work for 2^(emin-2). Currently, the best that can be
- done is to extend the exponent range internally, and do not support the
- case emin = MPFR_EMIN_MIN from the caller. */
-
-/* In order to work, we'll save the context within the mantissa of 'rop'.
- For that, we need to do some low level stuff like for init2/clear to create
- a mantissa of bigger size, which contains the extra context.
- To add a new field of type T in the context, add its type in
- mpfr_size_limb_extended_t (if it is not already present)
- and add a new value for the enum mpfr_index_extended_t before MANTISSA. */
-typedef union {
- mp_size_t si;
- mp_limb_t li;
- mpfr_exp_t ex;
- mpfr_prec_t pr;
- mpfr_sign_t sg;
- mpfr_flags_t fl;
- mpfr_limb_ptr pi;
-} mpfr_size_limb_extended_t;
-typedef enum {
- ALLOC_SIZE = 0,
- OLD_MANTISSA,
- OLD_EXPONENT,
- OLD_SIGN,
- OLD_PREC,
- OLD_FLAGS,
- OLD_EXP_MIN,
- OLD_EXP_MAX,
- MANTISSA
-} mpfr_index_extended_t ;
-
-#define MPFR_MALLOC_EXTENDED_SIZE(s) \
- (MANTISSA * sizeof(mpfr_size_limb_extended_t) + \
- MPFR_BYTES_PER_MP_LIMB * (size_t) (s))
-
-/* This function is called before the applied function
- and prepares rop to give it one more bit of precision
- and to save its old value within it. */
-void
-mpfr_round_nearest_away_begin (mpfr_t rop)
-{
- mpfr_t tmp;
- mp_size_t xsize;
- mpfr_size_limb_extended_t *ext;
- mpfr_prec_t p;
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* when emin is the smallest possible value, we cannot
- determine the correct round-to-nearest-away rounding for
- 0.25*2^emin, which gets rounded to 0 with nearest-even,
- instead of 0.5^2^emin. */
- MPFR_ASSERTN(__gmpfr_emin > MPFR_EMIN_MIN);
-
- p = MPFR_PREC (rop) + 1;
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* We can't use mpfr_init2 since we need to store an additional context
- within the mantissa. */
- MPFR_ASSERTN(p <= MPFR_PREC_MAX);
- /* Allocate the context within the needed mantissa. */
- xsize = MPFR_PREC2LIMBS (p);
- ext = (mpfr_size_limb_extended_t *)
- mpfr_allocate_func (MPFR_MALLOC_EXTENDED_SIZE(xsize));
-
- /* Save the context first. */
- ext[ALLOC_SIZE].si = xsize;
- ext[OLD_MANTISSA].pi = MPFR_MANT(rop);
- ext[OLD_EXPONENT].ex = MPFR_EXP(rop);
- ext[OLD_SIGN].sg = MPFR_SIGN(rop);
- ext[OLD_PREC].pr = MPFR_PREC(rop);
- ext[OLD_FLAGS].fl = expo.saved_flags;
- ext[OLD_EXP_MIN].ex = expo.saved_emin;
- ext[OLD_EXP_MAX].ex = expo.saved_emax;
-
- /* Create tmp as a proper NAN. */
- MPFR_PREC(tmp) = p; /* Set prec */
- MPFR_SET_POS(tmp); /* Set a sign */
- MPFR_MANT(tmp) = (mp_limb_t*)(ext+MANTISSA); /* Set Mantissa ptr */
- MPFR_SET_NAN(tmp); /* initializes to NaN */
-
- /* Note: This full initialization to NaN may be unnecessary because of
- the mpfr_set just below, but this is cleaner in case internals would
- change in the future (for instance, some fields of tmp could be read
- before being set, and reading an uninitialized value is UB here). */
-
- /* Copy rop into tmp now (rop may be used as input later). */
- MPFR_DBGRES (inexact = mpfr_set(tmp, rop, MPFR_RNDN));
- MPFR_ASSERTD(inexact == 0); /* Shall be exact since prec(tmp) > prec(rop) */
-
- /* Overwrite rop with tmp. */
- rop[0] = tmp[0];
-
- /* The new rop now contains a copy of the old rop, with one extra bit of
- precision while keeping the old rop "hidden" within its mantissa. */
-
- return;
-}
-
-/* This function is called after the applied function.
- rop is the one prepared in the function above,
- and contains the result of the applied function.
- This function restores rop like it was before the
- calls to mpfr_round_nearest_away_begin while
- copying it back the result of the applied function
- and performing additional roundings. */
-int
-mpfr_round_nearest_away_end (mpfr_t rop, int inex)
-{
- mpfr_t tmp;
- mp_size_t xsize;
- mpfr_size_limb_extended_t *ext;
- mpfr_prec_t n;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Get back the hidden context.
- Note: The cast to void * prevents the compiler from emitting a warning
- (or error), such as:
- cast increases required alignment of target type
- with the -Wcast-align GCC option. Correct alignment is a consequence
- of the code that built rop.
- */
- ext = ((mpfr_size_limb_extended_t *) (void *) MPFR_MANT(rop)) - MANTISSA;
-
- /* Create tmp with the result of the function. */
- tmp[0] = rop[0];
-
- /* Revert rop back to what it was before calling
- mpfr_round_neareset_away_begin. */
- MPFR_PREC(rop) = ext[OLD_PREC].pr;
- MPFR_SIGN(rop) = ext[OLD_SIGN].sg;
- MPFR_EXP(rop) = ext[OLD_EXPONENT].ex;
- MPFR_MANT(rop) = ext[OLD_MANTISSA].pi;
- MPFR_ASSERTD(MPFR_PREC(tmp) == MPFR_PREC(rop)+1);
-
- /* Restore the saved context. */
- expo.saved_flags = ext[OLD_FLAGS].fl;
- expo.saved_emin = ext[OLD_EXP_MIN].ex;
- expo.saved_emax = ext[OLD_EXP_MAX].ex;
- xsize = ext[ALLOC_SIZE].si;
-
- /* Perform RNDNA. */
- n = MPFR_PREC(rop);
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (tmp)))
- mpfr_set (rop, tmp, MPFR_RNDN); /* inex unchanged */
- else
- {
- int lastbit, sh;
-
- MPFR_UNSIGNED_MINUS_MODULO(sh, n + 1);
- lastbit = (MPFR_MANT(tmp)[0] >> sh) & 1;
-
- if (lastbit == 0)
- mpfr_set (rop, tmp, MPFR_RNDN); /* exact, inex unchanged */
- else if (inex == 0) /* midpoint: round away from zero */
- inex = mpfr_set (rop, tmp, MPFR_RNDA);
- else /* lastbit == 1, inex != 0: double rounding */
- inex = mpfr_set (rop, tmp, (inex > 0) ? MPFR_RNDD : MPFR_RNDU);
- }
-
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
-
- /* special treatment for the case rop = +/- 2^(emin-2), which should be
- rounded to +/- 2^(emin-1). We do as if it was rounded to zero, thus the
- mpfr_check_range() call will round it to +/- 2^(emin-1). */
- if (inex == 0 && mpfr_cmp_si_2exp (rop, (mpfr_sgn (rop) > 0) ? 1 : -1,
- __gmpfr_emin - 2) == 0)
- inex = -mpfr_sgn (rop);
-
- /* Free tmp (cannot call mpfr_clear): free the associated context. */
- mpfr_free_func(ext, MPFR_MALLOC_EXTENDED_SIZE(xsize));
-
- return mpfr_check_range (rop, inex, MPFR_RNDN);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/root.c b/Build/source/libs/mpfr/mpfr-src/src/root.c
deleted file mode 100644
index a8bd7d04eed..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/root.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/* mpfr_root -- kth root.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
- /* The computation of y = x^(1/k) is done as follows, except for large
- values of k, for which this would be inefficient or yield internal
- integer overflows:
-
- Let x = sign * m * 2^(k*e) where m is an integer
-
- with 2^(k*(n-1)) <= m < 2^(k*n) where n = PREC(y)
-
- and m = s^k + t where 0 <= t and m < (s+1)^k
-
- we want that s has n bits i.e. s >= 2^(n-1), or m >= 2^(k*(n-1))
- i.e. m must have at least k*(n-1)+1 bits
-
- then, not taking into account the sign, the result will be
- x^(1/k) = s * 2^e or (s+1) * 2^e according to the rounding mode.
- */
-
-static int
-mpfr_root_aux (mpfr_ptr y, mpfr_srcptr x, unsigned long k,
- mpfr_rnd_t rnd_mode);
-
-int
-mpfr_rootn_ui (mpfr_ptr y, mpfr_srcptr x, unsigned long k, mpfr_rnd_t rnd_mode)
-{
- mpz_t m;
- mpfr_exp_t e, r, sh, f;
- mpfr_prec_t n, size_m, tmp;
- int inexact, negative;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg k=%lu rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, k, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY (k <= 1))
- {
- if (k == 0)
- {
- /* rootn(x,0) is NaN (IEEE 754-2008). */
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else /* y = x^(1/1) = x */
- return mpfr_set (y, x, rnd_mode);
- }
-
- /* Singular values */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y); /* NaN^(1/k) = NaN */
- MPFR_RET_NAN;
- }
-
- if (MPFR_IS_INF (x)) /* (+Inf)^(1/k) = +Inf
- (-Inf)^(1/k) = -Inf if k odd
- (-Inf)^(1/k) = NaN if k even */
- {
- if (MPFR_IS_NEG (x) && (k & 1) == 0)
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- }
- else /* x is necessarily 0: (+0)^(1/k) = +0
- (-0)^(1/k) = -0 */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y);
- if (MPFR_IS_POS (x) || (k & 1) == 0)
- MPFR_SET_POS (y);
- else
- MPFR_SET_NEG (y);
- }
- MPFR_RET (0);
- }
-
- /* Returns NAN for x < 0 and k even */
- if (MPFR_UNLIKELY (MPFR_IS_NEG (x) && (k & 1) == 0))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
-
- /* Special case |x| = 1. Note that if x = -1, then k is odd
- (NaN results have already been filtered), so that y = -1. */
- if (mpfr_cmpabs (x, __gmpfr_one) == 0)
- return mpfr_set (y, x, rnd_mode);
-
- /* General case */
-
- /* For large k, use exp(log(x)/k). The threshold of 100 seems to be quite
- good when the precision goes to infinity. */
- if (k > 100)
- return mpfr_root_aux (y, x, k, rnd_mode);
-
- MPFR_SAVE_EXPO_MARK (expo);
- mpz_init (m);
-
- e = mpfr_get_z_2exp (m, x); /* x = m * 2^e */
- if ((negative = MPFR_IS_NEG(x)))
- mpz_neg (m, m);
- r = e % (mpfr_exp_t) k;
- if (r < 0)
- r += k; /* now r = e (mod k) with 0 <= r < k */
- MPFR_ASSERTD (0 <= r && r < k);
- /* x = (m*2^r) * 2^(e-r) where e-r is a multiple of k */
-
- MPFR_MPZ_SIZEINBASE2 (size_m, m);
- /* for rounding to nearest, we want the round bit to be in the root */
- n = MPFR_PREC (y) + (rnd_mode == MPFR_RNDN);
-
- /* we now multiply m by 2^sh so that root(m,k) will give
- exactly n bits: we want k*(n-1)+1 <= size_m + sh <= k*n
- i.e. sh = k*f + r with f = max(floor((k*n-size_m-r)/k),0) */
- if ((mpfr_exp_t) size_m + r >= k * (mpfr_exp_t) n)
- f = 0; /* we already have too many bits */
- else
- f = (k * (mpfr_exp_t) n - (mpfr_exp_t) size_m - r) / k;
- sh = k * f + r;
- mpz_mul_2exp (m, m, sh);
- e = e - sh;
-
- /* invariant: x = m*2^e, with e divisible by k */
-
- /* we reuse the variable m to store the kth root, since it is not needed
- any more: we just need to know if the root is exact */
- inexact = mpz_root (m, m, k) == 0;
-
- MPFR_MPZ_SIZEINBASE2 (tmp, m);
- sh = tmp - n;
- if (sh > 0) /* we have to flush to 0 the last sh bits from m */
- {
- inexact = inexact || (mpz_scan1 (m, 0) < sh);
- mpz_fdiv_q_2exp (m, m, sh);
- e += k * sh;
- }
-
- if (inexact)
- {
- if (negative)
- rnd_mode = MPFR_INVERT_RND (rnd_mode);
- if (rnd_mode == MPFR_RNDU || rnd_mode == MPFR_RNDA
- || (rnd_mode == MPFR_RNDN && mpz_tstbit (m, 0)))
- inexact = 1, mpz_add_ui (m, m, 1);
- else
- inexact = -1;
- }
-
- /* either inexact is not zero, and the conversion is exact, i.e. inexact
- is not changed; or inexact=0, and inexact is set only when
- rnd_mode=MPFR_RNDN and bit (n+1) from m is 1 */
- inexact += mpfr_set_z (y, m, MPFR_RNDN);
- MPFR_SET_EXP (y, MPFR_GET_EXP (y) + e / (mpfr_exp_t) k);
-
- if (negative)
- {
- MPFR_CHANGE_SIGN (y);
- inexact = -inexact;
- }
-
- mpz_clear (m);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
-
-/* Compute y <- x^(1/k) using exp(log(x)/k).
- Assume all special cases have been eliminated before.
- In the extended exponent range, overflows/underflows are not possible.
- Assume x > 0, or x < 0 and k odd.
- Also assume |x| <> 1 because log(1) = 0, which does not have an exponent
- and would yield a failure in the error bound computation. A priori, this
- constraint is quite artificial because if |x| is close enough to 1, then
- the exponent of log|x| does not need to be used (in the code, err would
- be 1 in such a domain). So this constraint |x| <> 1 could be avoided in
- the code. However, this is an exact case easy to detect, so that such a
- change would be useless. Values very close to 1 are not an issue, since
- an underflow is not possible before the MPFR_GET_EXP.
-*/
-static int
-mpfr_root_aux (mpfr_ptr y, mpfr_srcptr x, unsigned long k, mpfr_rnd_t rnd_mode)
-{
- int inexact, exact_root = 0;
- mpfr_prec_t w; /* working precision */
- mpfr_t absx, t;
- MPFR_GROUP_DECL(group);
- MPFR_TMP_DECL(marker);
- MPFR_ZIV_DECL(loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_TMP_INIT_ABS (absx, x);
-
- MPFR_TMP_MARK(marker);
- w = MPFR_PREC(y) + 10;
- /* Take some guard bits to prepare for the 'expt' lost bits below.
- If |x| < 2^k, then log|x| < k, thus taking log2(k) bits should be fine. */
- if (MPFR_GET_EXP(x) > 0)
- w += MPFR_INT_CEIL_LOG2 (MPFR_GET_EXP(x));
- MPFR_GROUP_INIT_1(group, w, t);
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_ZIV_INIT (loop, w);
- for (;;)
- {
- mpfr_exp_t expt;
- unsigned int err;
-
- mpfr_log (t, absx, MPFR_RNDN);
- /* t = log|x| * (1 + theta) with |theta| <= 2^(-w) */
- mpfr_div_ui (t, t, k, MPFR_RNDN);
- /* No possible underflow in mpfr_log and mpfr_div_ui. */
- expt = MPFR_GET_EXP (t); /* assumes t <> 0 */
- /* t = log|x|/k * (1 + theta) + eps with |theta| <= 2^(-w)
- and |eps| <= 1/2 ulp(t), thus the total error is bounded
- by 1.5 * 2^(expt - w) */
- mpfr_exp (t, t, MPFR_RNDN);
- /* t = |x|^(1/k) * exp(tau) * (1 + theta1) with
- |tau| <= 1.5 * 2^(expt - w) and |theta1| <= 2^(-w).
- For |tau| <= 0.5 we have |exp(tau)-1| < 4/3*tau, thus
- for w >= expt + 2 we have:
- t = |x|^(1/k) * (1 + 2^(expt+2)*theta2) * (1 + theta1) with
- |theta1|, |theta2| <= 2^(-w).
- If expt+2 > 0, as long as w >= 1, we have:
- t = |x|^(1/k) * (1 + 2^(expt+3)*theta3) with |theta3| < 2^(-w).
- For expt+2 = 0, we have:
- t = |x|^(1/k) * (1 + 2^2*theta3) with |theta3| < 2^(-w).
- Finally for expt+2 < 0 we have:
- t = |x|^(1/k) * (1 + 2*theta3) with |theta3| < 2^(-w).
- */
- err = (expt + 2 > 0) ? expt + 3
- : (expt + 2 == 0) ? 2 : 1;
- /* now t = |x|^(1/k) * (1 + 2^(err-w)) thus the error is at most
- 2^(EXP(t) - w + err) */
- if (MPFR_LIKELY (MPFR_CAN_ROUND(t, w - err, MPFR_PREC(y), rnd_mode)))
- break;
-
- /* If we fail to round correctly, check for an exact result or a
- midpoint result with MPFR_RNDN (regarded as hard-to-round in
- all precisions in order to determine the ternary value). */
- {
- mpfr_t z, zk;
-
- mpfr_init2 (z, MPFR_PREC(y) + (rnd_mode == MPFR_RNDN));
- mpfr_init2 (zk, MPFR_PREC(x));
- mpfr_set (z, t, MPFR_RNDN);
- inexact = mpfr_pow_ui (zk, z, k, MPFR_RNDN);
- exact_root = !inexact && mpfr_equal_p (zk, absx);
- if (exact_root) /* z is the exact root, thus round z directly */
- inexact = mpfr_set4 (y, z, rnd_mode, MPFR_SIGN (x));
- mpfr_clear (zk);
- mpfr_clear (z);
- if (exact_root)
- break;
- }
-
- MPFR_ZIV_NEXT (loop, w);
- MPFR_GROUP_REPREC_1(group, w, t);
- }
- MPFR_ZIV_FREE (loop);
-
- if (!exact_root)
- inexact = mpfr_set4 (y, t, rnd_mode, MPFR_SIGN (x));
-
- MPFR_GROUP_CLEAR(group);
- MPFR_TMP_FREE(marker);
- MPFR_SAVE_EXPO_FREE (expo);
-
- return mpfr_check_range (y, inexact, rnd_mode);
-}
-
-int
-mpfr_root (mpfr_ptr y, mpfr_srcptr x, unsigned long k, mpfr_rnd_t rnd_mode)
-{
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg k=%lu rnd=%d",
- mpfr_get_prec (x), mpfr_log_prec, x, k, rnd_mode),
- ("y[%Pu]=%.*Rg",
- mpfr_get_prec (y), mpfr_log_prec, y));
-
- /* Like mpfr_rootn_ui... */
- if (MPFR_UNLIKELY (k <= 1))
- {
- if (k == 0)
- {
- /* rootn(x,0) is NaN (IEEE 754-2008). */
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else /* y = x^(1/1) = x */
- return mpfr_set (y, x, rnd_mode);
- }
-
- if (MPFR_UNLIKELY (MPFR_IS_ZERO (x)))
- {
- /* The only case that may differ from mpfr_rootn_ui. */
- MPFR_SET_ZERO (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- else
- return mpfr_rootn_ui (y, x, k, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/round_near_x.c b/Build/source/libs/mpfr/mpfr-src/src/round_near_x.c
deleted file mode 100644
index 2a0a5330781..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/round_near_x.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/* mpfr_round_near_x -- Round a floating point number nears another one.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Use MPFR_FAST_COMPUTE_IF_SMALL_INPUT instead (a simple wrapper) */
-
-/* int mpfr_round_near_x (mpfr_ptr y, mpfr_srcptr v, mpfr_uexp_t err, int dir,
- mpfr_rnd_t rnd)
-
- TODO: fix this description.
- Assuming y = o(f(x)) = o(x + g(x)) with |g(x)| < 2^(EXP(v)-error)
- If x is small enough, y ~= v. This function checks and does this.
-
- It assumes that f(x) is not representable exactly as a FP number.
- v must not be a singular value (NAN, INF or ZERO), usual values are
- v=1 or v=x.
-
- y is the destination (a mpfr_t), v the value to set (a mpfr_t),
- err the error term (a mpfr_uexp_t) such that |g(x)| < 2^(EXP(x)-err),
- dir (an int) is the direction of the error (if dir = 0,
- it rounds toward 0, if dir=1, it rounds away from 0),
- rnd the rounding mode.
-
- It returns 0 if it can't round.
- Otherwise it returns the ternary flag (It can't return an exact value).
-*/
-
-/* What "small enough" means?
-
- We work with the positive values.
- Assuming err > Prec (y)+1
-
- i = [ y = o(x)] // i = inexact flag
- If i == 0
- Setting x in y is exact. We have:
- y = [XXXXXXXXX[...]]0[...] + error where [..] are optional zeros
- if dirError = ToInf,
- x < f(x) < x + 2^(EXP(x)-err)
- since x=y, and ulp (y)/2 > 2^(EXP(x)-err), we have:
- y < f(x) < y+ulp(y) and |y-f(x)| < ulp(y)/2
- if rnd = RNDN, nothing
- if rnd = RNDZ, nothing
- if rnd = RNDA, addoneulp
- elif dirError = ToZero
- x -2^(EXP(x)-err) < f(x) < x
- since x=y, and ulp (y)/2 > 2^(EXP(x)-err), we have:
- y-ulp(y) < f(x) < y and |y-f(x)| < ulp(y)/2
- if rnd = RNDN, nothing
- if rnd = RNDZ, nexttozero
- if rnd = RNDA, nothing
- NOTE: err > prec (y)+1 is needed only for RNDN.
- elif i > 0 and i = EVEN_ROUNDING
- So rnd = RNDN and we have y = x + ulp(y)/2
- if dirError = ToZero,
- we have x -2^(EXP(x)-err) < f(x) < x
- so y - ulp(y)/2 - 2^(EXP(x)-err) < f(x) < y-ulp(y)/2
- so y -ulp(y) < f(x) < y-ulp(y)/2
- => nexttozero(y)
- elif dirError = ToInf
- we have x < f(x) < x + 2^(EXP(x)-err)
- so y - ulp(y)/2 < f(x) < y+ulp(y)/2-ulp(y)/2
- so y - ulp(y)/2 < f(x) < y
- => do nothing
- elif i < 0 and i = -EVEN_ROUNDING
- So rnd = RNDN and we have y = x - ulp(y)/2
- if dirError = ToZero,
- y < f(x) < y + ulp(y)/2 => do nothing
- if dirError = ToInf
- y + ulp(y)/2 < f(x) < y + ulp(y) => AddOneUlp
- elif i > 0
- we can't have rnd = RNDZ, and prec(x) > prec(y), so ulp(x) < ulp(y)
- we have y - ulp (y) < x < y
- or more exactly y - ulp(y) + ulp(x)/2 <= x <= y - ulp(x)/2
- if rnd = RNDA,
- if dirError = ToInf,
- we have x < f(x) < x + 2^(EXP(x)-err)
- if err > prec (x),
- we have 2^(EXP(x)-err) < ulp(x), so 2^(EXP(x)-err) <= ulp(x)/2
- so f(x) <= y - ulp(x)/2+ulp(x)/2 <= y
- and y - ulp(y) < x < f(x)
- so we have y - ulp(y) < f(x) < y
- so do nothing.
- elif we can round, ie y - ulp(y) < x + 2^(EXP(x)-err) < y
- we have y - ulp(y) < x < f(x) < x + 2^(EXP(x)-err) < y
- so do nothing
- otherwise
- Wrong. Example X=[0.11101]111111110000
- + 1111111111111111111....
- elif dirError = ToZero
- we have x - 2^(EXP(x)-err) < f(x) < x
- so f(x) < x < y
- if err > prec (x)
- x-2^(EXP(x)-err) >= x-ulp(x)/2 >= y - ulp(y) + ulp(x)/2-ulp(x)/2
- so y - ulp(y) < f(x) < y
- so do nothing
- elif we can round, ie y - ulp(y) < x - 2^(EXP(x)-err) < y
- y - ulp(y) < x - 2^(EXP(x)-err) < f(x) < y
- so do nothing
- otherwise
- Wrong. Example: X=[1.111010]00000010
- - 10000001000000000000100....
- elif rnd = RNDN,
- y - ulp(y)/2 < x < y and we can't have x = y-ulp(y)/2:
- so we have:
- y - ulp(y)/2 + ulp(x)/2 <= x <= y - ulp(x)/2
- if dirError = ToInf
- we have x < f(x) < x+2^(EXP(x)-err) and ulp(y) > 2^(EXP(x)-err)
- so y - ulp(y)/2 + ulp (x)/2 < f(x) < y + ulp (y)/2 - ulp (x)/2
- we can round but we can't compute inexact flag.
- if err > prec (x)
- y - ulp(y)/2 + ulp (x)/2 < f(x) < y + ulp(x)/2 - ulp(x)/2
- so y - ulp(y)/2 + ulp (x)/2 < f(x) < y
- we can round and compute inexact flag. do nothing
- elif we can round, ie y - ulp(y)/2 < x + 2^(EXP(x)-err) < y
- we have y - ulp(y)/2 + ulp (x)/2 < f(x) < y
- so do nothing
- otherwise
- Wrong
- elif dirError = ToZero
- we have x -2^(EXP(x)-err) < f(x) < x and ulp(y)/2 > 2^(EXP(x)-err)
- so y-ulp(y)+ulp(x)/2 < f(x) < y - ulp(x)/2
- if err > prec (x)
- x- ulp(x)/2 < f(x) < x
- so y - ulp(y)/2+ulp(x)/2 - ulp(x)/2 < f(x) < x <= y - ulp(x)/2 < y
- do nothing
- elif we can round, ie y-ulp(y)/2 < x-2^(EXP(x)-err) < y
- we have y-ulp(y)/2 < x-2^(EXP(x)-err) < f(x) < x < y
- do nothing
- otherwise
- Wrong
- elif i < 0
- same thing?
- */
-
-int
-mpfr_round_near_x (mpfr_ptr y, mpfr_srcptr v, mpfr_uexp_t err, int dir,
- mpfr_rnd_t rnd)
-{
- int inexact, sign;
- mpfr_flags_t old_flags = __gmpfr_flags;
-
- if (rnd == MPFR_RNDF)
- rnd = MPFR_RNDZ;
-
- MPFR_ASSERTD (!MPFR_IS_SINGULAR (v));
- MPFR_ASSERTD (dir == 0 || dir == 1);
-
- /* First check if we can round. The test is more restrictive than
- necessary. Note that if err is not representable in an mpfr_exp_t,
- then err > MPFR_PREC (v) and the conversion to mpfr_exp_t will not
- occur. */
- if (!(err > MPFR_PREC (y) + 1
- && (err > MPFR_PREC (v)
- || mpfr_round_p (MPFR_MANT (v), MPFR_LIMB_SIZE (v),
- (mpfr_exp_t) err,
- MPFR_PREC (y) + (rnd == MPFR_RNDN)))))
- /* If we assume we can not round, return 0, and y is not modified */
- return 0;
-
- /* First round v in y */
- sign = MPFR_SIGN (v);
- MPFR_SET_EXP (y, MPFR_GET_EXP (v));
- MPFR_SET_SIGN (y, sign);
- MPFR_RNDRAW_GEN (inexact, y, MPFR_MANT (v), MPFR_PREC (v), rnd, sign,
- if (dir == 0)
- {
- inexact = -sign;
- goto trunc_doit;
- }
- else
- goto addoneulp;
- , if (MPFR_UNLIKELY (++MPFR_EXP (y) > __gmpfr_emax))
- mpfr_overflow (y, rnd, sign)
- );
-
- /* Fix it in some cases */
- MPFR_ASSERTD (!MPFR_IS_NAN (y) && !MPFR_IS_ZERO (y));
- /* If inexact == 0, setting y from v is exact but we haven't
- take into account yet the error term */
- if (inexact == 0)
- {
- if (dir == 0) /* The error term is negative for v positive */
- {
- inexact = sign;
- if (MPFR_IS_LIKE_RNDZ (rnd, MPFR_IS_NEG_SIGN (sign)))
- {
- /* case nexttozero */
- /* The underflow flag should be set if the result is zero */
- __gmpfr_flags = old_flags;
- inexact = -sign;
- mpfr_nexttozero (y);
- if (MPFR_UNLIKELY (MPFR_IS_ZERO (y)))
- MPFR_SET_UNDERFLOW ();
- }
- }
- else /* The error term is positive for v positive */
- {
- inexact = -sign;
- /* Round Away */
- if (MPFR_IS_LIKE_RNDA (rnd, MPFR_IS_NEG_SIGN(sign)))
- {
- /* case nexttoinf */
- /* The overflow flag should be set if the result is infinity */
- inexact = sign;
- mpfr_nexttoinf (y);
- if (MPFR_UNLIKELY (MPFR_IS_INF (y)))
- MPFR_SET_OVERFLOW ();
- }
- }
- }
-
- /* the inexact flag cannot be 0, since this would mean an exact value,
- and in this case we cannot round correctly */
- MPFR_ASSERTD(inexact != 0);
- MPFR_RET (inexact);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/round_p.c b/Build/source/libs/mpfr/mpfr-src/src/round_p.c
deleted file mode 100644
index 3b2426cd598..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/round_p.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* mpfr_round_p -- check if an approximation is roundable.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Check against mpfr_can_round? */
-#if MPFR_WANT_ASSERT >= 2
-int mpfr_round_p_2 (mp_limb_t *, mp_size_t, mpfr_exp_t, mpfr_prec_t);
-int
-mpfr_round_p (mp_limb_t *bp, mp_size_t bn, mpfr_exp_t err0, mpfr_prec_t prec)
-{
- int i1, i2;
-
- MPFR_ASSERTN(bp[bn - 1] & MPFR_LIMB_HIGHBIT);
-
- i1 = mpfr_round_p_2 (bp, bn, err0, prec);
-
- /* Note: since revision 10747, mpfr_can_round_raw is supposed to be always
- correct, whereas mpfr_round_p_2 might return 0 in some cases where one
- could round, for example with err0=67 and prec=54:
- b = 1111101101010001100011111011100010100011101111011011101111111111
- thus we cannot compare i1 and i2, we only can check that we don't have
- i1 <> 0 and i2 = 0.
- */
- i2 = mpfr_can_round_raw (bp, bn, MPFR_SIGN_POS, err0,
- MPFR_RNDN, MPFR_RNDZ, prec);
- if (i1 && (i2 == 0))
- {
- fprintf (stderr, "mpfr_round_p(%d) != mpfr_can_round(%d)!\n"
- "bn = %lu, err0 = %ld, prec = %lu\nbp = ", i1, i2,
- (unsigned long) bn, (long) err0, (unsigned long) prec);
-#ifndef MPFR_USE_MINI_GMP
- gmp_fprintf (stderr, "%NX\n", bp, bn);
-#endif
- MPFR_ASSERTN (0);
- }
-
- return i1;
-}
-# define mpfr_round_p mpfr_round_p_2
-#endif /* MPFR_WANT_ASSERT >= 2 */
-
-/*
- * Assuming {bp, bn} is an approximation of a non-singular number
- * with error at most equal to 2^(EXP(b)-err0) (`err0' bits of b are known)
- * of direction unknown, check if we can round b toward zero with
- * precision prec.
- */
-int
-mpfr_round_p (mp_limb_t *bp, mp_size_t bn, mpfr_exp_t err0, mpfr_prec_t prec)
-{
- mpfr_prec_t err;
- mp_size_t k, n;
- mp_limb_t tmp, mask;
- int s;
-
- MPFR_ASSERTD(bp[bn - 1] & MPFR_LIMB_HIGHBIT);
-
- err = (mpfr_prec_t) bn * GMP_NUMB_BITS;
- if (MPFR_UNLIKELY (err0 <= 0 || (mpfr_uexp_t) err0 <= prec || prec >= err))
- return 0; /* can't round */
- err = MIN (err, (mpfr_uexp_t) err0);
-
- k = prec / GMP_NUMB_BITS;
- s = GMP_NUMB_BITS - prec % GMP_NUMB_BITS;
- n = err / GMP_NUMB_BITS - k;
-
- MPFR_ASSERTD (n >= 0);
- MPFR_ASSERTD (bn > k);
-
- /* Check first limb */
- bp += bn - 1 - k;
- tmp = *bp--;
- mask = s == GMP_NUMB_BITS ? MPFR_LIMB_MAX : MPFR_LIMB_MASK (s);
- tmp &= mask;
-
- if (MPFR_LIKELY (n == 0))
- {
- /* prec and error are in the same limb */
- s = GMP_NUMB_BITS - err % GMP_NUMB_BITS;
- MPFR_ASSERTD (s < GMP_NUMB_BITS);
- tmp >>= s;
- mask >>= s;
- return tmp != 0 && tmp != mask;
- }
- else if (MPFR_UNLIKELY (tmp == 0))
- {
- /* Check if all (n-1) limbs are 0 */
- while (--n)
- if (*bp-- != 0)
- return 1;
- /* Check if final error limb is 0 */
- s = GMP_NUMB_BITS - err % GMP_NUMB_BITS;
- if (s == GMP_NUMB_BITS)
- return 0;
- tmp = *bp >> s;
- return tmp != 0;
- }
- else if (MPFR_UNLIKELY (tmp == mask))
- {
- /* Check if all (n-1) limbs are 11111111111111111 */
- while (--n)
- if (*bp-- != MPFR_LIMB_MAX)
- return 1;
- /* Check if final error limb is 0 */
- s = GMP_NUMB_BITS - err % GMP_NUMB_BITS;
- if (s == GMP_NUMB_BITS)
- return 0;
- tmp = *bp >> s;
- return tmp != (MPFR_LIMB_MAX >> s);
- }
- else
- {
- /* First limb is different from 000000 or 1111111 */
- return 1;
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/round_prec.c b/Build/source/libs/mpfr/mpfr-src/src/round_prec.c
deleted file mode 100644
index f03fbac7be7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/round_prec.c
+++ /dev/null
@@ -1,539 +0,0 @@
-/* mpfr_round_raw_generic, mpfr_round_raw2, mpfr_round_raw, mpfr_prec_round,
- mpfr_can_round, mpfr_can_round_raw -- various rounding functions
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#define mpfr_round_raw_generic mpfr_round_raw
-#define flag 0
-#define use_inexp 1
-#include "round_raw_generic.c"
-
-/* mpfr_round_raw_2 is called from mpfr_round_raw2 */
-#define mpfr_round_raw_generic mpfr_round_raw_2
-#define flag 1
-#define use_inexp 0
-#include "round_raw_generic.c"
-
-/* Seems to be unused. Remove comment to implement it.
-#define mpfr_round_raw_generic mpfr_round_raw_3
-#define flag 1
-#define use_inexp 1
-#include "round_raw_generic.c"
-*/
-
-#define mpfr_round_raw_generic mpfr_round_raw_4
-#define flag 0
-#define use_inexp 0
-#include "round_raw_generic.c"
-
-/* Note: if the new prec is lower than the current one, a reallocation
- must not be done (see exp_2.c). */
-
-int
-mpfr_prec_round (mpfr_ptr x, mpfr_prec_t prec, mpfr_rnd_t rnd_mode)
-{
- mp_limb_t *tmp, *xp;
- int carry, inexact;
- mpfr_prec_t nw, ow;
- MPFR_TMP_DECL(marker);
-
- MPFR_ASSERTN (MPFR_PREC_COND (prec));
-
- nw = MPFR_PREC2LIMBS (prec); /* needed allocated limbs */
-
- /* check if x has enough allocated space for the significand */
- /* Get the number of limbs from the precision.
- (Compatible with all allocation methods) */
- ow = MPFR_LIMB_SIZE (x);
- if (MPFR_UNLIKELY (nw > ow))
- {
- /* FIXME: Variable can't be created using custom allocation,
- MPFR_DECL_INIT or GROUP_ALLOC: How to detect? */
- ow = MPFR_GET_ALLOC_SIZE(x);
- if (nw > ow)
- {
- mpfr_size_limb_t *tmpx;
-
- /* Realloc significand */
- tmpx = (mpfr_size_limb_t *) mpfr_reallocate_func
- (MPFR_GET_REAL_PTR(x), MPFR_MALLOC_SIZE(ow), MPFR_MALLOC_SIZE(nw));
- MPFR_SET_MANT_PTR(x, tmpx); /* mant ptr must be set
- before alloc size */
- MPFR_SET_ALLOC_SIZE(x, nw); /* new number of allocated limbs */
- }
- }
-
- if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(x) ))
- {
- MPFR_PREC(x) = prec; /* Special value: need to set prec */
- if (MPFR_IS_NAN(x))
- MPFR_RET_NAN;
- MPFR_ASSERTD(MPFR_IS_INF(x) || MPFR_IS_ZERO(x));
- return 0; /* infinity and zero are exact */
- }
-
- /* x is a non-zero real number */
-
- MPFR_TMP_MARK(marker);
- tmp = MPFR_TMP_LIMBS_ALLOC (nw);
- xp = MPFR_MANT(x);
- carry = mpfr_round_raw (tmp, xp, MPFR_PREC(x), MPFR_IS_NEG(x),
- prec, rnd_mode, &inexact);
- MPFR_PREC(x) = prec;
-
- if (MPFR_UNLIKELY(carry))
- {
- mpfr_exp_t exp = MPFR_EXP (x);
-
- if (MPFR_UNLIKELY(exp == __gmpfr_emax))
- (void) mpfr_overflow(x, rnd_mode, MPFR_SIGN(x));
- else
- {
- MPFR_ASSERTD (exp < __gmpfr_emax);
- MPFR_SET_EXP (x, exp + 1);
- xp[nw - 1] = MPFR_LIMB_HIGHBIT;
- if (nw - 1 > 0)
- MPN_ZERO(xp, nw - 1);
- }
- }
- else
- MPN_COPY(xp, tmp, nw);
-
- MPFR_TMP_FREE(marker);
- return inexact;
-}
-
-/* assumption: GMP_NUMB_BITS is a power of 2 */
-
-/* assuming b is an approximation to x in direction rnd1 with error at
- most 2^(MPFR_EXP(b)-err), returns 1 if one is able to round exactly
- x to precision prec with direction rnd2, and 0 otherwise.
- Side effects: none.
-
- rnd1 = RNDN and RNDF are similar: the sign of the error is unknown.
-
- rnd2 = RNDF: assume that the user will round the approximation b
- toward the direction of x, i.e. the opposite of rnd1 in directed
- rounding modes, otherwise RNDN. Some details:
-
- u xinf v xsup w
- -----|----+----------|--+------------|-----
- [----- x -----]
- rnd1 = RNDD b |
- rnd1 = RNDU b
-
- where u, v and w are consecutive machine numbers.
-
- * If [xinf,xsup] contains no machine numbers, then return 1.
-
- * If [xinf,xsup] contains 2 machine numbers, then return 0.
-
- * If [xinf,xsup] contains a single machine number, then return 1 iff
- the rounding of b is this machine number.
- With the above choice for the rounding of b, this will always be
- the case if rnd1 is a directed rounding mode; said otherwise, for
- rnd2 = RNDF and rnd1 being a directed rounding mode, return 1 iff
- [xinf,xsup] contains at most 1 machine number.
-*/
-
-int
-mpfr_can_round (mpfr_srcptr b, mpfr_exp_t err, mpfr_rnd_t rnd1,
- mpfr_rnd_t rnd2, mpfr_prec_t prec)
-{
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(b)))
- return 0; /* We cannot round if Zero, Nan or Inf */
- else
- return mpfr_can_round_raw (MPFR_MANT(b), MPFR_LIMB_SIZE(b),
- MPFR_SIGN(b), err, rnd1, rnd2, prec);
-}
-
-/* TODO: mpfr_can_round_raw currently does a memory allocation and some
- mpn operations. A bit inspection like for mpfr_round_p (round_p.c) may
- be sufficient, though this would be more complex than the one done in
- mpfr_round_p, and in particular, for some rnd1/rnd2 combinations, one
- needs to take care of changes of binade when the value is close to a
- power of 2. */
-
-int
-mpfr_can_round_raw (const mp_limb_t *bp, mp_size_t bn, int neg, mpfr_exp_t err,
- mpfr_rnd_t rnd1, mpfr_rnd_t rnd2, mpfr_prec_t prec)
-{
- mpfr_prec_t prec2;
- mp_size_t k, k1, tn;
- int s, s1;
- mp_limb_t cc, cc2;
- mp_limb_t *tmp;
- mp_limb_t cy = 0, tmp_hi;
- int res;
- MPFR_TMP_DECL(marker);
-
- /* Since mpfr_can_round is a function in the API, use MPFR_ASSERTN.
- The specification makes sense only for prec >= 1. */
- MPFR_ASSERTN (prec >= 1);
-
- MPFR_ASSERTD(bp[bn - 1] & MPFR_LIMB_HIGHBIT);
-
- MPFR_ASSERT_SIGN(neg);
- neg = MPFR_IS_NEG_SIGN(neg);
- MPFR_ASSERTD (neg == 0 || neg == 1);
-
- /* For rnd1 and rnd2, transform RNDF / RNDD / RNDU to RNDN / RNDZ / RNDA
- (with a special case for rnd1 directed rounding, rnd2 = RNDF). */
-
- if (rnd1 == MPFR_RNDF)
- rnd1 = MPFR_RNDN; /* transform RNDF to RNDN */
- else if (rnd1 != MPFR_RNDN)
- rnd1 = MPFR_IS_LIKE_RNDZ(rnd1, neg) ? MPFR_RNDZ : MPFR_RNDA;
-
- MPFR_ASSERTD (rnd1 == MPFR_RNDN ||
- rnd1 == MPFR_RNDZ ||
- rnd1 == MPFR_RNDA);
-
- if (rnd2 == MPFR_RNDF)
- {
- if (rnd1 == MPFR_RNDN)
- rnd2 = MPFR_RNDN;
- else
- {
- rnd2 = MPFR_IS_LIKE_RNDZ(rnd1, neg) ? MPFR_RNDA : MPFR_RNDZ;
- /* Warning: in this case (rnd1 directed rounding, rnd2 = RNDF),
- the specification of mpfr_can_round says that we should
- return non-zero (i.e., we can round) when {bp, bn} is
- exactly representable in precision prec. */
- if (mpfr_round_raw2 (bp, bn, neg, MPFR_RNDA, prec) == 0)
- return 1;
- }
- }
- else if (rnd2 != MPFR_RNDN)
- rnd2 = MPFR_IS_LIKE_RNDZ(rnd2, neg) ? MPFR_RNDZ : MPFR_RNDA;
-
- MPFR_ASSERTD (rnd2 == MPFR_RNDN ||
- rnd2 == MPFR_RNDZ ||
- rnd2 == MPFR_RNDA);
-
- /* For err < prec (+1 for rnd1=RNDN), we can never round correctly, since
- the error is at least 2*ulp(b) >= ulp(round(b)).
- However for err = prec (+1 for rnd1=RNDN), we can round correctly in some
- rare cases where ulp(b) = 1/2*ulp(U) [see below for the definition of U],
- which implies rnd1 = RNDZ or RNDN, and rnd2 = RNDA or RNDN. */
-
- if (MPFR_UNLIKELY (err < prec + (rnd1 == MPFR_RNDN) ||
- (err == prec + (rnd1 == MPFR_RNDN) &&
- (rnd1 == MPFR_RNDA ||
- rnd2 == MPFR_RNDZ))))
- return 0; /* can't round */
-
- /* As a consequence... */
- MPFR_ASSERTD (err >= prec);
-
- /* The bound c on the error |x-b| is: c = 2^(MPFR_EXP(b)-err) <= b/2.
- * So, we now know that x and b have the same sign. By symmetry,
- * assume x > 0 and b > 0. We have: L <= x <= U, where, depending
- * on rnd1:
- * MPFR_RNDN: L = b-c, U = b+c
- * MPFR_RNDZ: L = b, U = b+c
- * MPFR_RNDA: L = b-c, U = b
- *
- * We can round x iff round(L,prec,rnd2) = round(U,prec,rnd2).
- */
-
- if (MPFR_UNLIKELY (prec > (mpfr_prec_t) bn * GMP_NUMB_BITS))
- { /* Then prec > PREC(b): we can round:
- (i) in rounding to the nearest as long as err >= prec + 2.
- When err = prec + 1 and b is not a power
- of two (so that a change of binade cannot occur), then one
- can round to nearest thanks to the even rounding rule (in the
- target precision prec, the significand of b ends with a 0).
- When err = prec + 1 and b is a power of two, when rnd1 = RNDZ one
- can round too.
- (ii) in directed rounding mode iff rnd1 is compatible with rnd2
- and err >= prec + 1, unless b = 2^k and rnd1 = RNDA or RNDN in
- which case we need err >= prec + 2.
- */
- if ((rnd1 == rnd2 || rnd2 == MPFR_RNDN) && err >= prec + 1)
- {
- if (rnd1 != MPFR_RNDZ &&
- err == prec + 1 &&
- mpfr_powerof2_raw2 (bp, bn))
- return 0;
- else
- return 1;
- }
- return 0;
- }
-
- /* now prec <= bn * GMP_NUMB_BITS */
-
- if (MPFR_UNLIKELY (err > (mpfr_prec_t) bn * GMP_NUMB_BITS))
- {
- /* we distinguish the case where b is a power of two:
- rnd1 rnd2 can round?
- RNDZ RNDZ ok
- RNDZ RNDA no
- RNDZ RNDN ok
- RNDA RNDZ no
- RNDA RNDA ok except when err = prec + 1
- RNDA RNDN ok except when err = prec + 1
- RNDN RNDZ no
- RNDN RNDA no
- RNDN RNDN ok except when err = prec + 1 */
- if (mpfr_powerof2_raw2 (bp, bn))
- {
- if ((rnd2 == MPFR_RNDZ || rnd2 == MPFR_RNDA) && rnd1 != rnd2)
- return 0;
- else if (rnd1 == MPFR_RNDZ)
- return 1; /* RNDZ RNDZ and RNDZ RNDN */
- else
- return err > prec + 1;
- }
-
- /* now the general case where b is not a power of two:
- rnd1 rnd2 can round?
- RNDZ RNDZ ok
- RNDZ RNDA except when b is representable in precision 'prec'
- RNDZ RNDN except when b is the middle of two representable numbers in
- precision 'prec' and b ends with 'xxx0[1]',
- or b is representable in precision 'prec'
- and err = prec + 1 and b ends with '1'.
- RNDA RNDZ except when b is representable in precision 'prec'
- RNDA RNDA ok
- RNDA RNDN except when b is the middle of two representable numbers in
- precision 'prec' and b ends with 'xxx1[1]',
- or b is representable in precision 'prec'
- and err = prec + 1 and b ends with '1'.
- RNDN RNDZ except when b is representable in precision 'prec'
- RNDN RNDA except when b is representable in precision 'prec'
- RNDN RNDN except when b is the middle of two representable numbers in
- precision 'prec', or b is representable in precision 'prec'
- and err = prec + 1 and b ends with '1'. */
- if (rnd2 == MPFR_RNDN)
- {
- if (err == prec + 1 && (bp[0] & 1))
- return 0; /* err == prec + 1 implies prec = bn * GMP_NUMB_BITS */
- if (prec < (mpfr_prec_t) bn * GMP_NUMB_BITS)
- {
- k1 = MPFR_PREC2LIMBS (prec + 1);
- MPFR_UNSIGNED_MINUS_MODULO(s1, prec + 1);
- if (((bp[bn - k1] >> s1) & 1) &&
- mpfr_round_raw2 (bp, bn, neg, MPFR_RNDA, prec + 1) == 0)
- { /* b is the middle of two representable numbers */
- if (rnd1 == MPFR_RNDN)
- return 0;
- k1 = MPFR_PREC2LIMBS (prec);
- MPFR_UNSIGNED_MINUS_MODULO(s1, prec);
- return (rnd1 == MPFR_RNDZ) ^
- (((bp[bn - k1] >> s1) & 1) == 0);
- }
- }
- return 1;
- }
- else if (rnd1 == rnd2) /* cases RNDZ RNDZ or RNDA RNDA: ok */
- return 1;
- else
- return mpfr_round_raw2 (bp, bn, neg, MPFR_RNDA, prec) != 0;
- }
-
- /* now err <= bn * GMP_NUMB_BITS */
-
- /* warning: if k = m*GMP_NUMB_BITS, consider limb m-1 and not m */
- k = (err - 1) / GMP_NUMB_BITS;
- MPFR_UNSIGNED_MINUS_MODULO(s, err);
- /* the error corresponds to bit s in limb k, the most significant limb
- being limb 0; in memory, limb k is bp[bn-1-k]. */
-
- k1 = (prec - 1) / GMP_NUMB_BITS;
- MPFR_UNSIGNED_MINUS_MODULO(s1, prec);
- /* the least significant bit is bit s1 in limb k1 */
-
- /* We don't need to consider the k1 most significant limbs.
- They will be considered later only to detect when subtracting
- the error bound yields a change of binade.
- Warning! The number with updated bn may no longer be normalized. */
- k -= k1;
- bn -= k1;
- prec2 = prec - (mpfr_prec_t) k1 * GMP_NUMB_BITS;
-
- /* We can decide of the correct rounding if rnd2(b-eps) and rnd2(b+eps)
- give the same result to the target precision 'prec', i.e., if when
- adding or subtracting (1 << s) in bp[bn-1-k], it does not change the
- rounding in direction 'rnd2' at ulp-position bp[bn-1] >> s1, taking also
- into account the possible change of binade. */
- MPFR_TMP_MARK(marker);
- tn = bn;
- k++; /* since we work with k+1 everywhere */
- tmp = MPFR_TMP_LIMBS_ALLOC (tn);
- if (bn > k)
- MPN_COPY (tmp, bp, bn - k); /* copy low bn-k limbs of b into tmp */
-
- MPFR_ASSERTD (k > 0);
-
- switch (rnd1)
- {
- case MPFR_RNDZ:
- /* rnd1 = Round to Zero */
- cc = (bp[bn - 1] >> s1) & 1; /* cc is the least significant bit of b */
- /* mpfr_round_raw2 returns 1 if one should add 1 at ulp(b,prec),
- and 0 otherwise */
- cc ^= mpfr_round_raw2 (bp, bn, neg, rnd2, prec2);
- /* cc is the new value of bit s1 in bp[bn-1] after rounding 'rnd2' */
-
- /* now round b + 2^(MPFR_EXP(b)-err) */
- cy = mpn_add_1 (tmp + bn - k, bp + bn - k, k, MPFR_LIMB_ONE << s);
- /* propagate carry up to most significant limb */
- for (tn = 0; tn + 1 < k1 && cy != 0; tn ++)
- cy = bp[bn + tn] == MPFR_LIMB_MAX;
- if (cy == 0 && err == prec)
- {
- res = 0;
- goto end;
- }
- if (MPFR_UNLIKELY(cy))
- {
- /* when a carry occurs, we have b < 2^h <= b+c, we can round iff:
- rnd2 = RNDZ: never, since b and b+c round to different values;
- rnd2 = RNDA: when b+c is an exact power of two, and err > prec
- (since for err = prec, b = 2^h - 1/2*ulp(2^h) is
- exactly representable and thus rounds to itself);
- rnd2 = RNDN: whenever cc = 0, since err >= prec implies
- c <= ulp(b) = 1/2*ulp(2^h), thus b+c rounds to 2^h,
- and b+c >= 2^h implies that bit 'prec' of b is 1,
- thus cc = 0 means that b is rounded to 2^h too. */
- res = (rnd2 == MPFR_RNDZ) ? 0
- : (rnd2 == MPFR_RNDA) ? (err > prec && k == bn && tmp[0] == 0)
- : cc == 0;
- goto end;
- }
- break;
- case MPFR_RNDN:
- /* rnd1 = Round to nearest */
-
- /* first round b+2^(MPFR_EXP(b)-err) */
- cy = mpn_add_1 (tmp + bn - k, bp + bn - k, k, MPFR_LIMB_ONE << s);
- /* propagate carry up to most significant limb */
- for (tn = 0; tn + 1 < k1 && cy != 0; tn ++)
- cy = bp[bn + tn] == MPFR_LIMB_MAX;
- cc = (tmp[bn - 1] >> s1) & 1; /* gives 0 when cc=1 */
- cc ^= mpfr_round_raw2 (tmp, bn, neg, rnd2, prec2);
- /* cc is the new value of bit s1 in bp[bn-1]+eps after rounding 'rnd2' */
- if (MPFR_UNLIKELY (cy != 0))
- {
- /* when a carry occurs, we have b-c < b < 2^h <= b+c, we can round
- iff:
- rnd2 = RNDZ: never, since b-c and b+c round to different values;
- rnd2 = RNDA: when b+c is an exact power of two, and
- err > prec + 1 (since for err <= prec + 1,
- b-c <= 2^h - 1/2*ulp(2^h) is exactly representable
- and thus rounds to itself);
- rnd2 = RNDN: whenever err > prec + 1, since for err = prec + 1,
- b+c rounds to 2^h, and b-c rounds to nextbelow(2^h).
- For err > prec + 1, c <= 1/4*ulp(b) <= 1/8*ulp(2^h),
- thus
- 2^h - 1/4*ulp(b) <= b-c < b+c <= 2^h + 1/8*ulp(2^h),
- therefore both b-c and b+c round to 2^h. */
- res = (rnd2 == MPFR_RNDZ) ? 0
- : (rnd2 == MPFR_RNDA) ? (err > prec + 1 && k == bn && tmp[0] == 0)
- : err > prec + 1;
- goto end;
- }
- subtract_eps:
- /* now round b-2^(MPFR_EXP(b)-err), this happens for
- rnd1 = RNDN or RNDA */
- MPFR_ASSERTD(rnd1 == MPFR_RNDN || rnd1 == MPFR_RNDA);
- cy = mpn_sub_1 (tmp + bn - k, bp + bn - k, k, MPFR_LIMB_ONE << s);
- /* propagate the potential borrow up to the most significant limb
- (it cannot propagate further since the most significant limb is
- at least MPFR_LIMB_HIGHBIT).
- Note: we use the same limb tmp[bn-1] to subtract. */
- tmp_hi = tmp[bn - 1];
- for (tn = 0; tn < k1 && cy != 0; tn ++)
- cy = mpn_sub_1 (&tmp_hi, bp + bn + tn, 1, cy);
- /* We have an exponent decrease when tn = k1 and
- tmp[bn-1] < MPFR_LIMB_HIGHBIT:
- b-c < 2^h <= b (for RNDA) or b+c (for RNDN).
- Then we surely cannot round when rnd2 = RNDZ, since b or b+c round to
- a value >= 2^h, and b-c rounds to a value < 2^h.
- We also surely cannot round when (rnd1,rnd2) = (RNDN,RNDA), since
- b-c rounds to a value <= 2^h, and b+c > 2^h rounds to a value > 2^h.
- It thus remains:
- (rnd1,rnd2) = (RNDA,RNDA), (RNDA,RNDN) and (RNDN,RNDN).
- For (RNDA,RNDA) we can round only when b-c and b round to 2^h, which
- implies b = 2^h and err > prec (which is true in that case):
- a necessary condition is that cc = 0.
- For (RNDA,RNDN) we can round only when b-c and b round to 2^h, which
- implies b-c >= 2^h - 1/4*ulp(2^h), and b <= 2^h + 1/2*ulp(2^h);
- since ulp(2^h) = ulp(b), this implies c <= 3/4*ulp(b), thus
- err > prec.
- For (RNDN,RNDN) we can round only when b-c and b+c round to 2^h,
- which implies b-c >= 2^h - 1/4*ulp(2^h), and
- b+c <= 2^h + 1/2*ulp(2^h);
- since ulp(2^h) = ulp(b), this implies 2*c <= 3/4*ulp(b), thus
- err > prec+1.
- */
- if (tn == k1 && tmp_hi < MPFR_LIMB_HIGHBIT) /* exponent decrease */
- {
- if (rnd2 == MPFR_RNDZ || (rnd1 == MPFR_RNDN && rnd2 == MPFR_RNDA) ||
- cc != 0 /* b or b+c does not round to 2^h */)
- {
- res = 0;
- goto end;
- }
- /* in that case since the most significant bit of tmp is 0, we
- should consider one more bit; res = 0 when b-c does not round
- to 2^h. */
- res = mpfr_round_raw2 (tmp, bn, neg, rnd2, prec2 + 1) != 0;
- goto end;
- }
- if (err == prec + (rnd1 == MPFR_RNDN))
- {
- /* No exponent increase nor decrease, thus we have |U-L| = ulp(b).
- For rnd2 = RNDZ or RNDA, either [L,U] contains one representable
- number in the target precision, and then L and U round
- differently; or both L and U are representable: they round
- differently too; thus in all cases we cannot round.
- For rnd2 = RNDN, the only case where we can round is when the
- middle of [L,U] (i.e. b) is representable, and ends with a 0. */
- res = (rnd2 == MPFR_RNDN && (((bp[bn - 1] >> s1) & 1) == 0) &&
- mpfr_round_raw2 (bp, bn, neg, MPFR_RNDZ, prec2) ==
- mpfr_round_raw2 (bp, bn, neg, MPFR_RNDA, prec2));
- goto end;
- }
- break;
- default:
- /* rnd1 = Round away */
- MPFR_ASSERTD (rnd1 == MPFR_RNDA);
- cc = (bp[bn - 1] >> s1) & 1;
- /* the mpfr_round_raw2() call below returns whether one should add 1 or
- not for rounding */
- cc ^= mpfr_round_raw2 (bp, bn, neg, rnd2, prec2);
- /* cc is the new value of bit s1 in bp[bn-1]+eps after rounding 'rnd2' */
-
- goto subtract_eps;
- }
-
- cc2 = (tmp[bn - 1] >> s1) & 1;
- res = cc == (cc2 ^ mpfr_round_raw2 (tmp, bn, neg, rnd2, prec2));
-
- end:
- MPFR_TMP_FREE(marker);
- return res;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/round_raw_generic.c b/Build/source/libs/mpfr/mpfr-src/src/round_raw_generic.c
deleted file mode 100644
index ee83d65b7fb..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/round_raw_generic.c
+++ /dev/null
@@ -1,278 +0,0 @@
-/* mpfr_round_raw_generic -- Generic rounding function
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef flag
-# error "ERROR: flag must be defined (0 / 1)"
-#endif
-#ifndef use_inexp
-# error "ERROR: use_enexp must be defined (0 / 1)"
-#endif
-#ifndef mpfr_round_raw_generic
-# error "ERROR: mpfr_round_raw_generic must be defined"
-#endif
-
-/*
- * If flag = 0, puts in y the value of xp (with precision xprec and
- * sign 1 if negative=0, -1 otherwise) rounded to precision yprec and
- * direction rnd_mode. Supposes x is not zero nor NaN nor +/- Infinity
- * (i.e. *xp != 0). In that case, the return value is a possible carry
- * (0 or 1) that may happen during the rounding, in which case the result
- * is a power of two.
- *
- * If inexp != NULL, put in *inexp the inexact flag of the rounding (0, 1, -1).
- * In case of even rounding when rnd = MPFR_RNDN, put MPFR_EVEN_INEX (2) or
- * -MPFR_EVEN_INEX (-2) in *inexp.
- *
- * If flag = 1, just returns whether one should add 1 or not for rounding.
- *
- * Note: yprec may be < MPFR_PREC_MIN; in particular, it may be equal
- * to 1. In this case, the even rounding is done away from 0, which is
- * a natural generalization. Indeed, a number with 1-bit precision can
- * be seen as a subnormal number with more precision.
- *
- * MPFR_RNDNA is now supported, but needs to be tested [TODO] and is
- * still not part of the API. In particular, the MPFR_RNDNA value (-1)
- * may change in the future without notice.
- */
-
-#if !(flag == 0 || flag == 1)
-#error "flag must be 0 or 1"
-#endif
-
-int
-mpfr_round_raw_generic(
-#if flag == 0
- mp_limb_t *yp,
-#endif
- const mp_limb_t *xp, mpfr_prec_t xprec,
- int neg, mpfr_prec_t yprec, mpfr_rnd_t rnd_mode
-#if use_inexp != 0
- , int *inexp
-#endif
- )
-{
- mp_size_t xsize, nw;
- mp_limb_t himask, lomask, sb;
- int rw, new_use_inexp;
-#if flag == 0
- int carry;
-#endif
-
-#if use_inexp != 0
- MPFR_ASSERTD (inexp != ((int*) 0));
-#endif
- MPFR_ASSERTD (neg == 0 || neg == 1);
-#if flag == 1
- /* rnd_mode = RNDF is only possible for flag = 0. */
- MPFR_ASSERTD (rnd_mode != MPFR_RNDF);
-#endif
-
- if (rnd_mode == MPFR_RNDF)
- {
-#if use_inexp != 0
- *inexp = 0; /* make sure it has a valid value */
-#endif
- rnd_mode = MPFR_RNDZ; /* faster */
- new_use_inexp = 0;
- }
- else
- {
- if (flag && !use_inexp &&
- (xprec <= yprec || MPFR_IS_LIKE_RNDZ (rnd_mode, neg)))
- return 0;
- new_use_inexp = use_inexp;
- }
-
- xsize = MPFR_PREC2LIMBS (xprec);
- nw = yprec / GMP_NUMB_BITS;
- rw = yprec & (GMP_NUMB_BITS - 1);
-
- if (MPFR_UNLIKELY(xprec <= yprec))
- { /* No rounding is necessary. */
- /* if yp=xp, maybe an overlap: mpn_copyd is OK when src <= dst */
- if (MPFR_LIKELY(rw))
- nw++;
- MPFR_ASSERTD(nw >= 1);
- MPFR_ASSERTD(nw >= xsize);
-#if use_inexp != 0
- *inexp = 0;
-#endif
-#if flag == 0
- mpn_copyd (yp + (nw - xsize), xp, xsize);
- MPN_ZERO(yp, nw - xsize);
-#endif
- return 0;
- }
-
- if (new_use_inexp || !MPFR_IS_LIKE_RNDZ(rnd_mode, neg))
- {
- mp_size_t k = xsize - nw - 1;
-
- if (MPFR_LIKELY(rw))
- {
- nw++;
- lomask = MPFR_LIMB_MASK (GMP_NUMB_BITS - rw);
- himask = ~lomask;
- }
- else
- {
- lomask = MPFR_LIMB_MAX;
- himask = MPFR_LIMB_MAX;
- }
- MPFR_ASSERTD(k >= 0);
- sb = xp[k] & lomask; /* First non-significant bits */
- /* Rounding to nearest? */
- if (rnd_mode == MPFR_RNDN || rnd_mode == MPFR_RNDNA)
- {
- /* Rounding to nearest */
- mp_limb_t rbmask = MPFR_LIMB_ONE << (GMP_NUMB_BITS - 1 - rw);
-
- if ((sb & rbmask) == 0) /* rounding bit = 0 ? */
- goto rnd_RNDZ; /* yes, behave like rounding toward zero */
- /* Rounding to nearest with rounding bit = 1 */
- if (MPFR_UNLIKELY (rnd_mode == MPFR_RNDNA))
- goto away_addone_ulp; /* like rounding away from zero */
- sb &= ~rbmask; /* first bits after the rounding bit */
- while (MPFR_UNLIKELY(sb == 0) && k > 0)
- sb = xp[--k];
- if (MPFR_UNLIKELY(sb == 0)) /* Even rounding. */
- {
- /* sb == 0 && rnd_mode == MPFR_RNDN */
- sb = xp[xsize - nw] & (himask ^ (himask << 1));
- if (sb == 0)
- {
-#if use_inexp != 0
- *inexp = 2 * MPFR_EVEN_INEX * neg - MPFR_EVEN_INEX;
-#endif
- /* ((neg!=0)^(sb!=0)) ? MPFR_EVEN_INEX : -MPFR_EVEN_INEX */
- /* since neg = 0 or 1 and sb = 0 */
-#if flag == 0
- mpn_copyi (yp, xp + xsize - nw, nw);
- yp[0] &= himask;
-#endif
- return 0; /* sb != 0 && rnd_mode != MPFR_RNDZ */
- }
- else
- {
- away_addone_ulp:
- /* sb != 0 && rnd_mode == MPFR_RNDN */
-#if use_inexp != 0
- *inexp = MPFR_EVEN_INEX - 2 * MPFR_EVEN_INEX * neg;
-#endif
- /* ((neg!=0)^(sb!=0)) ? MPFR_EVEN_INEX : -MPFR_EVEN_INEX */
- /* since neg = 0 or 1 and sb != 0 */
- goto rnd_RNDN_add_one_ulp;
- }
- }
- else /* sb != 0 && rnd_mode == MPFR_RNDN */
- {
-#if use_inexp != 0
- *inexp = 1 - 2 * neg; /* neg == 0 ? 1 : -1 */
-#endif
- rnd_RNDN_add_one_ulp:
-#if flag == 1
- return 1; /* sb != 0 && rnd_mode != MPFR_RNDZ */
-#else
- carry = mpn_add_1 (yp, xp + xsize - nw, nw,
- rw ?
- MPFR_LIMB_ONE << (GMP_NUMB_BITS - rw)
- : MPFR_LIMB_ONE);
- yp[0] &= himask;
- return carry;
-#endif
- }
- }
- /* Rounding toward zero? */
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, neg))
- {
- /* rnd_mode == MPFR_RNDZ */
- rnd_RNDZ:
- while (MPFR_UNLIKELY (sb == 0) && k > 0)
- sb = xp[--k];
-#if use_inexp != 0
- /* rnd_mode == MPFR_RNDZ and neg = 0 or 1 */
- /* ((neg != 0) ^ (rnd_mode != MPFR_RNDZ)) ? 1 : -1 */
- *inexp = MPFR_UNLIKELY (sb == 0) ? 0 : 2 * neg - 1;
-#endif
-#if flag == 0
- mpn_copyi (yp, xp + xsize - nw, nw);
- yp[0] &= himask;
-#endif
- return 0; /* sb != 0 && rnd_mode != MPFR_RNDZ */
- }
- else
- {
- /* Rounding away from zero */
- while (MPFR_UNLIKELY (sb == 0) && k > 0)
- sb = xp[--k];
- if (MPFR_UNLIKELY (sb == 0))
- {
- /* sb = 0 && rnd_mode != MPFR_RNDZ */
-#if use_inexp != 0
- /* ((neg != 0) ^ (rnd_mode != MPFR_RNDZ)) ? 1 : -1 */
- *inexp = 0;
-#endif
-#if flag == 0
- mpn_copyi (yp, xp + xsize - nw, nw);
- yp[0] &= himask;
-#endif
- return 0;
- }
- else
- {
- /* sb != 0 && rnd_mode != MPFR_RNDZ */
-#if use_inexp != 0
- *inexp = 1 - 2 * neg; /* neg == 0 ? 1 : -1 */
-#endif
-#if flag == 1
- return 1;
-#else
- carry = mpn_add_1(yp, xp + xsize - nw, nw,
- rw ? MPFR_LIMB_ONE << (GMP_NUMB_BITS - rw)
- : MPFR_LIMB_ONE);
- yp[0] &= himask;
- return carry;
-#endif
- }
- }
- }
- else
- {
- /* Rounding toward zero / no inexact flag */
-#if flag == 0
- if (MPFR_LIKELY(rw))
- {
- nw++;
- himask = ~MPFR_LIMB_MASK (GMP_NUMB_BITS - rw);
- }
- else
- himask = MPFR_LIMB_MAX;
- mpn_copyi (yp, xp + xsize - nw, nw);
- yp[0] &= himask;
-#endif
- return 0;
- }
-}
-
-#undef flag
-#undef use_inexp
-#undef mpfr_round_raw_generic
diff --git a/Build/source/libs/mpfr/mpfr-src/src/scale2.c b/Build/source/libs/mpfr/mpfr-src/src/scale2.c
deleted file mode 100644
index 5f5528a3616..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/scale2.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* mpfr_scale2 -- multiply a double float by 2^exp
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h> /* for DBL_EPSILON */
-#include "mpfr-impl.h"
-
-/* Note: we could use the ldexp function, but since we want not to depend on
- math.h, we write our own implementation. */
-
-/* multiplies 1/2 <= d <= 1 by 2^exp */
-double
-mpfr_scale2 (double d, int exp)
-{
-#if _MPFR_IEEE_FLOATS
- {
- union mpfr_ieee_double_extract x;
-
- if (MPFR_UNLIKELY (d == 1.0))
- {
- d = 0.5;
- exp ++;
- }
-
- /* now 1/2 <= d < 1 */
-
- /* infinities and zeroes have already been checked */
- MPFR_ASSERTD (-1073 <= exp && exp <= 1025);
-
- x.d = d;
- if (MPFR_UNLIKELY (exp < -1021)) /* subnormal case */
- {
- x.s.exp += exp + 52;
- x.d *= DBL_EPSILON;
- }
- else /* normalized case */
- {
- x.s.exp += exp;
- }
- return x.d;
- }
-#else /* _MPFR_IEEE_FLOATS */
- {
- double factor;
-
- /* An overflow may occurs (example: 0.5*2^1024) */
- if (d < 1.0)
- {
- d += d;
- exp--;
- }
- /* Now 1.0 <= d < 2.0 */
-
- if (exp < 0)
- {
- factor = 0.5;
- exp = -exp;
- }
- else
- {
- factor = 2.0;
- }
- while (exp != 0)
- {
- if ((exp & 1) != 0)
- d *= factor;
- exp >>= 1;
- factor *= factor;
- }
- return d;
- }
-#endif /* _MPFR_IEEE_FLOATS */
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sec.c b/Build/source/libs/mpfr/mpfr-src/src/sec.c
deleted file mode 100644
index 851894bc204..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sec.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* mpfr_sec - secant function = 1/cos.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define FUNCTION mpfr_sec
-#define INVERSE mpfr_cos
-#define ACTION_NAN(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_INF(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_ZERO(y,x) return mpfr_set_ui (y, 1, rnd_mode)
-/* for x near 0, sec(x) = 1 + x^2/2 + ..., more precisely |sec(x)-1| < x^2
- for |x| <= 1. */
-#define ACTION_TINY(y,x,r) \
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT(y, __gmpfr_one, -2 * MPFR_GET_EXP (x), 0, \
- 1, r, inexact = _inexact; goto end)
-
-#include "gen_inverse.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sech.c b/Build/source/libs/mpfr/mpfr-src/src/sech.c
deleted file mode 100644
index a2800fae020..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sech.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* mpfr_sech - Hyperbolic secant function = 1/cosh.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* The hyperbolic secant function is defined by sech(x)=1/cosh(x):
- csc (NaN) = NaN.
- csc (+Inf) = csc (-Inf) = 0+.
- csc (+0) = csc (-0) = 1.
- */
-
-#define FUNCTION mpfr_sech
-#define INVERSE mpfr_cosh
-#define ACTION_NAN(y) do { MPFR_SET_NAN(y); MPFR_RET_NAN; } while (1)
-#define ACTION_INF(y) return mpfr_set_ui (y, 0, MPFR_RNDN)
-#define ACTION_ZERO(y,x) return mpfr_set_ui (y, 1, rnd_mode)
-/* for x near 0, sech(x) = 1 - x^2/2 + ..., more precisely |sech(x)-1| <= x^2/2
- for |x| <= 1. The tiny action is the same as for cos(x). */
-#define ACTION_TINY(y,x,r) \
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT(y, __gmpfr_one, -2 * MPFR_GET_EXP (x), 1, \
- 0, r, inexact = _inexact; goto end)
-
-#include "gen_inverse.h"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set.c b/Build/source/libs/mpfr/mpfr-src/src/set.c
deleted file mode 100644
index 68b172bf3bd..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/* mpfr_set -- copy of a floating-point number
-
-Copyright 1999, 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* set a to abs(b) * signb: a=b when signb = SIGN(b), a=abs(b) when signb=1 */
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_set4 (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode, int signb)
-{
- /* Sign is ALWAYS copied */
- MPFR_SET_SIGN (a, signb);
-
- /* Exponent is also always copied since if the number is singular,
- the exponent field determined the number.
- Can't use MPFR_SET_EXP since the exponent may be singular */
- MPFR_EXP (a) = MPFR_EXP (b);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (b)))
- {
- /* MPFR_SET_NAN, MPFR_SET_ZERO and MPFR_SET_INF are useless
- since MPFR_EXP (a) = MPFR_EXP (b) does the job */
- if (MPFR_IS_NAN (b))
- MPFR_RET_NAN;
- else
- MPFR_RET (0);
- }
- else if (MPFR_PREC (b) == MPFR_PREC (a))
- {
- /* Same precision and b is not singular:
- * just copy the mantissa, and set the exponent and the sign
- * The result is exact. */
- MPN_COPY (MPFR_MANT (a), MPFR_MANT (b), MPFR_LIMB_SIZE (b));
- MPFR_RET (0);
- }
- else
- {
- int inex;
-
- /* Else Round B inside a */
- MPFR_RNDRAW (inex, a, MPFR_MANT (b), MPFR_PREC (b), rnd_mode, signb,
- if (MPFR_UNLIKELY (++ MPFR_EXP (a) > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, signb)
- );
- MPFR_RET (inex);
- }
-}
-
-/* Set a to b */
-#undef mpfr_set
-int
-mpfr_set (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set4 (a, b, rnd_mode, MPFR_SIGN (b));
-}
-
-/* Set a to |b| */
-#undef mpfr_abs
-int
-mpfr_abs (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set4 (a, b, rnd_mode, MPFR_SIGN_POS);
-}
-
-/* Round (u, inex) into s with rounding mode rnd_mode, where inex is
- the ternary value associated with u, which has been obtained using
- the *same* rounding mode rnd_mode.
- Assumes PREC(u) = 2*PREC(s).
- The generic algorithm is the following:
- 1. inex2 = mpfr_set (s, u, rnd_mode);
- 2. if (inex2 != 0) return inex2; else return inex;
- except in the double-rounding case: in MPFR_RNDN, when u is in the
- middle of two consecutive PREC(s)-bit numbers, if inex and inex2
- are both > 0 (resp. both < 0), we correct s to nextbelow(s) (resp.
- nextabove(s)), and return the opposite of inex.
- Note: this function can be called with rnd_mode == MPFR_RNDF, in
- which case, the rounding direction and the returned ternary value
- are unspecified. */
-int
-mpfr_set_1_2 (mpfr_ptr s, mpfr_srcptr u, mpfr_rnd_t rnd_mode, int inex)
-{
- mpfr_prec_t p = MPFR_PREC(s);
- mpfr_prec_t sh = GMP_NUMB_BITS - p;
- mp_limb_t rb, sb;
- mp_limb_t *sp = MPFR_MANT(s);
- mp_limb_t *up = MPFR_MANT(u);
- mp_limb_t mask;
- int inex2;
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(u)))
- {
- mpfr_set (s, u, rnd_mode);
- return inex;
- }
-
- MPFR_ASSERTD(MPFR_PREC(u) == 2 * p);
-
- if (p < GMP_NUMB_BITS)
- {
- mask = MPFR_LIMB_MASK(sh);
-
- if (MPFR_PREC(u) <= GMP_NUMB_BITS)
- {
- mp_limb_t u0 = up[0];
-
- /* it suffices to round (u0, inex) */
- rb = u0 & (MPFR_LIMB_ONE << (sh - 1));
- sb = (u0 & mask) ^ rb;
- sp[0] = u0 & ~mask;
- }
- else
- {
- mp_limb_t u1 = up[1];
-
- /* we need to round (u1, u0, inex) */
- mask = MPFR_LIMB_MASK(sh);
- rb = u1 & (MPFR_LIMB_ONE << (sh - 1));
- sb = ((u1 & mask) ^ rb) | up[0];
- sp[0] = u1 & ~mask;
- }
-
- inex2 = inex * MPFR_SIGN(u);
- MPFR_SIGN(s) = MPFR_SIGN(u);
- MPFR_EXP(s) = MPFR_EXP(u);
-
- /* in case inex2 > 0, the value of u is rounded away,
- thus we need to subtract something from (u0, rb, sb):
- (a) if sb is not zero, since the subtracted value is < 1, we can leave
- sb as it is;
- (b) if rb <> 0 and sb = 0: change to rb = 0 and sb = 1
- (c) if rb = sb = 0: change to rb = 1 and sb = 1, and subtract 1 */
- if (inex2 > 0)
- {
- if (rb && sb == 0)
- {
- rb = 0;
- sb = 1;
- }
- }
- else /* inex2 <= 0 */
- sb |= inex;
-
- /* now rb, sb are the round and sticky bits, together with the value of
- sp[0], except possibly in the case rb = sb = 0 and inex2 > 0 */
- if (rb == 0 && sb == 0)
- {
- if (inex2 <= 0)
- MPFR_RET(0);
- else /* inex2 > 0 can only occur for RNDN and RNDA:
- RNDN: return sp[0] and inex
- RNDA: return sp[0] and inex */
- MPFR_RET(inex);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (sp[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(s)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(s));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- sp[0] += MPFR_LIMB_ONE << sh;
- if (MPFR_UNLIKELY(sp[0] == 0))
- {
- sp[0] = MPFR_LIMB_HIGHBIT;
- if (MPFR_EXP(s) + 1 <= __gmpfr_emax)
- MPFR_SET_EXP (s, MPFR_EXP(s) + 1);
- else /* overflow */
- return mpfr_overflow (s, rnd_mode, MPFR_SIGN(s));
- }
- MPFR_RET(MPFR_SIGN(s));
- }
- }
-
- /* general case PREC(s) >= GMP_NUMB_BITS */
- inex2 = mpfr_set (s, u, rnd_mode);
- /* Check the double-rounding case, i.e. with u = middle of two
- consecutive PREC(s)-bit numbers, which is equivalent to u being
- exactly representable on PREC(s) + 1 bits but not on PREC(s) bits.
- Moreover, since PREC(u) = 2*PREC(s), u and s cannot be identical
- (as pointers), thus u was not changed. */
- if (rnd_mode == MPFR_RNDN && inex * inex2 > 0 &&
- mpfr_min_prec (u) == p + 1)
- {
- if (inex > 0)
- mpfr_nextbelow (s);
- else
- mpfr_nextabove (s);
- return -inex;
- }
- return inex2 != 0 ? inex2 : inex;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_d.c b/Build/source/libs/mpfr/mpfr-src/src/set_d.c
deleted file mode 100644
index bad66a85bea..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_d.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/* mpfr_set_d -- convert a machine double precision float to
- a multiple precision floating-point number
-
-Copyright 1999-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h> /* For DOUBLE_ISINF and DOUBLE_ISNAN */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Extracts the bits of |d| in rp[0..n-1] where n=ceil(53/GMP_NUMB_BITS).
- Assumes d finite and <> 0.
- Returns the corresponding exponent such that |d| = {rp, n} * 2^exp,
- with the value of {rp, n} in [1/2, 1).
- The int type should be sufficient for exp.
-*/
-static int
-extract_double (mpfr_limb_ptr rp, double d)
-{
- int exp;
- mp_limb_t man[MPFR_LIMBS_PER_DOUBLE];
-
- /* FIXME: Generalize to handle GMP_NUMB_BITS < 16. */
-
- MPFR_ASSERTD(!DOUBLE_ISNAN(d));
- MPFR_ASSERTD(!DOUBLE_ISINF(d));
- MPFR_ASSERTD(d != 0.0);
-
-#if _MPFR_IEEE_FLOATS
-
- {
- union mpfr_ieee_double_extract x;
- x.d = d;
-
- exp = x.s.exp;
- if (exp)
- {
- /* x.s.manh has 20 bits (in its low bits), x.s.manl has 32 bits */
-#if GMP_NUMB_BITS >= 64
- man[0] = ((MPFR_LIMB_ONE << (GMP_NUMB_BITS - 1)) |
- ((mp_limb_t) x.s.manh << (GMP_NUMB_BITS - 21)) |
- ((mp_limb_t) x.s.manl << (GMP_NUMB_BITS - 53)));
-#elif GMP_NUMB_BITS == 32
- man[1] = (MPFR_LIMB_ONE << 31) | (x.s.manh << 11) | (x.s.manl >> 21);
- man[0] = x.s.manl << 11;
-#elif GMP_NUMB_BITS == 16
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 16);
- man[3] = (MPFR_LIMB_ONE << 15) | (x.s.manh >> 5);
- man[2] = (x.s.manh << 11) | (x.s.manl >> 21);
- man[1] = x.s.manl >> 5;
- man[0] = MPFR_LIMB_LSHIFT(x.s.manl,11);
-#else
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 8);
- man[6] = (MPFR_LIMB_ONE << 7) | (x.s.manh >> 13);
- man[5] = (mp_limb_t) (x.s.manh >> 5);
- man[4] = MPFR_LIMB_LSHIFT(x.s.manh, 3) | (mp_limb_t) (x.s.manl >> 29);
- man[3] = (mp_limb_t) (x.s.manl >> 21);
- man[2] = (mp_limb_t) (x.s.manl >> 13);
- man[1] = (mp_limb_t) (x.s.manl >> 5);
- man[0] = MPFR_LIMB_LSHIFT(x.s.manl,3);
-#endif
- exp -= 1022;
- }
- else /* subnormal number */
- {
- int cnt;
- exp = -1021;
-#if GMP_NUMB_BITS >= 64
- man[0] = (((mp_limb_t) x.s.manh << (GMP_NUMB_BITS - 21)) |
- ((mp_limb_t) x.s.manl << (GMP_NUMB_BITS - 53)));
- count_leading_zeros (cnt, man[0]);
-#elif GMP_NUMB_BITS == 32
- man[1] = (x.s.manh << 11) /* high 21 bits */
- | (x.s.manl >> 21); /* middle 11 bits */
- man[0] = x.s.manl << 11; /* low 21 bits */
- if (man[1] == 0)
- {
- man[1] = man[0];
- man[0] = 0;
- exp -= GMP_NUMB_BITS;
- }
- count_leading_zeros (cnt, man[1]);
- man[1] = (man[1] << cnt) |
- (cnt != 0 ? man[0] >> (GMP_NUMB_BITS - cnt) : 0);
-#elif GMP_NUMB_BITS == 16
- man[3] = x.s.manh >> 5;
- man[2] = (x.s.manh << 11) | (x.s.manl >> 21);
- man[1] = x.s.manl >> 5;
- man[0] = x.s.manl << 11;
- while (man[3] == 0) /* d is assumed <> 0 */
- {
- man[3] = man[2];
- man[2] = man[1];
- man[1] = man[0];
- man[0] = 0;
- exp -= GMP_NUMB_BITS;
- }
- count_leading_zeros (cnt, man[3]);
- if (cnt)
- {
- man[3] = (man[3] << cnt) | (man[2] >> (GMP_NUMB_BITS - cnt));
- man[2] = (man[2] << cnt) | (man[1] >> (GMP_NUMB_BITS - cnt));
- man[1] = (man[1] << cnt) | (man[0] >> (GMP_NUMB_BITS - cnt));
- }
-#else
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 8);
- man[6] = x.s.manh >> 13;
- man[5] = x.s.manh >> 5;
- man[4] = (x.s.manh << 3) | (x.s.manl >> 29);
- man[3] = x.s.manl >> 21;
- man[2] = x.s.manl >> 13;
- man[1] = x.s.manl >> 5;
- man[0] = x.s.manl << 3;
- while (man[6] == 0) /* d is assumed <> 0 */
- {
- man[6] = man[5];
- man[5] = man[4];
- man[4] = man[3];
- man[3] = man[2];
- man[2] = man[1];
- man[1] = man[0];
- man[0] = 0;
- exp -= GMP_NUMB_BITS;
- }
- count_leading_zeros (cnt, man[6]);
- if (cnt)
- {
- int i;
- for (i = 6; i > 0; i--)
- man[i] = (man[i] << cnt) | (man[i-1] >> (GMP_NUMB_BITS - cnt));
- }
-#endif
- man[0] <<= cnt;
- exp -= cnt;
- }
- }
-
-#else /* _MPFR_IEEE_FLOATS */
-
- {
- /* Unknown (or known to be non-IEEE) double format. */
- exp = 0;
- d = ABS (d);
- if (d >= 1.0)
- {
- while (d >= 32768.0)
- {
- d *= (1.0 / 65536.0);
- exp += 16;
- }
- while (d >= 1.0)
- {
- d *= 0.5;
- exp += 1;
- }
- }
- else if (d < 0.5)
- {
- while (d < (1.0 / 65536.0))
- {
- d *= 65536.0;
- exp -= 16;
- }
- while (d < 0.5)
- {
- d *= 2.0;
- exp -= 1;
- }
- }
-
- d *= MP_BASE_AS_DOUBLE;
-#if GMP_NUMB_BITS >= 64
-#ifndef __clang__
- man[0] = d;
-#else
- /* clang produces an invalid exception when d >= 2^63,
- see <https://bugs.llvm.org/show_bug.cgi?id=17686>.
- Since this is always the case, here, we use the following patch. */
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 64);
- man[0] = 0x8000000000000000 + (mp_limb_t) (d - 0x8000000000000000);
-#endif /* __clang__ */
-#elif GMP_NUMB_BITS == 32
- man[1] = (mp_limb_t) d;
- man[0] = (mp_limb_t) ((d - man[1]) * MP_BASE_AS_DOUBLE);
-#else
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 16);
- {
- double r = d;
- man[3] = (mp_limb_t) r;
- r = (r - man[3]) * MP_BASE_AS_DOUBLE;
- man[2] = (mp_limb_t) r;
- r = (r - man[2]) * MP_BASE_AS_DOUBLE;
- man[1] = (mp_limb_t) r;
- r = (r - man[1]) * MP_BASE_AS_DOUBLE;
- man[0] = (mp_limb_t) r;
- }
-#endif
- }
-
-#endif /* _MPFR_IEEE_FLOATS */
-
- rp[0] = man[0];
-#if GMP_NUMB_BITS <= 32
- rp[1] = man[1];
-#endif
-#if GMP_NUMB_BITS <= 16
- rp[2] = man[2];
- rp[3] = man[3];
-#endif
-#if GMP_NUMB_BITS <= 8
- rp[4] = man[4];
- rp[5] = man[5];
- rp[6] = man[6];
-#endif
-
- MPFR_ASSERTD((rp[MPFR_LIMBS_PER_DOUBLE - 1] & MPFR_LIMB_HIGHBIT) != 0);
-
- return exp;
-}
-
-/* End of part included from gmp-2.0.2 */
-
-int
-mpfr_set_d (mpfr_ptr r, double d, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t tmp;
- mp_limb_t tmpmant[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY(DOUBLE_ISNAN(d)))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- else if (MPFR_UNLIKELY(d == 0))
- {
-#if _MPFR_IEEE_FLOATS
- union mpfr_ieee_double_extract x;
-
- MPFR_SET_ZERO(r);
- /* set correct sign */
- x.d = d;
- if (x.s.sig == 1)
- MPFR_SET_NEG(r);
- else
- MPFR_SET_POS(r);
-#else /* _MPFR_IEEE_FLOATS */
- MPFR_SET_ZERO(r);
- {
- /* This is to get the sign of zero on non-IEEE hardware
- Some systems support +0.0, -0.0, and unsigned zero.
- Some other systems may just have an unsigned zero.
- We can't use d == +0.0 since it should be always true,
- so we check that the memory representation of d is the
- same than +0.0, etc.
- Note: r is set to -0 only if d is detected as a negative zero
- *and*, for the double type, -0 has a different representation
- from +0. If -0.0 has several representations, the code below
- may not work as expected, but this is hardly fixable in a
- portable way (without depending on a math library) and only
- the sign could be incorrect. Such systems should be taken
- into account on a case-by-case basis. If the code is changed
- here, set_d64.c code should be updated too. */
- double poszero = +0.0, negzero = DBL_NEG_ZERO;
- if (memcmp(&d, &poszero, sizeof(double)) == 0)
- MPFR_SET_POS(r);
- else if (memcmp(&d, &negzero, sizeof(double)) == 0)
- MPFR_SET_NEG(r);
- else
- MPFR_SET_POS(r);
- }
-#endif /* _MPFR_IEEE_FLOATS */
- return 0; /* 0 is exact */
- }
- else if (MPFR_UNLIKELY(DOUBLE_ISINF(d)))
- {
- MPFR_SET_INF(r);
- if (d > 0)
- MPFR_SET_POS(r);
- else
- MPFR_SET_NEG(r);
- return 0; /* infinity is exact */
- }
-
- /* now d is neither 0, nor NaN nor Inf */
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* warning: don't use tmp=r here, even if SIZE(r) >= MPFR_LIMBS_PER_DOUBLE,
- since PREC(r) may be different from PREC(tmp), and then both variables
- would have same precision in the mpfr_set4 call below. */
- MPFR_MANT(tmp) = tmpmant;
- MPFR_PREC(tmp) = IEEE_DBL_MANT_DIG;
-
- /* don't use MPFR_SET_EXP here since the exponent may be out of range */
- MPFR_EXP(tmp) = extract_double (tmpmant, d);
-
- /* tmp is exact since PREC(tmp)=53 */
- inexact = mpfr_set4 (r, tmp, rnd_mode,
- (d < 0) ? MPFR_SIGN_NEG : MPFR_SIGN_POS);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inexact, rnd_mode);
-}
-
-
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_d128.c b/Build/source/libs/mpfr/mpfr-src/src/set_d128.c
deleted file mode 100644
index abee670955e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_d128.c
+++ /dev/null
@@ -1,495 +0,0 @@
-/* mpfr_set_decimal128 -- convert a IEEE 754r decimal128 float to
- a multiple precision floating-point number
-
-See https://gcc.gnu.org/legacy-ml/gcc/2006-06/msg00691.html,
-https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html,
-and TR 24732 <http://www.open-std.org/jtc1/sc22/wg14/www/projects#24732>.
-
-Copyright 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramel projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-
-#if HAVE_DECIMAL128_IEEE && \
- (GMP_NUMB_BITS == 32 || GMP_NUMB_BITS == 64) && \
- !defined(DECIMAL_GENERIC_CODE)
-
-#ifdef DECIMAL_DPD_FORMAT
- /* conversion 10-bits to 3 digits */
-static unsigned int T[1024] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 80, 81, 800, 801, 880, 881, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 90, 91, 810, 811, 890, 891, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 82, 83, 820, 821, 808, 809, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 92, 93, 830, 831, 818, 819, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 84, 85, 840, 841, 88, 89, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 94, 95,
- 850, 851, 98, 99, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 86, 87, 860, 861,
- 888, 889, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 96, 97, 870, 871, 898,
- 899, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 180, 181, 900, 901,
- 980, 981, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 190, 191, 910,
- 911, 990, 991, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 182, 183,
- 920, 921, 908, 909, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 192,
- 193, 930, 931, 918, 919, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 184, 185, 940, 941, 188, 189, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 194, 195, 950, 951, 198, 199, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 186, 187, 960, 961, 988, 989, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 196, 197, 970, 971, 998, 999, 200, 201, 202, 203, 204, 205,
- 206, 207, 208, 209, 280, 281, 802, 803, 882, 883, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 290, 291, 812, 813, 892, 893, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 282, 283, 822, 823, 828, 829, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 292, 293, 832, 833, 838, 839, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 284, 285, 842, 843, 288, 289, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 294, 295, 852, 853, 298, 299,
- 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 286, 287, 862, 863, 888,
- 889, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 296, 297, 872, 873,
- 898, 899, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 380, 381, 902,
- 903, 982, 983, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 390, 391,
- 912, 913, 992, 993, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 382,
- 383, 922, 923, 928, 929, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 392, 393, 932, 933, 938, 939, 340, 341, 342, 343, 344, 345, 346, 347, 348,
- 349, 384, 385, 942, 943, 388, 389, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 394, 395, 952, 953, 398, 399, 360, 361, 362, 363, 364, 365, 366,
- 367, 368, 369, 386, 387, 962, 963, 988, 989, 370, 371, 372, 373, 374, 375,
- 376, 377, 378, 379, 396, 397, 972, 973, 998, 999, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 480, 481, 804, 805, 884, 885, 410, 411, 412, 413,
- 414, 415, 416, 417, 418, 419, 490, 491, 814, 815, 894, 895, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 482, 483, 824, 825, 848, 849, 430, 431,
- 432, 433, 434, 435, 436, 437, 438, 439, 492, 493, 834, 835, 858, 859, 440,
- 441, 442, 443, 444, 445, 446, 447, 448, 449, 484, 485, 844, 845, 488, 489,
- 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 494, 495, 854, 855, 498,
- 499, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 486, 487, 864, 865,
- 888, 889, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 496, 497, 874,
- 875, 898, 899, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 580, 581,
- 904, 905, 984, 985, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 590,
- 591, 914, 915, 994, 995, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
- 582, 583, 924, 925, 948, 949, 530, 531, 532, 533, 534, 535, 536, 537, 538,
- 539, 592, 593, 934, 935, 958, 959, 540, 541, 542, 543, 544, 545, 546, 547,
- 548, 549, 584, 585, 944, 945, 588, 589, 550, 551, 552, 553, 554, 555, 556,
- 557, 558, 559, 594, 595, 954, 955, 598, 599, 560, 561, 562, 563, 564, 565,
- 566, 567, 568, 569, 586, 587, 964, 965, 988, 989, 570, 571, 572, 573, 574,
- 575, 576, 577, 578, 579, 596, 597, 974, 975, 998, 999, 600, 601, 602, 603,
- 604, 605, 606, 607, 608, 609, 680, 681, 806, 807, 886, 887, 610, 611, 612,
- 613, 614, 615, 616, 617, 618, 619, 690, 691, 816, 817, 896, 897, 620, 621,
- 622, 623, 624, 625, 626, 627, 628, 629, 682, 683, 826, 827, 868, 869, 630,
- 631, 632, 633, 634, 635, 636, 637, 638, 639, 692, 693, 836, 837, 878, 879,
- 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 684, 685, 846, 847, 688,
- 689, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 694, 695, 856, 857,
- 698, 699, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 686, 687, 866,
- 867, 888, 889, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 696, 697,
- 876, 877, 898, 899, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 780,
- 781, 906, 907, 986, 987, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
- 790, 791, 916, 917, 996, 997, 720, 721, 722, 723, 724, 725, 726, 727, 728,
- 729, 782, 783, 926, 927, 968, 969, 730, 731, 732, 733, 734, 735, 736, 737,
- 738, 739, 792, 793, 936, 937, 978, 979, 740, 741, 742, 743, 744, 745, 746,
- 747, 748, 749, 784, 785, 946, 947, 788, 789, 750, 751, 752, 753, 754, 755,
- 756, 757, 758, 759, 794, 795, 956, 957, 798, 799, 760, 761, 762, 763, 764,
- 765, 766, 767, 768, 769, 786, 787, 966, 967, 988, 989, 770, 771, 772, 773,
- 774, 775, 776, 777, 778, 779, 796, 797, 976, 977, 998, 999 };
-#endif
-
-/* Convert d to a decimal string (one-to-one correspondence, no rounding).
- The string s needs to have at least 44 characters (including the final \0):
- * 1 for the sign '-'
- * 2 for the leading '0.'
- * 34 for the significand
- * 6 for the exponent (for example 'E-1000')
- * 1 for the final '\0'
-
- According to IEEE 754-2008 (page 11), we have k=128, thus w = k/16+4 = 12,
- t = 15*k/16-10 = 110, p = 9*k/32-2 = 34, emax = 3*2^(w-1) = 6144,
- emin = 1-emax = -6143, bias = emax+p-2 = 6176.
-
- The _Decimal128 encoding is:
- * 1 bit for the sign
- * a 17-bit (w+5) combination field G
- * a 110-bit trailing significand field T
-*/
-static void
-decimal128_to_string (char *s, _Decimal128 d)
-{
- union ieee_decimal128 x;
- char *t;
- int Gh; /* most 5 significant bits from combination field */
- int exp; /* exponent */
- unsigned int i;
-#ifdef DECIMAL_DPD_FORMAT
- unsigned int D[12]; /* declets */
-#else /* BID */
- mp_limb_t rp[4];
- mp_size_t rn;
-#endif
-
- /* now convert BID or DPD to string:
- the combination field has 17 bits: 5 + 12 */
- x.d128 = d;
- Gh = x.s.comb >> 12;
- if (Gh == 31)
- {
- sprintf (s, "NaN");
- return;
- }
- else if (Gh == 30)
- {
- if (x.s.sig == 0)
- sprintf (s, "Inf");
- else
- sprintf (s, "-Inf");
- return;
- }
- t = s;
- if (x.s.sig)
- *t++ = '-';
-
- /* both the decimal128 DPD and BID encodings consist of:
- * a sign bit of 1 bit
- * a combination field of 17 bits (5 for the combination field and
- 12 remaining bits)
- * a trailing significand field of 110 bits
- */
-#ifdef DECIMAL_DPD_FORMAT
- /* page 11 of IEEE 754-2008, case c1) */
- if (Gh < 24)
- {
- exp = Gh >> 3;
- D[0] = Gh & 7; /* 4G2+2G3+G4 */
- }
- else /* case c1i): the most significant five bits of G are 110xx or 1110x */
- {
- exp = (Gh >> 1) & 3; /* 2G2+G3 */
- D[0] = 8 | (Gh & 1); /* leading significant digit, 8 or 9 */
- }
- exp = (exp << 12) | (x.s.comb & 0xfff); /* add last 12 bits of biased exp. */
- D[1] = x.s.t0 >> 4; /* first declet */
- D[2] = ((x.s.t0 << 6) | (x.s.t1 >> 26)) & 1023;
- D[3] = (x.s.t1 >> 16) & 1023;
- D[4] = (x.s.t1 >> 6) & 1023;
- D[5] = ((x.s.t1 << 4) | (x.s.t2 >> 28)) & 1023;
- D[6] = (x.s.t2 >> 18) & 1023;
- D[7] = (x.s.t2 >> 8) & 1023;
- D[8] = ((x.s.t2 << 2) | (x.s.t3 >> 30)) & 1023;
- D[9] = (x.s.t3 >> 20) & 1023;
- D[10] = (x.s.t3 >> 10) & 1023;
- D[11] = x.s.t3 & 1023;
- sprintf (t, "%1u%3u%3u%3u%3u%3u%3u%3u%3u%3u%3u%3u", D[0], T[D[1]], T[D[2]],
- T[D[3]], T[D[4]], T[D[5]], T[D[6]], T[D[7]], T[D[8]], T[D[9]],
- T[D[10]], T[D[11]]);
- /* Warning: some characters may be blank */
- for (i = 0; i < 34; i++)
- if (t[i] == ' ')
- t[i] = '0';
- t += 34;
-#else /* BID */
- /* w + 5 = 17, thus w = 12 */
- /* IEEE 754-2008 specifies that if the decoded significand exceeds the
- maximum, i.e. here if it is >= 10^34, then the value is zero. */
- if (Gh < 24)
- {
- /* the biased exponent E is formed from G[0] to G[13] and the
- significant from bits G[14] through the end of the decoding
- (including the bits of the trailing significand field) */
- exp = x.s.comb >> 3; /* upper 14 bits, exp <= 12287 */
- rp[3] = ((x.s.comb & 7) << 14) | x.s.t0;
- MPFR_ASSERTD (rp[3] < MPFR_LIMB_ONE << 17); /* rp[3] < 2^17 */
- }
- else
- goto zero; /* in that case, the significand would be formed by prefixing
- (8 + G[16]) to the trailing significand field of 110 bits,
- which would give a value of at least 2^113 > 10^34-1,
- and the standard says that any value exceeding the maximum
- is non-canonical and should be interpreted as 0. */
- rp[2] = x.s.t1;
- rp[1] = x.s.t2;
- rp[0] = x.s.t3;
-#if GMP_NUMB_BITS == 64
- rp[0] |= rp[1] << 32;
- rp[1] = rp[2] | (rp[3] << 32);
- rn = 2;
-#else
- rn = 4;
-#endif
- while (rn > 0 && rp[rn - 1] == 0)
- rn --;
- if (rn == 0)
- {
- zero:
- t[0] = '0';
- t[1] = '\0';
- return;
- }
- i = mpn_get_str ((unsigned char *) t, 10, rp, rn);
- if (i > 34)
- goto zero;
- /* convert the values from mpn_get_str (0, 1, ..., 9) to digits: */
- while (i-- > 0)
- *t++ += '0';
-#endif /* DPD or BID */
-
- exp -= 6176; /* unbiased exponent: emin - (p-1) where
- emin = 1-emax = 1-6144 = -6143 and p=34 */
- sprintf (t, "E%d", exp);
-}
-
-#else /* portable version */
-
-#ifndef DEC128_MAX
-# define DEC128_MAX 9.999999999999999999999999999999999E6144dl
-#endif
-
-static void
-decimal128_to_string (char *s, _Decimal128 d)
-{
- int sign = 0, n;
- int exp = 0;
- _Decimal128 ten, ten2, ten4, ten8, ten16, ten32, ten64,
- ten128, ten256, ten512, ten1024, ten2048, ten4096;
-
- ten = 10;
- ten2 = 100;
- ten4 = 10000;
- ten8 = 100000000;
- ten16 = ten8 * ten8;
- ten32 = ten16 * ten16;
- ten64 = ten32 * ten32;
- ten128 = ten64 * ten64;
- ten256 = ten128 * ten128;
- ten512 = ten256 * ten256;
- ten1024 = ten512 * ten512;
- ten2048 = ten1024 * ten1024;
- ten4096 = ten2048 * ten2048;
-
- if (MPFR_UNLIKELY (DOUBLE_ISNAN (d))) /* NaN */
- {
- sprintf (s, "NaN"); /* sprintf puts a final '\0' */
- return;
- }
- else if (MPFR_UNLIKELY (d > DEC128_MAX)) /* +Inf */
- {
- sprintf (s, "Inf");
- return;
- }
- else if (MPFR_UNLIKELY (d < -DEC128_MAX)) /* -Inf */
- {
- sprintf (s, "-Inf");
- return;
- }
-
- /* now d is neither NaN nor +Inf nor -Inf */
-
- if (d < (_Decimal128) 0.0)
- {
- sign = 1;
- d = -d;
- }
- else if (d == (_Decimal128) -0.0)
- { /* Warning: the comparison d == -0.0 returns true for d = 0.0 too,
- copy code from set_d.c here. We first compare to the +0.0 bitstring,
- in case +0.0 and -0.0 are represented identically. */
- double dd = (double) d, poszero = +0.0, negzero = DBL_NEG_ZERO;
- if (memcmp (&dd, &poszero, sizeof(double)) != 0 &&
- memcmp (&dd, &negzero, sizeof(double)) == 0)
- {
- sign = 1;
- d = -d;
- }
- }
-
- /* now normalize d in [0.1, 1[ */
- if (d >= (_Decimal128) 1.0)
- {
- if (d >= ten4096)
- {
- d /= ten4096;
- exp += 4096;
- }
- if (d >= ten2048)
- {
- d /= ten2048;
- exp += 2048;
- }
- if (d >= ten1024)
- {
- d /= ten1024;
- exp += 1024;
- }
- if (d >= ten512)
- {
- d /= ten512;
- exp += 512;
- }
- if (d >= ten256)
- {
- d /= ten256;
- exp += 256;
- }
- if (d >= ten128)
- {
- d /= ten128;
- exp += 128;
- }
- if (d >= ten64)
- {
- d /= ten64;
- exp += 64;
- }
- if (d >= ten32)
- {
- d /= ten32;
- exp += 32;
- }
- if (d >= ten16)
- {
- d /= ten16;
- exp += 16;
- }
- if (d >= ten8)
- {
- d /= ten8;
- exp += 8;
- }
- if (d >= ten4)
- {
- d /= ten4;
- exp += 4;
- }
- if (d >= ten2)
- {
- d /= ten2;
- exp += 2;
- }
- while (d >= 1)
- {
- d /= ten;
- exp += 1;
- }
- }
- else /* d < 1.0 */
- {
- if (d < 1 / ten4096)
- {
- d *= ten4096;
- exp -= 4096;
- }
- if (d < 1 / ten2048)
- {
- d *= ten2048;
- exp -= 2048;
- }
- if (d < 1 / ten1024)
- {
- d *= ten1024;
- exp -= 1024;
- }
- if (d < 1 / ten512)
- {
- d *= ten512;
- exp -= 512;
- }
- if (d < 1 / ten256)
- {
- d *= ten256;
- exp -= 256;
- }
- if (d < 1 / ten128)
- {
- d *= ten128;
- exp -= 128;
- }
- if (d < 1 / ten64)
- {
- d *= ten64;
- exp -= 64;
- }
- if (d < 1 / ten32)
- {
- d *= ten32;
- exp -= 32;
- }
- if (d < 1 / ten16)
- {
- d *= ten16;
- exp -= 16;
- }
- if (d < 1 / ten8)
- {
- d *= ten8;
- exp -= 8;
- }
- if (d < 1 / ten4)
- {
- d *= ten4;
- exp -= 4;
- }
- if (d < 1 / ten2)
- {
- d *= ten2;
- exp -= 2;
- }
- if (d < 1 / ten)
- {
- d *= ten;
- exp -= 1;
- }
- }
-
- /* now 0.1 <= d < 1 */
- if (sign == 1)
- *s++ = '-';
- *s++ = '0';
- *s++ = '.';
- for (n = 0; n < 34; n++)
- {
- int r;
-
- MPFR_ASSERTD (d < 1);
- d *= 10;
- MPFR_ASSERTD (d < 10);
- r = (int) d;
- *s++ = '0' + r;
- d -= (_Decimal128) r;
- }
- MPFR_ASSERTN (d == 0);
- if (exp != 0)
- sprintf (s, "E%d", exp); /* adds a final '\0' */
- else
- *s = '\0';
-}
-
-#endif /* definition of decimal128_to_string (DPD, BID, or portable) */
-
-/* the IEEE754-2008 decimal128 format has 34 digits, with emax=6144,
- emin=1-emax=-6143 */
-int
-mpfr_set_decimal128 (mpfr_ptr r, _Decimal128 d, mpfr_rnd_t rnd_mode)
-{
- char s[44]; /* need 1 character for sign,
- 2 characters for '0.'
- 34 characters for significand,
- 1 character for exponent 'E',
- 5 characters for exponent (including sign),
- 1 character for terminating \0. */
-
- decimal128_to_string (s, d);
- MPFR_LOG_MSG (("string: %s\n", s));
- return mpfr_strtofr (r, s, NULL, 10, rnd_mode);
-}
-
-#endif /* MPFR_WANT_DECIMAL_FLOATS */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_d64.c b/Build/source/libs/mpfr/mpfr-src/src/set_d64.c
deleted file mode 100644
index 41c2e7da585..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_d64.c
+++ /dev/null
@@ -1,497 +0,0 @@
-/* mpfr_set_decimal64 -- convert an IEEE 754-2008 decimal64 float to
- a multiple precision floating-point number
-
-See https://gcc.gnu.org/legacy-ml/gcc/2006-06/msg00691.html,
-https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html,
-and TR 24732 <http://www.open-std.org/jtc1/sc22/wg14/www/projects#24732>.
-
-Copyright 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-
-#ifdef DECIMAL_DPD_FORMAT
- /* conversion 10-bits to 3 digits */
-static unsigned int T[1024] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 80, 81, 800, 801, 880, 881, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 90, 91, 810, 811, 890, 891, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 82, 83, 820, 821, 808, 809, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 92, 93, 830, 831, 818, 819, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 84, 85, 840, 841, 88, 89, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 94, 95,
- 850, 851, 98, 99, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 86, 87, 860, 861,
- 888, 889, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 96, 97, 870, 871, 898,
- 899, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 180, 181, 900, 901,
- 980, 981, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 190, 191, 910,
- 911, 990, 991, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 182, 183,
- 920, 921, 908, 909, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 192,
- 193, 930, 931, 918, 919, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 184, 185, 940, 941, 188, 189, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 194, 195, 950, 951, 198, 199, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 186, 187, 960, 961, 988, 989, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 196, 197, 970, 971, 998, 999, 200, 201, 202, 203, 204, 205,
- 206, 207, 208, 209, 280, 281, 802, 803, 882, 883, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 290, 291, 812, 813, 892, 893, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 282, 283, 822, 823, 828, 829, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 292, 293, 832, 833, 838, 839, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 284, 285, 842, 843, 288, 289, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 294, 295, 852, 853, 298, 299,
- 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 286, 287, 862, 863, 888,
- 889, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 296, 297, 872, 873,
- 898, 899, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 380, 381, 902,
- 903, 982, 983, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 390, 391,
- 912, 913, 992, 993, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 382,
- 383, 922, 923, 928, 929, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 392, 393, 932, 933, 938, 939, 340, 341, 342, 343, 344, 345, 346, 347, 348,
- 349, 384, 385, 942, 943, 388, 389, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 394, 395, 952, 953, 398, 399, 360, 361, 362, 363, 364, 365, 366,
- 367, 368, 369, 386, 387, 962, 963, 988, 989, 370, 371, 372, 373, 374, 375,
- 376, 377, 378, 379, 396, 397, 972, 973, 998, 999, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 480, 481, 804, 805, 884, 885, 410, 411, 412, 413,
- 414, 415, 416, 417, 418, 419, 490, 491, 814, 815, 894, 895, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 482, 483, 824, 825, 848, 849, 430, 431,
- 432, 433, 434, 435, 436, 437, 438, 439, 492, 493, 834, 835, 858, 859, 440,
- 441, 442, 443, 444, 445, 446, 447, 448, 449, 484, 485, 844, 845, 488, 489,
- 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 494, 495, 854, 855, 498,
- 499, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 486, 487, 864, 865,
- 888, 889, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 496, 497, 874,
- 875, 898, 899, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 580, 581,
- 904, 905, 984, 985, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 590,
- 591, 914, 915, 994, 995, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
- 582, 583, 924, 925, 948, 949, 530, 531, 532, 533, 534, 535, 536, 537, 538,
- 539, 592, 593, 934, 935, 958, 959, 540, 541, 542, 543, 544, 545, 546, 547,
- 548, 549, 584, 585, 944, 945, 588, 589, 550, 551, 552, 553, 554, 555, 556,
- 557, 558, 559, 594, 595, 954, 955, 598, 599, 560, 561, 562, 563, 564, 565,
- 566, 567, 568, 569, 586, 587, 964, 965, 988, 989, 570, 571, 572, 573, 574,
- 575, 576, 577, 578, 579, 596, 597, 974, 975, 998, 999, 600, 601, 602, 603,
- 604, 605, 606, 607, 608, 609, 680, 681, 806, 807, 886, 887, 610, 611, 612,
- 613, 614, 615, 616, 617, 618, 619, 690, 691, 816, 817, 896, 897, 620, 621,
- 622, 623, 624, 625, 626, 627, 628, 629, 682, 683, 826, 827, 868, 869, 630,
- 631, 632, 633, 634, 635, 636, 637, 638, 639, 692, 693, 836, 837, 878, 879,
- 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 684, 685, 846, 847, 688,
- 689, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 694, 695, 856, 857,
- 698, 699, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 686, 687, 866,
- 867, 888, 889, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 696, 697,
- 876, 877, 898, 899, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 780,
- 781, 906, 907, 986, 987, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
- 790, 791, 916, 917, 996, 997, 720, 721, 722, 723, 724, 725, 726, 727, 728,
- 729, 782, 783, 926, 927, 968, 969, 730, 731, 732, 733, 734, 735, 736, 737,
- 738, 739, 792, 793, 936, 937, 978, 979, 740, 741, 742, 743, 744, 745, 746,
- 747, 748, 749, 784, 785, 946, 947, 788, 789, 750, 751, 752, 753, 754, 755,
- 756, 757, 758, 759, 794, 795, 956, 957, 798, 799, 760, 761, 762, 763, 764,
- 765, 766, 767, 768, 769, 786, 787, 966, 967, 988, 989, 770, 771, 772, 773,
- 774, 775, 776, 777, 778, 779, 796, 797, 976, 977, 998, 999 };
-#endif
-
-#if _MPFR_IEEE_FLOATS && !defined(DECIMAL_GENERIC_CODE)
-
-/* Convert d to a decimal string (one-to-one correspondence, no rounding).
- The string s needs to have at least 25 characters (with the final '\0'):
- * 1 for the sign '-'
- * 2 for the leading '0.'
- * 16 for the significand
- * 5 for the exponent (for example 'E-100')
- * 1 for the final '\0'
- */
-static void
-decimal64_to_string (char *s, _Decimal64 d)
-{
- union mpfr_ieee_double_extract x;
- union ieee_double_decimal64 y;
- char *t;
- unsigned int Gh; /* most 5 significant bits from combination field */
- int exp; /* exponent */
- unsigned int i;
-
-#ifdef DECIMAL_DPD_FORMAT
- unsigned int d0, d1, d2, d3, d4, d5;
-#else /* BID */
-#if GMP_NUMB_BITS >= 64
- mp_limb_t rp[2];
-#else
- unsigned long rp[2]; /* rp[0] and rp[1] should contain at least 32 bits */
-#endif
-#define NLIMBS (64 / GMP_NUMB_BITS)
- mp_limb_t sp[NLIMBS];
- mp_size_t sn;
-#endif
-
- /* end of declarations */
-
- /* Memory representation of the _Decimal64 argument. */
- MPFR_LOG_MSG (("d = { %02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X }\n",
- ((unsigned char *) &d)[0],
- ((unsigned char *) &d)[1],
- ((unsigned char *) &d)[2],
- ((unsigned char *) &d)[3],
- ((unsigned char *) &d)[4],
- ((unsigned char *) &d)[5],
- ((unsigned char *) &d)[6],
- ((unsigned char *) &d)[7]));
-
- /* now convert BID or DPD to string */
- y.d64 = d;
- x.d = y.d;
- MPFR_LOG_MSG (("x = { .sig = %u, .exp = %u, "
- ".manh = 0x%05lX = %lu, .manl = 0x%08lX = %lu }\n",
- (unsigned int) x.s.sig, (unsigned int) x.s.exp,
- (unsigned long) x.s.manh, (unsigned long) x.s.manh,
- (unsigned long) x.s.manl, (unsigned long) x.s.manl));
- Gh = x.s.exp >> 6;
- if (Gh == 31)
- {
- sprintf (s, "NaN");
- return;
- }
- else if (Gh == 30)
- {
- if (x.s.sig == 0)
- sprintf (s, "Inf");
- else
- sprintf (s, "-Inf");
- return;
- }
- t = s;
- if (x.s.sig)
- *t++ = '-';
-
- /* both the decimal64 DPD and BID encodings consist of:
- * a sign bit of 1 bit
- * a combination field of 13=5+8 bits
- * a trailing significand field of 50 bits
- */
-#ifdef DECIMAL_DPD_FORMAT
- /* the most significant 5 bits of the combination field give the first digit
- of the significand, and leading bits of the biased exponent (0, 1, 2). */
- if (Gh < 24)
- {
- exp = (x.s.exp >> 1) & 768;
- d0 = Gh & 7; /* first digit is in 0..7 */
- }
- else
- {
- exp = (x.s.exp & 384) << 1;
- d0 = 8 | (Gh & 1); /* first digit is 8 or 9 */
- }
- exp |= (x.s.exp & 63) << 2;
- exp |= x.s.manh >> 18;
- d1 = (x.s.manh >> 8) & 1023;
- d2 = ((x.s.manh << 2) | (x.s.manl >> 30)) & 1023;
- d3 = (x.s.manl >> 20) & 1023;
- d4 = (x.s.manl >> 10) & 1023;
- d5 = x.s.manl & 1023;
- sprintf (t, "%1u%3u%3u%3u%3u%3u", d0, T[d1], T[d2], T[d3], T[d4], T[d5]);
- /* Warning: some characters may be blank */
- for (i = 0; i < 16; i++)
- if (t[i] == ' ')
- t[i] = '0';
- t += 16;
-#else /* BID */
- /* IEEE 754-2008 specifies that if the decoded significand exceeds the
- maximum, i.e. here if it is >= 10^16, then the value is zero. */
- if (Gh < 24)
- {
- /* the biased exponent E is formed from G[0] to G[9] and the
- significand from bits G[10] through the end of the decoding */
- exp = x.s.exp >> 1;
- /* manh has 20 bits, manl has 32 bits */
- rp[1] = ((x.s.exp & 1) << 20) | x.s.manh;
- rp[0] = x.s.manl;
- }
- else
- {
- /* the biased exponent is formed from G[2] to G[11] */
- exp = (x.s.exp & 511) << 1;
- rp[1] = x.s.manh;
- rp[0] = x.s.manl;
- exp |= rp[1] >> 19;
- rp[1] &= 524287; /* 2^19-1: cancel G[11] */
- rp[1] |= 2097152; /* add 2^21 */
- }
- /* now convert {rp, 2} to {sp, NLIMBS} */
-#if GMP_NUMB_BITS >= 64
- sp[0] = MPFR_LIMB(rp[0]) | MPFR_LIMB_LSHIFT(rp[1],32);
-#elif GMP_NUMB_BITS == 32
- sp[0] = rp[0];
- sp[1] = rp[1];
-#elif GMP_NUMB_BITS == 16
- sp[0] = MPFR_LIMB(rp[0]);
- sp[1] = MPFR_LIMB(rp[0] >> 16);
- sp[2] = MPFR_LIMB(rp[1]);
- sp[3] = MPFR_LIMB(rp[1] >> 16);
-#elif GMP_NUMB_BITS == 8
- sp[0] = MPFR_LIMB(rp[0]);
- sp[1] = MPFR_LIMB(rp[0] >> 8);
- sp[2] = MPFR_LIMB(rp[0] >> 16);
- sp[3] = MPFR_LIMB(rp[0] >> 24);
- sp[4] = MPFR_LIMB(rp[1]);
- sp[5] = MPFR_LIMB(rp[1] >> 8);
- sp[6] = MPFR_LIMB(rp[1] >> 16);
- sp[7] = MPFR_LIMB(rp[1] >> 24);
-#else
-#error "GMP_NUMB_BITS should be 8, 16, 32, or >= 64"
-#endif
- sn = NLIMBS;
- while (sn > 0 && sp[sn - 1] == 0)
- sn --;
- if (sn == 0)
- {
- zero:
- *t = 0;
- i = 1;
- }
- else
- {
- i = mpn_get_str ((unsigned char*) t, 10, sp, sn);
- if (i > 16) /* non-canonical encoding: return zero */
- goto zero;
- }
- /* convert the values from mpn_get_str (0, 1, ..., 9) to digits: */
- while (i-- > 0)
- *t++ += '0';
-#endif /* DPD or BID */
-
- exp -= 398; /* unbiased exponent: -398 = emin - (p-1) where
- emin = 1-emax = 1-384 = -383 and p=16 */
- sprintf (t, "E%d", exp);
-}
-
-#else /* portable version */
-
-#ifndef DEC64_MAX
-# define DEC64_MAX 9.999999999999999E384dd
-#endif
-
-static void
-decimal64_to_string (char *s, _Decimal64 d)
-{
- int sign = 0, n;
- int exp = 0;
-
- if (MPFR_UNLIKELY (DOUBLE_ISNAN (d))) /* NaN */
- {
- sprintf (s, "NaN"); /* sprintf puts a final '\0' */
- return;
- }
- else if (MPFR_UNLIKELY (d > DEC64_MAX)) /* +Inf */
- {
- sprintf (s, "Inf");
- return;
- }
- else if (MPFR_UNLIKELY (d < -DEC64_MAX)) /* -Inf */
- {
- sprintf (s, "-Inf");
- return;
- }
-
- /* now d is neither NaN nor +Inf nor -Inf */
-
- if (d < (_Decimal64) 0.0)
- {
- sign = 1;
- d = -d;
- }
- else if (d == (_Decimal64) -0.0)
- { /* Warning: the comparison d == -0.0 returns true for d = 0.0 too,
- copy code from set_d.c here. We first compare to the +0.0 bitstring,
- in case +0.0 and -0.0 are represented identically. */
- double dd = (double) d, poszero = +0.0, negzero = DBL_NEG_ZERO;
- if (memcmp (&dd, &poszero, sizeof(double)) != 0 &&
- memcmp (&dd, &negzero, sizeof(double)) == 0)
- {
- sign = 1;
- d = -d;
- }
- }
-
- /* now normalize d in [0.1, 1[ */
- if (d >= (_Decimal64) 1.0)
- {
- _Decimal64 ten16 = (double) 1e16; /* 10^16 is exactly representable
- in binary64 */
- _Decimal64 ten32 = ten16 * ten16;
- _Decimal64 ten64 = ten32 * ten32;
- _Decimal64 ten128 = ten64 * ten64;
- _Decimal64 ten256 = ten128 * ten128;
-
- if (d >= ten256)
- {
- d /= ten256;
- exp += 256;
- }
- if (d >= ten128)
- {
- d /= ten128;
- exp += 128;
- }
- if (d >= ten64)
- {
- d /= ten64;
- exp += 64;
- }
- if (d >= ten32)
- {
- d /= ten32;
- exp += 32;
- }
- if (d >= (_Decimal64) 10000000000000000.0)
- {
- d /= (_Decimal64) 10000000000000000.0;
- exp += 16;
- }
- if (d >= (_Decimal64) 100000000.0)
- {
- d /= (_Decimal64) 100000000.0;
- exp += 8;
- }
- if (d >= (_Decimal64) 10000.0)
- {
- d /= (_Decimal64) 10000.0;
- exp += 4;
- }
- if (d >= (_Decimal64) 100.0)
- {
- d /= (_Decimal64) 100.0;
- exp += 2;
- }
- if (d >= (_Decimal64) 10.0)
- {
- d /= (_Decimal64) 10.0;
- exp += 1;
- }
- if (d >= (_Decimal64) 1.0)
- {
- d /= (_Decimal64) 10.0;
- exp += 1;
- }
- }
- else /* d < 1.0 */
- {
- _Decimal64 ten16, ten32, ten64, ten128, ten256;
-
- ten16 = (double) 1e16; /* 10^16 is exactly representable in binary64 */
- ten16 = (_Decimal64) 1.0 / ten16; /* 10^(-16), exact */
- ten32 = ten16 * ten16;
- ten64 = ten32 * ten32;
- ten128 = ten64 * ten64;
- ten256 = ten128 * ten128;
-
- if (d < ten256)
- {
- d /= ten256;
- exp -= 256;
- }
- if (d < ten128)
- {
- d /= ten128;
- exp -= 128;
- }
- if (d < ten64)
- {
- d /= ten64;
- exp -= 64;
- }
- if (d < ten32)
- {
- d /= ten32;
- exp -= 32;
- }
- /* the double constant 0.0000000000000001 is 2028240960365167/2^104,
- which should be rounded to 1e-16 in _Decimal64 */
- if (d < (_Decimal64) 0.0000000000000001)
- {
- d *= (_Decimal64) 10000000000000000.0;
- exp -= 16;
- }
- /* the double constant 0.00000001 is 3022314549036573/2^78,
- which should be rounded to 1e-8 in _Decimal64 */
- if (d < (_Decimal64) 0.00000001)
- {
- d *= (_Decimal64) 100000000.0;
- exp -= 8;
- }
- /* the double constant 0.0001 is 7378697629483821/2^66,
- which should be rounded to 1e-4 in _Decimal64 */
- if (d < (_Decimal64) 0.0001)
- {
- d *= (_Decimal64) 10000.0;
- exp -= 4;
- }
- /* the double constant 0.01 is 5764607523034235/2^59,
- which should be rounded to 1e-2 in _Decimal64 */
- if (d < (_Decimal64) 0.01)
- {
- d *= (_Decimal64) 100.0;
- exp -= 2;
- }
- /* the double constant 0.1 is 3602879701896397/2^55,
- which should be rounded to 1e-1 in _Decimal64 */
- if (d < (_Decimal64) 0.1)
- {
- d *= (_Decimal64) 10.0;
- exp -= 1;
- }
- }
-
- /* now 0.1 <= d < 1 */
- if (sign == 1)
- *s++ = '-';
- *s++ = '0';
- *s++ = '.';
- for (n = 0; n < 16; n++)
- {
- double e;
- int r;
-
- d *= (_Decimal64) 10.0;
- e = (double) d;
- r = (int) e;
- *s++ = '0' + r;
- d -= (_Decimal64) r;
- }
- MPFR_ASSERTN(d == (_Decimal64) 0.0);
- if (exp != 0)
- sprintf (s, "E%d", exp); /* adds a final '\0' */
- else
- *s = '\0';
-}
-
-#endif /* definition of decimal64_to_string (DPD, BID, or portable) */
-
-/* the IEEE754-2008 decimal64 format has 16 digits, with emax=384,
- emin=1-emax=-383 */
-int
-mpfr_set_decimal64 (mpfr_ptr r, _Decimal64 d, mpfr_rnd_t rnd_mode)
-{
- char s[25]; /* need 1 character for sign,
- 2 characters for '0.'
- 16 characters for significand,
- 1 character for exponent 'E',
- 4 characters for exponent (including sign),
- 1 character for terminating \0. */
-
- decimal64_to_string (s, d);
- MPFR_LOG_MSG (("string: %s\n", s));
- return mpfr_strtofr (r, s, NULL, 10, rnd_mode);
-}
-
-#endif /* MPFR_WANT_DECIMAL_FLOATS */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_dfl_prec.c b/Build/source/libs/mpfr/mpfr-src/src/set_dfl_prec.c
deleted file mode 100644
index 3e3143a7617..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_dfl_prec.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* mpfr_set_default_prec, mpfr_get_default_prec -- set/get default precision
-
-Copyright 1999-2001, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* default is IEEE double precision, i.e. 53 bits */
-MPFR_THREAD_VAR (mpfr_prec_t, __gmpfr_default_fp_bit_precision,
- IEEE_DBL_MANT_DIG)
-
-void
-mpfr_set_default_prec (mpfr_prec_t prec)
-{
- MPFR_ASSERTN (MPFR_PREC_COND (prec));
- __gmpfr_default_fp_bit_precision = prec;
-}
-
-#undef mpfr_get_default_prec
-mpfr_prec_t
-mpfr_get_default_prec (void)
-{
- return __gmpfr_default_fp_bit_precision;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_exp.c b/Build/source/libs/mpfr/mpfr-src/src/set_exp.c
deleted file mode 100644
index a10875a67d9..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_exp.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* mpfr_set_exp - set the exponent of a floating-point number
-
-Copyright 2002-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_set_exp (mpfr_ptr x, mpfr_exp_t exponent)
-{
- if (MPFR_LIKELY (MPFR_IS_PURE_FP (x) &&
- exponent >= __gmpfr_emin &&
- exponent <= __gmpfr_emax))
- {
- MPFR_EXP(x) = exponent; /* do not use MPFR_SET_EXP of course... */
- return 0;
- }
- else
- {
- return 1;
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_f.c b/Build/source/libs/mpfr/mpfr-src/src/set_f.c
deleted file mode 100644
index 76cdbbf85df..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_f.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* mpfr_set_f -- set a MPFR number from a GNU MPF number
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#define MPFR_NEED_MPF_INTERNALS
-#include "mpfr-impl.h"
-
-#ifndef MPFR_USE_MINI_GMP
-int
-mpfr_set_f (mpfr_ptr y, mpf_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mp_limb_t *my, *mx, *tmp;
- int cnt;
- mp_size_t sx, sy;
- int inexact, carry = 0;
- MPFR_TMP_DECL(marker);
-
- sx = ABSIZ(x); /* number of limbs of the mantissa of x */
-
- if (sx == 0) /* x is zero */
- {
- MPFR_SET_ZERO(y);
- MPFR_SET_POS(y);
- return 0; /* 0 is exact */
- }
-
- if (SIZ(x) * MPFR_FROM_SIGN_TO_INT(MPFR_SIGN(y)) < 0)
- MPFR_CHANGE_SIGN (y);
-
- sy = MPFR_LIMB_SIZE (y);
- my = MPFR_MANT(y);
- mx = PTR(x);
-
- count_leading_zeros(cnt, mx[sx - 1]);
-
- if (sy <= sx) /* we may have to round even when sy = sx */
- {
- mpfr_prec_t xprec = (mpfr_prec_t) sx * GMP_NUMB_BITS;
-
- MPFR_TMP_MARK(marker);
- tmp = MPFR_TMP_LIMBS_ALLOC (sx);
- if (cnt)
- mpn_lshift (tmp, mx, sx, cnt);
- else
- /* FIXME: we may avoid the copy here, and directly call mpfr_round_raw
- on mx instead of tmp */
- MPN_COPY (tmp, mx, sx);
- carry = mpfr_round_raw (my, tmp, xprec, (SIZ(x) < 0), MPFR_PREC(y),
- rnd_mode, &inexact);
- if (MPFR_UNLIKELY(carry)) /* result is a power of two */
- my[sy - 1] = MPFR_LIMB_HIGHBIT;
- MPFR_TMP_FREE(marker);
- }
- else
- {
- if (cnt)
- mpn_lshift (my + sy - sx, mx, sx, cnt);
- else
- MPN_COPY (my + sy - sx, mx, sx);
- MPN_ZERO(my, sy - sx);
- /* no rounding necessary, since y has a larger mantissa */
- inexact = 0;
- }
-
- /* warning: EXP(x) * GMP_NUMB_BITS may exceed the maximal exponent */
- if (EXP(x) > 1 + (__gmpfr_emax - 1) / GMP_NUMB_BITS)
- {
- /* EXP(x) >= 2 + floor((__gmpfr_emax-1)/GMP_NUMB_BITS)
- EXP(x) >= 2 + (__gmpfr_emax - GMP_NUMB_BITS) / GMP_NUMB_BITS
- >= 1 + __gmpfr_emax / GMP_NUMB_BITS
- EXP(x) * GMP_NUMB_BITS >= __gmpfr_emax + GMP_NUMB_BITS
- Since 0 <= cnt <= GMP_NUMB_BITS-1, and 0 <= carry <= 1,
- we have then EXP(x) * GMP_NUMB_BITS - cnt + carry > __gmpfr_emax */
- return mpfr_overflow (y, rnd_mode, MPFR_SIGN (y));
- }
- else
- {
- /* Do not use MPFR_SET_EXP as the exponent may be out of range. */
- MPFR_EXP (y) = EXP (x) * GMP_NUMB_BITS - cnt + carry;
- }
-
- return mpfr_check_range (y, inexact, rnd_mode);
-}
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_float128.c b/Build/source/libs/mpfr/mpfr-src/src/set_float128.c
deleted file mode 100644
index aff75d2bd99..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_float128.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* mpfr_set_float128 -- convert a machine _Float128 number to
- a multiple precision floating-point number
-
-Copyright 2012-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#ifdef MPFR_WANT_FLOAT128
-
-#if MPFR_WANT_FLOAT128 == 1
-/* _Float128 type from ISO/IEC TS 18661 */
-# define MPFR_FLOAT128_MAX 0x1.ffffffffffffffffffffffffffffp+16383f128
-#elif MPFR_WANT_FLOAT128 == 2
-/* __float128 type (GNU C extension) */
-# define MPFR_FLOAT128_MAX 0x1.ffffffffffffffffffffffffffffp+16383q
-#else
-# error "Unsupported value for MPFR_WANT_FLOAT128"
-#endif
-
-int
-mpfr_set_float128 (mpfr_ptr r, _Float128 d, mpfr_rnd_t rnd_mode)
-{
- mpfr_t t;
- mp_limb_t *tp;
- int inexact, shift_exp, neg, e, i;
- _Float128 p[14], q[14];
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Check for NaN */
- if (MPFR_UNLIKELY (DOUBLE_ISNAN (d)))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
-
- /* Check for INF */
- if (MPFR_UNLIKELY (d > MPFR_FLOAT128_MAX))
- {
- MPFR_SET_INF (r);
- MPFR_SET_POS (r);
- return 0;
- }
- else if (MPFR_UNLIKELY (d < -MPFR_FLOAT128_MAX))
- {
- MPFR_SET_INF (r);
- MPFR_SET_NEG (r);
- return 0;
- }
- /* Check for ZERO */
- else if (MPFR_UNLIKELY (d == (_Float128) 0.0))
- return mpfr_set_d (r, (double) d, rnd_mode);
-
- shift_exp = 0; /* invariant: remainder to deal with is d*2^shift_exp */
- neg = d < 0;
- if (d < 0)
- d = -d;
-
- /* Scaling, avoiding (slow) divisions. Should the tables be cached? */
- if (d >= 1.0)
- {
- p[0] = 2.0;
- q[0] = 0.5;
- e = 1;
- /* p[i] = 2^(2^i), q[i] = 1/p[i] */
- for (i = 0; i < 13 && d >= p[i]; i++)
- {
- p[i+1] = p[i] * p[i];
- q[i+1] = q[i] * q[i];
- e <<= 1;
- }
- for (; i >= 0; e >>= 1, i--)
- if (d >= p[i])
- {
- d *= q[i];
- shift_exp += e;
- }
- d *= 0.5;
- shift_exp++;
- }
- else if (d < 0.5)
- {
- p[0] = 2.0;
- q[0] = 0.5;
- e = 1;
- /* p[i] = 2^(2^i), q[i] = 1/p[i] */
- for (i = 0; i < 13 && d < q[i]; i++)
- {
- p[i+1] = p[i] * p[i];
- q[i+1] = q[i] * q[i];
- e <<= 1;
- }
- /* The while() may be needed for i = 13 due to subnormals.
- This can probably be improved without yielding an underflow. */
- for (; i >= 0; e >>= 1, i--)
- while (d < q[i])
- {
- d *= p[i];
- shift_exp -= e;
- }
- }
-
- MPFR_ASSERTD (d >= 0.5 && d < 1.0);
-
- mpfr_init2 (t, IEEE_FLOAT128_MANT_DIG);
- tp = MPFR_MANT (t);
-
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_SET_EXP (t, shift_exp);
- MPFR_SET_SIGN (t, neg ? MPFR_SIGN_NEG : MPFR_SIGN_POS);
-
- for (i = MPFR_LAST_LIMB (t); i >= 0; i--)
- {
- d *= 2 * (_Float128) MPFR_LIMB_HIGHBIT;
- tp[i] = (mp_limb_t) d;
- d -= tp[i];
- }
-
- inexact = mpfr_set (r, t, rnd_mode);
- mpfr_clear (t);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inexact, rnd_mode);
-}
-
-#endif /* MPFR_WANT_FLOAT128 */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_flt.c b/Build/source/libs/mpfr/mpfr-src/src/set_flt.c
deleted file mode 100644
index 5a6edbc90bc..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_flt.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* mpfr_set_flt -- convert a machine single precision float to mpfr_t
-
-Copyright 2009-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_set_flt (mpfr_ptr r, float f, mpfr_rnd_t rnd_mode)
-{
- /* we convert f to double precision and use mpfr_set_d;
- NaN and infinities should be preserved, and all single precision
- numbers are exactly representable in the double format, thus the
- conversion is always exact */
- return mpfr_set_d (r, (double) f, rnd_mode);
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_inf.c b/Build/source/libs/mpfr/mpfr-src/src/set_inf.c
deleted file mode 100644
index 78c7b766780..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_inf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* mpfr_set_inf -- set a number to plus or minus infinity.
-
-Copyright 2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-void
-mpfr_set_inf (mpfr_ptr x, int sign)
-{
- MPFR_SET_INF(x);
- if (sign >= 0)
- MPFR_SET_POS(x);
- else
- MPFR_SET_NEG(x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_ld.c b/Build/source/libs/mpfr/mpfr-src/src/set_ld.c
deleted file mode 100644
index 3ff57b99472..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_ld.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/* mpfr_set_ld -- convert a machine long double to
- a multiple precision floating-point number
-
-Copyright 2002-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h> /* needed so that MPFR_LDBL_MANT_DIG is correctly defined */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* To check for +inf, one can use the test x > LDBL_MAX, as LDBL_MAX is
- the maximum finite number representable in a long double, according
- to DR 467; see
- http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2092.htm
- If this fails on some platform, a test x - x != 0 might be used. */
-
-#if defined(HAVE_LDOUBLE_IS_DOUBLE)
-
-/* the "long double" format is the same as "double" */
-int
-mpfr_set_ld (mpfr_ptr r, long double d, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set_d (r, (double) d, rnd_mode);
-}
-
-#elif defined(HAVE_LDOUBLE_IEEE_EXT_LITTLE)
-
-#if GMP_NUMB_BITS >= 64
-# define MPFR_LIMBS_PER_LONG_DOUBLE 1
-#elif GMP_NUMB_BITS == 32
-# define MPFR_LIMBS_PER_LONG_DOUBLE 2
-#elif GMP_NUMB_BITS == 16
-# define MPFR_LIMBS_PER_LONG_DOUBLE 4
-#elif GMP_NUMB_BITS == 8
-# define MPFR_LIMBS_PER_LONG_DOUBLE 8
-#else
-#error "GMP_NUMB_BITS is assumed to be 8, 16, 32 or >= 64"
-#endif
-/* The hypothetical GMP_NUMB_BITS == 16 is not supported. It will trigger
- an error below. */
-
-/* IEEE Extended Little Endian Code */
-int
-mpfr_set_ld (mpfr_ptr r, long double d, mpfr_rnd_t rnd_mode)
-{
- int inexact, k, cnt;
- mpfr_t tmp;
- mp_limb_t tmpmant[MPFR_LIMBS_PER_LONG_DOUBLE];
- mpfr_long_double_t x;
- mpfr_exp_t exp;
- int signd;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Check for NAN */
- if (MPFR_UNLIKELY (DOUBLE_ISNAN (d)))
- {
- MPFR_SET_NAN (r);
- MPFR_RET_NAN;
- }
- /* Check for INF */
- else if (MPFR_UNLIKELY (d > LDBL_MAX))
- {
- MPFR_SET_INF (r);
- MPFR_SET_POS (r);
- return 0;
- }
- else if (MPFR_UNLIKELY (d < -LDBL_MAX))
- {
- MPFR_SET_INF (r);
- MPFR_SET_NEG (r);
- return 0;
- }
- /* Check for ZERO */
- else if (MPFR_UNLIKELY (d == 0.0))
- {
- x.ld = d;
- MPFR_SET_ZERO (r);
- if (x.s.sign == 1)
- MPFR_SET_NEG(r);
- else
- MPFR_SET_POS(r);
- return 0;
- }
-
- /* now d is neither 0, nor NaN nor Inf */
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_MANT (tmp) = tmpmant;
- MPFR_PREC (tmp) = 64;
-
- /* Extract sign */
- x.ld = d;
- signd = MPFR_SIGN_POS;
- if (x.ld < 0.0)
- {
- signd = MPFR_SIGN_NEG;
- x.ld = -x.ld;
- }
-
- /* Extract and normalize the significand */
-#if MPFR_LIMBS_PER_LONG_DOUBLE == 1
- tmpmant[0] = ((mp_limb_t) x.s.manh << 32) | ((mp_limb_t) x.s.manl);
- count_leading_zeros (cnt, tmpmant[0]);
- tmpmant[0] <<= cnt;
- k = 0; /* number of limbs shifted */
-#else /* MPFR_LIMBS_PER_LONG_DOUBLE >= 2 */
-#if MPFR_LIMBS_PER_LONG_DOUBLE == 2
- tmpmant[0] = (mp_limb_t) x.s.manl;
- tmpmant[1] = (mp_limb_t) x.s.manh;
-#elif MPFR_LIMBS_PER_LONG_DOUBLE == 4
- tmpmant[0] = (mp_limb_t) x.s.manl;
- tmpmant[1] = (mp_limb_t) (x.s.manl >> 16);
- tmpmant[2] = (mp_limb_t) x.s.manh;
- tmpmant[3] = (mp_limb_t) (x.s.manh >> 16);
-#elif MPFR_LIMBS_PER_LONG_DOUBLE == 8
- tmpmant[0] = (mp_limb_t) x.s.manl;
- tmpmant[1] = (mp_limb_t) (x.s.manl >> 8);
- tmpmant[2] = (mp_limb_t) (x.s.manl >> 16);
- tmpmant[3] = (mp_limb_t) (x.s.manl >> 24);
- tmpmant[4] = (mp_limb_t) x.s.manh;
- tmpmant[5] = (mp_limb_t) (x.s.manh >> 8);
- tmpmant[6] = (mp_limb_t) (x.s.manh >> 16);
- tmpmant[7] = (mp_limb_t) (x.s.manh >> 24);
-#else
-#error "MPFR_LIMBS_PER_LONG_DOUBLE should be 1, 2, 4 or 8"
-#endif /* MPFR_LIMBS_PER_LONG_DOUBLE >= 2 */
- {
- int i = MPFR_LIMBS_PER_LONG_DOUBLE;
- MPN_NORMALIZE_NOT_ZERO (tmpmant, i);
- k = MPFR_LIMBS_PER_LONG_DOUBLE - i;
- count_leading_zeros (cnt, tmpmant[i - 1]);
- if (cnt != 0)
- mpn_lshift (tmpmant + k, tmpmant, i, cnt);
- else if (k != 0)
- /* since we copy {tmpmant, i} into {tmpmant + k, i}, we should work
- decreasingly, thus call mpn_copyd */
- mpn_copyd (tmpmant + k, tmpmant, i);
- if (k != 0)
- MPN_ZERO (tmpmant, k);
- }
-#endif /* MPFR_LIMBS_PER_LONG_DOUBLE == 1 */
-
- /* Set exponent */
- exp = (mpfr_exp_t) ((x.s.exph << 8) + x.s.expl); /* 15-bit unsigned int */
- if (MPFR_UNLIKELY (exp == 0))
- exp -= 0x3FFD;
- else
- exp -= 0x3FFE;
-
- MPFR_SET_EXP (tmp, exp - cnt - k * GMP_NUMB_BITS);
-
- /* tmp is exact */
- inexact = mpfr_set4 (r, tmp, rnd_mode, signd);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inexact, rnd_mode);
-}
-
-#elif defined(HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE)
-
-/* double-double code */
-int
-mpfr_set_ld (mpfr_ptr r, long double d, mpfr_rnd_t rnd_mode)
-{
- mpfr_t t, u;
- int inexact;
- double h, l;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Check for NAN */
- LONGDOUBLE_NAN_ACTION (d, goto nan);
-
- /* Check for INF */
- if (d > LDBL_MAX)
- {
- mpfr_set_inf (r, 1);
- return 0;
- }
- else if (d < -LDBL_MAX)
- {
- mpfr_set_inf (r, -1);
- return 0;
- }
- /* Check for ZERO */
- else if (d == 0.0)
- return mpfr_set_d (r, (double) d, rnd_mode);
-
- if (d >= LDBL_MAX || d <= -LDBL_MAX)
- h = (d >= LDBL_MAX) ? LDBL_MAX : -LDBL_MAX;
- else
- h = (double) d; /* should not overflow */
- l = (double) (d - (long double) h);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- mpfr_init2 (t, IEEE_DBL_MANT_DIG);
- mpfr_init2 (u, IEEE_DBL_MANT_DIG);
-
- inexact = mpfr_set_d (t, h, MPFR_RNDN);
- MPFR_ASSERTN(inexact == 0);
- inexact = mpfr_set_d (u, l, MPFR_RNDN);
- MPFR_ASSERTN(inexact == 0);
- inexact = mpfr_add (r, t, u, rnd_mode);
-
- mpfr_clear (t);
- mpfr_clear (u);
-
- MPFR_SAVE_EXPO_FREE (expo);
- inexact = mpfr_check_range (r, inexact, rnd_mode);
- return inexact;
-
- nan:
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
-}
-
-#else
-
-/* Generic code */
-int
-mpfr_set_ld (mpfr_ptr r, long double d, mpfr_rnd_t rnd_mode)
-{
- mpfr_t t, u;
- int inexact, shift_exp;
- long double x;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Check for NAN */
- LONGDOUBLE_NAN_ACTION (d, goto nan);
-
- /* Check for INF */
- if (d > LDBL_MAX)
- {
- mpfr_set_inf (r, 1);
- return 0;
- }
- else if (d < -LDBL_MAX)
- {
- mpfr_set_inf (r, -1);
- return 0;
- }
- /* Check for ZERO */
- else if (d == 0.0)
- return mpfr_set_d (r, (double) d, rnd_mode);
-
- mpfr_init2 (t, MPFR_LDBL_MANT_DIG);
- mpfr_init2 (u, IEEE_DBL_MANT_DIG);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- convert:
- x = d;
- MPFR_SET_ZERO (t); /* The sign doesn't matter. */
- shift_exp = 0; /* invariant: remainder to deal with is d*2^shift_exp */
- while (x != (long double) 0.0)
- {
- /* Check overflow of double */
- if (x > (long double) DBL_MAX || (-x) > (long double) DBL_MAX)
- {
- long double div9, div10, div11, div12, div13;
-
-#define TWO_64 18446744073709551616.0 /* 2^64 */
-#define TWO_128 (TWO_64 * TWO_64)
-#define TWO_256 (TWO_128 * TWO_128)
- div9 = (long double) (double) (TWO_256 * TWO_256); /* 2^(2^9) */
- div10 = div9 * div9;
- div11 = div10 * div10; /* 2^(2^11) */
- div12 = div11 * div11; /* 2^(2^12) */
- div13 = div12 * div12; /* 2^(2^13) */
- if (ABS (x) >= div13)
- {
- x /= div13; /* exact */
- shift_exp += 8192;
- mpfr_div_2si (t, t, 8192, MPFR_RNDZ);
- }
- if (ABS (x) >= div12)
- {
- x /= div12; /* exact */
- shift_exp += 4096;
- mpfr_div_2si (t, t, 4096, MPFR_RNDZ);
- }
- if (ABS (x) >= div11)
- {
- x /= div11; /* exact */
- shift_exp += 2048;
- mpfr_div_2si (t, t, 2048, MPFR_RNDZ);
- }
- if (ABS (x) >= div10)
- {
- x /= div10; /* exact */
- shift_exp += 1024;
- mpfr_div_2si (t, t, 1024, MPFR_RNDZ);
- }
- /* warning: we may have DBL_MAX=2^1024*(1-2^(-53)) < x < 2^1024,
- therefore we have one extra exponent reduction step */
- if (ABS (x) >= div9)
- {
- x /= div9; /* exact */
- shift_exp += 512;
- mpfr_div_2si (t, t, 512, MPFR_RNDZ);
- }
- } /* Check overflow of double */
- else /* no overflow on double */
- {
- long double div9, div10, div11;
-
- div9 = (long double) (double) 7.4583407312002067432909653e-155;
- /* div9 = 2^(-2^9) */
- div10 = div9 * div9; /* 2^(-2^10) */
- div11 = div10 * div10; /* 2^(-2^11) if extended precision */
- /* since -DBL_MAX <= x <= DBL_MAX, the cast to double should not
- overflow here */
- if (ABS(x) < div10 &&
- div11 != (long double) 0.0 &&
- div11 / div10 == div10) /* possible underflow */
- {
- long double div12, div13;
- /* After the divisions, any bit of x must be >= div10,
- hence the possible division by div9. */
- div12 = div11 * div11; /* 2^(-2^12) */
- div13 = div12 * div12; /* 2^(-2^13) */
- if (ABS (x) <= div13)
- {
- x /= div13; /* exact */
- shift_exp -= 8192;
- mpfr_mul_2si (t, t, 8192, MPFR_RNDZ);
- }
- if (ABS (x) <= div12)
- {
- x /= div12; /* exact */
- shift_exp -= 4096;
- mpfr_mul_2si (t, t, 4096, MPFR_RNDZ);
- }
- if (ABS (x) <= div11)
- {
- x /= div11; /* exact */
- shift_exp -= 2048;
- mpfr_mul_2si (t, t, 2048, MPFR_RNDZ);
- }
- if (ABS (x) <= div10)
- {
- x /= div10; /* exact */
- shift_exp -= 1024;
- mpfr_mul_2si (t, t, 1024, MPFR_RNDZ);
- }
- if (ABS(x) <= div9)
- {
- x /= div9; /* exact */
- shift_exp -= 512;
- mpfr_mul_2si (t, t, 512, MPFR_RNDZ);
- }
- }
- else /* no underflow */
- {
- inexact = mpfr_set_d (u, (double) x, MPFR_RNDZ);
- MPFR_ASSERTD (inexact == 0);
- if (mpfr_add (t, t, u, MPFR_RNDZ) != 0)
- {
- if (!mpfr_number_p (t))
- break;
- /* Inexact. This cannot happen unless the C implementation
- "lies" on the precision or when long doubles are
- implemented with FP expansions like double-double on
- PowerPC. */
- if (MPFR_PREC (t) != MPFR_PREC (r) + 1)
- {
- /* We assume that MPFR_PREC (r) < MPFR_PREC_MAX.
- The precision MPFR_PREC (r) + 1 allows us to
- deduce the rounding bit and the sticky bit. */
- mpfr_set_prec (t, MPFR_PREC (r) + 1);
- goto convert;
- }
- else
- {
- mp_limb_t *tp;
- int rb_mask;
-
- /* Since mpfr_add was inexact, the sticky bit is 1. */
- tp = MPFR_MANT (t);
- rb_mask = MPFR_LIMB_ONE <<
- (GMP_NUMB_BITS - 1 -
- (MPFR_PREC (r) & (GMP_NUMB_BITS - 1)));
- if (rnd_mode == MPFR_RNDN)
- rnd_mode = (*tp & rb_mask) ^ MPFR_IS_NEG (t) ?
- MPFR_RNDU : MPFR_RNDD;
- *tp |= rb_mask;
- break;
- }
- }
- x -= (long double) mpfr_get_d1 (u); /* exact */
- }
- }
- }
- inexact = mpfr_mul_2si (r, t, shift_exp, rnd_mode);
- mpfr_clear (t);
- mpfr_clear (u);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inexact, rnd_mode);
-
- nan:
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_nan.c b/Build/source/libs/mpfr/mpfr-src/src/set_nan.c
deleted file mode 100644
index 21843f47e29..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_nan.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* mpfr_set_nan -- set a number to NaN.
-
-Copyright 2002, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#include "mpfr-impl.h"
-
-void
-mpfr_set_nan (mpfr_ptr x)
-{
- MPFR_SET_NAN (x);
- __gmpfr_flags |= MPFR_FLAGS_NAN;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_prc_raw.c b/Build/source/libs/mpfr/mpfr-src/src/set_prc_raw.c
deleted file mode 100644
index f156d9eefc4..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_prc_raw.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* mpfr_set_prec_raw -- reset the precision of a floating-point number
-
-Copyright 2000-2001, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-void
-mpfr_set_prec_raw (mpfr_ptr x, mpfr_prec_t p)
-{
- MPFR_ASSERTN (MPFR_PREC_COND (p));
- MPFR_ASSERTN (p <= (mpfr_prec_t) MPFR_GET_ALLOC_SIZE(x) * GMP_NUMB_BITS);
- MPFR_PREC(x) = p;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_prec.c b/Build/source/libs/mpfr/mpfr-src/src/set_prec.c
deleted file mode 100644
index ea2f385660e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_prec.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* mpfr_set_prec -- reset the precision of a floating-point number
-
-Copyright 1999, 2001-2002, 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR void
-mpfr_set_prec (mpfr_ptr x, mpfr_prec_t p)
-{
- mp_size_t xsize, xoldsize;
-
- /* first, check if p is correct */
- MPFR_ASSERTN (MPFR_PREC_COND (p));
-
- /* Calculate the new number of limbs */
- xsize = MPFR_PREC2LIMBS (p);
-
- /* Realloc only if the new size is greater than the old */
- xoldsize = MPFR_GET_ALLOC_SIZE (x);
- if (xsize > xoldsize)
- {
- mpfr_size_limb_t *tmp;
-
- tmp = (mpfr_size_limb_t *) mpfr_reallocate_func
- (MPFR_GET_REAL_PTR(x),
- MPFR_MALLOC_SIZE(xoldsize),
- MPFR_MALLOC_SIZE(xsize));
- MPFR_SET_MANT_PTR(x, tmp);
- MPFR_SET_ALLOC_SIZE(x, xsize);
- }
- MPFR_PREC (x) = p;
- MPFR_SET_NAN (x); /* initializes to NaN */
-}
-
-#undef mpfr_get_prec
-mpfr_prec_t
-mpfr_get_prec (mpfr_srcptr x)
-{
- return MPFR_PREC(x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_q.c b/Build/source/libs/mpfr/mpfr-src/src/set_q.c
deleted file mode 100644
index af2a6c24dbb..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_q.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* mpfr_set_q -- set a floating-point number from a multiple-precision rational
-
-Copyright 2000-2002, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#ifndef MPFR_USE_MINI_GMP
-/*
- * Set f to z, choosing the smallest precision for f
- * so that z = f*(2^BPML)*zs*2^(RetVal)
- */
-static int
-set_z (mpfr_ptr f, mpz_srcptr z, mp_size_t *zs)
-{
- mp_limb_t *p;
- mp_size_t s;
- int c;
- mpfr_prec_t pf;
-
- MPFR_ASSERTD (mpz_sgn (z) != 0);
-
- /* Remove useless ending 0 */
- for (p = PTR (z), s = *zs = ABSIZ (z) ; *p == 0; p++, s--)
- MPFR_ASSERTD (s >= 0);
-
- /* Get working precision */
- count_leading_zeros (c, p[s-1]);
- pf = s * GMP_NUMB_BITS - c;
- MPFR_ASSERTD (pf >= 1);
- mpfr_init2 (f, pf >= MPFR_PREC_MIN ? pf : MPFR_PREC_MIN);
-
- /* Copy Mantissa */
- if (MPFR_LIKELY (c))
- mpn_lshift (MPFR_MANT (f), p, s, c);
- else
- MPN_COPY (MPFR_MANT (f), p, s);
-
- MPFR_SET_SIGN (f, mpz_sgn (z));
- MPFR_SET_EXP (f, 0);
-
- return -c;
-}
-
-/* set f to the rational q */
-int
-mpfr_set_q (mpfr_ptr f, mpq_srcptr q, mpfr_rnd_t rnd)
-{
- mpz_srcptr num, den;
- mpfr_t n, d;
- int inexact;
- int cn, cd;
- long shift;
- mp_size_t sn, sd;
- MPFR_SAVE_EXPO_DECL (expo);
-
- num = mpq_numref (q);
- den = mpq_denref (q);
- /* NAN and INF for mpq are not really documented, but could be found */
- if (MPFR_UNLIKELY (mpz_sgn (num) == 0))
- {
- if (MPFR_UNLIKELY (mpz_sgn (den) == 0))
- {
- MPFR_SET_NAN (f);
- MPFR_RET_NAN;
- }
- else
- {
- MPFR_SET_ZERO (f);
- MPFR_SET_POS (f);
- MPFR_RET (0);
- }
- }
- if (MPFR_UNLIKELY (mpz_sgn (den) == 0))
- {
- MPFR_SET_INF (f);
- MPFR_SET_SIGN (f, mpz_sgn (num));
- MPFR_RET (0);
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- cn = set_z (n, num, &sn);
- cd = set_z (d, den, &sd);
-
- /* sn is the number of limbs of the numerator, sd that of the denominator */
-
- sn -= sd;
-#if GMP_NUMB_BITS <= 32 /* overflow/underflow cannot happen on 64-bit
- processors, where MPFR_EMAX_MAX is 2^62 - 1, due to
- memory limits */
- /* If sn >= 0, the quotient has at most sn limbs, thus is larger or equal to
- 2^((sn-1)*GMP_NUMB_BITS), thus its exponent >= (sn-1)*GMP_NUMB_BITS)+1.
- (sn-1)*GMP_NUMB_BITS)+1 > emax yields (sn-1)*GMP_NUMB_BITS) >= emax,
- i.e., sn-1 >= floor(emax/GMP_NUMB_BITS). */
- if (MPFR_UNLIKELY (sn > MPFR_EMAX_MAX / GMP_NUMB_BITS))
- {
- MPFR_SAVE_EXPO_FREE (expo);
- inexact = mpfr_overflow (f, rnd, MPFR_SIGN (f));
- goto end;
- }
- /* If sn < 0, the inverse quotient is >= 2^((-sn-1)*GMP_NUMB_BITS),
- thus the quotient is <= 2^((sn+1)*GMP_NUMB_BITS), and thus its
- exponent is <= (sn+1)*GMP_NUMB_BITS+1.
- (sn+1)*GMP_NUMB_BITS+1 < emin yields (sn+1)*GMP_NUMB_BITS+2 <= emin,
- i.e., sn+1 <= floor((emin-2)/GMP_NUMB_BITS). */
- if (MPFR_UNLIKELY (sn <= (MPFR_EMIN_MIN - 2) / GMP_NUMB_BITS - 1))
- {
- MPFR_SAVE_EXPO_FREE (expo);
- if (rnd == MPFR_RNDN)
- rnd = MPFR_RNDZ;
- inexact = mpfr_underflow (f, rnd, MPFR_SIGN (f));
- goto end;
- }
-#endif
-
- inexact = mpfr_div (f, n, d, rnd);
- shift = GMP_NUMB_BITS*sn+cn-cd;
- MPFR_ASSERTD (shift == GMP_NUMB_BITS*sn+cn-cd);
- cd = mpfr_mul_2si (f, f, shift, rnd);
- MPFR_SAVE_EXPO_FREE (expo);
- /* we can have cd <> 0 only in case of underflow or overflow, but since we
- are still in extended exponent range, this cannot happen on 64-bit (see
- above) */
-#if GMP_NUMB_BITS <= 32
- if (MPFR_UNLIKELY (cd != 0))
- inexact = cd;
- else
- inexact = mpfr_check_range (f, inexact, rnd);
- end:
-#else
- MPFR_ASSERTD(cd == 0);
- inexact = mpfr_check_range (f, inexact, rnd);
-#endif
- mpfr_clear (d);
- mpfr_clear (n);
- MPFR_RET (inexact);
-}
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_rnd.c b/Build/source/libs/mpfr/mpfr-src/src/set_rnd.c
deleted file mode 100644
index 6956f07e2eb..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_rnd.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* mpfr_set_default_rounding_mode -- set the default rounding mode
- mpfr_get_default_rounding_mode -- get the default rounding mode
-
-Copyright 1999, 2001, 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_THREAD_VAR (mpfr_rnd_t, __gmpfr_default_rounding_mode, MPFR_RNDN)
-
-void
-mpfr_set_default_rounding_mode (mpfr_rnd_t rnd_mode)
-{
- if (rnd_mode >= MPFR_RNDN && rnd_mode < MPFR_RND_MAX)
- __gmpfr_default_rounding_mode = rnd_mode;
-}
-
-#undef mpfr_get_default_rounding_mode
-mpfr_rnd_t
-mpfr_get_default_rounding_mode (void)
-{
- return __gmpfr_default_rounding_mode;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_si.c b/Build/source/libs/mpfr/mpfr-src/src/set_si.c
deleted file mode 100644
index 97d03520933..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_si.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* mpfr_set_si -- set a MPFR number from a machine signed integer
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#undef mpfr_set_si
-int
-mpfr_set_si (mpfr_ptr x, long i, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set_si_2exp (x, i, 0, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_si_2exp.c b/Build/source/libs/mpfr/mpfr-src/src/set_si_2exp.c
deleted file mode 100644
index 5e703a47aaa..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_si_2exp.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* mpfr_set_si_2exp -- set a MPFR number from a machine signed integer with
- a shift
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_set_si_2exp (mpfr_ptr x, long i, mpfr_exp_t e, mpfr_rnd_t rnd_mode)
-{
- if (i == 0)
- {
- MPFR_SET_ZERO (x);
- MPFR_SET_POS (x);
- MPFR_RET (0);
- }
-#ifdef MPFR_LONG_WITHIN_LIMB
- else
- {
- mp_size_t xn;
- int cnt, nbits;
- mp_limb_t ai, *xp;
- int inex = 0;
-
- /* Early underflow/overflow checking is necessary to avoid
- integer overflow or errors due to special exponent values. */
- if (MPFR_UNLIKELY (e < __gmpfr_emin - (mpfr_exp_t)
- (sizeof (unsigned long) * CHAR_BIT + 1)))
- return mpfr_underflow (x, rnd_mode == MPFR_RNDN ?
- MPFR_RNDZ : rnd_mode, i < 0 ? -1 : 1);
- if (MPFR_UNLIKELY (e >= __gmpfr_emax))
- return mpfr_overflow (x, rnd_mode, i < 0 ? -1 : 1);
-
- ai = SAFE_ABS (unsigned long, i);
- MPFR_ASSERTN (SAFE_ABS (unsigned long, i) == ai);
-
- /* Position of the highest limb */
- xn = (MPFR_PREC (x) - 1) / GMP_NUMB_BITS;
- count_leading_zeros (cnt, ai);
- MPFR_ASSERTD (cnt < GMP_NUMB_BITS); /* OK since i != 0 */
-
- xp = MPFR_MANT(x);
- xp[xn] = ai << cnt;
- /* Zero the xn lower limbs. */
- MPN_ZERO(xp, xn);
- MPFR_SET_SIGN (x, i < 0 ? MPFR_SIGN_NEG : MPFR_SIGN_POS);
-
- nbits = GMP_NUMB_BITS - cnt;
- e += nbits; /* exponent _before_ the rounding */
-
- /* round if MPFR_PREC(x) smaller than length of i */
- if (MPFR_UNLIKELY (MPFR_PREC (x) < nbits) &&
- MPFR_UNLIKELY (mpfr_round_raw (xp + xn, xp + xn, nbits, i < 0,
- MPFR_PREC (x), rnd_mode, &inex)))
- {
- e++;
- xp[xn] = MPFR_LIMB_HIGHBIT;
- }
-
- MPFR_EXP (x) = e;
- return mpfr_check_range (x, inex, rnd_mode);
- }
-#else
- /* if a long does not fit into a limb, we use mpfr_set_z_2exp */
- {
- mpz_t z;
- int inex;
- mpz_init_set_si (z, i);
- inex = mpfr_set_z_2exp (x, z, e, rnd_mode);
- mpz_clear (z);
- return inex;
- }
-#endif
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_sj.c b/Build/source/libs/mpfr/mpfr-src/src/set_sj.c
deleted file mode 100644
index 48812507618..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_sj.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* mpfr_set_sj -- set a MPFR number from a huge machine signed integer
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-#ifdef _MPFR_H_HAVE_INTMAX_T
-
-int
-mpfr_set_sj (mpfr_t x, intmax_t j, mpfr_rnd_t rnd)
-{
- return mpfr_set_sj_2exp (x, j, 0, rnd);
-}
-
-int
-mpfr_set_sj_2exp (mpfr_t x, intmax_t j, intmax_t e, mpfr_rnd_t rnd)
-{
- if (j >= 0)
- return mpfr_set_uj_2exp (x, j, e, rnd);
- else
- {
- int inex;
- inex = mpfr_set_uj_2exp (x, - (uintmax_t) j, e, MPFR_INVERT_RND (rnd));
- MPFR_CHANGE_SIGN (x);
- return -inex;
- }
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_str.c b/Build/source/libs/mpfr/mpfr-src/src/set_str.c
deleted file mode 100644
index 408051dbbe8..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_str.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* mpfr_set_str -- set a floating-point number from a string
-
-Copyright 2000-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_set_str (mpfr_t x, const char *str, int base, mpfr_rnd_t rnd)
-{
- char *p;
-
- if (MPFR_UNLIKELY (*str == 0))
- return -1;
- mpfr_strtofr (x, str, &p, base, rnd);
- return (*p == 0) ? 0 : -1;
-}
-
-
-int
-mpfr_init_set_str (mpfr_ptr x, const char *str, int base, mpfr_rnd_t rnd)
-{
- mpfr_init (x);
- return mpfr_set_str (x, str, base, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_str_raw.c b/Build/source/libs/mpfr/mpfr-src/src/set_str_raw.c
deleted file mode 100644
index fd27cb3f3b0..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_str_raw.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* mpfr_set_str_binary -- set a floating-point number from a binary string
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Currently the number should be of the form +/- xxxx.xxxxxxEyy, with
- decimal exponent. The mantissa of x is supposed to be large enough
- to hold all the bits of str. */
-
-void
-mpfr_set_str_binary (mpfr_ptr x, const char *str)
-{
- int has_sign;
- int res;
-
- if (*str == 'N')
- {
- MPFR_SET_NAN(x);
- __gmpfr_flags |= MPFR_FLAGS_NAN;
- return;
- }
-
- has_sign = *str == '-' || *str == '+';
- if (str[has_sign] == 'I')
- {
- MPFR_SET_INF(x);
- if (*str == '-')
- MPFR_SET_NEG(x);
- else
- MPFR_SET_POS(x);
- return;
- }
-
- res = mpfr_strtofr (x, str, 0, 2, MPFR_RNDZ);
- MPFR_ASSERTN (res == 0);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_ui.c b/Build/source/libs/mpfr/mpfr-src/src/set_ui.c
deleted file mode 100644
index b6b9501930b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_ui.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* mpfr_set_ui -- set a MPFR number from a machine unsigned integer
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#undef mpfr_set_ui
-int
-mpfr_set_ui (mpfr_ptr x, unsigned long i, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set_ui_2exp (x, i, 0, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_ui_2exp.c b/Build/source/libs/mpfr/mpfr-src/src/set_ui_2exp.c
deleted file mode 100644
index fa72613abb5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_ui_2exp.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* mpfr_set_ui_2exp -- set a MPFR number from a machine unsigned integer with
- a shift
-
-Copyright 2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_set_ui_2exp (mpfr_ptr x, unsigned long i, mpfr_exp_t e, mpfr_rnd_t rnd_mode)
-{
- MPFR_SET_POS (x);
-
- if (MPFR_UNLIKELY (i == 0))
- {
- MPFR_SET_ZERO (x);
- MPFR_RET (0);
- }
- else
- {
-#ifdef MPFR_LONG_WITHIN_LIMB
- mp_size_t xn;
- int cnt, nbits;
- mp_limb_t *xp;
- int inex = 0;
-
- /* Early underflow/overflow checking is necessary to avoid
- integer overflow or errors due to special exponent values. */
- if (MPFR_UNLIKELY (e < __gmpfr_emin - (mpfr_exp_t)
- (sizeof (unsigned long) * CHAR_BIT + 1)))
- return mpfr_underflow (x, rnd_mode == MPFR_RNDN ?
- MPFR_RNDZ : rnd_mode, i < 0 ? -1 : 1);
- if (MPFR_UNLIKELY (e >= __gmpfr_emax))
- return mpfr_overflow (x, rnd_mode, i < 0 ? -1 : 1);
-
- MPFR_ASSERTD (i == (mp_limb_t) i);
-
- /* Position of the highest limb */
- xn = (MPFR_PREC (x) - 1) / GMP_NUMB_BITS;
- count_leading_zeros (cnt, (mp_limb_t) i);
- MPFR_ASSERTD (cnt < GMP_NUMB_BITS); /* OK since i != 0 */
-
- xp = MPFR_MANT(x);
- xp[xn] = ((mp_limb_t) i) << cnt;
- /* Zero the xn lower limbs. */
- MPN_ZERO(xp, xn);
-
- nbits = GMP_NUMB_BITS - cnt;
- e += nbits; /* exponent _before_ the rounding */
-
- /* round if MPFR_PREC(x) smaller than length of i */
- if (MPFR_UNLIKELY (MPFR_PREC (x) < nbits) &&
- MPFR_UNLIKELY (mpfr_round_raw (xp + xn, xp + xn, nbits, 0,
- MPFR_PREC (x), rnd_mode, &inex)))
- {
- e++;
- xp[xn] = MPFR_LIMB_HIGHBIT;
- }
-
- MPFR_EXP (x) = e;
- return mpfr_check_range (x, inex, rnd_mode);
-#else
- /* if a long does not fit into a limb, we use mpfr_set_z_2exp */
- mpz_t z;
- int inex;
-
- mpz_init_set_ui (z, i);
- inex = mpfr_set_z_2exp (x, z, e, rnd_mode);
- mpz_clear (z);
- return inex;
-#endif
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_uj.c b/Build/source/libs/mpfr/mpfr-src/src/set_uj.c
deleted file mode 100644
index 4dab72e1928..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_uj.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* mpfr_set_uj -- set a MPFR number from a huge machine unsigned integer
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-#ifdef _MPFR_H_HAVE_INTMAX_T
-
-#define uintmaxpml (sizeof(uintmax_t) / sizeof(mp_limb_t))
-
-int
-mpfr_set_uj (mpfr_t x, uintmax_t j, mpfr_rnd_t rnd)
-{
- return mpfr_set_uj_2exp (x, j, 0, rnd);
-}
-
-int
-mpfr_set_uj_2exp (mpfr_t x, uintmax_t j, intmax_t e, mpfr_rnd_t rnd)
-{
- int cnt, inex;
- mp_size_t i, k;
- mp_limb_t limb;
- mp_limb_t yp[uintmaxpml];
- mpfr_t y;
- unsigned long uintmax_bit_size = sizeof(uintmax_t) * CHAR_BIT;
- unsigned long bpml = GMP_NUMB_BITS % uintmax_bit_size;
-
- /* Special case */
- if (j == 0)
- {
- MPFR_SET_POS(x);
- MPFR_SET_ZERO(x);
- MPFR_RET(0);
- }
-
- /* early overflow detection to avoid a possible integer overflow below */
- if (MPFR_UNLIKELY(e >= __gmpfr_emax))
- return mpfr_overflow (x, rnd, MPFR_SIGN_POS);
-
- MPFR_ASSERTN (sizeof(uintmax_t) % sizeof(mp_limb_t) == 0);
-
- /* Create an auxiliary var */
- MPFR_TMP_INIT1 (yp, y, uintmax_bit_size);
- /* The compiler will optimize the code by removing the useless branch. */
- k = uintmaxpml;
- if (uintmaxpml == 1)
- {
- limb = j;
- count_leading_zeros(cnt, limb);
- /* Normalize the most significant limb */
- yp[0] = limb << cnt;
- }
- else
- {
- mp_size_t len;
- /* Note: either GMP_NUMB_BITS = uintmax_bit_size, then k = 1 the
- shift j >>= bpml is never done, or GMP_NUMB_BITS < uintmax_bit_size
- and bpml = GMP_NUMB_BITS. */
- for (i = 0; i < k; i++, j >>= bpml)
- yp[i] = j; /* Only the low bits are copied */
-
- /* Find the first limb not equal to zero. */
- do
- {
- MPFR_ASSERTD (k > 0);
- limb = yp[--k];
- }
- while (limb == 0);
- k++;
- len = numberof (yp) - k;
- count_leading_zeros(cnt, limb);
-
- /* Normalize it: len = number of last zero limbs,
- k = number of previous limbs */
- if (MPFR_LIKELY (cnt != 0))
- mpn_lshift (yp+len, yp, k, cnt); /* Normalize the high limb */
- else if (len != 0)
- mpn_copyd (yp+len, yp, k); /* Must use copyd */
- if (len != 0)
- {
- if (len == 1)
- yp[0] = MPFR_LIMB_ZERO;
- else
- MPN_ZERO (yp, len); /* Zero the last limbs */
- }
- }
- e += k * GMP_NUMB_BITS - cnt; /* Update Expo */
- MPFR_ASSERTD (MPFR_LIMB_MSB(yp[numberof (yp) - 1]) != 0);
-
- MPFR_RNDRAW (inex, x, yp, uintmax_bit_size, rnd, MPFR_SIGN_POS, e++);
-
- /* Check expo underflow / overflow */
- if (MPFR_UNLIKELY(e < __gmpfr_emin))
- {
- /* The following test is necessary because in the rounding to the
- * nearest mode, mpfr_underflow always rounds away from 0. In
- * this rounding mode, we need to round to 0 if:
- * _ |x| < 2^(emin-2), or
- * _ |x| = 2^(emin-2) and the absolute value of the exact
- * result is <= 2^(emin-2). */
- if (rnd == MPFR_RNDN &&
- (e + 1 < __gmpfr_emin ||
- (mpfr_powerof2_raw (x) && inex >= 0)))
- rnd = MPFR_RNDZ;
- return mpfr_underflow (x, rnd, MPFR_SIGN_POS);
- }
- if (MPFR_UNLIKELY(e > __gmpfr_emax))
- return mpfr_overflow (x, rnd, MPFR_SIGN_POS);
-
- MPFR_SET_SIGN (x, MPFR_SIGN_POS);
- MPFR_SET_EXP (x, e);
- MPFR_RET (inex);
-}
-
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_z.c b/Build/source/libs/mpfr/mpfr-src/src/set_z.c
deleted file mode 100644
index 1d780f032d1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_z.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* mpfr_set_z -- set a floating-point number from a multiple-precision integer
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* set f to the integer z */
-int
-mpfr_set_z (mpfr_ptr f, mpz_srcptr z, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set_z_2exp (f, z, 0, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_z_exp.c b/Build/source/libs/mpfr/mpfr-src/src/set_z_exp.c
deleted file mode 100644
index 718fbe6c6a4..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_z_exp.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/* mpfr_set_z_2exp -- set a floating-point number from a multiple-precision
- integer and an exponent
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* set f to the integer z multiplied by 2^e */
-int
-mpfr_set_z_2exp (mpfr_ptr f, mpz_srcptr z, mpfr_exp_t e, mpfr_rnd_t rnd_mode)
-{
- mp_size_t fn, zn, dif, en;
- int k, sign_z, inex;
- mp_limb_t *fp, *zp;
- mpfr_exp_t exp;
-
- sign_z = mpz_sgn (z);
- if (MPFR_UNLIKELY (sign_z == 0)) /* ignore the exponent for 0 */
- {
- MPFR_SET_ZERO(f);
- MPFR_SET_POS(f);
- MPFR_RET(0);
- }
- MPFR_ASSERTD (sign_z == MPFR_SIGN_POS || sign_z == MPFR_SIGN_NEG);
-
- zn = ABSIZ(z); /* limb size of z */
- /* compute en = floor(e/GMP_NUMB_BITS) */
- en = (e >= 0) ? e / GMP_NUMB_BITS : (e + 1) / GMP_NUMB_BITS - 1;
- MPFR_ASSERTD (zn >= 1);
- if (MPFR_UNLIKELY (zn + en > MPFR_EMAX_MAX / GMP_NUMB_BITS + 1))
- return mpfr_overflow (f, rnd_mode, sign_z);
- /* because zn + en >= MPFR_EMAX_MAX / GMP_NUMB_BITS + 2
- implies (zn + en) * GMP_NUMB_BITS >= MPFR_EMAX_MAX + GMP_NUMB_BITS + 1
- and exp = zn * GMP_NUMB_BITS + e - k
- >= (zn + en) * GMP_NUMB_BITS - k > MPFR_EMAX_MAX */
-
- fp = MPFR_MANT (f);
- fn = MPFR_LIMB_SIZE (f);
- dif = zn - fn;
- zp = PTR(z);
- count_leading_zeros (k, zp[zn-1]);
-
- /* now zn + en <= MPFR_EMAX_MAX / GMP_NUMB_BITS + 1
- thus (zn + en) * GMP_NUMB_BITS <= MPFR_EMAX_MAX + GMP_NUMB_BITS
- and exp = zn * GMP_NUMB_BITS + e - k
- <= (zn + en) * GMP_NUMB_BITS - k + GMP_NUMB_BITS - 1
- <= MPFR_EMAX_MAX + 2 * GMP_NUMB_BITS - 1 */
- exp = (mpfr_prec_t) zn * GMP_NUMB_BITS + e - k;
- /* The exponent will be exp or exp + 1 (due to rounding) */
- if (MPFR_UNLIKELY (exp > __gmpfr_emax))
- return mpfr_overflow (f, rnd_mode, sign_z);
- if (MPFR_UNLIKELY (exp + 1 < __gmpfr_emin))
- return mpfr_underflow (f, rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode,
- sign_z);
-
- if (MPFR_LIKELY (dif >= 0))
- {
- mp_limb_t rb, sb, ulp;
- int sh;
-
- /* number has to be truncated */
- if (MPFR_LIKELY (k != 0))
- {
- mpn_lshift (fp, &zp[dif], fn, k);
- if (MPFR_UNLIKELY (dif > 0))
- fp[0] |= zp[dif - 1] >> (GMP_NUMB_BITS - k);
- }
- else
- MPN_COPY (fp, zp + dif, fn);
-
- /* Compute Rounding Bit and Sticky Bit */
- MPFR_UNSIGNED_MINUS_MODULO (sh, MPFR_PREC (f) );
- if (MPFR_LIKELY (sh != 0))
- {
- mp_limb_t mask = MPFR_LIMB_ONE << (sh-1);
- mp_limb_t limb = fp[0];
- rb = limb & mask;
- sb = limb & (mask-1);
- ulp = 2*mask;
- fp[0] = limb & ~(ulp-1);
- }
- else /* sh == 0 */
- {
- mp_limb_t mask = MPFR_LIMB_ONE << (GMP_NUMB_BITS - 1 - k);
- if (MPFR_UNLIKELY (dif > 0))
- {
- rb = zp[--dif] & mask;
- sb = zp[dif] & (mask-1);
- }
- else
- rb = sb = 0;
- k = 0;
- ulp = MPFR_LIMB_ONE;
- }
- if (MPFR_UNLIKELY (sb == 0 && dif > 0))
- {
- sb = zp[--dif];
- if (MPFR_LIKELY (k != 0))
- sb &= MPFR_LIMB_MASK (GMP_NUMB_BITS - k);
- if (MPFR_UNLIKELY (sb == 0) && MPFR_LIKELY (dif > 0))
- do {
- sb = zp[--dif];
- } while (dif > 0 && sb == 0);
- }
-
- /* Rounding */
- if (MPFR_LIKELY (rnd_mode == MPFR_RNDN))
- {
- if (rb == 0 || MPFR_UNLIKELY (sb == 0 && (fp[0] & ulp) == 0))
- goto trunc;
- else
- goto addoneulp;
- }
- else /* Not Nearest */
- {
- if (MPFR_LIKELY (MPFR_IS_LIKE_RNDZ (rnd_mode, sign_z < 0))
- || MPFR_UNLIKELY ( (sb | rb) == 0 ))
- goto trunc;
- else
- goto addoneulp;
- }
-
- trunc:
- inex = - ((sb | rb) != 0);
- goto end;
-
- addoneulp:
- inex = 1;
- if (MPFR_UNLIKELY (mpn_add_1 (fp, fp, fn, ulp)))
- {
- /* Pow 2 case */
- if (MPFR_UNLIKELY (exp == __gmpfr_emax))
- return mpfr_overflow (f, rnd_mode, sign_z);
- exp ++;
- fp[fn-1] = MPFR_LIMB_HIGHBIT;
- }
- end:
- (void) 0;
- }
- else /* dif < 0: Mantissa F is strictly bigger than z's one */
- {
- if (MPFR_LIKELY (k != 0))
- mpn_lshift (fp - dif, zp, zn, k);
- else
- MPN_COPY (fp - dif, zp, zn);
- /* fill with zeroes */
- MPN_ZERO (fp, -dif);
- inex = 0; /* result is exact */
- }
-
- if (MPFR_UNLIKELY (exp < __gmpfr_emin))
- {
- if (rnd_mode == MPFR_RNDN && inex == 0 && mpfr_powerof2_raw (f))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (f, rnd_mode, sign_z);
- }
-
- MPFR_SET_EXP (f, exp);
- MPFR_SET_SIGN (f, sign_z);
- MPFR_RET (inex*sign_z);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/set_zero.c b/Build/source/libs/mpfr/mpfr-src/src/set_zero.c
deleted file mode 100644
index a8847c35ba5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/set_zero.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* mpfr_set_zero -- set a number to plus or minus zero.
-
-Copyright 2009-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-void
-mpfr_set_zero (mpfr_ptr x, int sign)
-{
- mpfr_set_ui (x, 0, MPFR_RNDN);
- if (sign < 0)
- MPFR_SET_NEG(x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/setmax.c b/Build/source/libs/mpfr/mpfr-src/src/setmax.c
deleted file mode 100644
index 69abe9110a3..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/setmax.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* mpfr_setmax -- maximum representable floating-point number (raw version)
-
-Copyright 2002-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Note: the flags are not cleared and the current sign is kept. */
-
-void
-mpfr_setmax (mpfr_ptr x, mpfr_exp_t e)
-{
- mp_size_t xn, i;
- int sh;
- mp_limb_t *xp;
-
- MPFR_SET_EXP (x, e);
- xn = MPFR_LIMB_SIZE (x);
- sh = (mpfr_prec_t) xn * GMP_NUMB_BITS - MPFR_PREC(x);
- xp = MPFR_MANT(x);
- xp[0] = MPFR_LIMB_MAX << sh;
- for (i = 1; i < xn; i++)
- xp[i] = MPFR_LIMB_MAX;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/setmin.c b/Build/source/libs/mpfr/mpfr-src/src/setmin.c
deleted file mode 100644
index 8caaf5c2aba..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/setmin.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* mpfr_setmin -- minimum representable floating-point number (raw version)
-
-Copyright 2002-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Note: the flags are not cleared and the current sign is kept. */
-
-void
-mpfr_setmin (mpfr_ptr x, mpfr_exp_t e)
-{
- mp_size_t xn;
- mp_limb_t *xp;
-
- MPFR_SET_EXP (x, e);
- xn = (MPFR_PREC(x) - 1) / GMP_NUMB_BITS;
- xp = MPFR_MANT(x);
- xp[xn] = MPFR_LIMB_HIGHBIT;
- MPN_ZERO(xp, xn);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/setsign.c b/Build/source/libs/mpfr/mpfr-src/src/setsign.c
deleted file mode 100644
index 346e7f817b2..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/setsign.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* mpfr_setsign -- Produce a value with the magnitude of x and sign bit s
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#undef mpfr_setsign
-int
-mpfr_setsign (mpfr_ptr z, mpfr_srcptr x, int s, mpfr_rnd_t rnd_mode)
-{
- return mpfr_set4 (z, x, rnd_mode, s ? -1 : 1);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sgn.c b/Build/source/libs/mpfr/mpfr-src/src/sgn.c
deleted file mode 100644
index 207c02b4584..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sgn.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* mpfr_sgn -- Sign of a floating point number.
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-(mpfr_sgn) (mpfr_srcptr a)
-{
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (a)))
- {
- if (MPFR_LIKELY (MPFR_IS_ZERO (a)))
- return 0;
- if (MPFR_UNLIKELY (MPFR_IS_NAN (a)))
- {
- MPFR_SET_ERANGEFLAG ();
- return 0;
- }
- /* Remains infinity, handled by the return below. */
- }
- return MPFR_INT_SIGN (a);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/si_op.c b/Build/source/libs/mpfr/mpfr-src/src/si_op.c
deleted file mode 100644
index 210cc7088dd..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/si_op.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* mpfr_add_si -- add a floating-point number with a machine integer
- mpfr_sub_si -- sub a floating-point number with a machine integer
- mpfr_si_sub -- sub a machine number with a floating-point number
- mpfr_mul_si -- multiply a floating-point number by a machine integer
- mpfr_div_si -- divide a floating-point number by a machine integer
- mpfr_si_div -- divide a machine number by a floating-point number
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_add_si (mpfr_ptr y, mpfr_srcptr x, long int u, mpfr_rnd_t rnd_mode)
-{
- int res;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%ld rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, res));
-
- if (u >= 0)
- res = mpfr_add_ui (y, x, u, rnd_mode);
- else
- res = mpfr_sub_ui (y, x, - (unsigned long) u, rnd_mode);
-
- return res;
-}
-
-int
-mpfr_sub_si (mpfr_ptr y, mpfr_srcptr x, long int u, mpfr_rnd_t rnd_mode)
-{
- int res;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%ld rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, res));
-
- if (u >= 0)
- res = mpfr_sub_ui (y, x, u, rnd_mode);
- else
- res = mpfr_add_ui (y, x, - (unsigned long) u, rnd_mode);
-
- return res;
-}
-
-int
-mpfr_si_sub (mpfr_ptr y, long int u, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int res;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%ld rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, res));
-
- if (u >= 0)
- res = mpfr_ui_sub (y, u, x, rnd_mode);
- else
- {
- res = - mpfr_add_ui (y, x, - (unsigned long) u,
- MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN (y);
- }
-
- return res;
-}
-
-#undef mpfr_mul_si
-int
-mpfr_mul_si (mpfr_ptr y, mpfr_srcptr x, long int u, mpfr_rnd_t rnd_mode)
-{
- int res;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%ld rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, res));
-
- if (u >= 0)
- res = mpfr_mul_ui (y, x, u, rnd_mode);
- else
- {
- res = - mpfr_mul_ui (y, x, - (unsigned long) u,
- MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN (y);
- }
-
- return res;
-}
-
-#undef mpfr_div_si
-int
-mpfr_div_si (mpfr_ptr y, mpfr_srcptr x, long int u, mpfr_rnd_t rnd_mode)
-{
- int res;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%ld rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, res));
-
- if (u >= 0)
- res = mpfr_div_ui (y, x, u, rnd_mode);
- else
- {
- res = - mpfr_div_ui (y, x, - (unsigned long) u,
- MPFR_INVERT_RND (rnd_mode));
- MPFR_CHANGE_SIGN (y);
- }
-
- return res;
-}
-
-int
-mpfr_si_div (mpfr_ptr y, long int u, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int res;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%ld rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec(y), mpfr_log_prec, y, res));
-
- if (u >= 0)
- res = mpfr_ui_div (y, u, x, rnd_mode);
- else
- {
- res = - mpfr_ui_div (y, - (unsigned long) u, x,
- MPFR_INVERT_RND(rnd_mode));
- MPFR_CHANGE_SIGN (y);
- }
-
- return res;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/signbit.c b/Build/source/libs/mpfr/mpfr-src/src/signbit.c
deleted file mode 100644
index 2c5cd0f36d4..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/signbit.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* mpfr_signbit -- Signbit of a MPFR number
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#undef mpfr_signbit
-int
-mpfr_signbit (mpfr_srcptr x)
-{
- return MPFR_IS_NEG (x);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sin.c b/Build/source/libs/mpfr/mpfr-src/src/sin.c
deleted file mode 100644
index 0e5d058dc83..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sin.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* mpfr_sin -- sine of a floating-point number
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-static int
-mpfr_sin_fast (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- int inex;
-
- inex = mpfr_sincos_fast (y, NULL, x, rnd_mode);
- inex = inex & 3; /* 0: exact, 1: rounded up, 2: rounded down */
- return (inex == 2) ? -1 : inex;
-}
-
-int
-mpfr_sin (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t c, xr;
- mpfr_srcptr xx;
- mpfr_exp_t expx, err1, err;
- mpfr_prec_t precy, m;
- int inexact, sign, reduce;
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (y), mpfr_log_prec, y,
- inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x) || MPFR_IS_INF (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0);
- }
- }
-
- expx = MPFR_GET_EXP (x);
- err1 = -2 * expx;
-
- /* sin(x) = x - x^3/6 + ... so the error is < 2^(3*EXP(x)-2) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, err1, 2, 0, rnd_mode, {});
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Compute initial precision */
- precy = MPFR_PREC (y);
-
- if (precy >= MPFR_SINCOS_THRESHOLD)
- {
- inexact = mpfr_sin_fast (y, x, rnd_mode);
- goto end;
- }
-
- /* for x large, since argument reduction is expensive, we want to avoid
- any failure in Ziv's strategy, thus we take into account expx too */
- m = precy + MPFR_INT_CEIL_LOG2 (MAX(precy,expx)) + 8;
-
- /* since we compute sin(x) as sqrt(1-cos(x)^2), and for x small we have
- cos(x)^2 ~ 1 - x^2, when subtracting cos(x)^2 from 1 we will lose
- about -2*expx bits if expx < 0 */
- if (expx < 0)
- {
- /* The following assertion includes a check for integer overflow.
- At this point, precy < MPFR_SINCOS_THRESHOLD, so that both m and
- err1 should be small enough. But the assertion makes the code
- safer (a smart compiler might be able to remove it). */
- MPFR_ASSERTN (err1 <= MPFR_PREC_MAX - m);
- m += err1;
- }
-
- mpfr_init (c);
- mpfr_init (xr);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- /* first perform argument reduction modulo 2*Pi (if needed),
- also helps to determine the sign of sin(x) */
- if (expx >= 2) /* If Pi < x < 4, we need to reduce too, to determine
- the sign of sin(x). For 2 <= |x| < Pi, we could avoid
- the reduction. */
- {
- reduce = 1;
- /* As expx + m - 1 will silently be converted into mpfr_prec_t
- in the mpfr_set_prec call, the assert below may be useful to
- avoid undefined behavior. */
- MPFR_ASSERTN (expx + m - 1 <= MPFR_PREC_MAX);
- mpfr_set_prec (c, expx + m - 1);
- mpfr_set_prec (xr, m);
- mpfr_const_pi (c, MPFR_RNDN);
- mpfr_mul_2ui (c, c, 1, MPFR_RNDN);
- mpfr_remainder (xr, x, c, MPFR_RNDN);
- /* The analysis is similar to that of cos.c:
- |xr - x - 2kPi| <= 2^(2-m). Thus we can decide the sign
- of sin(x) if xr is at distance at least 2^(2-m) of both
- 0 and +/-Pi. */
- mpfr_div_2ui (c, c, 1, MPFR_RNDN);
- /* Since c approximates Pi with an error <= 2^(2-expx-m) <= 2^(-m),
- it suffices to check that c - |xr| >= 2^(2-m). */
- if (MPFR_IS_POS (xr))
- mpfr_sub (c, c, xr, MPFR_RNDZ);
- else
- mpfr_add (c, c, xr, MPFR_RNDZ);
- if (MPFR_IS_ZERO(xr)
- || MPFR_GET_EXP(xr) < (mpfr_exp_t) 3 - (mpfr_exp_t) m
- || MPFR_IS_ZERO(c)
- || MPFR_GET_EXP(c) < (mpfr_exp_t) 3 - (mpfr_exp_t) m)
- goto ziv_next;
-
- /* |xr - x - 2kPi| <= 2^(2-m), thus |sin(xr) - sin(x)| <= 2^(2-m) */
- xx = xr;
- }
- else /* the input argument is already reduced */
- {
- reduce = 0;
- xx = x;
- }
-
- sign = MPFR_SIGN(xx);
- /* now that the argument is reduced, precision m is enough */
- mpfr_set_prec (c, m);
- mpfr_cos (c, xx, MPFR_RNDA); /* c = cos(x) rounded away */
- mpfr_sqr (c, c, MPFR_RNDU); /* away */
- mpfr_ui_sub (c, 1, c, MPFR_RNDZ);
- mpfr_sqrt (c, c, MPFR_RNDZ);
- if (MPFR_IS_NEG_SIGN(sign))
- MPFR_CHANGE_SIGN(c);
-
- /* Warning: c may be 0! */
- if (MPFR_UNLIKELY (MPFR_IS_ZERO (c)))
- {
- /* Huge cancellation: increase prec a lot! */
- m = MAX (m, MPFR_PREC (x));
- m = 2 * m;
- }
- else
- {
- /* the absolute error on c is at most 2^(3-m-EXP(c)),
- plus 2^(2-m) if there was an argument reduction.
- Since EXP(c) <= 1, 3-m-EXP(c) >= 2-m, thus the error
- is at most 2^(3-m-EXP(c)) in case of argument reduction. */
- err = 2 * MPFR_GET_EXP (c) + (mpfr_exp_t) m - 3 - (reduce != 0);
- if (MPFR_CAN_ROUND (c, err, precy, rnd_mode))
- break;
-
- /* check for huge cancellation (Near 0) */
- if (err < (mpfr_exp_t) MPFR_PREC (y))
- m += MPFR_PREC (y) - err;
- /* Check if near 1 */
- if (MPFR_GET_EXP (c) == 1)
- m += m;
- }
-
- ziv_next:
- /* Else generic increase */
- MPFR_ZIV_NEXT (loop, m);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (y, c, rnd_mode);
- /* inexact cannot be 0, since this would mean that c was representable
- within the target precision, but in that case mpfr_can_round will fail */
-
- mpfr_clear (c);
- mpfr_clear (xr);
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sin_cos.c b/Build/source/libs/mpfr/mpfr-src/src/sin_cos.c
deleted file mode 100644
index daf3040ee9b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sin_cos.c
+++ /dev/null
@@ -1,671 +0,0 @@
-/* mpfr_sin_cos -- sine and cosine of a floating-point number
-
-Copyright 2002-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* (y, z) <- (sin(x), cos(x)), return value is 0 iff both results are exact
- ie, iff x = 0 */
-int
-mpfr_sin_cos (mpfr_ptr y, mpfr_ptr z, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t prec, m;
- int neg, reduce;
- mpfr_t c, xr;
- mpfr_srcptr xx;
- mpfr_exp_t err, expx;
- int inexy, inexz;
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_ASSERTN (y != z);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN(x) || MPFR_IS_INF(x))
- {
- MPFR_SET_NAN (y);
- MPFR_SET_NAN (z);
- MPFR_RET_NAN;
- }
- else /* x is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- MPFR_SET_ZERO (y);
- MPFR_SET_SAME_SIGN (y, x);
- /* y = 0, thus exact, but z is inexact in case of underflow
- or overflow */
- inexy = 0; /* y is exact */
- inexz = mpfr_set_ui (z, 1, rnd_mode);
- return INEX(inexy,inexz);
- }
- }
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("sin[%Pu]=%.*Rg cos[%Pu]=%.*Rg", mpfr_get_prec(y), mpfr_log_prec, y,
- mpfr_get_prec (z), mpfr_log_prec, z));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- prec = MAX (MPFR_PREC (y), MPFR_PREC (z));
- m = prec + MPFR_INT_CEIL_LOG2 (prec) + 13;
- expx = MPFR_GET_EXP (x);
-
- /* When x is close to 0, say 2^(-k), then there is a cancellation of about
- 2k bits in 1-cos(x)^2. FIXME: in that case, it would be more efficient
- to compute sin(x) directly. VL: This is partly done by using
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT from the mpfr_sin and mpfr_cos
- functions. Moreover, any overflow on m is avoided. */
- if (expx < 0)
- {
- /* Warning: in case y = x, and the first call to
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT succeeds but the second fails,
- we will have clobbered the original value of x.
- The workaround is to first compute z = cos(x) in that case, since
- y and z are different. */
- if (y != x)
- /* y and x differ, thus we can safely try to compute y first */
- {
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (
- y, x, -2 * expx, 2, 0, rnd_mode,
- { inexy = _inexact;
- goto small_input; });
- if (0)
- {
- small_input:
- /* we can go here only if we can round sin(x) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (
- z, __gmpfr_one, -2 * expx, 1, 0, rnd_mode,
- { inexz = _inexact;
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- goto end; });
- }
-
- /* if we go here, one of the two MPFR_FAST_COMPUTE_IF_SMALL_INPUT
- calls failed */
- }
- else /* y and x are the same variable: try to compute z first, which
- necessarily differs */
- {
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (
- z, __gmpfr_one, -2 * expx, 1, 0, rnd_mode,
- { inexz = _inexact;
- goto small_input2; });
- if (0)
- {
- small_input2:
- /* we can go here only if we can round cos(x) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (
- y, x, -2 * expx, 2, 0, rnd_mode,
- { inexy = _inexact;
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- goto end; });
- }
- }
- m += 2 * (-expx);
- }
-
- if (prec >= MPFR_SINCOS_THRESHOLD)
- {
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_sincos_fast (y, z, x, rnd_mode);
- }
-
- mpfr_init (c);
- mpfr_init (xr);
-
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- /* the following is copied from sin.c */
- if (expx >= 2) /* reduce the argument */
- {
- reduce = 1;
- mpfr_set_prec (c, expx + m - 1);
- mpfr_set_prec (xr, m);
- mpfr_const_pi (c, MPFR_RNDN);
- mpfr_mul_2ui (c, c, 1, MPFR_RNDN);
- mpfr_remainder (xr, x, c, MPFR_RNDN);
- mpfr_div_2ui (c, c, 1, MPFR_RNDN);
- if (MPFR_IS_POS (xr))
- mpfr_sub (c, c, xr, MPFR_RNDZ);
- else
- mpfr_add (c, c, xr, MPFR_RNDZ);
- if (MPFR_IS_ZERO(xr)
- || MPFR_EXP(xr) < (mpfr_exp_t) 3 - (mpfr_exp_t) m
- || MPFR_EXP(c) < (mpfr_exp_t) 3 - (mpfr_exp_t) m)
- goto next_step;
- xx = xr;
- }
- else /* the input argument is already reduced */
- {
- reduce = 0;
- xx = x;
- }
-
- neg = MPFR_IS_NEG (xx); /* gives sign of sin(x) */
- mpfr_set_prec (c, m);
- mpfr_cos (c, xx, MPFR_RNDZ);
- /* If no argument reduction was performed, the error is at most ulp(c),
- otherwise it is at most ulp(c) + 2^(2-m). Since |c| < 1, we have
- ulp(c) <= 2^(-m), thus the error is bounded by 2^(3-m) in that later
- case. */
- if (reduce == 0)
- err = m;
- else
- err = MPFR_GET_EXP (c) + (mpfr_exp_t) (m - 3);
- if (!MPFR_CAN_ROUND (c, err, MPFR_PREC (z), rnd_mode))
- goto next_step;
-
- /* we can't set z now, because in case z = x, and the MPFR_CAN_ROUND()
- call below fails, we will have clobbered the input */
- mpfr_set_prec (xr, MPFR_PREC(c));
- mpfr_swap (xr, c); /* save the approximation of the cosine in xr */
- mpfr_sqr (c, xr, MPFR_RNDU); /* the absolute error is bounded by
- 2^(5-m) if reduce=1, and by 2^(2-m)
- otherwise */
- mpfr_ui_sub (c, 1, c, MPFR_RNDN); /* error bounded by 2^(6-m) if reduce
- is 1, and 2^(3-m) otherwise */
- mpfr_sqrt (c, c, MPFR_RNDN); /* the absolute error is bounded by
- 2^(6-m-Exp(c)) if reduce=1, and
- 2^(3-m-Exp(c)) otherwise */
- err = 3 + 3 * reduce - MPFR_GET_EXP (c);
- if (neg)
- MPFR_CHANGE_SIGN (c);
-
- /* the absolute error on c is at most 2^(err-m), which we must put
- in the form 2^(EXP(c)-err). */
- err = MPFR_GET_EXP (c) + (mpfr_exp_t) m - err;
- if (MPFR_CAN_ROUND (c, err, MPFR_PREC (y), rnd_mode))
- break;
- /* check for huge cancellation */
- if (err < (mpfr_exp_t) MPFR_PREC (y))
- m += MPFR_PREC (y) - err;
- /* Check if near 1 */
- if (MPFR_GET_EXP (c) == 1
- && MPFR_MANT (c)[MPFR_LIMB_SIZE (c)-1] == MPFR_LIMB_HIGHBIT)
- m += m;
-
- next_step:
- MPFR_ZIV_NEXT (loop, m);
- mpfr_set_prec (c, m);
- }
- MPFR_ZIV_FREE (loop);
-
- inexy = mpfr_set (y, c, rnd_mode);
- inexz = mpfr_set (z, xr, rnd_mode);
-
- mpfr_clear (c);
- mpfr_clear (xr);
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- /* FIXME: add a test for bug before revision 7355 */
- inexy = mpfr_check_range (y, inexy, rnd_mode);
- inexz = mpfr_check_range (z, inexz, rnd_mode);
- MPFR_RET (INEX(inexy,inexz));
-}
-
-/*************** asymptotically fast implementation below ********************/
-
-/* truncate Q from R to at most prec bits.
- Return the number of truncated bits.
- */
-static mpfr_prec_t
-reduce (mpz_t Q, mpz_srcptr R, mpfr_prec_t prec)
-{
- mpfr_prec_t l;
-
- MPFR_MPZ_SIZEINBASE2(l, R);
- l = (l > prec) ? l - prec : 0;
- mpz_fdiv_q_2exp (Q, R, l);
- return l;
-}
-
-/* truncate S and C so that the smaller has prec bits.
- Return the number of truncated bits.
- */
-static unsigned long
-reduce2 (mpz_t S, mpz_t C, mpfr_prec_t prec)
-{
- unsigned long ls;
- unsigned long lc;
- unsigned long l;
-
- MPFR_MPZ_SIZEINBASE2(ls, S);
- MPFR_MPZ_SIZEINBASE2(lc, C);
-
- l = (ls < lc) ? ls : lc; /* smaller length */
- l = (l > prec) ? l - prec : 0;
- mpz_fdiv_q_2exp (S, S, l);
- mpz_fdiv_q_2exp (C, C, l);
- return l;
-}
-
-/* return in S0/Q0 a rational approximation of sin(X) with absolute error
- bounded by 9*2^(-prec), where 0 <= X=p/2^r <= 1/2,
- and in C0/Q0 a rational approximation of cos(X), with relative error
- bounded by 9*2^(-prec) (and also absolute error, since
- |cos(X)| <= 1).
- We have sin(X)/X = sum((-1)^i*(p/2^r)^i/(2i+1)!, i=0..infinity).
- We use the following binary splitting formula:
- P(a,b) = (-p)^(b-a)
- Q(a,b) = (2a)*(2a+1)*2^r if a+1=b [except Q(0,1)=1], Q(a,c)*Q(c,b) otherwise
- T(a,b) = 1 if a+1=b, Q(c,b)*T(a,c)+P(a,c)*T(c,b) otherwise.
-
- Since we use P(a,b) for b-a=2^k only, we compute only p^(2^k).
- We do not store the factor 2^r in Q().
-
- Then sin(X)/X ~ T(0,i)/Q(0,i) for i so that (p/2^r)^i/i! is small enough.
-
- Return l such that Q0 has to be multiplied by 2^l.
-
- Assumes prec >= 10.
-*/
-
-#define KMAX 64
-static unsigned long
-sin_bs_aux (mpz_t Q0, mpz_t S0, mpz_t C0, mpz_srcptr p, mpfr_prec_t r,
- mpfr_prec_t prec)
-{
- mpz_t T[KMAX], Q[KMAX], ptoj[KMAX], pp;
- mpfr_prec_t log2_nb_terms[KMAX], mult[KMAX];
- mpfr_prec_t accu[KMAX], size_ptoj[KMAX];
- mpfr_prec_t prec_i_have, h, r0 = r, pp_s, p_s;
- unsigned long i, j, m;
- int alloc, k, l;
-
- if (MPFR_UNLIKELY(mpz_cmp_ui (p, 0) == 0)) /* sin(x)/x -> 1 */
- {
- mpz_set_ui (Q0, 1);
- mpz_set_ui (S0, 1);
- mpz_set_ui (C0, 1);
- return 0;
- }
-
- /* check that X=p/2^r <= 1/2 */
- MPFR_ASSERTN(mpz_sizeinbase (p, 2) - (mpfr_exp_t) r <= -1);
-
- mpz_init (pp);
-
- /* normalize p (non-zero here) */
- h = mpz_scan1 (p, 0);
- mpz_fdiv_q_2exp (pp, p, h); /* p = pp * 2^h */
- mpz_mul (pp, pp, pp);
- r = 2 * (r - h); /* x^2 = (p/2^r0)^2 = pp / 2^r */
-
- /* now p is odd */
- alloc = 2;
- mpz_init_set_ui (T[0], 6);
- mpz_init_set_ui (Q[0], 6);
- mpz_init_set (ptoj[0], pp); /* ptoj[i] = pp^(2^i) */
- mpz_init (T[1]);
- mpz_init (Q[1]);
- mpz_init (ptoj[1]);
- mpz_mul (ptoj[1], pp, pp); /* ptoj[1] = pp^2 */
- MPFR_MPZ_SIZEINBASE2(size_ptoj[1], ptoj[1]);
-
- mpz_mul_2exp (T[0], T[0], r);
- mpz_sub (T[0], T[0], pp); /* 6*2^r - pp = 6*2^r*(1 - x^2/6) */
- log2_nb_terms[0] = 1;
-
- /* already take into account the factor x=p/2^r in sin(x) = x * (...) */
- MPFR_MPZ_SIZEINBASE2(pp_s, pp);
- MPFR_MPZ_SIZEINBASE2(p_s, p);
- mult[0] = r - pp_s + r0 - p_s;
- /* we have x^3 < 1/2^mult[0] */
-
- for (i = 2, k = 0, prec_i_have = mult[0]; prec_i_have < prec; i += 2)
- {
- /* i is even here */
- /* invariant: Q[0]*Q[1]*...*Q[k] equals (2i-1)!,
- we have already summed terms of index < i
- in S[0]/Q[0], ..., S[k]/Q[k] */
- k ++;
- if (k + 1 >= alloc) /* necessarily k + 1 = alloc */
- {
- MPFR_ASSERTD (k + 1 == alloc);
- alloc ++;
- MPFR_ASSERTN (k + 1 < KMAX);
- mpz_init (T[k+1]);
- mpz_init (Q[k+1]);
- mpz_init (ptoj[k+1]);
- mpz_mul (ptoj[k+1], ptoj[k], ptoj[k]); /* pp^(2^(k+1)) */
- MPFR_MPZ_SIZEINBASE2(size_ptoj[k+1], ptoj[k+1]);
- }
- /* for i even, we have Q[k] = (2*i)*(2*i+1), T[k] = 1,
- then Q[k+1] = (2*i+2)*(2*i+3), T[k+1] = 1,
- which reduces to T[k] = (2*i+2)*(2*i+3)*2^r-pp,
- Q[k] = (2*i)*(2*i+1)*(2*i+2)*(2*i+3). */
- MPFR_ASSERTN (k < KMAX);
- log2_nb_terms[k] = 1;
- mpz_set_ui (Q[k], 2 * i + 2);
- mpz_mul_ui (Q[k], Q[k], 2 * i + 3);
- mpz_mul_2exp (T[k], Q[k], r);
- mpz_sub (T[k], T[k], pp);
- mpz_mul_ui (Q[k], Q[k], 2 * i);
- mpz_mul_ui (Q[k], Q[k], 2 * i + 1);
- /* the next term of the series is divided by Q[k] and multiplied
- by pp^2/2^(2r), thus the mult. factor < 1/2^mult[k] */
- MPFR_MPZ_SIZEINBASE2(mult[k], Q[k]);
- mult[k] += 2 * r - size_ptoj[1] - 1;
- /* the absolute contribution of the next term is 1/2^accu[k] */
- accu[k] = (k == 0) ? mult[k] : mult[k] + accu[k-1];
- prec_i_have = accu[k]; /* the current term is < 1/2^accu[k] */
- j = (i + 2) / 2;
- l = 1;
- while ((j & 1) == 0) /* combine and reduce */
- {
- MPFR_ASSERTN (k >= 1);
- mpz_mul (T[k], T[k], ptoj[l]);
- mpz_mul (T[k-1], T[k-1], Q[k]);
- mpz_mul_2exp (T[k-1], T[k-1], r << l);
- mpz_add (T[k-1], T[k-1], T[k]);
- mpz_mul (Q[k-1], Q[k-1], Q[k]);
- log2_nb_terms[k-1] ++; /* number of terms in S[k-1]
- is a power of 2 by construction */
- MPFR_MPZ_SIZEINBASE2(prec_i_have, Q[k]);
- mult[k-1] += prec_i_have + (r << l) - size_ptoj[l] - 1;
- accu[k-1] = (k == 1) ? mult[k-1] : mult[k-1] + accu[k-2];
- prec_i_have = accu[k-1];
- l ++;
- j >>= 1;
- k --;
- }
- }
-
- /* accumulate all products in T[0] and Q[0]. Warning: contrary to above,
- here we do not have log2_nb_terms[k-1] = log2_nb_terms[k]+1. */
- h = 0; /* number of accumulated terms in the right part T[k]/Q[k] */
- while (k > 0)
- {
- mpz_mul (T[k], T[k], ptoj[log2_nb_terms[k-1]]);
- mpz_mul (T[k-1], T[k-1], Q[k]);
- h += (mpfr_prec_t) 1 << log2_nb_terms[k];
- mpz_mul_2exp (T[k-1], T[k-1], r * h);
- mpz_add (T[k-1], T[k-1], T[k]);
- mpz_mul (Q[k-1], Q[k-1], Q[k]);
- k--;
- }
-
- m = r0 + r * (i - 1); /* implicit multiplier 2^r for Q0 */
- /* at this point T[0]/(2^m*Q[0]) is an approximation of sin(x) where the 1st
- neglected term has contribution < 1/2^prec, thus since the series has
- alternate signs, the error is < 1/2^prec */
-
- /* we truncate Q0 to prec bits: the relative error is at most 2^(1-prec),
- which means that Q0 = Q[0] * (1+theta) with |theta| <= 2^(1-prec)
- [up to a power of two] */
- m += reduce (Q0, Q[0], prec);
- m -= reduce (T[0], T[0], prec);
- /* multiply by x = p/2^m */
- mpz_mul (S0, T[0], p);
- m -= reduce (S0, S0, prec); /* S0 = T[0] * (1 + theta)^2 up to power of 2 */
- /* sin(X) ~ S0/Q0*(1 + theta)^3 + err with |theta| <= 2^(1-prec) and
- |err| <= 2^(-prec), thus since |S0/Q0| <= 1:
- |sin(X) - S0/Q0| <= 4*|theta*S0/Q0| + |err| <= 9*2^(-prec) */
-
- mpz_clear (pp);
- for (k = 0; k < alloc; k ++)
- {
- mpz_clear (T[k]);
- mpz_clear (Q[k]);
- mpz_clear (ptoj[k]);
- }
-
- /* compute cos(X) from sin(X): sqrt(1-(S/Q)^2) = sqrt(Q^2-S^2)/Q
- = sqrt(Q0^2*2^(2m)-S0^2)/Q0.
- Write S/Q = sin(X) + eps with |eps| <= 9*2^(-prec),
- then sqrt(Q^2-S^2) = sqrt(Q^2-Q^2*(sin(X)+eps)^2)
- = sqrt(Q^2*cos(X)^2-Q^2*(2*sin(X)*eps+eps^2))
- = sqrt(Q^2*cos(X)^2-Q^2*eps1) with |eps1|<=9*2^(-prec)
- [using X<=1/2 and eps<=9*2^(-prec) and prec>=10]
-
- Since we truncate the square root, we get:
- sqrt(Q^2*cos(X)^2-Q^2*eps1)+eps2 with |eps2|<1
- = Q*sqrt(cos(X)^2-eps1)+eps2
- = Q*cos(X)*(1+eps3)+eps2 with |eps3| <= 6*2^(-prec)
- = Q*cos(X)*(1+eps3+eps2/(Q*cos(X)))
- = Q*cos(X)*(1+eps4) with |eps4| <= 9*2^(-prec)
- since |Q| >= 2^(prec-1) */
- /* we assume that Q0*2^m >= 2^(prec-1) */
- MPFR_ASSERTN(m + mpz_sizeinbase (Q0, 2) >= prec);
- mpz_mul (C0, Q0, Q0);
- mpz_mul_2exp (C0, C0, 2 * m);
- mpz_submul (C0, S0, S0);
- mpz_sqrt (C0, C0);
-
- return m;
-}
-
-/* Put in s and c approximations of sin(x) and cos(x) respectively.
- Assumes 0 < x < Pi/4 and PREC(s) = PREC(c) >= 10.
- Return err such that the relative error is bounded by 2^err ulps.
-*/
-static int
-sincos_aux (mpfr_t s, mpfr_t c, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t prec_s, sh;
- mpz_t Q, S, C, Q2, S2, C2, y;
- mpfr_t x2;
- unsigned long l, l2, j, err;
-
- MPFR_ASSERTD(MPFR_PREC(s) == MPFR_PREC(c));
-
- prec_s = MPFR_PREC(s);
-
- mpfr_init2 (x2, MPFR_PREC(x));
- mpz_init (Q);
- mpz_init (S);
- mpz_init (C);
- mpz_init (Q2);
- mpz_init (S2);
- mpz_init (C2);
- mpz_init (y);
-
- mpfr_set (x2, x, MPFR_RNDN); /* exact */
- mpz_set_ui (Q, 1);
- l = 0;
- mpz_set_ui (S, 0); /* sin(0) = S/(2^l*Q), exact */
- mpz_set_ui (C, 1); /* cos(0) = C/(2^l*Q), exact */
-
- /* Invariant: x = X + x2/2^(sh-1), where the part X was already treated,
- S/(2^l*Q) ~ sin(X), C/(2^l*Q) ~ cos(X), and x2/2^(sh-1) < Pi/4.
- 'sh-1' is the number of already shifted bits in x2.
- */
-
- for (sh = 1, j = 0; mpfr_cmp_ui (x2, 0) != 0 && sh <= prec_s; sh <<= 1, j++)
- {
- if (sh > prec_s / 2) /* sin(x) = x + O(x^3), cos(x) = 1 + O(x^2) */
- {
- l2 = -mpfr_get_z_2exp (S2, x2); /* S2/2^l2 = x2 */
- l2 += sh - 1;
- mpz_set_ui (Q2, 1);
- mpz_set_ui (C2, 1);
- mpz_mul_2exp (C2, C2, l2);
- mpfr_set_ui (x2, 0, MPFR_RNDN);
- }
- else
- {
- /* y <- trunc(x2 * 2^sh) = trunc(x * 2^(2*sh-1)) */
- mpfr_mul_2ui (x2, x2, sh, MPFR_RNDN); /* exact */
- mpfr_get_z (y, x2, MPFR_RNDZ); /* round toward zero: now
- 0 <= x2 < 2^sh, thus
- 0 <= x2/2^(sh-1) < 2^(1-sh) */
- if (mpz_cmp_ui (y, 0) == 0)
- continue;
- mpfr_sub_z (x2, x2, y, MPFR_RNDN); /* should be exact */
- l2 = sin_bs_aux (Q2, S2, C2, y, 2 * sh - 1, prec_s);
- /* we now have |S2/Q2/2^l2 - sin(X)| <= 9*2^(prec_s)
- and |C2/Q2/2^l2 - cos(X)| <= 6*2^(prec_s), with X=y/2^(2sh-1) */
- }
- if (sh == 1) /* S=0, C=1 */
- {
- l = l2;
- mpz_swap (Q, Q2);
- mpz_swap (S, S2);
- mpz_swap (C, C2);
- }
- else
- {
- /* s <- s*c2+c*s2, c <- c*c2-s*s2, using Karatsuba:
- a = s+c, b = s2+c2, t = a*b, d = s*s2, e = c*c2,
- s <- t - d - e, c <- e - d */
- mpz_add (y, S, C); /* a */
- mpz_mul (C, C, C2); /* e */
- mpz_add (C2, C2, S2); /* b */
- mpz_mul (S2, S, S2); /* d */
- mpz_mul (y, y, C2); /* a*b */
- mpz_sub (S, y, S2); /* t - d */
- mpz_sub (S, S, C); /* t - d - e */
- mpz_sub (C, C, S2); /* e - d */
- mpz_mul (Q, Q, Q2);
- /* after j loops, the error is <= (11j-2)*2^(prec_s) */
- l += l2;
- /* reduce Q to prec_s bits */
- l += reduce (Q, Q, prec_s);
- /* reduce S,C to prec_s bits, error <= 11*j*2^(prec_s) */
- l -= reduce2 (S, C, prec_s);
- }
- }
-
- j = 11 * j;
- for (err = 0; j > 1; j = (j + 1) / 2, err ++);
-
- mpfr_set_z (s, S, MPFR_RNDN);
- mpfr_div_z (s, s, Q, MPFR_RNDN);
- mpfr_div_2ui (s, s, l, MPFR_RNDN);
-
- mpfr_set_z (c, C, MPFR_RNDN);
- mpfr_div_z (c, c, Q, MPFR_RNDN);
- mpfr_div_2ui (c, c, l, MPFR_RNDN);
-
- mpz_clear (Q);
- mpz_clear (S);
- mpz_clear (C);
- mpz_clear (Q2);
- mpz_clear (S2);
- mpz_clear (C2);
- mpz_clear (y);
- mpfr_clear (x2);
- return err;
-}
-
-/* Assumes x is neither NaN, +/-Inf, nor +/- 0.
- One of s and c might be NULL, in which case the corresponding value is
- not computed.
- Assumes s differs from c.
- */
-int
-mpfr_sincos_fast (mpfr_t s, mpfr_t c, mpfr_srcptr x, mpfr_rnd_t rnd)
-{
- int inexs, inexc;
- mpfr_t x_red, ts, tc;
- mpfr_prec_t w;
- mpfr_exp_t err, errs, errc;
- MPFR_GROUP_DECL (group);
- MPFR_ZIV_DECL (loop);
-
- MPFR_ASSERTN(s != c);
- if (s == NULL)
- w = MPFR_PREC(c);
- else if (c == NULL)
- w = MPFR_PREC(s);
- else
- w = MPFR_PREC(s) >= MPFR_PREC(c) ? MPFR_PREC(s) : MPFR_PREC(c);
- w += MPFR_INT_CEIL_LOG2(w) + 9; /* ensures w >= 10 (needed by sincos_aux) */
-
- MPFR_GROUP_INIT_2(group, w, ts, tc);
-
- MPFR_ZIV_INIT (loop, w);
- for (;;)
- {
- /* if 0 < x <= Pi/4, we can call sincos_aux directly */
- if (MPFR_IS_POS(x) && mpfr_cmp_ui_2exp (x, 1686629713, -31) <= 0)
- {
- err = sincos_aux (ts, tc, x, MPFR_RNDN);
- }
- /* if -Pi/4 <= x < 0, use sin(-x)=-sin(x) */
- else if (MPFR_IS_NEG(x) && mpfr_cmp_si_2exp (x, -1686629713, -31) >= 0)
- {
- MPFR_ALIAS(x_red, x, MPFR_SIGN_POS, MPFR_GET_EXP(x));
- err = sincos_aux (ts, tc, x_red, MPFR_RNDN);
- MPFR_CHANGE_SIGN(ts);
- }
- else /* argument reduction is needed */
- {
- long q;
- mpfr_t pi;
- int neg = 0;
-
- mpfr_init2 (x_red, w);
- mpfr_init2 (pi, (MPFR_EXP(x) > 0) ? w + MPFR_EXP(x) : w);
- mpfr_const_pi (pi, MPFR_RNDN);
- mpfr_div_2ui (pi, pi, 1, MPFR_RNDN); /* Pi/2 */
- mpfr_remquo (x_red, &q, x, pi, MPFR_RNDN);
- /* x = q * (Pi/2 + eps1) + x_red + eps2,
- where |eps1| <= 1/2*ulp(Pi/2) = 2^(-w-MAX(0,EXP(x))),
- and eps2 <= 1/2*ulp(x_red) <= 1/2*ulp(Pi/2) = 2^(-w)
- Since |q| <= x/(Pi/2) <= |x|, we have
- q*|eps1| <= 2^(-w), thus
- |x - q * Pi/2 - x_red| <= 2^(1-w) */
- /* now -Pi/4 <= x_red <= Pi/4: if x_red < 0, consider -x_red */
- if (MPFR_IS_NEG(x_red))
- {
- mpfr_neg (x_red, x_red, MPFR_RNDN);
- neg = 1;
- }
- err = sincos_aux (ts, tc, x_red, MPFR_RNDN);
- err ++; /* to take into account the argument reduction */
- if (neg) /* sin(-x) = -sin(x), cos(-x) = cos(x) */
- mpfr_neg (ts, ts, MPFR_RNDN);
- if (q & 2) /* sin(x+Pi) = -sin(x), cos(x+Pi) = -cos(x) */
- {
- mpfr_neg (ts, ts, MPFR_RNDN);
- mpfr_neg (tc, tc, MPFR_RNDN);
- }
- if (q & 1) /* sin(x+Pi/2) = cos(x), cos(x+Pi/2) = -sin(x) */
- {
- mpfr_neg (ts, ts, MPFR_RNDN);
- mpfr_swap (ts, tc);
- }
- mpfr_clear (x_red);
- mpfr_clear (pi);
- }
- /* adjust errors with respect to absolute values */
- errs = err - MPFR_EXP(ts);
- errc = err - MPFR_EXP(tc);
- if ((s == NULL || MPFR_CAN_ROUND (ts, w - errs, MPFR_PREC(s), rnd)) &&
- (c == NULL || MPFR_CAN_ROUND (tc, w - errc, MPFR_PREC(c), rnd)))
- break;
- MPFR_ZIV_NEXT (loop, w);
- MPFR_GROUP_REPREC_2(group, w, ts, tc);
- }
- MPFR_ZIV_FREE (loop);
-
- inexs = (s == NULL) ? 0 : mpfr_set (s, ts, rnd);
- inexc = (c == NULL) ? 0 : mpfr_set (c, tc, rnd);
-
- MPFR_GROUP_CLEAR (group);
- return INEX(inexs,inexc);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sinh.c b/Build/source/libs/mpfr/mpfr-src/src/sinh.c
deleted file mode 100644
index 83c8d9bf320..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sinh.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* mpfr_sinh -- hyperbolic sine
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
- /* The computation of sinh is done by
- sinh(x) = 1/2 [e^(x)-e^(-x)] */
-
-int
-mpfr_sinh (mpfr_ptr y, mpfr_srcptr xt, mpfr_rnd_t rnd_mode)
-{
- mpfr_t x;
- int inexact;
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (xt), mpfr_log_prec, xt, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (xt)))
- {
- if (MPFR_IS_NAN (xt))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (xt))
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, xt);
- MPFR_RET (0);
- }
- else /* xt is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (xt));
- MPFR_SET_ZERO (y); /* sinh(0) = 0 */
- MPFR_SET_SAME_SIGN (y, xt);
- MPFR_RET (0);
- }
- }
-
- /* sinh(x) = x + x^3/6 + ... so the error is < 2^(3*EXP(x)-2) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, xt, -2 * MPFR_GET_EXP(xt), 2, 1,
- rnd_mode, {});
-
- MPFR_TMP_INIT_ABS (x, xt);
-
- {
- mpfr_t t, ti;
- mpfr_exp_t d;
- mpfr_prec_t Nt; /* Precision of the intermediary variable */
- long int err; /* Precision of error */
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_GROUP_DECL (group);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* compute the precision of intermediary variable */
- Nt = MAX (MPFR_PREC (x), MPFR_PREC (y));
- /* the optimal number of bits : see algorithms.ps */
- Nt = Nt + MPFR_INT_CEIL_LOG2 (Nt) + 4;
- /* If x is near 0, exp(x) - 1/exp(x) = 2*x+x^3/3+O(x^5) */
- if (MPFR_GET_EXP (x) < 0)
- Nt -= 2*MPFR_GET_EXP (x);
-
- /* initialize of intermediary variables */
- MPFR_GROUP_INIT_2 (group, Nt, t, ti);
-
- /* First computation of sinh */
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- /* compute sinh */
- MPFR_BLOCK (flags, mpfr_exp (t, x, MPFR_RNDD));
- if (MPFR_OVERFLOW (flags))
- /* exp(x) does overflow */
- {
- /* sinh(x) = 2 * sinh(x/2) * cosh(x/2) */
- mpfr_div_2ui (ti, x, 1, MPFR_RNDD); /* exact */
-
- /* t <- cosh(x/2): error(t) <= 1 ulp(t) */
- MPFR_BLOCK (flags, mpfr_cosh (t, ti, MPFR_RNDD));
- if (MPFR_OVERFLOW (flags))
- /* when x>1 we have |sinh(x)| >= cosh(x/2), so sinh(x)
- overflows too */
- {
- inexact = mpfr_overflow (y, rnd_mode, MPFR_SIGN (xt));
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- break;
- }
-
- /* ti <- sinh(x/2): , error(ti) <= 1 ulp(ti)
- cannot overflow because 0 < sinh(x) < cosh(x) when x > 0 */
- mpfr_sinh (ti, ti, MPFR_RNDD);
-
- /* multiplication below, error(t) <= 5 ulp(t) */
- MPFR_BLOCK (flags, mpfr_mul (t, t, ti, MPFR_RNDD));
- if (MPFR_OVERFLOW (flags))
- {
- inexact = mpfr_overflow (y, rnd_mode, MPFR_SIGN (xt));
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- break;
- }
-
- /* doubling below, exact */
- MPFR_BLOCK (flags, mpfr_mul_2ui (t, t, 1, MPFR_RNDN));
- if (MPFR_OVERFLOW (flags))
- {
- inexact = mpfr_overflow (y, rnd_mode, MPFR_SIGN (xt));
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- break;
- }
-
- /* we have lost at most 3 bits of precision */
- err = Nt - 3;
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, MPFR_PREC (y),
- rnd_mode)))
- {
- inexact = mpfr_set4 (y, t, rnd_mode, MPFR_SIGN (xt));
- break;
- }
- err = Nt; /* double the precision */
- }
- else
- {
- d = MPFR_GET_EXP (t);
- mpfr_ui_div (ti, 1, t, MPFR_RNDU); /* 1/exp(x) */
- mpfr_sub (t, t, ti, MPFR_RNDN); /* exp(x) - 1/exp(x) */
- mpfr_div_2ui (t, t, 1, MPFR_RNDN); /* 1/2(exp(x) - 1/exp(x)) */
-
- /* it may be that t is zero (in fact, it can only occur when te=1,
- and thus ti=1 too) */
- if (MPFR_IS_ZERO (t))
- err = Nt; /* double the precision */
- else
- {
- /* calculation of the error */
- d = d - MPFR_GET_EXP (t) + 2;
- /* error estimate: err = Nt-(__gmpfr_ceil_log2(1+pow(2,d)));*/
- err = Nt - (MAX (d, 0) + 1);
- if (MPFR_LIKELY (MPFR_CAN_ROUND (t, err, MPFR_PREC (y),
- rnd_mode)))
- {
- inexact = mpfr_set4 (y, t, rnd_mode, MPFR_SIGN (xt));
- break;
- }
- }
- }
-
- /* actualization of the precision */
- Nt += err;
- MPFR_ZIV_NEXT (loop, Nt);
- MPFR_GROUP_REPREC_2 (group, Nt, t, ti);
- }
- MPFR_ZIV_FREE (loop);
- MPFR_GROUP_CLEAR (group);
- MPFR_SAVE_EXPO_FREE (expo);
- }
-
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sinh_cosh.c b/Build/source/libs/mpfr/mpfr-src/src/sinh_cosh.c
deleted file mode 100644
index 5e5764cd858..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sinh_cosh.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* mpfr_sinh_cosh -- hyperbolic sine and cosine
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
- /* The computations are done by
- cosh(x) = 1/2 [e^(x)+e^(-x)]
- sinh(x) = 1/2 [e^(x)-e^(-x)]
- Adapted from mpfr_sinh.c */
-
-int
-mpfr_sinh_cosh (mpfr_ptr sh, mpfr_ptr ch, mpfr_srcptr xt, mpfr_rnd_t rnd_mode)
-{
- mpfr_t x;
- int inexact_sh, inexact_ch;
-
- MPFR_ASSERTN (sh != ch);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (xt), mpfr_log_prec, xt, rnd_mode),
- ("sh[%Pu]=%.*Rg ch[%Pu]=%.*Rg",
- mpfr_get_prec (sh), mpfr_log_prec, sh,
- mpfr_get_prec (ch), mpfr_log_prec, ch));
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (xt)))
- {
- if (MPFR_IS_NAN (xt))
- {
- MPFR_SET_NAN (ch);
- MPFR_SET_NAN (sh);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (xt))
- {
- MPFR_SET_INF (sh);
- MPFR_SET_SAME_SIGN (sh, xt);
- MPFR_SET_INF (ch);
- MPFR_SET_POS (ch);
- MPFR_RET (0);
- }
- else /* xt is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (xt));
- MPFR_SET_ZERO (sh); /* sinh(0) = 0 */
- MPFR_SET_SAME_SIGN (sh, xt);
- inexact_sh = 0;
- inexact_ch = mpfr_set_ui (ch, 1, rnd_mode); /* cosh(0) = 1 */
- return INEX(inexact_sh,inexact_ch);
- }
- }
-
- /* Warning: if we use MPFR_FAST_COMPUTE_IF_SMALL_INPUT here, make sure
- that the code also works in case of overlap (see sin_cos.c) */
-
- MPFR_TMP_INIT_ABS (x, xt);
-
- {
- mpfr_t s, c, ti;
- mpfr_exp_t d;
- mpfr_prec_t N; /* Precision of the intermediary variables */
- long int err; /* Precision of error */
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_GROUP_DECL (group);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* compute the precision of intermediary variable */
- N = MPFR_PREC (ch);
- N = MAX (N, MPFR_PREC (sh));
- /* the optimal number of bits : see algorithms.ps */
- N = N + MPFR_INT_CEIL_LOG2 (N) + 4;
-
- /* initialize of intermediary variables */
- MPFR_GROUP_INIT_3 (group, N, s, c, ti);
-
- /* First computation of sinh_cosh */
- MPFR_ZIV_INIT (loop, N);
- for (;;)
- {
- MPFR_BLOCK_DECL (flags);
-
- /* compute sinh_cosh */
- MPFR_BLOCK (flags, mpfr_exp (s, x, MPFR_RNDD));
- if (MPFR_OVERFLOW (flags))
- /* exp(x) does overflow */
- {
- /* since cosh(x) >= exp(x), cosh(x) overflows too */
- inexact_ch = mpfr_overflow (ch, rnd_mode, MPFR_SIGN_POS);
- /* sinh(x) may be representable */
- inexact_sh = mpfr_sinh (sh, xt, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- break;
- }
- d = MPFR_GET_EXP (s);
- mpfr_ui_div (ti, 1, s, MPFR_RNDU); /* 1/exp(x) */
- mpfr_add (c, s, ti, MPFR_RNDU); /* exp(x) + 1/exp(x) */
- mpfr_sub (s, s, ti, MPFR_RNDN); /* exp(x) - 1/exp(x) */
- mpfr_div_2ui (c, c, 1, MPFR_RNDN); /* 1/2(exp(x) + 1/exp(x)) */
- mpfr_div_2ui (s, s, 1, MPFR_RNDN); /* 1/2(exp(x) - 1/exp(x)) */
-
- /* it may be that s is zero (in fact, it can only occur when exp(x)=1,
- and thus ti=1 too) */
- if (MPFR_IS_ZERO (s))
- err = N; /* double the precision */
- else
- {
- /* calculation of the error */
- d = d - MPFR_GET_EXP (s) + 2;
- /* error estimate: err = N-(__gmpfr_ceil_log2(1+pow(2,d)));*/
- err = N - (MAX (d, 0) + 1);
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s, err, MPFR_PREC (sh),
- rnd_mode) && \
- MPFR_CAN_ROUND (c, err, MPFR_PREC (ch),
- rnd_mode)))
- {
- inexact_sh = mpfr_set4 (sh, s, rnd_mode, MPFR_SIGN (xt));
- inexact_ch = mpfr_set (ch, c, rnd_mode);
- break;
- }
- }
- /* actualization of the precision */
- N += err;
- MPFR_ZIV_NEXT (loop, N);
- MPFR_GROUP_REPREC_3 (group, N, s, c, ti);
- }
- MPFR_ZIV_FREE (loop);
- MPFR_GROUP_CLEAR (group);
- MPFR_SAVE_EXPO_FREE (expo);
- }
-
- /* now, let's raise the flags if needed */
- inexact_sh = mpfr_check_range (sh, inexact_sh, rnd_mode);
- inexact_ch = mpfr_check_range (ch, inexact_ch, rnd_mode);
-
- return INEX(inexact_sh,inexact_ch);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sparc64/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/sparc64/mparam.h
deleted file mode 100644
index 5608c18f9cb..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sparc64/mparam.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 7.3.0 */
-/* gcc202.fsffrance.org (UltraSparc T5 (Niagara5)) with gmp snapshot
- gmp-6.1.99-20180221 (gmp-6.1.2 is broken on this machine),
- which defines -m64 -mptr64 -mcpu=niagara4 -Wa,-Av9d */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,0,0,-1,0,0,0,-1,0,0,0,-1,0, \
- 0,0,0,14,14,15,16,15,18,18,16,18,18,19,20,22, \
- 22,23,22,23,26,27,26,27,26,27,27,27,27,26,26,27, \
- 27,29,30,27,32,33,34,35,36,37,38,38,40,40,40,44, \
- 44,44,46,46,44,44,46,46,44,44,46,46,44,53,52,54, \
- 52,53,54,54,52,54,54,54,52,53,54,54,54,54,58,54, \
- 58,58,58,64,72,72,70,72,72,72,72,72,76,76,72,76, \
- 76,76,76,76,76,76,76,72,88,88,76,88,88,88,88,88, \
- 88,92,92,92,88,92,88,88,88,92,92,92,88,92,92,96, \
- 104,108,104,108,92,108,104,104,104,108,108,108,108,108,108,108, \
- 108,108,104,108,108,108,108,108,108,106,106,108,108,108,108,108, \
- 108,108,108,116,108,108,108,108,116,108,116,108,108,116,108,108, \
- 116,108,108,108,116,112,116,116,116,136,144,144,136,148,136,144, \
- 136,143,144,152,148,148,144,144,152,152,144,144,148,148,152,144, \
- 151,152,144,144,152,144,152,144,150,152,152,152,172,152,148,176, \
- 176,176,176,176,176,176,176,176,176,176,176,184,184,184,184,184, \
- 184,184,184,176,184,176,176,176,184,184,184,184,184,184,184,184, \
- 184,183,184,184,184,184,184,184,184,184,184,213,184,184,216,213, \
- 213,184,213,219,213,207,213,213,213,212,213,213,213,216,216,216, \
- 225,219,219,225,213,225,216,225,225,225,228,225,225,213,213,237, \
- 237,225,225,237,237,261,261,237,237,261,261,259,261,261,225,261, \
- 261,261,261,225,261,255,260,261,261,261,261,261,261,264,264,264, \
- 261,273,264,273,273,273,273,273,273,273,272,273,273,273,273,273, \
- 273,273,273,273,272,273,273,273,273,273,273,273,273,261,273,273, \
- 273,273,273,273,273,264,264,264,271,273,273,267,273,273,273,273, \
- 273,272,273,273,273,272,273,273,273,273,273,273,273,272,273,273, \
- 273,276,273,273,272,273,273,273,273,273,273,273,273,273,273,273, \
- 273,273,273,273,273,273,318,273,318,273,318,318,318,273,273,273, \
- 318,318,318,318,318,318,318,318,318,318,318,318,318,317,318,318, \
- 318,318,317,318,318,318,317,318,318,318,318,318,318,318,318,318, \
- 342,342,318,342,318,342,342,342,342,318,318,342,342,342,342,342, \
- 342,342,342,342,342,342,342,342,342,342,342,342,342,342,424,424, \
- 424,424,424,424,424,424,424,424,424,400,408,408,424,408,400,424, \
- 424,424,400,423,424,424,424,424,424,424,424,424,424,424,424,423, \
- 424,424,423,424,424,424,424,424,424,424,424,424,424,424,424,424, \
- 424,424,424,424,424,424,424,423,423,424,424,424,423,424,424,424, \
- 423,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424, \
- 424,424,424,424,424,424,424,424,424,424,424,456,424,424,456,456, \
- 456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456, \
- 456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456, \
- 456,455,456,456,455,456,456,456,456,456,456,455,456,455,456,456, \
- 456,488,487,488,488,488,488,488,488,488,488,487,488,488,488,488, \
- 456,456,488,488,488,488,488,552,552,456,552,552,552,560,552,568, \
- 552,560,560,552,551,560,560,568,559,560,560,568,559,568,560,583, \
- 567,567,551,584,600,568,568,599,600,600,600,567,568,584,600,584, \
- 600,568,583,584,560,568,600,568,583,600,600,584,568,584,583,584, \
- 584,584,584,584,584,584,584,584,600,600,600,600,583,584,599,584, \
- 600,600,600,600,600,600,584,600,597,598,599,600,600,598,600,599, \
- 600,598,599,600,600,600,600,584,600,599,600,599,600,599,615,600, \
- 616,600,600,616,600,599,600,599,600,600,600,599,600,616,648,648, \
- 632,648,648,648,648,648,680,656,680,680,680,680,680,680,680,680, \
- 696,696,680,680,696,696,696,696,696,679,696,695,696,680,696,696, \
- 696,678,696,696,696,696,696,680,680,680,688,688,680,680,680,712, \
- 696,696,695,696,696,696,696,696,696,728,720,728,696,728,696,696, \
- 727,728,727,728,712,728,728,696,696,696,728,720,728,728,727,728, \
- 728,728,727,728,728,728,727,728,728,728,728,727,728,728,728,728, \
- 728,728,727,727,728,728,728,728,728,728,728,727,728,728,728,728, \
- 728,728,728,728,728,728,728,728,728,728,728,728,728,727,728,727, \
- 728,728,728,728,726,727,728,728,728,727,728,728,726,727,728,728, \
- 728,728,728,728,728,727,728,726,727,728,728,728,728,727,728,728, \
- 727,712,728,728,720,726,727,728,728,728,728,728,728,727,727,824, \
- 824,728,727,728,728,727,728,728,728,727,728,824,728,824,824,824, \
- 824,856,808,856,824,824,824,824,824,856,855,856,855,856,856,856, \
- 856,856,856,856,855,856,856,856,855,856,855,856,856,856,856,856 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,0,-1,0,0,0,-1,7,8,8,10,10, \
- 10,10,11,11,12,12,14,14,14,14,16,16,16,16,18,18, \
- 18,18,20,20,20,20,22,22,22,24,24,26,26,24,26,26, \
- 26,26,28,28,28,30,30,29,30,31,32,31,32,32,34,34, \
- 34,34,36,36,36,36,38,38,38,38,40,39,40,40,42,42, \
- 44,42,44,44,46,44,46,46,46,46,48,48,48,50,54,49, \
- 52,50,52,52,54,54,58,56,58,56,58,58,56,58,58,60, \
- 58,58,59,60,60,60,62,72,62,62,66,64,64,66,70,72, \
- 72,72,72,72,72,72,70,72,72,72,72,76,72,76,76,76, \
- 76,76,76,76,80,76,78,80,80,80,80,80,80,84,84,84, \
- 84,84,88,84,84,84,88,88,88,88,88,88,88,88,92,92, \
- 92,92,92,92,92,92,96,100,96,96,96,96,96,96,100,100, \
- 100,100,104,104,104,104,104,104,104,104,104,112,120,104,112,119, \
- 108,119,124,108,108,108,120,112,112,112,132,112,124,112,124,119, \
- 120,119,118,119,117,117,119,117,124,120,130,120,120,120,126,125, \
- 124,128,125,124,129,131,126,126,128,136,130,128,131,136,130,130, \
- 131,131,137,131,136,134,137,136,137,136,138,142,136,138,137,137, \
- 141,138,140,142,144,142,143,142,148,142,144,144,147,154,154,146, \
- 147,149,149,154,160,148,156,160,154,153,152,153,152,154,155,155, \
- 160,154,155,155,156,168,159,161,166,166,160,160,160,162,162,161, \
- 162,166,166,172,173,166,167,166,172,166,167,167,178,174,178,172, \
- 174,171,172,172,173,174,178,174,179,180,178,179,184,177,179,178, \
- 178,180,182,180,180,185,190,184,184,184,190,213,184,213,190,213, \
- 186,213,213,213,213,213,190,213,213,213,213,213,213,213,213,213, \
- 213,213,213,213,216,213,213,213,225,213,213,213,225,225,225,213, \
- 213,225,213,213,213,225,225,225,237,237,237,237,225,237,225,225, \
- 225,237,237,237,237,237,228,225,237,237,237,237,237,237,237,237, \
- 237,237,237,237,237,249,240,225,225,225,225,225,228,225,237,237, \
- 234,237,237,237,237,237,237,237,237,237,240,233,237,245,237,237, \
- 237,237,237,249,242,249,249,243,244,249,249,249,249,261,249,261, \
- 249,248,256,249,249,259,249,261,249,249,249,249,249,252,252,255, \
- 261,257,261,257,257,261,261,261,261,261,261,261,261,261,261,261, \
- 261,261,261,261,261,261,273,273,269,273,268,273,273,273,273,273, \
- 273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273, \
- 278,285,285,285,285,285,285,285,285,285,285,285,285,285,288,288, \
- 285,285,285,285,285,285,297,297,297,297,296,297,297,297,297,297, \
- 297,297,297,292,297,293,295,296,297,297,297,297,297,297,303,297, \
- 321,306,300,300,304,302,303,305,308,309,307,309,309,309,307,309, \
- 309,309,309,321,309,321,319,319,321,321,319,321,321,321,321,321, \
- 321,321,321,316,321,321,321,320,321,321,321,320,321,321,321,321, \
- 329,333,333,328,333,333,333,332,333,333,333,333,333,333,333,333, \
- 333,333,342,333,333,333,333,333,342,342,342,354,342,342,342,342, \
- 342,341,342,342,342,342,342,342,342,342,348,354,354,348,348,426, \
- 354,354,426,354,426,353,354,354,353,354,354,354,354,354,354,354, \
- 354,354,450,365,365,450,449,366,365,366,366,366,450,425,426,450, \
- 426,426,426,425,366,426,426,426,426,424,450,426,426,426,426,426, \
- 425,426,450,424,425,426,426,450,449,450,450,449,450,450,450,449, \
- 450,449,449,450,449,450,449,450,449,450,450,450,448,450,426,449, \
- 425,450,426,450,425,426,426,426,426,426,426,426,425,426,426,426, \
- 426,426,426,426,425,426,450,448,449,450,450,449,450,450,450,450, \
- 450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450, \
- 450,449,450,450,450,450,449,450,448,449,450,450,449,448,450,450, \
- 448,450,450,450,450,450,449,450,450,448,448,450,450,448,449,450, \
- 450,449,450,449,450,450,450,449,450,450,450,449,450,450,450,450, \
- 450,450,450,450,450,450,450,450,450,450,450,450,449,450,450,450, \
- 450,450,450,450,450,450,450,450,449,450,450,450,450,450,450,450, \
- 488,450,488,488,488,487,488,488,568,568,560,560,599,600,567,568, \
- 568,600,568,568,568,568,568,568,568,568,568,568,567,568,567,568, \
- 568,568,567,568,568,567,568,568,568,568,568,568,567,568,599,567, \
- 600,568,599,600,568,600,600,600,568,600,600,600,599,599,600,600, \
- 600,599,568,600,600,600,600,600,599,600,600,600,568,568,600,598, \
- 600,600,568,600,600,600,600,599,600,599,600,598,600,599,600,600, \
- 600,599,600,599,600,600,600,600,600,600,600,600,600,599,600,600, \
- 600,598,600,600,632,599,632,631,632,632,631,632,631,632,632,632 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,37,0,37,37,44,41,43,44,44,45,45,44, /*64-79*/ \
- 44,45,45,45,45,51,51,52,51,53,52,49,49,52,50,50, /*80-95*/ \
- 51,50,51,52,53,52,53,56,58,54,57,59,59,66,64,66, /*96-111*/ \
- 64,75,74,68,72,72,72,72,72,72,74,72,72,68,72,67, /*112-127*/ \
- 75,72,80,88,72,88,88,88,86,88,88,72,88,88,88,88, /*128-143*/ \
- 88,84,88,88,88,88,88,88,84,90,88,88,88,84,88,87, /*144-159*/ \
- 88,91,92,91,88,89,91,88,90,88,92,101,90,100,98,104, /*160-175*/ \
- 104,104,102,104,104,104,104,106,104,104,104,104,104,104,100,100, /*176-191*/ \
- 106,108,107,105,102,106,108,104,104,108,104,104,116,104,120,107, /*192-207*/ \
- 112,116,112,114,114,116,116,116,116,116,128,136,116,144,116,128, /*208-223*/ \
- 124,132,128,136,132,136,144,148,136,144,144,144,152,144,144,144, /*224-239*/ \
- 148,148,144,148,144,144,144,144,144,148,160,132,135,136,136,136, /*240-255*/ \
- 144,136,144,176,144,144,148,148,152,152,152,144,148,152,176,148, /*256-271*/ \
- 176,144,144,140,150,176,152,176,176,176,148,144,148,144,176,152, /*272-287*/ \
- 176,169,176,176,176,176,176,180,180,176,175,176,176,176,176,176, /*288-303*/ \
- 180,176,175,176,182,176,176,176,175,176,176,175,176,176,180,176, /*304-319*/ \
- 180,183,184,176,176,176,176,176,176,175,176,176,176,176,176,176, /*320-335*/ \
- 176,182,200,180,176,176,186,180,180,176,180,200,184,180,184,188, /*336-351*/ \
- 180,180,200,208,204,180,192,212,196,208,216,184,208,208,208,213, /*352-367*/ \
- 208,208,208,207,208,215,208,208,212,208,212,215,208,212,210,208, /*368-383*/ \
- 208,208,210,207,208,208,216,207,208,208,207,208,208,208,208,216, /*384-399*/ \
- 215,215,215,215,214,216,216,208,208,216,216,232,232,214,224,216, /*400-415*/ \
- 230,216,232,224,231,216,232,224,232,232,232,232,232,230,232,232, /*416-431*/ \
- 232,240,232,231,232,232,240,228,231,232,232,232,232,232,231,256, /*432-447*/ \
- 232,264,232,232,232,272,256,232,256,264,232,272,272,288,272,288, /*448-463*/ \
- 288,280,272,272,288,271,256,296,288,288,288,288,296,288,296,288, /*464-479*/ \
- 296,296,288,304,296,296,288,303,288,304,296,288,288,288,296,296, /*480-495*/ \
- 296,304,296,264,300,288,288,303,288,296,304,304,296,288,288,304, /*496-511*/ \
- 288,300,288,296,296,296,336,352,352,296,288,288,304,288,288,296, /*512-527*/ \
- 303,272,296,287,352,288,296,352,352,352,304,288,352,296,352,352, /*528-543*/ \
- 352,304,288,360,288,288,352,296,352,352,296,352,288,288,296,296, /*544-559*/ \
- 288,288,288,304,296,304,304,352,368,304,304,352,352,296,312,320, /*560-575*/ \
- 304,304,336,351,360,352,304,352,304,352,351,352,352,352,351,352, /*576-591*/ \
- 352,352,352,352,352,350,352,352,352,352,368,352,360,360,352,352, /*592-607*/ \
- 352,352,351,352,352,352,352,352,360,352,352,352,352,367,352,352, /*608-623*/ \
- 352,352,368,352,356,368,360,352,352,360,352,368,368,352,368,368, /*624-639*/ \
- 360,352,368,360,352,352,352,350,368,352,352,368,352,352,352,364, /*640-655*/ \
- 359,352,351,352,360,352,352,352,352,352,352,352,352,352,359,351, /*656-671*/ \
- 352,352,368,352,352,352,352,352,352,350,352,352,352,349,351,352, /*672-687*/ \
- 352,352,360,360,352,360,360,368,352,364,368,352,360,368,362,368, /*688-703*/ \
- 360,360,366,367,360,360,360,359,367,368,368,367,368,368,361,367, /*704-719*/ \
- 368,368,367,368,368,368,365,368,367,368,367,367,368,368,416,432, /*720-735*/ \
- 373,432,432,399,424,424,432,432,414,432,414,424,432,414,424,416, /*736-751*/ \
- 400,424,424,424,424,424,423,426,424,432,422,423,424,416,426,432, /*752-767*/ \
- 424,426,430,432,424,424,426,414,424,432,414,432,416,416,416,417, /*768-783*/ \
- 414,414,416,416,416,414,416,432,426,432,432,415,432,414,432,424, /*784-799*/ \
- 432,424,418,414,424,424,425,414,425,416,412,414,416,424,422,430, /*800-815*/ \
- 432,424,424,430,432,432,424,430,416,423,416,424,432,425,432,426, /*816-831*/ \
- 432,426,432,432,432,424,428,432,431,431,432,432,432,448,432,426, /*832-847*/ \
- 448,432,432,432,456,456,462,462,448,464,448,462,432,464,461,456, /*848-863*/ \
- 456,464,462,462,456,461,462,462,462,462,463,464,462,462,460,464, /*864-879*/ \
- 528,456,464,462,460,461,462,460,464,464,464,528,544,544,464,528, /*880-895*/ \
- 528,462,528,528,512,544,544,528,528,544,544,544,544,528,542,544, /*896-911*/ \
- 544,544,544,544,544,528,512,544,512,542,545,528,544,542,528,544, /*912-927*/ \
- 544,544,543,528,544,541,542,542,528,544,544,543,545,544,544,544, /*928-943*/ \
- 544,545,542,544,544,546,542,544,544,544,544,546,542,544,544,544, /*944-959*/ \
- 542,544,544,543,544,543,542,544,576,544,544,544,576,576,544,543, /*960-975*/ \
- 544,543,544,544,544,544,576,544,545,576,576,541,592,544,544,576, /*976-991*/ \
- 576,575,576,544,543,544,576,527,576,528,608,576,544,608,544,544, /*992-1007*/ \
- 542,544,544,544,544,539,608,608,543,542,544,608,543,544,528,544 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 13 /* limbs */
-#define MPFR_SQR_THRESHOLD 13 /* limbs */
-#define MPFR_DIV_THRESHOLD 4 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 1712 /* bits */
-#define MPFR_EXP_THRESHOLD 3213 /* bits */
-#define MPFR_SINCOS_THRESHOLD 21539 /* bits */
-#define MPFR_AI_THRESHOLD1 -6778 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 549
-#define MPFR_AI_THRESHOLD3 8223
-/* Tuneup completed successfully, took 686 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sqr.c b/Build/source/libs/mpfr/mpfr-src/src/sqr.c
deleted file mode 100644
index 0ab414ba113..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sqr.c
+++ /dev/null
@@ -1,613 +0,0 @@
-/* mpfr_sqr -- Floating-point square
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#if !defined(MPFR_GENERIC_ABI) && (GMP_NUMB_BITS == 32 || GMP_NUMB_BITS == 64)
-
-/* Special code for prec(a) < GMP_NUMB_BITS and prec(b) <= GMP_NUMB_BITS.
- Note: this function was copied from mpfr_mul_1 in file mul.c, thus any
- change here should be done also in mpfr_mul_1.
- Although this function works as soon as prec(a) < GMP_NUMB_BITS and
- prec(b) <= GMP_NUMB_BITS, we use it for prec(a)=prec(b) < GMP_NUMB_BITS. */
-static int
-mpfr_sqr_1 (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode, mpfr_prec_t p)
-{
- mp_limb_t a0;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mp_limb_t b0 = MPFR_MANT(b)[0];
- mpfr_exp_t ax;
- mpfr_prec_t sh = GMP_NUMB_BITS - p;
- mp_limb_t rb, sb, mask = MPFR_LIMB_MASK(sh);
-
- /* When prec(b) <= GMP_NUMB_BITS / 2, we could replace umul_ppmm
- by a limb multiplication as follows, but we assume umul_ppmm is as fast
- as a limb multiplication on modern processors:
- a0 = (b0 >> (GMP_NUMB_BITS / 2)) * (b0 >> (GMP_NUMB_BITS / 2));
- sb = 0;
- */
- ax = MPFR_GET_EXP(b) * 2;
- umul_ppmm (a0, sb, b0, b0);
- if (a0 < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- }
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
-
- MPFR_SIGN(a) = MPFR_SIGN_POS;
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- /* Note: for emin=2*k+1, a >= 0.111...111*2^(emin-1) is not possible,
- i.e., a >= (1 - 2^(-p))*2^(2k), since we need a = b^2 with EXP(b)=k,
- and the largest such b is (1 - 2^(-p))*2^k satisfies
- b^2 < (1 - 2^(-p))*2^(2k).
- For emin=2*k, it is only possible for some values of p: it is not
- possible for p=53, because the largest significand is 6369051672525772
- but its square has only 52 leading ones. For p=24 it is possible,
- with b = 11863283, whose square has 24 leading ones. */
- if (ax == __gmpfr_emin - 1 && ap[0] == ~mask &&
- ((rnd_mode == MPFR_RNDN && rb) ||
- (MPFR_IS_LIKE_RNDA (rnd_mode, 0) && (rb | sb))))
- goto rounding; /* no underflow */
- /* For RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either ax < emin - 1
- (b) or ax = emin - 1 and ap[0] = 1000....000 and rb = sb = 0 */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[0] == MPFR_LIMB_HIGHBIT && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN_POS);
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ (rnd_mode, 0))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN_POS);
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- if (ap[0] == 0)
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN_POS);
- }
-}
-
-/* special code for PREC(a) = GMP_NUMB_BITS */
-static int
-mpfr_sqr_1n (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode)
-{
- mp_limb_t a0;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mp_limb_t b0 = MPFR_MANT(b)[0];
- mpfr_exp_t ax;
- mp_limb_t rb, sb;
-
- ax = MPFR_GET_EXP(b) * 2;
- umul_ppmm (a0, sb, b0, b0);
- if (a0 < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- }
- rb = sb & MPFR_LIMB_HIGHBIT;
- sb = sb & ~MPFR_LIMB_HIGHBIT;
- ap[0] = a0;
-
- MPFR_SIGN(a) = MPFR_SIGN_POS;
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- /* As seen in mpfr_mul_1, we cannot have a0 = 111...111 here if there
- was not an exponent decrease (ax--) above.
- In the case of an exponent decrease:
- - For GMP_NUMB_BITS=32, a0 = 111...111 is not possible since the
- largest b0 such that b0^2 < 2^(2*32-1) is b0=3037000499, but
- its square has only 30 leading ones.
- - For GMP_NUMB_BITS=64, a0 = 111...111 is possible: the largest b0
- is 13043817825332782212, and its square has 64 leading ones; but
- since the next bit is rb=0, for RNDN, we always have an underflow.
- For the test below, note that a is positive.
- */
- if (ax == __gmpfr_emin - 1 && ap[0] == MPFR_LIMB_MAX &&
- MPFR_IS_LIKE_RNDA (rnd_mode, 0))
- goto rounding; /* no underflow */
- /* For RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either ax < emin - 1
- (b) or ax = emin - 1 and ap[0] = 1000....000 and rb = sb = 0 */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[0] == MPFR_LIMB_HIGHBIT && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN_POS);
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & MPFR_LIMB_ONE) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ (rnd_mode, 0))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN_POS);
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE;
- if (ap[0] == 0)
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN_POS);
- }
-}
-
-/* Special code for GMP_NUMB_BITS < prec(a) < 2*GMP_NUMB_BITS and
- GMP_NUMB_BITS < prec(b) <= 2*GMP_NUMB_BITS.
- Note: this function was copied and optimized from mpfr_mul_2 in file mul.c,
- thus any change here should be done also in mpfr_mul_2, if applicable. */
-static int
-mpfr_sqr_2 (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode, mpfr_prec_t p)
-{
- mp_limb_t h, l, u, v;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mpfr_exp_t ax = 2 * MPFR_GET_EXP(b);
- mpfr_prec_t sh = 2 * GMP_NUMB_BITS - p;
- mp_limb_t rb, sb, sb2, mask = MPFR_LIMB_MASK(sh);
- mp_limb_t *bp = MPFR_MANT(b);
-
- /* we store the 4-limb product in h=ap[1], l=ap[0], sb=ap[-1], sb2=ap[-2] */
- umul_ppmm (h, l, bp[1], bp[1]);
- umul_ppmm (u, v, bp[1], bp[0]);
- l += u << 1;
- h += (l < (u << 1)) + (u >> (GMP_NUMB_BITS - 1));
-
- /* now the full square is {h, l, 2*v + high(b0*c0), low(b0*c0)},
- where the lower part contributes to less than 3 ulps to {h, l} */
-
- /* If h has its most significant bit set and the low sh-1 bits of l are not
- 000...000 nor 111...111 nor 111...110, then we can round correctly;
- if h has zero as most significant bit, we have to shift left h and l,
- thus if the low sh-2 bits are not 000...000 nor 111...111 nor 111...110,
- then we can round correctly. To avoid an extra test we consider the latter
- case (if we can round, we can also round in the former case).
- For sh <= 3, we have mask <= 7, thus (mask>>2) <= 1, and the approximation
- cannot be enough. */
- if (MPFR_LIKELY(((l + 2) & (mask >> 2)) > 2))
- sb = sb2 = 1; /* result cannot be exact in that case */
- else
- {
- mp_limb_t carry1, carry2;
-
- umul_ppmm (sb, sb2, bp[0], bp[0]);
- /* the full product is {h, l, sb + v + w, sb2} */
- ADD_LIMB (sb, v, carry1);
- ADD_LIMB (l, carry1, carry2);
- h += carry2;
- ADD_LIMB (sb, v, carry1);
- ADD_LIMB (l, carry1, carry2);
- h += carry2;
- }
- if (h < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- h = (h << 1) | (l >> (GMP_NUMB_BITS - 1));
- l = (l << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- /* no need to shift sb2 since we only want to know if it is zero or not */
- }
- ap[1] = h;
- rb = l & (MPFR_LIMB_ONE << (sh - 1));
- sb |= ((l & mask) ^ rb) | sb2;
- ap[0] = l & ~mask;
-
- MPFR_SIGN(a) = MPFR_SIGN_POS;
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- /* Note: like for mpfr_sqr_1, the case
- 0.111...111*2^(emin-1) < a < 2^(emin-1) is not possible when emin is
- odd, since (modulo a shift) this would imply 1-2^(-p) < a = b^2 < 1,
- and this is not possible with 1-2^(-p) <= b < 1.
- For emin even, it is possible for some values of p, for example for
- p=69 with b=417402170410649030795*2^k. */
- if (ax == __gmpfr_emin - 1 &&
- ap[1] == MPFR_LIMB_MAX &&
- ap[0] == ~mask &&
- ((rnd_mode == MPFR_RNDN && rb) ||
- (MPFR_IS_LIKE_RNDA (rnd_mode, 0) && (rb | sb))))
- goto rounding; /* no underflow */
- /* for RNDN, mpfr_underflow always rounds away, thus for
- |a| <= 2^(emin-2) we have to change to RNDZ */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[1] == MPFR_LIMB_HIGHBIT && ap[0] == 0 && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN_POS);
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ (rnd_mode, 0))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN_POS);
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- if (ap[1] == 0)
- {
- ap[1] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN_POS);
- }
-}
-
-/* Special code for 2*GMP_NUMB_BITS < prec(a) < 3*GMP_NUMB_BITS and
- 2*GMP_NUMB_BITS < prec(b) <= 3*GMP_NUMB_BITS. */
-static int
-mpfr_sqr_3 (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode, mpfr_prec_t p)
-{
- mp_limb_t a0, a1, a2, h, l;
- mpfr_limb_ptr ap = MPFR_MANT(a);
- mpfr_exp_t ax = 2 * MPFR_GET_EXP(b);
- mpfr_prec_t sh = 3 * GMP_NUMB_BITS - p;
- mp_limb_t rb, sb, sb2, mask = MPFR_LIMB_MASK(sh);
- mp_limb_t *bp = MPFR_MANT(b);
-
- /* we store the upper 3-limb product in a2, a1, a0:
- b2^2, 2*b2*b1, 2*b2*b0+b1^2 */
-
- /* first compute b2*b1 and b2*b0, which will be shifted by 1 */
- umul_ppmm (a1, a0, bp[2], bp[1]);
- umul_ppmm (h, l, bp[2], bp[0]);
- a0 += h;
- a1 += (a0 < h);
- /* now a1, a0 contains b2*b1 + floor(b2*b0/B): there can be no overflow
- since b2*b1*B + b2*b0 <= b2*(b1*B+b0) <= b2*(B^2-1) < B^3 */
-
- /* multiply a2, a1, a0 by 2 */
- a2 = a1 >> (GMP_NUMB_BITS - 1);
- a1 = (a1 << 1) | (a0 >> (GMP_NUMB_BITS - 1));
- a0 = (a0 << 1);
-
- /* add b2^2 */
- umul_ppmm (h, l, bp[2], bp[2]);
- a1 += l;
- a2 += h + (a1 < l);
-
- /* add b1^2 */
- umul_ppmm (h, l, bp[1], bp[1]);
- a0 += h;
- a1 += (a0 < h);
- a2 += (a1 == 0 && a0 < h);
-
- /* Now the approximate product {a2, a1, a0} has an error of less than
- 5 ulps (3 ulps for the ignored low limbs of 2*b2*b0+b1^2,
- plus 2 ulps for the ignored 2*b1*b0 (plus b0^2).
- Since we might shift by 1 bit, we make sure the low sh-2 bits of a0
- are not 0, -1, -2, -3 or -4. */
-
- if (MPFR_LIKELY(((a0 + 4) & (mask >> 2)) > 4))
- sb = sb2 = 1; /* result cannot be exact in that case */
- else
- {
- mp_limb_t t[6];
- mpn_sqr (t, bp, 3);
- a2 = t[5];
- a1 = t[4];
- a0 = t[3];
- sb = t[2];
- sb2 = t[1] | t[0];
- }
- if (a2 < MPFR_LIMB_HIGHBIT)
- {
- ax --;
- a2 = (a2 << 1) | (a1 >> (GMP_NUMB_BITS - 1));
- a1 = (a1 << 1) | (a0 >> (GMP_NUMB_BITS - 1));
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- /* no need to shift sb2: we only need to know if it is zero or not */
- }
- ap[2] = a2;
- ap[1] = a1;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= ((a0 & mask) ^ rb) | sb2;
- ap[0] = a0 & ~mask;
-
- MPFR_SIGN(a) = MPFR_SIGN_POS;
-
- /* rounding */
- if (MPFR_UNLIKELY(ax > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
-
- /* Warning: underflow should be checked *after* rounding, thus when rounding
- away and when a > 0.111...111*2^(emin-1), or when rounding to nearest and
- a >= 0.111...111[1]*2^(emin-1), there is no underflow. */
- if (MPFR_UNLIKELY(ax < __gmpfr_emin))
- {
- if (ax == __gmpfr_emin - 1 &&
- ap[2] == MPFR_LIMB_MAX &&
- ap[1] == MPFR_LIMB_MAX &&
- ap[0] == ~mask &&
- ((rnd_mode == MPFR_RNDN && rb) ||
- (MPFR_IS_LIKE_RNDA (rnd_mode, 0) && (rb | sb))))
- goto rounding; /* no underflow */
- /* for RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ */
- if (rnd_mode == MPFR_RNDN &&
- (ax < __gmpfr_emin - 1 ||
- (ap[2] == MPFR_LIMB_HIGHBIT && ap[1] == 0 && ap[0] == 0
- && (rb | sb) == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN_POS);
- }
-
- rounding:
- MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin
- in the cases "goto rounding" above. */
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ (rnd_mode, 0))
- {
- truncate:
- MPFR_ASSERTD(ax >= __gmpfr_emin);
- MPFR_RET(-MPFR_SIGN_POS);
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- ap[2] += (ap[1] == 0) && (ap[0] == 0);
- if (ap[2] == 0)
- {
- ap[2] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(ax + 1 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
- MPFR_ASSERTD(ax + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(ax + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (a, ax + 1);
- }
- MPFR_RET(MPFR_SIGN_POS);
- }
-}
-
-#endif /* !defined(MPFR_GENERIC_ABI) && ... */
-
-/* Note: mpfr_sqr will call mpfr_mul if bn > MPFR_SQR_THRESHOLD,
- in order to use Mulders' mulhigh, which is handled only here
- to avoid partial code duplication. There is some overhead due
- to the additional tests, but slowdown should not be noticeable
- as this code is not executed in very small precisions. */
-
-int
-mpfr_sqr (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode)
-{
- int cc, inexact;
- mpfr_exp_t ax;
- mp_limb_t *tmp;
- mp_limb_t b1;
- mpfr_prec_t aq, bq;
- mp_size_t bn, tn;
- MPFR_TMP_DECL(marker);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (b), mpfr_log_prec, b, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (a), mpfr_log_prec, a, inexact));
-
- /* deal with special cases */
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(b)))
- {
- if (MPFR_IS_NAN(b))
- {
- MPFR_SET_NAN(a);
- MPFR_RET_NAN;
- }
- MPFR_SET_POS (a);
- if (MPFR_IS_INF(b))
- MPFR_SET_INF(a);
- else
- ( MPFR_ASSERTD(MPFR_IS_ZERO(b)), MPFR_SET_ZERO(a) );
- MPFR_RET(0);
- }
- aq = MPFR_GET_PREC(a);
- bq = MPFR_GET_PREC(b);
-
-#if !defined(MPFR_GENERIC_ABI) && (GMP_NUMB_BITS == 32 || GMP_NUMB_BITS == 64)
- if (aq == bq)
- {
- if (aq < GMP_NUMB_BITS)
- return mpfr_sqr_1 (a, b, rnd_mode, aq);
-
- if (GMP_NUMB_BITS < aq && aq < 2 * GMP_NUMB_BITS)
- return mpfr_sqr_2 (a, b, rnd_mode, aq);
-
- if (aq == GMP_NUMB_BITS)
- return mpfr_sqr_1n (a, b, rnd_mode);
-
- if (2 * GMP_NUMB_BITS < aq && aq < 3 * GMP_NUMB_BITS)
- return mpfr_sqr_3 (a, b, rnd_mode, aq);
- }
-#endif
-
- ax = 2 * MPFR_GET_EXP (b);
- MPFR_ASSERTN (2 * (mpfr_uprec_t) bq <= MPFR_PREC_MAX);
-
- bn = MPFR_LIMB_SIZE (b); /* number of limbs of b */
- tn = MPFR_PREC2LIMBS (2 * bq); /* number of limbs of square,
- 2*bn or 2*bn-1 */
-
- if (MPFR_UNLIKELY(bn > MPFR_SQR_THRESHOLD))
- /* the following line should not be replaced by mpfr_sqr,
- otherwise we'll get an infinite loop! */
- return mpfr_mul (a, b, b, rnd_mode);
-
- MPFR_TMP_MARK(marker);
- tmp = MPFR_TMP_LIMBS_ALLOC (2 * bn);
-
- /* Multiplies the mantissa in temporary allocated space */
- mpn_sqr (tmp, MPFR_MANT(b), bn);
- b1 = tmp[2 * bn - 1];
-
- /* now tmp[0]..tmp[2*bn-1] contains the product of both mantissa,
- with tmp[2*bn-1]>=2^(GMP_NUMB_BITS-2) */
- b1 >>= GMP_NUMB_BITS - 1; /* msb from the product */
-
- /* if the mantissas of b and c are uniformly distributed in ]1/2, 1],
- then their product is in ]1/4, 1/2] with probability 2*ln(2)-1 ~ 0.386
- and in [1/2, 1] with probability 2-2*ln(2) ~ 0.614 */
- tmp += 2 * bn - tn; /* +0 or +1 */
- if (MPFR_UNLIKELY(b1 == 0))
- mpn_lshift (tmp, tmp, tn, 1); /* tn <= k, so no stack corruption */
-
- cc = mpfr_round_raw (MPFR_MANT (a), tmp, 2 * bq, 0, aq, rnd_mode, &inexact);
- /* cc = 1 ==> result is a power of two */
- if (MPFR_UNLIKELY(cc))
- MPFR_MANT(a)[MPFR_LIMB_SIZE(a)-1] = MPFR_LIMB_HIGHBIT;
-
- MPFR_TMP_FREE(marker);
- {
- mpfr_exp_t ax2 = ax + ((int) b1 - 1 + cc);
- if (MPFR_UNLIKELY( ax2 > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN_POS);
- if (MPFR_UNLIKELY( ax2 < __gmpfr_emin))
- {
- /* In the rounding to the nearest mode, if the exponent of the exact
- result (i.e. before rounding, i.e. without taking cc into account)
- is < __gmpfr_emin - 1 or the exact result is a power of 2 (i.e. if
- both arguments are powers of 2), then round to zero. */
- if (rnd_mode == MPFR_RNDN &&
- (ax + (mpfr_exp_t) b1 < __gmpfr_emin || mpfr_powerof2_raw (b)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN_POS);
- }
- MPFR_SET_EXP (a, ax2);
- MPFR_SET_POS (a);
- }
- MPFR_RET (inexact);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sqrt.c b/Build/source/libs/mpfr/mpfr-src/src/sqrt.c
deleted file mode 100644
index 33f8a68c0d5..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sqrt.c
+++ /dev/null
@@ -1,719 +0,0 @@
-/* mpfr_sqrt -- square root of a floating-point number
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#if !defined(MPFR_GENERIC_ABI) && GMP_NUMB_BITS == 64
-
-#include "invsqrt_limb.h"
-
-/* Put in rp[1]*2^64+rp[0] an approximation of floor(sqrt(2^128*n)),
- with 2^126 <= n := np[1]*2^64 + np[0] < 2^128. We have:
- {rp, 2} - 4 <= floor(sqrt(2^128*n)) <= {rp, 2} + 26. */
-static void
-mpfr_sqrt2_approx (mpfr_limb_ptr rp, mpfr_limb_srcptr np)
-{
- mp_limb_t x, r1, r0, h, l;
-
- __gmpfr_sqrt_limb (r1, h, l, x, np[1]);
-
- /* now r1 = floor(sqrt(2^64*n1)) and h:l = 2^64*n1 - r1^2 with h:l <= 2*r1,
- thus h <= 1, and x is an approximation of 2^96/sqrt(np[1])-2^64 */
-
- l += np[0];
- h += (l < np[0]);
-
- /* now 2^64*n1 + n0 - r1^2 = 2^64*h + l with h <= 2 */
-
- /* divide by 2 */
- l = (h << 63) | (l >> 1);
- h = h >> 1;
-
- /* now h <= 1 */
-
- /* now add (2^64+x) * (h*2^64+l) / 2^64 to [r1*2^64, 0] */
-
- umul_hi (r0, x, l); /* x * l */
- r0 += l;
- r1 += h + (r0 < l); /* now we have added 2^64 * (h*2^64+l) */
- if (h)
- {
- r0 += x;
- r1 += (r0 < x); /* add x */
- }
-
- MPFR_ASSERTD(r1 & MPFR_LIMB_HIGHBIT);
-
- rp[0] = r0;
- rp[1] = r1;
-}
-
-/* Special code for prec(r) = prec(u) < GMP_NUMB_BITS. We cannot have
- prec(u) = GMP_NUMB_BITS here, since when the exponent of u is odd,
- we need to shift u by one bit to the right without losing any bit.
- Assumes GMP_NUMB_BITS = 64. */
-static int
-mpfr_sqrt1 (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t p = MPFR_GET_PREC(r);
- mpfr_prec_t exp_u = MPFR_EXP(u), exp_r, sh = GMP_NUMB_BITS - p;
- mp_limb_t u0, r0, rb, sb, mask = MPFR_LIMB_MASK(sh);
- mpfr_limb_ptr rp = MPFR_MANT(r);
-
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 64);
-
- /* first make the exponent even */
- u0 = MPFR_MANT(u)[0];
- if (((unsigned int) exp_u & 1) != 0)
- {
- u0 >>= 1;
- exp_u ++;
- }
- MPFR_ASSERTD (((unsigned int) exp_u & 1) == 0);
- exp_r = exp_u / 2;
-
- /* then compute an approximation of the integer square root of
- u0*2^GMP_NUMB_BITS */
- __gmpfr_sqrt_limb_approx (r0, u0);
-
- sb = 1; /* when we can round correctly with the approximation, the sticky bit
- is non-zero */
-
- /* the exact square root is in [r0, r0 + 7] */
- if (MPFR_UNLIKELY(((r0 + 7) & (mask >> 1)) <= 7))
- {
- /* We should ensure r0 has its most significant bit set.
- Since r0 <= sqrt(2^64*u0) <= r0 + 7, as soon as sqrt(2^64*u0)>=2^63+7,
- which happens for u0>=2^62+8, then r0 >= 2^63.
- It thus remains to check that for 2^62 <= u0 <= 2^62+7,
- __gmpfr_sqrt_limb_approx (r0, u0) gives r0 >= 2^63, which is indeed
- the case:
- u0=4611686018427387904 r0=9223372036854775808
- u0=4611686018427387905 r0=9223372036854775808
- u0=4611686018427387906 r0=9223372036854775809
- u0=4611686018427387907 r0=9223372036854775810
- u0=4611686018427387908 r0=9223372036854775811
- u0=4611686018427387909 r0=9223372036854775812
- u0=4611686018427387910 r0=9223372036854775813
- u0=4611686018427387911 r0=9223372036854775814 */
- MPFR_ASSERTD(r0 >= MPFR_LIMB_HIGHBIT);
- umul_ppmm (rb, sb, r0, r0);
- sub_ddmmss (rb, sb, u0, 0, rb, sb);
- /* for the exact square root, we should have 0 <= rb:sb <= 2*r0 */
- while (!(rb == 0 || (rb == 1 && sb <= 2 * r0)))
- {
- /* subtract 2*r0+1 from rb:sb: subtract r0 before incrementing r0,
- then r0 after (which is r0+1) */
- rb -= (sb < r0);
- sb -= r0;
- r0 ++;
- rb -= (sb < r0);
- sb -= r0;
- }
- /* now we should have rb*2^64 + sb <= 2*r0 */
- MPFR_ASSERTD(rb == 0 || (rb == 1 && sb <= 2 * r0));
- sb = rb | sb;
- }
-
- rb = r0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (r0 & mask) ^ rb;
- rp[0] = r0 & ~mask;
-
- /* rounding: sb = 0 implies rb = 0, since (rb,sb)=(1,0) is not possible */
- MPFR_ASSERTD (rb == 0 || sb != 0);
-
- /* Note: if 1 and 2 are in [emin,emax], no overflow nor underflow
- is possible */
- if (MPFR_UNLIKELY (exp_r > __gmpfr_emax))
- return mpfr_overflow (r, rnd_mode, 1);
-
- /* See comments in mpfr_div_1 */
- if (MPFR_UNLIKELY (exp_r < __gmpfr_emin))
- {
- if (rnd_mode == MPFR_RNDN)
- {
- /* If (1-2^(-p-1))*2^(emin-1) <= sqrt(u) < 2^(emin-1),
- then sqrt(u) would be rounded to 2^(emin-1) with unbounded
- exponent range, and there would be no underflow.
- But this case cannot happen if u has precision p.
- Indeed, we would have:
- (1-2^(-p-1))^2*2^(2*emin-2) <= u < 2^(2*emin-2), i.e.,
- (1-2^(-p)+2^(-2p-2))*2^(2*emin-2) <= u < 2^(2*emin-2),
- and there is no p-bit number in that interval. */
- /* If the result is <= 0.5^2^(emin-1), we should round to 0. */
- if (exp_r < __gmpfr_emin - 1 ||
- (rp[0] == MPFR_LIMB_HIGHBIT && sb == 0))
- rnd_mode = MPFR_RNDZ;
- }
- else if (MPFR_IS_LIKE_RNDA(rnd_mode, 0))
- {
- if (exp_r == __gmpfr_emin - 1 &&
- rp[0] == ~mask &&
- (rb | sb) != 0)
- goto rounding; /* no underflow */
- }
- return mpfr_underflow (r, rnd_mode, 1);
- }
-
- rounding:
- MPFR_EXP (r) = exp_r;
- if (sb == 0 /* implies rb = 0 */ || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD (rb == 0 || rnd_mode == MPFR_RNDF);
- MPFR_ASSERTD(exp_r >= __gmpfr_emin);
- MPFR_ASSERTD(exp_r <= __gmpfr_emax);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- /* since sb <> 0, only rb is needed to decide how to round, and the exact
- middle is not possible */
- if (rb == 0)
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, 0))
- {
- truncate:
- MPFR_ASSERTD(exp_r >= __gmpfr_emin);
- MPFR_ASSERTD(exp_r <= __gmpfr_emax);
- MPFR_RET(-1);
- }
- else /* round away from zero */
- {
- add_one_ulp:
- rp[0] += MPFR_LIMB_ONE << sh;
- if (rp[0] == 0)
- {
- rp[0] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(exp_r + 1 > __gmpfr_emax))
- return mpfr_overflow (r, rnd_mode, 1);
- MPFR_ASSERTD(exp_r + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(exp_r + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (r, exp_r + 1);
- }
- MPFR_RET(1);
- }
-}
-
-/* Special code for prec(r) = prec(u) = GMP_NUMB_BITS. */
-static int
-mpfr_sqrt1n (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t exp_u = MPFR_EXP(u), exp_r;
- mp_limb_t u0, r0, rb, sb, low;
- mpfr_limb_ptr rp = MPFR_MANT(r);
-
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 64);
- MPFR_ASSERTD(MPFR_PREC(r) == GMP_NUMB_BITS);
- MPFR_ASSERTD(MPFR_PREC(u) <= GMP_NUMB_BITS);
-
- /* first make the exponent even */
- u0 = MPFR_MANT(u)[0];
- if (((unsigned int) exp_u & 1) != 0)
- {
- low = u0 << (GMP_NUMB_BITS - 1);
- u0 >>= 1;
- exp_u ++;
- }
- else
- low = 0; /* low part of u0 */
- MPFR_ASSERTD (((unsigned int) exp_u & 1) == 0);
- exp_r = exp_u / 2;
-
- /* then compute an approximation of the integer square root of
- u0*2^GMP_NUMB_BITS */
- __gmpfr_sqrt_limb_approx (r0, u0);
-
- /* the exact square root is in [r0, r0 + 7] */
-
- /* As shown in mpfr_sqrt1 above, r0 has its most significant bit set */
- MPFR_ASSERTD(r0 >= MPFR_LIMB_HIGHBIT);
-
- umul_ppmm (rb, sb, r0, r0);
- sub_ddmmss (rb, sb, u0, low, rb, sb);
- /* for the exact square root, we should have 0 <= rb:sb <= 2*r0 */
- while (!(rb == 0 || (rb == 1 && sb <= 2 * r0)))
- {
- /* subtract 2*r0+1 from rb:sb: subtract r0 before incrementing r0,
- then r0 after (which is r0+1) */
- rb -= (sb < r0);
- sb -= r0;
- r0 ++;
- rb -= (sb < r0);
- sb -= r0;
- }
- /* now we have u0*2^64+low = r0^2 + rb*2^64+sb, with rb*2^64+sb <= 2*r0 */
- MPFR_ASSERTD(rb == 0 || (rb == 1 && sb <= 2 * r0));
-
- /* We can't have the middle case u0*2^64 = (r0 + 1/2)^2 since
- (r0 + 1/2)^2 is not an integer.
- We thus rb = 1 whenever u0*2^64 > (r0 + 1/2)^2, thus rb*2^64 + sb > r0
- and the sticky bit is always 1, unless we had rb = sb = 0. */
-
- rb = rb || (sb > r0);
- sb = rb | sb;
- rp[0] = r0;
-
- /* rounding */
-
- /* Note: if 1 and 2 are in [emin,emax], no overflow nor underflow
- is possible */
- if (MPFR_UNLIKELY (exp_r > __gmpfr_emax))
- return mpfr_overflow (r, rnd_mode, 1);
-
- /* See comments in mpfr_div_1 */
- if (MPFR_UNLIKELY (exp_r < __gmpfr_emin))
- {
- if (rnd_mode == MPFR_RNDN)
- {
- /* the case rp[0] = 111...111 and rb = 1 cannot happen, since it
- would imply u0 >= (2^64-1/2)^2/2^64 thus u0 >= 2^64 */
- if (exp_r < __gmpfr_emin - 1 ||
- (rp[0] == MPFR_LIMB_HIGHBIT && sb == 0))
- rnd_mode = MPFR_RNDZ;
- }
- else if (MPFR_IS_LIKE_RNDA(rnd_mode, 0))
- {
- if (exp_r == __gmpfr_emin - 1 &&
- rp[0] == MPFR_LIMB_MAX &&
- (rb | sb) != 0)
- goto rounding; /* no underflow */
- }
- return mpfr_underflow (r, rnd_mode, 1);
- }
-
- /* sb = 0 can only occur when the square root is exact, i.e., rb = 0 */
-
- rounding:
- MPFR_EXP (r) = exp_r;
- if (sb == 0 /* implies rb = 0 */ || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(exp_r >= __gmpfr_emin);
- MPFR_ASSERTD(exp_r <= __gmpfr_emax);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- /* we can't have sb = 0, thus rb is enough */
- if (rb == 0)
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, 0))
- {
- truncate:
- MPFR_ASSERTD(exp_r >= __gmpfr_emin);
- MPFR_ASSERTD(exp_r <= __gmpfr_emax);
- MPFR_RET(-1);
- }
- else /* round away from zero */
- {
- add_one_ulp:
- rp[0] += MPFR_LIMB_ONE;
- if (rp[0] == 0)
- {
- rp[0] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(exp_r + 1 > __gmpfr_emax))
- return mpfr_overflow (r, rnd_mode, 1);
- MPFR_ASSERTD(exp_r + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(exp_r + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (r, exp_r + 1);
- }
- MPFR_RET(1);
- }
-}
-
-/* Special code for GMP_NUMB_BITS < prec(r) = prec(u) < 2*GMP_NUMB_BITS.
- Assumes GMP_NUMB_BITS=64. */
-static int
-mpfr_sqrt2 (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t p = MPFR_GET_PREC(r);
- mpfr_limb_ptr up = MPFR_MANT(u), rp = MPFR_MANT(r);
- mp_limb_t np[4], rb, sb, mask;
- mpfr_prec_t exp_u = MPFR_EXP(u), exp_r, sh = 2 * GMP_NUMB_BITS - p;
-
- MPFR_STAT_STATIC_ASSERT (GMP_NUMB_BITS == 64);
-
- if (((unsigned int) exp_u & 1) != 0)
- {
- np[3] = up[1] >> 1;
- np[2] = (up[1] << (GMP_NUMB_BITS - 1)) | (up[0] >> 1);
- np[1] = up[0] << (GMP_NUMB_BITS - 1);
- exp_u ++;
- }
- else
- {
- np[3] = up[1];
- np[2] = up[0];
- np[1] = 0;
- }
- exp_r = exp_u / 2;
-
- mask = MPFR_LIMB_MASK(sh);
-
- mpfr_sqrt2_approx (rp, np + 2);
- /* with n = np[3]*2^64+np[2], we have:
- {rp, 2} - 4 <= floor(sqrt(2^128*n)) <= {rp, 2} + 26, thus we can round
- correctly except when the number formed by the last sh-1 bits
- of rp[0] is in the range [-26, 4]. */
- if (MPFR_LIKELY(((rp[0] + 26) & (mask >> 1)) > 30))
- sb = 1;
- else
- {
- mp_limb_t tp[4], h, l;
-
- np[0] = 0;
- mpn_sqr (tp, rp, 2);
- /* since we know s - 26 <= r <= s + 4 and 0 <= n^2 - s <= 2*s, we have
- -8*s-16 <= n - r^2 <= 54*s - 676, thus it suffices to compute
- n - r^2 modulo 2^192 */
- mpn_sub_n (tp, np, tp, 3);
- /* invariant: h:l = 2 * {rp, 2}, with upper bit implicit */
- h = (rp[1] << 1) | (rp[0] >> (GMP_NUMB_BITS - 1));
- l = rp[0] << 1;
- while ((mp_limb_signed_t) tp[2] < 0) /* approximation was too large */
- {
- /* subtract 1 to {rp, 2}, thus 2 to h:l */
- h -= (l <= MPFR_LIMB_ONE);
- l -= 2;
- /* add (1:h:l)+1 to {tp,3} */
- tp[0] += l + 1;
- tp[1] += h + (tp[0] < l);
- /* necessarily rp[1] has its most significant bit set */
- tp[2] += MPFR_LIMB_ONE + (tp[1] < h || (tp[1] == h && tp[0] < l));
- }
- /* now tp[2] >= 0 */
- /* now we want {tp, 4} <= 2 * {rp, 2}, which implies tp[2] <= 1 */
- while (tp[2] > 1 || (tp[2] == 1 && tp[1] > h) ||
- (tp[2] == 1 && tp[1] == h && tp[0] > l))
- {
- /* subtract (1:h:l)+1 from {tp,3} */
- tp[2] -= MPFR_LIMB_ONE + (tp[1] < h || (tp[1] == h && tp[0] <= l));
- tp[1] -= h + (tp[0] <= l);
- tp[0] -= l + 1;
- /* add 2 to h:l */
- l += 2;
- h += (l <= MPFR_LIMB_ONE);
- }
- /* restore {rp, 2} from h:l */
- rp[1] = MPFR_LIMB_HIGHBIT | (h >> 1);
- rp[0] = (h << (GMP_NUMB_BITS - 1)) | (l >> 1);
- sb = tp[2] | tp[0] | tp[1];
- }
-
- rb = rp[0] & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (rp[0] & mask) ^ rb;
- rp[0] = rp[0] & ~mask;
-
- /* rounding */
- if (MPFR_UNLIKELY (exp_r > __gmpfr_emax))
- return mpfr_overflow (r, rnd_mode, 1);
-
- /* See comments in mpfr_div_1 */
- if (MPFR_UNLIKELY (exp_r < __gmpfr_emin))
- {
- if (rnd_mode == MPFR_RNDN)
- {
- if (exp_r < __gmpfr_emin - 1 || (rp[1] == MPFR_LIMB_HIGHBIT &&
- rp[0] == MPFR_LIMB_ZERO && sb == 0))
- rnd_mode = MPFR_RNDZ;
- }
- else if (MPFR_IS_LIKE_RNDA(rnd_mode, 0))
- {
- if (exp_r == __gmpfr_emin - 1 && (rp[1] == MPFR_LIMB_MAX &&
- rp[0] == ~mask) && (rb | sb))
- goto rounding; /* no underflow */
- }
- return mpfr_underflow (r, rnd_mode, 1);
- }
-
- rounding:
- MPFR_EXP (r) = exp_r;
- if (sb == 0 /* implies rb = 0 */ || rnd_mode == MPFR_RNDF)
- {
- MPFR_ASSERTD(exp_r >= __gmpfr_emin);
- MPFR_ASSERTD(exp_r <= __gmpfr_emax);
- MPFR_RET (0);
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- /* since sb <> 0 now, only rb is needed */
- if (rb == 0)
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, 0))
- {
- truncate:
- MPFR_ASSERTD(exp_r >= __gmpfr_emin);
- MPFR_ASSERTD(exp_r <= __gmpfr_emax);
- MPFR_RET(-1);
- }
- else /* round away from zero */
- {
- add_one_ulp:
- rp[0] += MPFR_LIMB_ONE << sh;
- rp[1] += rp[0] == 0;
- if (rp[1] == 0)
- {
- rp[1] = MPFR_LIMB_HIGHBIT;
- if (MPFR_UNLIKELY(exp_r + 1 > __gmpfr_emax))
- return mpfr_overflow (r, rnd_mode, 1);
- MPFR_ASSERTD(exp_r + 1 <= __gmpfr_emax);
- MPFR_ASSERTD(exp_r + 1 >= __gmpfr_emin);
- MPFR_SET_EXP (r, exp_r + 1);
- }
- MPFR_RET(1);
- }
-}
-
-#endif /* !defined(MPFR_GENERIC_ABI) && GMP_NUMB_BITS == 64 */
-
-int
-mpfr_sqrt (mpfr_ptr r, mpfr_srcptr u, mpfr_rnd_t rnd_mode)
-{
- mp_size_t rsize; /* number of limbs of r (plus 1 if exact limb multiple) */
- mp_size_t rrsize;
- mp_size_t usize; /* number of limbs of u */
- mp_size_t tsize; /* number of limbs of the sqrtrem remainder */
- mp_size_t k;
- mp_size_t l;
- mpfr_limb_ptr rp, rp0;
- mpfr_limb_ptr up;
- mpfr_limb_ptr sp;
- mp_limb_t sticky0; /* truncated part of input */
- mp_limb_t sticky1; /* truncated part of rp[0] */
- mp_limb_t sticky;
- int odd_exp;
- int sh; /* number of extra bits in rp[0] */
- int inexact; /* return ternary flag */
- mpfr_exp_t expr;
- mpfr_prec_t rq = MPFR_GET_PREC (r);
- MPFR_TMP_DECL(marker);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (u), mpfr_log_prec, u, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (r), mpfr_log_prec, r, inexact));
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(u)))
- {
- if (MPFR_IS_NAN(u))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_ZERO(u))
- {
- /* 0+ or 0- */
- MPFR_SET_SAME_SIGN(r, u);
- MPFR_SET_ZERO(r);
- MPFR_RET(0); /* zero is exact */
- }
- else
- {
- MPFR_ASSERTD(MPFR_IS_INF(u));
- /* sqrt(-Inf) = NAN */
- if (MPFR_IS_NEG(u))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- MPFR_SET_POS(r);
- MPFR_SET_INF(r);
- MPFR_RET(0);
- }
- }
- if (MPFR_UNLIKELY(MPFR_IS_NEG(u)))
- {
- MPFR_SET_NAN(r);
- MPFR_RET_NAN;
- }
- MPFR_SET_POS(r);
-
-#if !defined(MPFR_GENERIC_ABI) && GMP_NUMB_BITS == 64
- {
- mpfr_prec_t uq = MPFR_GET_PREC (u);
-
- if (rq == uq)
- {
- if (rq < GMP_NUMB_BITS)
- return mpfr_sqrt1 (r, u, rnd_mode);
-
- if (GMP_NUMB_BITS < rq && rq < 2*GMP_NUMB_BITS)
- return mpfr_sqrt2 (r, u, rnd_mode);
-
- if (rq == GMP_NUMB_BITS)
- return mpfr_sqrt1n (r, u, rnd_mode);
- }
- }
-#endif
-
- MPFR_TMP_MARK (marker);
- MPFR_UNSIGNED_MINUS_MODULO (sh, rq);
- if (sh == 0 && rnd_mode == MPFR_RNDN)
- sh = GMP_NUMB_BITS; /* ugly case */
- rsize = MPFR_LIMB_SIZE(r) + (sh == GMP_NUMB_BITS);
- /* rsize is the number of limbs of r + 1 if exact limb multiple and rounding
- to nearest, this is the number of wanted limbs for the square root */
- rrsize = rsize + rsize;
- usize = MPFR_LIMB_SIZE(u); /* number of limbs of u */
- rp0 = MPFR_MANT(r);
- rp = (sh < GMP_NUMB_BITS) ? rp0 : MPFR_TMP_LIMBS_ALLOC (rsize);
- up = MPFR_MANT(u);
- sticky0 = MPFR_LIMB_ZERO; /* truncated part of input */
- sticky1 = MPFR_LIMB_ZERO; /* truncated part of rp[0] */
- odd_exp = (unsigned int) MPFR_GET_EXP (u) & 1;
- inexact = -1; /* return ternary flag */
-
- sp = MPFR_TMP_LIMBS_ALLOC (rrsize);
-
- /* copy the most significant limbs of u to {sp, rrsize} */
- if (MPFR_LIKELY(usize <= rrsize)) /* in case r and u have the same precision,
- we have indeed rrsize = 2 * usize */
- {
- k = rrsize - usize;
- if (MPFR_LIKELY(k))
- MPN_ZERO (sp, k);
- if (odd_exp)
- {
- if (MPFR_LIKELY(k))
- sp[k - 1] = mpn_rshift (sp + k, up, usize, 1);
- else
- sticky0 = mpn_rshift (sp, up, usize, 1);
- }
- else
- MPN_COPY (sp + rrsize - usize, up, usize);
- }
- else /* usize > rrsize: truncate the input */
- {
- k = usize - rrsize;
- if (odd_exp)
- sticky0 = mpn_rshift (sp, up + k, rrsize, 1);
- else
- MPN_COPY (sp, up + k, rrsize);
- l = k;
- while (sticky0 == MPFR_LIMB_ZERO && l != 0)
- sticky0 = up[--l];
- }
-
- /* sticky0 is non-zero iff the truncated part of the input is non-zero */
-
- tsize = mpn_sqrtrem (rp, NULL, sp, rrsize);
-
- /* a return value of zero in mpn_sqrtrem indicates a perfect square */
- sticky = sticky0 || tsize != 0;
-
- /* truncate low bits of rp[0] */
- sticky1 = rp[0] & ((sh < GMP_NUMB_BITS) ? MPFR_LIMB_MASK(sh)
- : MPFR_LIMB_MAX);
- rp[0] -= sticky1;
-
- sticky = sticky || sticky1;
-
- expr = (MPFR_GET_EXP(u) + odd_exp) / 2; /* exact */
-
- if (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDD ||
- sticky == MPFR_LIMB_ZERO)
- {
- inexact = (sticky == MPFR_LIMB_ZERO) ? 0 : -1;
- goto truncate;
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- /* if sh < GMP_NUMB_BITS, the round bit is bit (sh-1) of sticky1
- and the sticky bit is formed by the low sh-1 bits from
- sticky1, together with the sqrtrem remainder and sticky0. */
- if (sh < GMP_NUMB_BITS)
- {
- if (sticky1 & (MPFR_LIMB_ONE << (sh - 1)))
- { /* round bit is set */
- if (sticky1 == (MPFR_LIMB_ONE << (sh - 1)) && tsize == 0
- && sticky0 == 0)
- goto even_rule;
- else
- goto add_one_ulp;
- }
- else /* round bit is zero */
- goto truncate; /* with the default inexact=-1 */
- }
- else /* sh = GMP_NUMB_BITS: the round bit is the most significant bit
- of rp[0], and the remaining GMP_NUMB_BITS-1 bits contribute to
- the sticky bit */
- {
- if (sticky1 & MPFR_LIMB_HIGHBIT)
- { /* round bit is set */
- if (sticky1 == MPFR_LIMB_HIGHBIT && tsize == 0 && sticky0 == 0)
- goto even_rule;
- else
- goto add_one_ulp;
- }
- else /* round bit is zero */
- goto truncate; /* with the default inexact=-1 */
- }
- }
- else /* rnd_mode=GMP_RDNU, necessarily sticky <> 0, thus add 1 ulp */
- goto add_one_ulp;
-
- even_rule: /* has to set inexact */
- if (sh < GMP_NUMB_BITS)
- inexact = (rp[0] & (MPFR_LIMB_ONE << sh)) ? 1 : -1;
- else
- inexact = (rp[1] & MPFR_LIMB_ONE) ? 1 : -1;
- if (inexact == -1)
- goto truncate;
- /* else go through add_one_ulp */
-
- add_one_ulp:
- inexact = 1; /* always here */
- if (sh == GMP_NUMB_BITS)
- {
- rp ++;
- rsize --;
- sh = 0;
- }
- /* now rsize = MPFR_LIMB_SIZE(r) */
- if (mpn_add_1 (rp0, rp, rsize, MPFR_LIMB_ONE << sh))
- {
- expr ++;
- rp0[rsize - 1] = MPFR_LIMB_HIGHBIT;
- }
- goto end;
-
- truncate: /* inexact = 0 or -1 */
- if (sh == GMP_NUMB_BITS)
- MPN_COPY (rp0, rp + 1, rsize - 1);
-
- end:
- /* Do not use MPFR_SET_EXP because the range has not been checked yet. */
- MPFR_ASSERTN (expr >= MPFR_EMIN_MIN && expr <= MPFR_EMAX_MAX);
- MPFR_EXP (r) = expr;
- MPFR_TMP_FREE(marker);
-
- return mpfr_check_range (r, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sqrt_ui.c b/Build/source/libs/mpfr/mpfr-src/src/sqrt_ui.c
deleted file mode 100644
index b8689d794dd..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sqrt_ui.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* mpfr_sqrt_ui -- square root of a machine integer
-
-Copyright 2000-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_sqrt_ui (mpfr_ptr r, unsigned long u, mpfr_rnd_t rnd_mode)
-{
- if (u)
- {
- mpfr_t uu;
- int inex;
-#ifdef MPFR_LONG_WITHIN_LIMB
- mp_limb_t up[1];
- int cnt;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_TMP_INIT1 (up, uu, GMP_NUMB_BITS);
- MPFR_ASSERTN (u == (mp_limb_t) u);
- count_leading_zeros (cnt, (mp_limb_t) u);
- *up = (mp_limb_t) u << cnt;
-
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_SET_EXP (uu, GMP_NUMB_BITS - cnt);
- inex = mpfr_sqrt (r, uu, rnd_mode);
-#else
- MPFR_SAVE_EXPO_DECL (expo);
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- /* Warning: u might be outside the current exponent range! */
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_set_ui (uu, u, MPFR_RNDZ);
- inex = mpfr_sqrt (r, uu, rnd_mode);
- mpfr_clear (uu);
-#endif /* MPFR_LONG_WITHIN_LIMB */
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (r, inex, rnd_mode);
- }
- else /* sqrt(0) = 0 */
- {
- MPFR_SET_ZERO(r);
- MPFR_SET_POS(r);
- MPFR_RET(0);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/stack_interface.c b/Build/source/libs/mpfr/mpfr-src/src/stack_interface.c
deleted file mode 100644
index ceb7b977275..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/stack_interface.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* mpfr_stack -- initialize a floating-point number with given allocation area
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-#undef mpfr_custom_get_size
-size_t
-mpfr_custom_get_size (mpfr_prec_t prec)
-{
- return MPFR_PREC2LIMBS (prec) * MPFR_BYTES_PER_MP_LIMB;
-}
-
-#undef mpfr_custom_init
-void
-mpfr_custom_init (void *mantissa, mpfr_prec_t prec)
-{
- return ;
-}
-
-#undef mpfr_custom_get_significand
-void *
-mpfr_custom_get_significand (mpfr_srcptr x)
-{
- return (void*) MPFR_MANT (x);
-}
-
-#undef mpfr_custom_get_exp
-mpfr_exp_t
-mpfr_custom_get_exp (mpfr_srcptr x)
-{
- return MPFR_EXP (x);
-}
-
-#undef mpfr_custom_move
-void
-mpfr_custom_move (mpfr_ptr x, void *new_position)
-{
- MPFR_MANT (x) = (mp_limb_t *) new_position;
-}
-
-#undef mpfr_custom_init_set
-void
-mpfr_custom_init_set (mpfr_ptr x, int kind, mpfr_exp_t exp,
- mpfr_prec_t prec, void *mantissa)
-{
- mpfr_kind_t t;
- int s;
- mpfr_exp_t e;
-
- if (kind >= 0)
- {
- t = (mpfr_kind_t) kind;
- s = MPFR_SIGN_POS;
- }
- else
- {
- t = (mpfr_kind_t) -kind;
- s = MPFR_SIGN_NEG;
- }
- MPFR_ASSERTD (t <= MPFR_REGULAR_KIND);
- e = MPFR_LIKELY (t == MPFR_REGULAR_KIND) ? exp :
- MPFR_UNLIKELY (t == MPFR_NAN_KIND) ? MPFR_EXP_NAN :
- MPFR_UNLIKELY (t == MPFR_INF_KIND) ? MPFR_EXP_INF : MPFR_EXP_ZERO;
-
- MPFR_PREC (x) = prec;
- MPFR_SET_SIGN (x, s);
- MPFR_EXP (x) = e;
- MPFR_MANT (x) = (mp_limb_t*) mantissa;
- return;
-}
-
-#undef mpfr_custom_get_kind
-int
-mpfr_custom_get_kind (mpfr_srcptr x)
-{
- if (MPFR_LIKELY (!MPFR_IS_SINGULAR (x)))
- return (int) MPFR_REGULAR_KIND * MPFR_INT_SIGN (x);
- if (MPFR_IS_INF (x))
- return (int) MPFR_INF_KIND * MPFR_INT_SIGN (x);
- if (MPFR_IS_NAN (x))
- return (int) MPFR_NAN_KIND;
- MPFR_ASSERTD (MPFR_IS_ZERO (x));
- return (int) MPFR_ZERO_KIND * MPFR_INT_SIGN (x);
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/strtofr.c b/Build/source/libs/mpfr/mpfr-src/src/strtofr.c
deleted file mode 100644
index c6aeb739133..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/strtofr.c
+++ /dev/null
@@ -1,978 +0,0 @@
-/* mpfr_strtofr -- set a floating-point number from a string
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <ctype.h> /* For isspace */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-#define MPFR_MAX_BASE 62
-
-struct parsed_string {
- int negative; /* non-zero iff the number is negative */
- int base; /* base of the string */
- unsigned char *mantissa; /* raw significand (without any point) */
- unsigned char *mant; /* stripped significand (without starting and
- ending zeroes). This points inside the area
- allocated for the mantissa field. */
- size_t prec; /* length of mant (zero for +/-0) */
- size_t alloc; /* allocation size of mantissa */
- mpfr_exp_t exp_base; /* number of digits before the point, + exponent
- except in case of binary exponent (exp_bin) */
- mpfr_exp_t exp_bin; /* binary exponent of the pxxx format for
- base = 2 or 16 */
-};
-
-/* This table has been generated by the following program.
- For 2 <= b <= MPFR_MAX_BASE,
- RedInvLog2Table[b-2][0] / RedInvLog2Table[b-2][1]
- is an upper approximation to log(2)/log(b), no larger than 1.
- Note: these numbers must fit on 16 bits, thus unsigned int is OK.
-*/
-static const unsigned int RedInvLog2Table[MPFR_MAX_BASE-1][2] = {
- {1, 1},
- {53, 84},
- {1, 2},
- {4004, 9297},
- {53, 137},
- {2393, 6718},
- {1, 3},
- {665, 2108},
- {4004, 13301},
- {949, 3283},
- {53, 190},
- {5231, 19357},
- {2393, 9111},
- {247, 965},
- {1, 4},
- {4036, 16497},
- {665, 2773},
- {5187, 22034},
- {4004, 17305},
- {51, 224},
- {949, 4232},
- {3077, 13919},
- {53, 243},
- {73, 339},
- {5231, 24588},
- {665, 3162},
- {2393, 11504},
- {4943, 24013},
- {247, 1212},
- {3515, 17414},
- {1, 5},
- {4415, 22271},
- {4036, 20533},
- {263, 1349},
- {665, 3438},
- {1079, 5621},
- {5187, 27221},
- {2288, 12093},
- {4004, 21309},
- {179, 959},
- {51, 275},
- {495, 2686},
- {949, 5181},
- {3621, 19886},
- {3077, 16996},
- {229, 1272},
- {53, 296},
- {109, 612},
- {73, 412},
- {1505, 8537},
- {5231, 29819},
- {283, 1621},
- {665, 3827},
- {32, 185},
- {2393, 13897},
- {1879, 10960},
- {4943, 28956},
- {409, 2406},
- {247, 1459},
- {231, 1370},
- {3515, 20929} };
-#if 0
-#define N 8
-int main ()
-{
- unsigned long tab[N];
- int i, n, base;
- mpfr_t x, y;
- mpq_t q1, q2;
- int overflow = 0, base_overflow;
-
- mpfr_init2 (x, 200);
- mpfr_init2 (y, 200);
- mpq_init (q1);
- mpq_init (q2);
-
- for (base = 2 ; base < 63 ; base ++)
- {
- mpfr_set_ui (x, base, MPFR_RNDN);
- mpfr_log2 (x, x, MPFR_RNDN);
- mpfr_ui_div (x, 1, x, MPFR_RNDN);
- printf ("Base: %d x=%e ", base, mpfr_get_d1 (x));
- for (i = 0 ; i < N ; i++)
- {
- mpfr_floor (y, x);
- tab[i] = mpfr_get_ui (y, MPFR_RNDN);
- mpfr_sub (x, x, y, MPFR_RNDN);
- mpfr_ui_div (x, 1, x, MPFR_RNDN);
- }
- for (i = N-1 ; i >= 0 ; i--)
- if (tab[i] != 0)
- break;
- mpq_set_ui (q1, tab[i], 1);
- for (i = i-1 ; i >= 0 ; i--)
- {
- mpq_inv (q1, q1);
- mpq_set_ui (q2, tab[i], 1);
- mpq_add (q1, q1, q2);
- }
- printf("Approx: ", base);
- mpq_out_str (stdout, 10, q1);
- printf (" = %e\n", mpq_get_d (q1) );
- fprintf (stderr, "{");
- mpz_out_str (stderr, 10, mpq_numref (q1));
- fprintf (stderr, "UL, ");
- mpz_out_str (stderr, 10, mpq_denref (q1));
- fprintf (stderr, "UL},\n");
- if (mpz_cmp_ui (mpq_numref (q1), 1<<16-1) >= 0
- || mpz_cmp_ui (mpq_denref (q1), 1<<16-1) >= 0)
- overflow = 1, base_overflow = base;
- }
-
- mpq_clear (q2);
- mpq_clear (q1);
- mpfr_clear (y);
- mpfr_clear (x);
- if (overflow )
- printf ("OVERFLOW for base =%d!\n", base_overflow);
-}
-#endif
-
-
-/* Compatible with any locale, but one still assumes that 'a', 'b', 'c',
- ..., 'z', and 'A', 'B', 'C', ..., 'Z' are consecutive values (like
- in any ASCII-based character set). */
-static int
-digit_value_in_base (int c, int base)
-{
- int digit;
-
- MPFR_ASSERTD (base > 0 && base <= MPFR_MAX_BASE);
-
- if (c >= '0' && c <= '9')
- digit = c - '0';
- else if (c >= 'a' && c <= 'z')
- digit = (base >= 37) ? c - 'a' + 36 : c - 'a' + 10;
- else if (c >= 'A' && c <= 'Z')
- digit = c - 'A' + 10;
- else
- return -1;
-
- return MPFR_LIKELY (digit < base) ? digit : -1;
-}
-
-/* Compatible with any locale, but one still assumes that 'a', 'b', 'c',
- ..., 'z', and 'A', 'B', 'C', ..., 'Z' are consecutive values (like
- in any ASCII-based character set). */
-/* TODO: support EBCDIC. */
-static int
-fast_casecmp (const char *s1, const char *s2)
-{
- unsigned char c1, c2;
-
- do
- {
- c2 = *(const unsigned char *) s2++;
- if (c2 == '\0')
- return 0;
- c1 = *(const unsigned char *) s1++;
- if (c1 >= 'A' && c1 <= 'Z')
- c1 = c1 - 'A' + 'a';
- }
- while (c1 == c2);
- return 1;
-}
-
-/* Parse a string and fill pstr.
- Return the advanced ptr too.
- It returns:
- -1 if invalid string,
- 0 if special string (like nan),
- 1 if the string is OK.
- 2 if overflows
- So it doesn't return the ternary value
- BUT if it returns 0 (NAN or INF), the ternary value is also '0'
- (ie NAN and INF are exact) */
-static int
-parse_string (mpfr_t x, struct parsed_string *pstr,
- const char **string, int base)
-{
- const char *str = *string;
- unsigned char *mant;
- int point;
- int res = -1; /* Invalid input return value */
- const char *prefix_str;
- int decimal_point;
-
- decimal_point = (unsigned char) MPFR_DECIMAL_POINT;
-
- /* Init variable */
- pstr->mantissa = NULL;
-
- /* Optional leading whitespace */
- while (isspace((unsigned char) *str)) str++;
-
- /* An optional sign `+' or `-' */
- pstr->negative = (*str == '-');
- if (*str == '-' || *str == '+')
- str++;
-
- /* Can be case-insensitive NAN */
- if (fast_casecmp (str, "@nan@") == 0)
- {
- str += 5;
- goto set_nan;
- }
- if (base <= 16 && fast_casecmp (str, "nan") == 0)
- {
- str += 3;
- set_nan:
- /* Check for "(dummychars)" */
- if (*str == '(')
- {
- const char *s;
- for (s = str+1 ; *s != ')' ; s++)
- if (!(*s >= 'A' && *s <= 'Z')
- && !(*s >= 'a' && *s <= 'z')
- && !(*s >= '0' && *s <= '9')
- && *s != '_')
- break;
- if (*s == ')')
- str = s+1;
- }
- *string = str;
- MPFR_SET_NAN(x);
- /* MPFR_RET_NAN not used as the return value isn't a ternary value */
- __gmpfr_flags |= MPFR_FLAGS_NAN;
- return 0;
- }
-
- /* Can be case-insensitive INF */
- if (fast_casecmp (str, "@inf@") == 0)
- {
- str += 5;
- goto set_inf;
- }
- if (base <= 16 && fast_casecmp (str, "infinity") == 0)
- {
- str += 8;
- goto set_inf;
- }
- if (base <= 16 && fast_casecmp (str, "inf") == 0)
- {
- str += 3;
- set_inf:
- *string = str;
- MPFR_SET_INF (x);
- (pstr->negative) ? MPFR_SET_NEG (x) : MPFR_SET_POS (x);
- return 0;
- }
-
- /* If base=0 or 16, it may include '0x' prefix */
- prefix_str = NULL;
- if ((base == 0 || base == 16) && str[0]=='0'
- && (str[1]=='x' || str[1] == 'X'))
- {
- prefix_str = str;
- base = 16;
- str += 2;
- }
- /* If base=0 or 2, it may include '0b' prefix */
- if ((base == 0 || base == 2) && str[0]=='0'
- && (str[1]=='b' || str[1] == 'B'))
- {
- prefix_str = str;
- base = 2;
- str += 2;
- }
- /* Else if base=0, we assume decimal base */
- if (base == 0)
- base = 10;
- pstr->base = base;
-
- /* Alloc mantissa */
- pstr->alloc = (size_t) strlen (str) + 1;
- pstr->mantissa = (unsigned char*) mpfr_allocate_func (pstr->alloc);
-
- /* Read mantissa digits */
- parse_begin:
- mant = pstr->mantissa;
- point = 0;
- pstr->exp_base = 0;
- pstr->exp_bin = 0;
-
- for (;;) /* Loop until an invalid character is read */
- {
- int c = (unsigned char) *str++;
- /* The cast to unsigned char is needed because of digit_value_in_base;
- decimal_point uses this convention too. */
- if (c == '.' || c == decimal_point)
- {
- if (MPFR_UNLIKELY(point)) /* Second '.': stop parsing */
- break;
- point = 1;
- continue;
- }
- c = digit_value_in_base (c, base);
- if (c == -1)
- break;
- MPFR_ASSERTN (c >= 0); /* c is representable in an unsigned char */
- *mant++ = (unsigned char) c;
- if (!point)
- pstr->exp_base ++;
- }
- str--; /* The last read character was invalid */
-
- /* Update the # of char in the mantissa */
- pstr->prec = mant - pstr->mantissa;
- /* Check if there are no characters in the mantissa (Invalid argument) */
- if (pstr->prec == 0)
- {
- /* Check if there was a prefix (in such a case, we have to read
- again the mantissa without skipping the prefix)
- The allocated mantissa is still big enough since we will
- read only 0, and we alloc one more char than needed.
- FIXME: Not really friendly. Maybe cleaner code? */
- if (prefix_str != NULL)
- {
- str = prefix_str;
- prefix_str = NULL;
- goto parse_begin;
- }
- goto end;
- }
-
- /* Valid entry */
- res = 1;
- MPFR_ASSERTD (pstr->exp_base >= 0);
-
- /* FIXME: In the code below (both cases), if the exponent from the
- string is large, it will be replaced by MPFR_EXP_MIN or MPFR_EXP_MAX,
- i.e. it will have a different value. This may not change the result
- in most cases, but there is no guarantee on very long strings when
- mpfr_exp_t is a 32-bit type, as the exponent could be brought back
- to the current exponent range. */
-
- /* an optional exponent (e or E, p or P, @) */
- if ( (*str == '@' || (base <= 10 && (*str == 'e' || *str == 'E')))
- && (!isspace((unsigned char) str[1])) )
- {
- char *endptr;
- /* the exponent digits are kept in ASCII */
- mpfr_exp_t sum;
- long read_exp = strtol (str + 1, &endptr, 10);
- if (endptr != str+1)
- str = endptr;
- sum =
- read_exp < MPFR_EXP_MIN ? (str = endptr, MPFR_EXP_MIN) :
- read_exp > MPFR_EXP_MAX ? (str = endptr, MPFR_EXP_MAX) :
- (mpfr_exp_t) read_exp;
- MPFR_SADD_OVERFLOW (sum, sum, pstr->exp_base,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- res = 2, res = 3);
- /* Since exp_base was positive, read_exp + exp_base can't
- do a negative overflow. */
- MPFR_ASSERTD (res != 3);
- pstr->exp_base = sum;
- }
- else if ((base == 2 || base == 16)
- && (*str == 'p' || *str == 'P')
- && (!isspace((unsigned char) str[1])))
- {
- char *endptr;
- long read_exp = strtol (str + 1, &endptr, 10);
- if (endptr != str+1)
- str = endptr;
- pstr->exp_bin =
- read_exp < MPFR_EXP_MIN ? (str = endptr, MPFR_EXP_MIN) :
- read_exp > MPFR_EXP_MAX ? (str = endptr, MPFR_EXP_MAX) :
- (mpfr_exp_t) read_exp;
- }
-
- /* Remove 0's at the beginning and end of mantissa[0..prec-1] */
- mant = pstr->mantissa;
- for ( ; (pstr->prec > 0) && (*mant == 0) ; mant++, pstr->prec--)
- pstr->exp_base--;
- for ( ; (pstr->prec > 0) && (mant[pstr->prec - 1] == 0); pstr->prec--);
- pstr->mant = mant;
-
- /* Check if x = 0 */
- if (pstr->prec == 0)
- {
- MPFR_SET_ZERO (x);
- if (pstr->negative)
- MPFR_SET_NEG(x);
- else
- MPFR_SET_POS(x);
- res = 0;
- }
-
- *string = str;
- end:
- if (pstr->mantissa != NULL && res != 1)
- mpfr_free_func (pstr->mantissa, pstr->alloc);
- return res;
-}
-
-/* Transform a parsed string to a mpfr_t according to the rounding mode
- and the precision of x.
- Returns the ternary value. */
-static int
-parsed_string_to_mpfr (mpfr_t x, struct parsed_string *pstr, mpfr_rnd_t rnd)
-{
- mpfr_prec_t precx, prec, ysize_bits, pstr_size;
- mpfr_exp_t exp;
- mp_limb_t *result;
- int count, exact;
- mp_size_t ysize, real_ysize, diff_ysize;
- int res, err;
- const int extra_limbs = GMP_NUMB_BITS >= 12 ? 1 : 2; /* see below */
- MPFR_ZIV_DECL (loop);
- MPFR_TMP_DECL (marker);
-
- /* initialize the working precision */
- precx = MPFR_GET_PREC (x);
- prec = precx + MPFR_INT_CEIL_LOG2 (precx);
-
- /* Compute the value y of the leading characters as long as rounding is not
- possible.
- Note: We have some integer overflow checking using MPFR_EXP_MIN and
- MPFR_EXP_MAX in this loop. Thanks to the large margin between these
- extremal values of the mpfr_exp_t type and the valid minimum/maximum
- exponents, such integer overflows would correspond to real underflow
- or overflow on the result (possibly except in huge precisions, which
- are disregarded here; anyway, in practice, such issues could occur
- only with 32-bit precision and exponent types). Such checks could be
- extended to real early underflow/overflow checking, in order to avoid
- useless computations in such cases; in such a case, be careful that
- the approximation errors need to be taken into account. */
- MPFR_TMP_MARK(marker);
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- mp_limb_t *y0, *y;
-
- /* y will be regarded as a number with precision prec. */
- ysize = MPFR_PREC2LIMBS (prec);
- /* prec bits corresponds to ysize limbs */
- ysize_bits = (mpfr_prec_t) ysize * GMP_NUMB_BITS;
- MPFR_ASSERTD (ysize_bits >= prec);
- /* and to ysize_bits >= prec > precx bits. */
- /* We need to allocate one more limb as specified by mpn_set_str
- (a limb may be written in rp[rn]). Note that the manual of GMP
- up to 5.1.3 was incorrect on this point.
- See the following discussion:
- https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html */
- y0 = MPFR_TMP_LIMBS_ALLOC (2 * ysize + extra_limbs + 1);
- y = y0 + ysize; /* y has (ysize + extra_limbs + 1) allocated limbs */
-
- /* pstr_size is the number of bytes we want to read from pstr->mant
- to fill at least ysize full limbs with mpn_set_str.
- We must have base^(pstr_size-1) >= (2^(GMP_NUMB_BITS))^ysize
- (in the worst case, the first digit is one and all others are zero).
- i.e., pstr_size >= 1 + ysize*GMP_NUMB_BITS/log2(base)
- Since ysize ~ prec/GMP_NUMB_BITS and prec < Umax/2 =>
- ysize*GMP_NUMB_BITS can not overflow.
- We compute pstr_size = 1 + ceil(ysize_bits * Num / Den)
- where 1/log2(base) <= Num/Den <= 1
- It is not exactly ceil(1/log2(base)) but could be one more (base 2).
- Quite ugly since it tries to avoid overflow:
- let Num = RedInvLog2Table[pstr->base-2][0]
- and Den = RedInvLog2Table[pstr->base-2][1],
- and ysize_bits = a*Den+b,
- then ysize_bits * Num/Den = a*Num + (b * Num)/Den,
- thus ceil(ysize_bits * Num/Den) = a*Num + floor(b * Num + Den - 1)/Den
-
- Note: denoting m = pstr_size and n = ysize_bits, assuming we have
- m = 1 + ceil(n/log2(b)), i.e., b^(m-1) >= 2^n > b^(m-2), then
- b^(m-1)/2^n < b, and since we consider m characters of the input,
- the corresponding part is less than b^m < b^2*2^n.
- This implies that if b^2 < 2^GMP_NUMB_BITS, which for b <= 62 holds
- for GMP_NUMB_BITS >= 12, we have real_ysize <= ysize+1 below
- (this also implies that for GMP_NUMB_BITS >= 13, the number of bits
- of y[real_ysize-1] below is less than GMP_NUMB_BITS, thus
- count < GMP_NUMB_BITS).
- Warning: for GMP_NUMB_BITS=8, we can have real_ysize = ysize + 2!
- Hence the allocation above for ysize + extra_limbs limbs.
- */
- {
- unsigned int Num = RedInvLog2Table[pstr->base-2][0];
- unsigned int Den = RedInvLog2Table[pstr->base-2][1];
- MPFR_ASSERTD (Num <= Den && Den <= 65535); /* thus no overflow */
- pstr_size = (ysize_bits / Den) * Num
- + ((unsigned long) (ysize_bits % Den) * Num + Den - 1) / Den
- + 1;
- }
-
- /* Since pstr_size corresponds to at least ysize_bits bits,
- and ysize_bits >= prec, the weight of the neglected part of
- pstr->mant (if any) is < ulp(y) < ulp(x). */
-
- /* If the number of wanted bytes is more than what is available
- in pstr->mant, i.e. pstr->prec, reduce it to pstr->prec. */
- if (pstr_size > pstr->prec)
- pstr_size = pstr->prec;
-
- /* Convert str (potentially truncated to pstr_size) into binary.
- Note that pstr->mant is big endian, thus no offset is needed. */
- real_ysize = mpn_set_str (y, pstr->mant, pstr_size, pstr->base);
-
- /* See above for the explanation of the following assertion. */
- MPFR_ASSERTD (real_ysize <= ysize + extra_limbs);
-
- /* The Boolean "exact" will attempt to track exactness of the result:
- If it is true, then this means that the result is exact, allowing
- termination, even though the rounding test may not succeed.
- Conversely, if the result is exact, then "exact" will not
- necessarily be true at the end of the Ziv loop, but we will need
- to make sure that at some point, "exact" will be true in order to
- guarantee termination. FIXME: check that. */
- /* First, consider the part of the input string that has been ignored.
- Note that the trailing zeros have been removed in parse_string, so
- that if something has been ignored, it must be non-zero. */
- exact = pstr_size == pstr->prec;
-
- /* Normalize y and set the initial value of its exponent exp, which
- is 0 when y is not shifted.
- Since pstr->mant was normalized, mpn_set_str guarantees that
- the most significant limb is non-zero. */
- MPFR_ASSERTD (y[real_ysize - 1] != 0); /* mpn_set_str guarantees this */
- count_leading_zeros (count, y[real_ysize - 1]);
- diff_ysize = ysize - real_ysize;
- MPFR_LOG_MSG (("diff_ysize = %ld\n", (long) diff_ysize));
- if (diff_ysize >= 0)
- {
- /* We have enough limbs to store {y, real_ysize} exactly
- in {y, ysize}, so that we can do a left shift, without
- losing any information ("exact" will not change). */
- if (count != 0)
- mpn_lshift (y + diff_ysize, y, real_ysize, count);
- if (diff_ysize > 0)
- {
- if (count == 0)
- mpn_copyd (y + diff_ysize, y, real_ysize);
- MPN_ZERO (y, diff_ysize);
- }
- /* exp = negation of the total shift count, avoiding overflows. */
- exp = - ((mpfr_exp_t) diff_ysize * GMP_NUMB_BITS + count);
- }
- else
- {
- /* Shift {y, real_ysize} for (GMP_NUMB_BITS - count) bits to the
- right, and put the ysize most significant limbs into {y, ysize}.
- We have either real_ysize = ysize + 1 or real_ysize = ysize + 2
- (only possible with extra_limbs == 2). */
- MPFR_ASSERTD (diff_ysize == -1 ||
- (extra_limbs == 2 && diff_ysize == -2));
- if (count != 0)
- {
- /* Before doing the shift, consider the limb that will entirely
- be lost if real_ysize = ysize + 2. */
- exact = exact && (diff_ysize == -1 || y[0] == MPFR_LIMB_ZERO);
- /* mpn_rshift allows overlap, provided destination <= source */
- /* FIXME: The bits lost due to mpn_rshift are not taken
- into account in the error analysis below! */
- if (mpn_rshift (y, y - (diff_ysize + 1), real_ysize,
- GMP_NUMB_BITS - count) != MPFR_LIMB_ZERO)
- exact = 0; /* some non-zero bits have been shifted out */
- }
- else
- {
- /* the case real_ysize = ysize + 2 with count = 0 cannot happen
- even with GMP_NUMB_BITS = 8 since 62^2 < 256^2/2 */
- MPFR_ASSERTD (diff_ysize == -1);
- exact = exact && y[0] == MPFR_LIMB_ZERO;
- /* copy {y+real_ysize-ysize, ysize} to {y, ysize} */
- mpn_copyi (y, y + 1, real_ysize - 1);
- }
- /* exp = shift count */
- /* TODO: add some explanations about what exp means exactly. */
- exp = GMP_NUMB_BITS * (- diff_ysize) - count;
- }
-
- /* compute base^(exp_base - pstr_size) on n limbs */
- if (IS_POW2 (pstr->base))
- {
- /* Base: 2, 4, 8, 16, 32 */
- int pow2;
- mpfr_exp_t tmp;
-
- MPFR_LOG_MSG (("case 1 (base = power of 2)\n", 0));
-
- count_leading_zeros (pow2, (mp_limb_t) pstr->base);
- pow2 = GMP_NUMB_BITS - pow2 - 1; /* base = 2^pow2 */
- MPFR_ASSERTD (0 < pow2 && pow2 <= 5);
- /* exp += pow2 * (pstr->exp_base - pstr_size) + pstr->exp_bin
- with overflow checking
- and check that we can add/subtract 2 to exp without overflow */
- MPFR_SADD_OVERFLOW (tmp, pstr->exp_base, -(mpfr_exp_t) pstr_size,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- goto overflow, goto underflow);
- /* On some FreeBsd/Alpha, LONG_MIN/1 produced an exception
- so we used to check for this before doing the division.
- Since this bug is closed now (Nov 26, 2009), we remove
- that check (http://www.freebsd.org/cgi/query-pr.cgi?pr=72024) */
- if (tmp > 0 && MPFR_EXP_MAX / pow2 <= tmp)
- goto overflow;
- else if (tmp < 0 && MPFR_EXP_MIN / pow2 >= tmp)
- goto underflow;
- tmp *= pow2;
- MPFR_SADD_OVERFLOW (tmp, tmp, pstr->exp_bin,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- goto overflow, goto underflow);
- MPFR_SADD_OVERFLOW (exp, exp, tmp,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN+2, MPFR_EXP_MAX-2,
- goto overflow, goto underflow);
- result = y;
- err = 0;
- }
- /* case non-power-of-two-base, and pstr->exp_base > pstr_size */
- else if (pstr->exp_base > (mpfr_exp_t) pstr_size)
- {
- mp_limb_t *z;
- mpfr_exp_t exp_z;
-
- MPFR_LOG_MSG (("case 2 (exp_base > pstr_size)\n", 0));
-
- result = MPFR_TMP_LIMBS_ALLOC (2 * ysize + 1);
-
- /* z = base^(exp_base-sptr_size) using space allocated at y-ysize */
- z = y0;
- /* NOTE: exp_base-pstr_size can't overflow since pstr_size > 0 */
- err = mpfr_mpn_exp (z, &exp_z, pstr->base,
- pstr->exp_base - pstr_size, ysize);
- if (err == -2)
- goto overflow;
- exact = exact && (err == -1);
-
- /* If exact is non zero, then z equals exactly the value of the
- pstr_size most significant digits from pstr->mant, i.e., the
- only difference can come from the neglected pstr->prec-pstr_size
- least significant digits of pstr->mant.
- If exact is zero, then z is rounded toward zero with respect
- to that value. */
-
- /* multiply(y = 0.mant[0]...mant[pr-1])_base by base^(exp-g):
- since both y and z are rounded toward zero, so is "result" */
- mpn_mul_n (result, y, z, ysize);
-
- /* compute the error on the product */
- if (err == -1)
- err = 0;
- err ++;
-
- /* compute the exponent of y */
- /* exp += exp_z + ysize_bits with overflow checking
- and check that we can add/subtract 2 to exp without overflow */
- MPFR_SADD_OVERFLOW (exp_z, exp_z, ysize_bits,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- goto overflow, goto underflow);
- MPFR_SADD_OVERFLOW (exp, exp, exp_z,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN+2, MPFR_EXP_MAX-2,
- goto overflow, goto underflow);
-
- /* normalize result */
- if (MPFR_LIMB_MSB (result[2 * ysize - 1]) == 0)
- {
- mp_limb_t *r = result + ysize - 1;
- mpn_lshift (r, r, ysize + 1, 1);
- /* Overflow checking not needed */
- exp --;
- }
-
- /* if the low ysize limbs of {result, 2*ysize} are all zero,
- then the result is still "exact" (if it was before) */
- exact = exact && (mpn_scan1 (result, 0) >= ysize_bits);
- result += ysize;
- }
- /* case exp_base < pstr_size */
- else if (pstr->exp_base < (mpfr_exp_t) pstr_size)
- {
- mp_limb_t *z;
- mpfr_exp_t exp_z;
-
- MPFR_LOG_MSG (("case 3 (exp_base < pstr_size)\n", 0));
-
- result = MPFR_TMP_LIMBS_ALLOC (3 * ysize + 1);
-
- /* y0 = y * K^ysize */
- MPN_ZERO (y0, ysize);
-
- /* pstr_size - pstr->exp_base can overflow */
- MPFR_SADD_OVERFLOW (exp_z, (mpfr_exp_t) pstr_size, -pstr->exp_base,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- goto underflow, goto overflow);
-
- /* (z, exp_z) = base^(pstr_size - exp_base) */
- z = result + 2*ysize + 1;
- err = mpfr_mpn_exp (z, &exp_z, pstr->base, exp_z, ysize);
-
- /* Now {z, ysize} * 2^(exp_z_out - ysize_bits) is an approximation
- to base^exp_z_in (denoted b^e below), rounded toward zero, with:
- * if err = -1, the result is exact;
- * if err = -2, an overflow occurred in the computation of exp_z;
- * otherwise the error is bounded by 2^err ulps.
- Thus the exact value of b^e is between z and z + 2^err, where
- z is {z, ysize} properly scaled by a power of 2. Then the error
- will be:
- y/b^e - trunc(y/z) = eps1 + eps2
- with
- eps1 = y/b^e - y/z <= 0
- eps2 = y/z - trunc(y/z) >= 0
- thus the errors will (partly) compensate, giving a bound
- max(|eps1|,|eps2|).
- In addition, there is a 3rd error eps3 since y might be the
- conversion of only a part of the character string, and/or y
- might be truncated by the mpn_rshift call above:
- eps3 = exact_y/b^e - y/b^e >= 0.
- */
- if (err == -2)
- goto underflow; /* FIXME: Sure? */
- else if (err == -1)
- err = 0; /* see the note below */
- else
- exact = 0;
-
- /* exp -= exp_z + ysize_bits with overflow checking
- and check that we can add/subtract 2 to exp without overflow */
- MPFR_SADD_OVERFLOW (exp_z, exp_z, ysize_bits,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- goto underflow, goto overflow);
- MPFR_SADD_OVERFLOW (exp, exp, -exp_z,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN+2, MPFR_EXP_MAX-2,
- goto overflow, goto underflow);
-
- /* Compute the integer division y/z rounded toward zero.
- The quotient will be put at result + ysize (size: ysize + 1),
- and the remainder at result (size: ysize).
- Both the dividend {y, 2*ysize} and the divisor {z, ysize} are
- normalized, i.e., the most significant bit of their most
- significant limb is 1. */
- MPFR_ASSERTD (MPFR_LIMB_MSB (y0[2 * ysize - 1]) != 0);
- MPFR_ASSERTD (MPFR_LIMB_MSB (z[ysize - 1]) != 0);
- mpn_tdiv_qr (result + ysize, result, (mp_size_t) 0, y0,
- 2 * ysize, z, ysize);
-
- /* The truncation error of the mpn_tdiv_qr call (eps2 above) is at
- most 1 ulp. Idem for the error eps3, which has the same sign,
- thus eps2 + eps3 <= 2 ulps.
- FIXME: For eps3, this is not obvious and should be explained.
- For the error eps1 coming from the approximation to b^e,
- we have (still up to a power-of-2 normalization):
- y/z - y/b^e = y * (b^e-z) / (z * b^e) <= y * 2^err / (z * b^e).
- We have to convert that error in terms of ulp(trunc(y/z)).
- We first have ulp(trunc(y/z)) = ulp(y/z).
-
- FIXME: There must be some discussion about the exponents,
- because up to a power of 2, 1/2 <= |y/z| < 1 and
- 1 <= |y/z| < 2 are equivalent and give no information.
- Moreover 1/2 <= b^e < 1 has not been explained and may
- hide mistakes since one may have 1/2 <= z < 1 < b^e.
-
- Since both y and z are normalized, the quotient
- {result+ysize, ysize+1} has exactly ysize limbs, plus maybe one
- bit (this corresponds to the MPFR_ASSERTD below):
- * if the quotient has exactly ysize limbs, then 1/2 <= |y/z| < 1
- (up to a power of 2) and since 1/2 <= b^e < 1, the error is at
- most 2^(err+1) ulps;
- * if the quotient has one extra bit, then 1 <= |y/z| < 2
- (up to a power of 2) and since 1/2 <= b^e < 1, the error is at
- most 2^(err+2) ulps; but since we will shift the result right
- below by one bit, the final error will be at most 2^(err+1) ulps
- too.
-
- Thus the error is:
- * at most 2^(err+1) ulps for eps1
- * at most 2 ulps for eps2 + eps3, which is of opposite sign
- and we can bound the error by 2^(err+1) ulps in all cases.
-
- Note: If eps1 was 0, the error would be bounded by 2 ulps,
- thus replacing err = -1 by err = 0 above was the right thing
- to do, since 2^(0+1) = 2.
- */
- MPFR_ASSERTD (result[2 * ysize] <= 1);
-
- err += 1; /* see above for the explanation of the +1 term */
-
- /* if the remainder of the division is zero, then the result is
- still "exact" if it was before */
- exact = exact && (mpn_popcount (result, ysize) == 0);
-
- /* normalize result */
- if (result[2 * ysize] == MPFR_LIMB_ONE)
- {
- mp_limb_t *r = result + ysize;
-
- exact = exact && ((*r & MPFR_LIMB_ONE) == 0);
- mpn_rshift (r, r, ysize + 1, 1);
- /* Overflow Checking not needed */
- exp ++;
- }
- result += ysize;
- }
- /* case exp_base = pstr_size: no multiplication or division needed */
- else
- {
- MPFR_LOG_MSG (("case 4 (exp_base = pstr_size)\n", 0));
-
- /* base^(exp-pr) = 1 nothing to compute */
- result = y;
- err = 0;
- }
-
- MPFR_LOG_MSG (("exact = %d, err = %d, precx = %Pu\n",
- exact, err, precx));
-
- /* at this point, result is an approximation rounded toward zero
- of the pstr_size most significant digits of pstr->mant, with
- equality in case exact is non-zero. */
-
- /* test if rounding is possible, and if so exit the loop.
- Note: we also need to be able to determine the correct ternary value,
- thus we use the precx + (rnd == MPFR_RNDN) trick.
- For example if result = xxx...xxx111...111 and rnd = RNDN,
- then we know the correct rounding is xxx...xx(x+1), but we cannot know
- the correct ternary value. */
- if (exact || mpfr_round_p (result, ysize, ysize_bits - err - 1,
- precx + (rnd == MPFR_RNDN)))
- break;
-
- /* update the prec for next loop */
- MPFR_ZIV_NEXT (loop, prec);
- } /* loop */
- MPFR_ZIV_FREE (loop);
-
- /* round y */
- if (mpfr_round_raw (MPFR_MANT (x), result, ysize_bits,
- pstr->negative, precx, rnd, &res))
- {
- /* overflow when rounding y */
- MPFR_MANT (x)[MPFR_LIMB_SIZE (x) - 1] = MPFR_LIMB_HIGHBIT;
- /* Overflow Checking not needed */
- exp ++;
- }
-
- /* Note: if exact <> 0, then the approximation {result, ysize} is exact,
- thus no double-rounding can occur:
- (a) either the ternary value res is non-zero, and it is the correct
- ternary value that we should return
- (b) or the ternary value res is zero, and we should return 0. */
-
- /* Set sign of x before exp since check_range needs a valid sign */
- (pstr->negative) ? MPFR_SET_NEG (x) : MPFR_SET_POS (x);
-
- /* DO NOT USE MPFR_SET_EXP. The exp may be out of range! */
- MPFR_SADD_OVERFLOW (exp, exp, ysize_bits,
- mpfr_exp_t, mpfr_uexp_t,
- MPFR_EXP_MIN, MPFR_EXP_MAX,
- goto overflow, goto underflow);
- MPFR_EXP (x) = exp;
- res = mpfr_check_range (x, res, rnd);
- goto end;
-
- underflow:
- /* This is called when there is a huge overflow
- (Real expo < MPFR_EXP_MIN << __gmpfr_emin */
- if (rnd == MPFR_RNDN)
- rnd = MPFR_RNDZ;
- res = mpfr_underflow (x, rnd, (pstr->negative) ? -1 : 1);
- goto end;
-
- overflow:
- res = mpfr_overflow (x, rnd, (pstr->negative) ? -1 : 1);
-
- end:
- MPFR_TMP_FREE (marker);
- return res;
-}
-
-static void
-free_parsed_string (struct parsed_string *pstr)
-{
- mpfr_free_func (pstr->mantissa, pstr->alloc);
-}
-
-int
-mpfr_strtofr (mpfr_t x, const char *string, char **end, int base,
- mpfr_rnd_t rnd)
-{
- int res;
- struct parsed_string pstr;
-
- /* For base <= 36, parsing is case-insensitive. */
- MPFR_ASSERTN (base == 0 || (base >= 2 && base <= 62));
-
- /* If an error occurred, it must return 0. */
- MPFR_SET_ZERO (x);
- MPFR_SET_POS (x);
-
- MPFR_STAT_STATIC_ASSERT (MPFR_MAX_BASE >= 62);
- res = parse_string (x, &pstr, &string, base);
- /* If res == 0, then it was exact (NAN or INF),
- so it is also the ternary value */
- if (MPFR_UNLIKELY (res == -1)) /* invalid data */
- res = 0; /* x is set to 0, which is exact, thus ternary value is 0 */
- else if (res == 1)
- {
- res = parsed_string_to_mpfr (x, &pstr, rnd);
- free_parsed_string (&pstr);
- }
- else if (res == 2)
- res = mpfr_overflow (x, rnd, (pstr.negative) ? -1 : 1);
- MPFR_ASSERTD (res != 3);
-#if 0
- else if (res == 3)
- {
- /* This is called when there is a huge overflow
- (Real expo < MPFR_EXP_MIN << __gmpfr_emin */
- if (rnd == MPFR_RNDN)
- rnd = MPFR_RNDZ;
- res = mpfr_underflow (x, rnd, (pstr.negative) ? -1 : 1);
- }
-#endif
-
- if (end != NULL)
- *end = (char *) string;
- return res;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sub.c b/Build/source/libs/mpfr/mpfr-src/src/sub.c
deleted file mode 100644
index 6b21b8beb29..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sub.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* mpfr_sub -- subtract two floating-point numbers
-
-Copyright 2001-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_sub (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- MPFR_LOG_FUNC
- (("b[%Pu]=%.*Rg c[%Pu]=%.*Rg rnd=%d",
- mpfr_get_prec (b), mpfr_log_prec, b,
- mpfr_get_prec (c), mpfr_log_prec, c, rnd_mode),
- ("a[%Pu]=%.*Rg", mpfr_get_prec (a), mpfr_log_prec, a));
-
- if (MPFR_ARE_SINGULAR_OR_UBF (b,c))
- {
- if (MPFR_IS_NAN (b) || MPFR_IS_NAN (c))
- {
- MPFR_SET_NAN (a);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (b))
- {
- if (!MPFR_IS_INF (c) || MPFR_SIGN (b) != MPFR_SIGN(c))
- {
- MPFR_SET_INF (a);
- MPFR_SET_SAME_SIGN (a, b);
- MPFR_RET (0); /* exact */
- }
- else
- {
- MPFR_SET_NAN (a); /* Inf - Inf */
- MPFR_RET_NAN;
- }
- }
- else if (MPFR_IS_INF (c))
- {
- MPFR_SET_INF (a);
- MPFR_SET_OPPOSITE_SIGN (a, c);
- MPFR_RET (0); /* exact */
- }
- else if (MPFR_IS_ZERO (b))
- {
- if (MPFR_IS_ZERO (c))
- {
- int sign = rnd_mode != MPFR_RNDD
- ? ((MPFR_IS_NEG(b) && MPFR_IS_POS(c)) ? -1 : 1)
- : ((MPFR_IS_POS(b) && MPFR_IS_NEG(c)) ? 1 : -1);
- MPFR_SET_SIGN (a, sign);
- MPFR_SET_ZERO (a);
- MPFR_RET(0); /* 0 - 0 is exact */
- }
- else
- return mpfr_neg (a, c, rnd_mode);
- }
- else if (MPFR_IS_ZERO (c))
- {
- return mpfr_set (a, b, rnd_mode);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (b));
- MPFR_ASSERTD (MPFR_IS_PURE_UBF (c));
- /* mpfr_sub1sp and mpfr_add1sp are not intended to support UBF,
- for which optimization is less important. */
- if (MPFR_SIGN(b) == MPFR_SIGN(c))
- return mpfr_sub1 (a, b, c, rnd_mode);
- else if (MPFR_UBF_EXP_LESS_P (b, c))
- {
- int inexact;
- rnd_mode = MPFR_INVERT_RND (rnd_mode);
- inexact = mpfr_add1 (a, c, b, rnd_mode);
- MPFR_CHANGE_SIGN (a);
- return -inexact;
- }
- else
- return mpfr_add1 (a, b, c, rnd_mode);
- }
- }
-
- MPFR_ASSERTD (MPFR_IS_PURE_FP (b));
- MPFR_ASSERTD (MPFR_IS_PURE_FP (c));
-
- if (MPFR_LIKELY (MPFR_SIGN (b) == MPFR_SIGN (c)))
- { /* signs are equal, it's a real subtraction */
- if (MPFR_LIKELY (MPFR_PREC (a) == MPFR_PREC (b)
- && MPFR_PREC (b) == MPFR_PREC (c)))
- return mpfr_sub1sp (a, b, c, rnd_mode);
- else
- return mpfr_sub1 (a, b, c, rnd_mode);
- }
- else
- { /* signs differ, it's an addition */
- if (MPFR_GET_EXP (b) < MPFR_GET_EXP (c))
- { /* exchange rounding modes toward +/- infinity */
- int inexact;
- rnd_mode = MPFR_INVERT_RND (rnd_mode);
- if (MPFR_LIKELY (MPFR_PREC (a) == MPFR_PREC (b)
- && MPFR_PREC (b) == MPFR_PREC (c)))
- inexact = mpfr_add1sp (a, c, b, rnd_mode);
- else
- inexact = mpfr_add1 (a, c, b, rnd_mode);
- MPFR_CHANGE_SIGN (a);
- return -inexact;
- }
- else
- {
- if (MPFR_LIKELY (MPFR_PREC (a) == MPFR_PREC (b)
- && MPFR_PREC (b) == MPFR_PREC (c)))
- return mpfr_add1sp (a, b, c, rnd_mode);
- else
- return mpfr_add1 (a, b, c, rnd_mode);
- }
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sub1.c b/Build/source/libs/mpfr/mpfr-src/src/sub1.c
deleted file mode 100644
index 6ffdcd358a3..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sub1.c
+++ /dev/null
@@ -1,749 +0,0 @@
-/* mpfr_sub1 -- internal function to perform a "real" subtraction
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* compute sign(b) * (|b| - |c|), with |b| > |c|, diff_exp = EXP(b) - EXP(c)
- Returns 0 iff result is exact,
- a negative value when the result is less than the exact value,
- a positive value otherwise.
-*/
-
-int
-mpfr_sub1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- int sign;
- mpfr_exp_t diff_exp, exp_a, exp_b;
- mpfr_prec_t cancel, cancel1;
- mp_size_t cancel2, an, bn, cn, cn0;
- mp_limb_t *ap, *bp, *cp;
- mp_limb_t carry, bb, cc;
- mpfr_prec_t aq, bq;
- int inexact, shift_b, shift_c, add_exp = 0;
- int cmp_low = 0; /* used for rounding to nearest: 0 if low(b) = low(c),
- negative if low(b) < low(c), positive if low(b) > low(c) */
- int sh, k;
- MPFR_TMP_DECL(marker);
-
- MPFR_TMP_MARK(marker);
- ap = MPFR_MANT(a);
- an = MPFR_LIMB_SIZE(a);
-
- (void) MPFR_GET_PREC (a);
- (void) MPFR_GET_PREC (b);
- (void) MPFR_GET_PREC (c);
-
- sign = mpfr_cmp2 (b, c, &cancel);
-
- if (MPFR_UNLIKELY(sign == 0))
- {
- MPFR_LOG_MSG (("sign=0\n", 0));
- if (rnd_mode == MPFR_RNDD)
- MPFR_SET_NEG (a);
- else
- MPFR_SET_POS (a);
- MPFR_SET_ZERO (a);
- MPFR_RET (0);
- }
-
- /* sign != 0, so that cancel has a valid value. */
- MPFR_LOG_MSG (("sign=%d cancel=%Pd\n", sign, cancel));
- MPFR_ASSERTD (cancel >= 0 && cancel <= MPFR_PREC_MAX);
-
- /*
- * If subtraction: sign(a) = sign * sign(b)
- * If addition: sign(a) = sign of the larger argument in absolute value.
- *
- * Both cases can be simplified in:
- * if (sign>0)
- * if addition: sign(a) = sign * sign(b) = sign(b)
- * if subtraction, b is greater, so sign(a) = sign(b)
- * else
- * if subtraction, sign(a) = - sign(b)
- * if addition, sign(a) = sign(c) (since c is greater)
- * But if it is an addition, sign(b) and sign(c) are opposed!
- * So sign(a) = - sign(b)
- */
-
- if (sign < 0) /* swap b and c so that |b| > |c| */
- {
- mpfr_srcptr t;
- MPFR_SET_OPPOSITE_SIGN (a,b);
- t = b; b = c; c = t;
- }
- else
- MPFR_SET_SAME_SIGN (a,b);
-
- if (MPFR_UNLIKELY (MPFR_IS_UBF (b) || MPFR_IS_UBF (c)))
- {
- exp_b = MPFR_UBF_GET_EXP (b);
- /* Early underflow detection. Rare, but a test is needed anyway
- since in the "MAX (aq, bq) + 2 <= diff_exp" branch, the exponent
- may decrease and MPFR_EXP_MIN would yield an integer overflow. */
- if (MPFR_UNLIKELY (exp_b < __gmpfr_emin - 1))
- {
- if (rnd_mode == MPFR_RNDN)
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
- diff_exp = mpfr_ubf_diff_exp (b, c);
- MPFR_LOG_MSG (("UBF: exp_b=%" MPFR_EXP_FSPEC "d%s "
- "diff_exp=%" MPFR_EXP_FSPEC "d%s\n",
- (mpfr_eexp_t) exp_b,
- exp_b == MPFR_EXP_MAX ? "=MPFR_EXP_MAX" : "",
- (mpfr_eexp_t) diff_exp,
- diff_exp == MPFR_EXP_MAX ? "=MPFR_EXP_MAX" : ""));
- /* If diff_exp == MPFR_EXP_MAX, the actual value can be larger,
- but anyway, since mpfr_exp_t >= mp_size_t, this will be the
- case c small below, and the exact value does not matter. */
- /* mpfr_set4 below used with MPFR_RNDF does not support UBF. */
- if (rnd_mode == MPFR_RNDF)
- rnd_mode = MPFR_RNDN;
- }
- else
- {
- exp_b = MPFR_GET_EXP (b);
- diff_exp = exp_b - MPFR_GET_EXP (c);
- }
- MPFR_ASSERTD (diff_exp >= 0);
-
- aq = MPFR_GET_PREC (a);
- bq = MPFR_GET_PREC (b);
-
- /* Check if c is too small.
- A more precise test is to replace 2 by
- (rnd == MPFR_RNDN) + mpfr_power2_raw (b)
- but it is more expensive and not very useful */
- if (MPFR_UNLIKELY (MAX (aq, bq) + 2 <= diff_exp))
- {
- MPFR_LOG_MSG (("case c small\n", 0));
-
- /* Remember, we can't have an exact result! */
- /* A.AAAAAAAAAAAAAAAAA
- = B.BBBBBBBBBBBBBBB
- - C.CCCCCCCCCCCCC */
- /* A = S*ABS(B) +/- ulp(a) */
-
- /* since we can't have an exact result, for RNDF we can truncate b */
- if (rnd_mode == MPFR_RNDF)
- return mpfr_set4 (a, b, MPFR_RNDZ, MPFR_SIGN (a));
-
- exp_a = exp_b; /* may be any out-of-range value due to UBF */
- MPFR_RNDRAW_EVEN (inexact, a, MPFR_MANT (b), bq,
- rnd_mode, MPFR_SIGN (a),
- if (exp_a != MPFR_EXP_MAX)
- exp_a ++);
- MPFR_LOG_MSG (("inexact=%d\n", inexact));
- if (inexact == 0 &&
- /* a = b, but the exact value of b - c is a bit below. Then,
- except for directed rounding similar to toward zero and
- before overflow checking: a is the correctly rounded value
- and since |b| - |c| < |a|, the ternary value value is given
- by the sign of a. */
- ! MPFR_IS_LIKE_RNDZ (rnd_mode, MPFR_IS_NEG (a)))
- {
- MPFR_LOG_MSG (("c small, case 1\n", 0));
- inexact = MPFR_INT_SIGN (a);
- }
- else if (inexact != 0 &&
- /* A.AAAAAAAAAAAAAA
- = B.BBBBBBBBBBBBBBB
- - C.CCCCCCCCCCCCC */
- /* It isn't exact, so PREC(b) > PREC(a) and the last
- PREC(b)-PREC(a) bits of b are not all zeros.
- Subtracting c from b will not have an effect on the rounding
- except in case of a midpoint in the round-to-nearest mode,
- when the even rounding was done away from zero instead of
- toward zero.
- In case of even rounding:
- 1.BBBBBBBBBBBBBx10
- - 1.CCCCCCCCCCCC
- = 1.BBBBBBBBBBBBBx01 Rounded to PREC(b)
- = 1.BBBBBBBBBBBBBx Nearest / Rounded to PREC(a)
- Set gives:
- 1.BBBBBBBBBBBBB0 if inexact == EVEN_INEX (x == 0)
- 1.BBBBBBBBBBBBB1+1 if inexact == -EVEN_INEX (x == 1)
- which means we get a wrong rounded result if x == 1,
- i.e. inexact == MPFR_EVEN_INEX (for positive numbers). */
- MPFR_LIKELY (inexact != MPFR_EVEN_INEX * MPFR_INT_SIGN (a)))
- {
- MPFR_LOG_MSG (("c small, case 2\n", 0));
- /* nothing to do */
- }
- else
- {
- /* We need to take the value preceding |a|. We can't use
- mpfr_nexttozero due to a possible out-of-range exponent.
- But this will allow us to have more specific code. */
- MPFR_LOG_MSG (("c small, case 3: correcting the value of a\n", 0));
- sh = (mpfr_prec_t) an * GMP_NUMB_BITS - aq;
- mpn_sub_1 (ap, ap, an, MPFR_LIMB_ONE << sh);
- if (MPFR_UNLIKELY (MPFR_LIMB_MSB (ap[an-1]) == 0))
- {
- exp_a --;
- /* The following is valid whether an = 1 or an > 1. */
- ap[an-1] |= MPFR_LIMB_HIGHBIT;
- }
- inexact = - MPFR_INT_SIGN (a);
- }
- /* The underflow case is possible only with UBF. The overflow case
- is also possible with normal FP due to rounding. */
- if (MPFR_UNLIKELY (exp_a > __gmpfr_emax))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN (a));
- if (MPFR_UNLIKELY (exp_a < __gmpfr_emin))
- {
- if (rnd_mode == MPFR_RNDN &&
- (exp_a < __gmpfr_emin - 1 ||
- (inexact * MPFR_INT_SIGN (a) >= 0 && mpfr_powerof2_raw (a))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_SET_EXP (a, exp_a);
- MPFR_RET (inexact);
- }
-
- /* reserve a space to store b aligned with the result, i.e. shifted by
- (-cancel) % GMP_NUMB_BITS to the right */
- bn = MPFR_LIMB_SIZE (b);
- MPFR_UNSIGNED_MINUS_MODULO (shift_b, cancel);
- cancel1 = (cancel + shift_b) / GMP_NUMB_BITS;
-
- /* the high cancel1 limbs from b should not be taken into account */
- if (MPFR_UNLIKELY (shift_b == 0))
- {
- bp = MPFR_MANT(b); /* no need of an extra space */
- /* Ensure ap != bp */
- if (MPFR_UNLIKELY (ap == bp))
- {
- bp = MPFR_TMP_LIMBS_ALLOC (bn);
- MPN_COPY (bp, ap, bn);
- }
- }
- else
- {
- bp = MPFR_TMP_LIMBS_ALLOC (bn + 1);
- bp[0] = mpn_rshift (bp + 1, MPFR_MANT(b), bn++, shift_b);
- }
-
- /* reserve a space to store c aligned with the result, i.e. shifted by
- (diff_exp-cancel) % GMP_NUMB_BITS to the right */
- cn = MPFR_LIMB_SIZE (c);
- if (IS_POW2 (GMP_NUMB_BITS))
- shift_c = ((mpfr_uexp_t) diff_exp - cancel) % GMP_NUMB_BITS;
- else
- {
- /* The above operation does not work if diff_exp - cancel < 0. */
- shift_c = diff_exp - (cancel % GMP_NUMB_BITS);
- shift_c = (shift_c + GMP_NUMB_BITS) % GMP_NUMB_BITS;
- }
- MPFR_ASSERTD (shift_c >= 0 && shift_c < GMP_NUMB_BITS);
-
- if (MPFR_UNLIKELY(shift_c == 0))
- {
- cp = MPFR_MANT(c);
- /* Ensure ap != cp */
- if (ap == cp)
- {
- cp = MPFR_TMP_LIMBS_ALLOC (cn);
- MPN_COPY(cp, ap, cn);
- }
- }
- else
- {
- cp = MPFR_TMP_LIMBS_ALLOC (cn + 1);
- cp[0] = mpn_rshift (cp + 1, MPFR_MANT(c), cn++, shift_c);
- }
-
-#if 0
- MPFR_LOG_MSG (("rnd=%s shift_b=%d shift_c=%d diffexp=%" MPFR_EXP_FSPEC
- "d\n", mpfr_print_rnd_mode (rnd_mode), shift_b, shift_c,
- (mpfr_eexp_t) diff_exp));
-#endif
-
- MPFR_ASSERTD (ap != cp);
- MPFR_ASSERTD (bp != cp);
-
- /* here we have shift_c = (diff_exp - cancel) % GMP_NUMB_BITS,
- 0 <= shift_c < GMP_NUMB_BITS
- thus we want cancel2 = ceil((cancel - diff_exp) / GMP_NUMB_BITS) */
-
- /* Possible optimization with a C99 compiler (i.e. well-defined
- integer division): if MPFR_PREC_MAX is reduced to
- ((mpfr_prec_t)((mpfr_uprec_t)(~(mpfr_uprec_t)0)>>1) - GMP_NUMB_BITS + 1)
- and diff_exp is of type mpfr_exp_t (no need for mpfr_uexp_t, since
- the sum or difference of 2 exponents must be representable, as used
- by the multiplication code), then the computation of cancel2 could
- be simplified to
- cancel2 = (cancel - (diff_exp - shift_c)) / GMP_NUMB_BITS;
- because cancel, diff_exp and shift_c are all nonnegative and
- these variables are signed. */
-
- MPFR_ASSERTD (cancel >= 0);
- if (cancel >= diff_exp)
- /* Note that cancel is signed and will be converted to mpfr_uexp_t
- (type of diff_exp) in the expression below, so that this will
- work even if cancel is very large and diff_exp = 0. */
- cancel2 = (cancel - diff_exp + (GMP_NUMB_BITS - 1)) / GMP_NUMB_BITS;
- else
- cancel2 = - (mp_size_t) ((diff_exp - cancel) / GMP_NUMB_BITS);
- /* the high cancel2 limbs from b should not be taken into account */
-#if 0
- MPFR_LOG_MSG (("cancel=%Pd cancel1=%Pd cancel2=%Pd\n",
- cancel, cancel1, cancel2));
-#endif
-
- /* ap[an-1] ap[0]
- <----------------+-----------|---->
- <----------PREC(a)----------><-sh->
- cancel1
- limbs bp[bn-cancel1-1]
- <--...-----><----------------+-----------+----------->
- cancel2
- limbs cp[cn-cancel2-1] cancel2 >= 0
- <--...--><----------------+----------------+---------------->
- (-cancel2) cancel2 < 0
- limbs <----------------+---------------->
- */
-
- /* first part: put in ap[0..an-1] the value of high(b) - high(c),
- where high(b) consists of the high an+cancel1 limbs of b,
- and high(c) consists of the high an+cancel2 limbs of c.
- */
-
- /* copy high(b) into a */
- if (MPFR_LIKELY(an + (mp_size_t) cancel1 <= bn))
- /* a: <----------------+-----------|---->
- b: <-----------------------------------------> */
- MPN_COPY (ap, bp + bn - (an + cancel1), an);
- else
- /* a: <----------------+-----------|---->
- b: <-------------------------> */
- if ((mp_size_t) cancel1 < bn) /* otherwise b does not overlap with a */
- {
- MPN_ZERO (ap, an + cancel1 - bn);
- MPN_COPY (ap + (an + cancel1 - bn), bp, bn - cancel1);
- }
- else
- MPN_ZERO (ap, an);
-
- /* subtract high(c) */
- if (MPFR_LIKELY(an + cancel2 > 0)) /* otherwise c does not overlap with a */
- {
- mp_limb_t *ap2;
-
- if (cancel2 >= 0)
- {
- if (an + cancel2 <= cn)
- /* a: <----------------------------->
- c: <-----------------------------------------> */
- mpn_sub_n (ap, ap, cp + cn - (an + cancel2), an);
- else
- /* a: <---------------------------->
- c: <-------------------------> */
- {
- ap2 = ap + an + (cancel2 - cn);
- if (cn > cancel2)
- mpn_sub_n (ap2, ap2, cp, cn - cancel2);
- }
- }
- else /* cancel2 < 0 */
- {
- mp_limb_t borrow;
-
- if (an + cancel2 <= cn)
- /* a: <----------------------------->
- c: <-----------------------------> */
- borrow = mpn_sub_n (ap, ap, cp + cn - (an + cancel2),
- an + cancel2);
- else
- /* a: <---------------------------->
- c: <----------------> */
- {
- ap2 = ap + an + cancel2 - cn;
- borrow = mpn_sub_n (ap2, ap2, cp, cn);
- }
- ap2 = ap + an + cancel2;
- mpn_sub_1 (ap2, ap2, -cancel2, borrow);
- }
- }
-
- /* now perform rounding */
- sh = (mpfr_prec_t) an * GMP_NUMB_BITS - aq;
- /* last unused bits from a */
- carry = ap[0] & MPFR_LIMB_MASK (sh);
- ap[0] -= carry;
-
- if (rnd_mode == MPFR_RNDF)
- {
- inexact = 0;
- /* truncating is always correct since -1 ulp < low(b) - low(c) < 1 ulp */
- goto truncate;
- }
- else if (rnd_mode == MPFR_RNDN)
- {
- if (MPFR_LIKELY(sh))
- {
- /* can decide except when carry = 2^(sh-1) [middle]
- or carry = 0 [truncate, but cannot decide inexact flag] */
- if (carry > (MPFR_LIMB_ONE << (sh - 1)))
- goto add_one_ulp;
- else if ((0 < carry) && (carry < (MPFR_LIMB_ONE << (sh - 1))))
- {
- inexact = -1; /* result if smaller than exact value */
- goto truncate;
- }
- /* now carry = 2^(sh-1), in which case cmp_low=2,
- or carry = 0, in which case cmp_low=0 */
- cmp_low = (carry == 0) ? 0 : 2;
- }
- }
- else /* directed rounding: set rnd_mode to RNDZ iff toward zero */
- {
- if (MPFR_IS_RNDUTEST_OR_RNDDNOTTEST(rnd_mode, MPFR_IS_NEG(a)))
- rnd_mode = MPFR_RNDZ;
-
- if (carry)
- {
- if (rnd_mode == MPFR_RNDZ)
- {
- inexact = -1;
- goto truncate;
- }
- else /* round away */
- goto add_one_ulp;
- }
- }
-
- /* we have to consider the low (bn - (an+cancel1)) limbs from b,
- and the (cn - (an+cancel2)) limbs from c. */
- bn -= an + cancel1;
- cn0 = cn;
- cn -= an + cancel2;
-
-#if 0
- MPFR_LOG_MSG (("last sh=%d bits from a are %Mu, bn=%Pd, cn=%Pd\n",
- sh, carry, (mpfr_prec_t) bn, (mpfr_prec_t) cn));
-#endif
-
- /* for rounding to nearest, we couldn't conclude up to here in the following
- cases:
- 1. sh = 0, then cmp_low=0: we can either truncate, subtract one ulp
- or add one ulp: -1 ulp < low(b)-low(c) < 1 ulp
- 2. sh > 0 but the low sh bits from high(b)-high(c) equal 2^(sh-1):
- -0.5 ulp <= -1/2^sh < low(b)-low(c)-0.5 < 1/2^sh <= 0.5 ulp
- we can't decide the rounding, in that case cmp_low=2:
- either we truncate and flag=-1, or we add one ulp and flag=1
- 3. the low sh>0 bits from high(b)-high(c) equal 0: we know we have to
- truncate but we can't decide the ternary value, here cmp_low=0:
- -0.5 ulp <= -1/2^sh < low(b)-low(c) < 1/2^sh <= 0.5 ulp
- we always truncate and inexact can be any of -1,0,1
- */
-
- /* note: here cn might exceed cn0, in which case we consider a zero limb */
- for (k = 0; (bn > 0) || (cn > 0); k = 1)
- {
- /* if cmp_low < 0, we know low(b) - low(c) < 0
- if cmp_low > 0, we know low(b) - low(c) > 0
- (more precisely if cmp_low = 2, low(b) - low(c) = 0.5 ulp so far)
- if cmp_low = 0, so far low(b) - low(c) = 0 */
-
- /* get next limbs */
- bb = (bn > 0) ? bp[--bn] : 0;
- if ((cn > 0) && (cn-- <= cn0))
- cc = cp[cn];
- else
- cc = 0;
-
- /* cmp_low compares low(b) and low(c) */
- if (cmp_low == 0) /* case 1 or 3 */
- cmp_low = (bb < cc) ? -2+k : (bb > cc) ? 1 : 0;
-
- /* Case 1 for k=0 splits into 7 subcases:
- 1a: bb > cc + half
- 1b: bb = cc + half
- 1c: 0 < bb - cc < half
- 1d: bb = cc
- 1e: -half < bb - cc < 0
- 1f: bb - cc = -half
- 1g: bb - cc < -half
-
- Case 2 splits into 3 subcases:
- 2a: bb > cc
- 2b: bb = cc
- 2c: bb < cc
-
- Case 3 splits into 3 subcases:
- 3a: bb > cc
- 3b: bb = cc
- 3c: bb < cc
- */
-
- /* the case rounding to nearest with sh=0 is special since one couldn't
- subtract above 1/2 ulp in the trailing limb of the result */
- if (rnd_mode == MPFR_RNDN && sh == 0 && k == 0) /* case 1 for k=0 */
- {
- mp_limb_t half = MPFR_LIMB_HIGHBIT;
-
- /* add one ulp if bb > cc + half
- truncate if cc - half < bb < cc + half
- sub one ulp if bb < cc - half
- */
-
- if (cmp_low < 0) /* bb < cc: -1 ulp < low(b) - low(c) < 0,
- cases 1e, 1f and 1g */
- {
- if (cc >= half)
- cc -= half;
- else /* since bb < cc < half, bb+half < 2*half */
- bb += half;
- /* now we have bb < cc + half:
- we have to subtract one ulp if bb < cc,
- and truncate if bb > cc */
- }
- else if (cmp_low >= 0) /* bb >= cc, cases 1a to 1d */
- {
- if (cc < half)
- cc += half;
- else /* since bb >= cc >= half, bb - half >= 0 */
- bb -= half;
- /* now we have bb > cc - half: we have to add one ulp if bb > cc,
- and truncate if bb < cc */
- if (cmp_low > 0)
- cmp_low = 2;
- }
- }
-
-#if 0
- MPFR_LOG_MSG (("k=%d bb=%Mu cc=%Mu cmp_low=%d\n", k, bb, cc, cmp_low));
-#endif
-
- if (cmp_low < 0) /* low(b) - low(c) < 0: either truncate or subtract
- one ulp */
- {
- if (rnd_mode == MPFR_RNDZ)
- goto sub_one_ulp; /* set inexact=-1 */
- else if (rnd_mode != MPFR_RNDN) /* round away */
- {
- inexact = 1;
- goto truncate;
- }
- else /* round to nearest */
- {
- /* If cmp_low < 0 and bb > cc, then -0.5 ulp < low(b)-low(c) < 0,
- whatever the value of sh.
- If sh>0, then cmp_low < 0 implies that the initial neglected
- sh bits were 0 (otherwise cmp_low=2 initially), thus the
- weight of the new bits is less than 0.5 ulp too.
- If k > 0 (and sh=0) this means that either the first neglected
- limbs bb and cc were equal (thus cmp_low was 0 for k=0),
- or we had bb - cc = -0.5 ulp or 0.5 ulp.
- The last case is not possible here since we would have
- cmp_low > 0 which is sticky.
- In the first case (where we have cmp_low = -1), we truncate,
- whereas in the 2nd case we have cmp_low = -2 and we subtract
- one ulp.
- */
- if (bb > cc || sh > 0 || cmp_low == -1)
- { /* -0.5 ulp < low(b)-low(c) < 0,
- bb > cc corresponds to cases 1e and 1f1
- sh > 0 corresponds to cases 3c and 3b3
- cmp_low = -1 corresponds to case 1d3 (also 3b3) */
- inexact = 1;
- goto truncate;
- }
- else if (bb < cc) /* here sh = 0 and low(b)-low(c) < -0.5 ulp,
- this corresponds to cases 1g and 1f3 */
- goto sub_one_ulp;
- /* the only case where we can't conclude is sh=0 and bb=cc,
- i.e., we have low(b) - low(c) = -0.5 ulp (up to now), thus
- we don't know if we must truncate or subtract one ulp.
- Note: for sh=0 we can't have low(b) - low(c) = -0.5 ulp up to
- now, since low(b) - low(c) > 1/2^sh */
- }
- }
- else if (cmp_low > 0) /* 0 < low(b) - low(c): either truncate or
- add one ulp */
- {
- if (rnd_mode == MPFR_RNDZ)
- {
- inexact = -1;
- goto truncate;
- }
- else if (rnd_mode != MPFR_RNDN) /* round away */
- goto add_one_ulp;
- else /* round to nearest */
- {
- if (bb > cc)
- {
- /* if sh=0, then bb>cc means that low(b)-low(c) > 0.5 ulp,
- and similarly when cmp_low=2 */
- if (cmp_low == 2) /* cases 1a, 1b1, 2a and 2b1 */
- goto add_one_ulp;
- /* sh > 0 and cmp_low > 0: this implies that the sh initial
- neglected bits were 0, and the remaining low(b)-low(c)>0,
- but its weight is less than 0.5 ulp */
- else /* 0 < low(b) - low(c) < 0.5 ulp, this corresponds to
- cases 3a, 1d1 and 3b1 */
- {
- inexact = -1;
- goto truncate;
- }
- }
- else if (bb < cc) /* 0 < low(b) - low(c) < 0.5 ulp, cases 1c,
- 1b3, 2b3 and 2c */
- {
- inexact = -1;
- goto truncate;
- }
- /* the only case where we can't conclude is bb=cc, i.e.,
- low(b) - low(c) = 0.5 ulp (up to now), thus we don't know
- if we must truncate or add one ulp. */
- }
- }
- /* after k=0, we cannot conclude in the following cases, we split them
- according to the values of bb and cc for k=1:
- 1b. sh=0 and cmp_low = 1 and bb-cc = half [around 0.5 ulp]
- 1b1. bb > cc: add one ulp, inex = 1
- 1b2: bb = cc: cannot conclude
- 1b3: bb < cc: truncate, inex = -1
- 1d. sh=0 and cmp_low = 0 and bb-cc = 0 [around 0]
- 1d1: bb > cc: truncate, inex = -1
- 1d2: bb = cc: cannot conclude
- 1d3: bb < cc: truncate, inex = +1
- 1f. sh=0 and cmp_low = -1 and bb-cc = -half [around -0.5 ulp]
- 1f1: bb > cc: truncate, inex = +1
- 1f2: bb = cc: cannot conclude
- 1f3: bb < cc: sub one ulp, inex = -1
- 2b. sh > 0 and cmp_low = 2 and bb=cc [around 0.5 ulp]
- 2b1. bb > cc: add one ulp, inex = 1
- 2b2: bb = cc: cannot conclude
- 2b3: bb < cc: truncate, inex = -1
- 3b. sh > 0 and cmp_low = 0 [around 0]
- 3b1. bb > cc: truncate, inex = -1
- 3b2: bb = cc: cannot conclude
- 3b3: bb < cc: truncate, inex = +1
- */
- }
-
- if ((rnd_mode == MPFR_RNDN) && cmp_low != 0)
- {
- /* even rounding rule */
- if ((ap[0] >> sh) & 1)
- {
- if (cmp_low < 0)
- goto sub_one_ulp;
- else
- goto add_one_ulp;
- }
- else
- inexact = (cmp_low > 0) ? -1 : 1;
- }
- else
- inexact = 0;
- goto truncate;
-
- sub_one_ulp: /* sub one unit in last place to a */
- mpn_sub_1 (ap, ap, an, MPFR_LIMB_ONE << sh);
- inexact = -1;
- goto end_of_sub;
-
- add_one_ulp: /* add one unit in last place to a */
- if (MPFR_UNLIKELY(mpn_add_1 (ap, ap, an, MPFR_LIMB_ONE << sh)))
- /* result is a power of 2: 11111111111111 + 1 = 1000000000000000 */
- {
- ap[an-1] = MPFR_LIMB_HIGHBIT;
- add_exp = 1;
- }
- inexact = 1; /* result larger than exact value */
-
- truncate:
- if (MPFR_UNLIKELY((ap[an-1] >> (GMP_NUMB_BITS - 1)) == 0))
- /* case 1 - epsilon */
- {
- ap[an-1] = MPFR_LIMB_HIGHBIT;
- add_exp = 1;
- }
-
- end_of_sub:
- /* we have to set MPFR_EXP(a) to MPFR_EXP(b) - cancel + add_exp, taking
- care of underflows/overflows in that computation, and of the allowed
- exponent range */
- MPFR_TMP_FREE (marker);
- if (MPFR_LIKELY(cancel))
- {
- cancel -= add_exp; /* OK: add_exp is an int equal to 0 or 1 */
- MPFR_ASSERTD (cancel >= 0);
- /* Detect an underflow case to avoid a possible integer overflow
- with UBF in the computation of exp_a. */
- if (MPFR_UNLIKELY (exp_b < __gmpfr_emin - 1))
- {
- if (rnd_mode == MPFR_RNDN)
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
- exp_a = exp_b - cancel;
- /* The following assertion corresponds to a limitation of the MPFR
- implementation. It may fail with a 32-bit ABI and huge precisions,
- but this is practically impossible with a 64-bit ABI. This kind
- of issue is not specific to this function. */
- MPFR_ASSERTN (exp_b != MPFR_EXP_MAX || exp_a > __gmpfr_emax);
- if (MPFR_UNLIKELY (exp_a < __gmpfr_emin))
- {
- underflow:
- if (rnd_mode == MPFR_RNDN &&
- (exp_a < __gmpfr_emin - 1 ||
- (inexact >= 0 && mpfr_powerof2_raw (a))))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
- /* We cannot have an overflow here, except for UBFs. Indeed:
- exp_a = exp_b - cancel + add_exp <= emax - 1 + 1 <= emax.
- For UBFs, we can have exp_b > emax. */
- if (exp_a > __gmpfr_emax)
- {
- MPFR_ASSERTD (exp_b > __gmpfr_emax); /* since exp_b >= exp_a */
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN (a));
- }
- }
- else /* cancel = 0: MPFR_EXP(a) <- MPFR_EXP(b) + add_exp */
- {
- /* in case cancel = 0, add_exp can still be 1, in case b is just
- below a power of two, c is very small, prec(a) < prec(b),
- and rnd=away or nearest */
- MPFR_ASSERTD (add_exp == 0 || add_exp == 1);
- /* Overflow iff exp_b + add_exp > __gmpfr_emax in Z, but we do
- a subtraction below to avoid a potential integer overflow in
- the case exp_b == MPFR_EXP_MAX. */
- if (MPFR_UNLIKELY (exp_b > __gmpfr_emax - add_exp))
- return mpfr_overflow (a, rnd_mode, MPFR_SIGN (a));
- exp_a = exp_b + add_exp;
- /* Warning: an underflow can happen for UBFs, for example when
- mpfr_add is called from mpfr_fmma or mpfr_fmms. */
- if (MPFR_UNLIKELY (exp_a < __gmpfr_emin))
- goto underflow;
- MPFR_ASSERTD (exp_a >= __gmpfr_emin);
- }
- MPFR_SET_EXP (a, exp_a);
- /* check that result is msb-normalized */
- MPFR_ASSERTD(ap[an-1] > ~ap[an-1]);
- MPFR_RET (inexact * MPFR_INT_SIGN (a));
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sub1sp.c b/Build/source/libs/mpfr/mpfr-src/src/sub1sp.c
deleted file mode 100644
index 3b71e33a6de..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sub1sp.c
+++ /dev/null
@@ -1,1975 +0,0 @@
-/* mpfr_sub1sp -- internal function to perform a "real" subtraction
- All the op must have the same precision
-
-Copyright 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* define MPFR_FULLSUB to use alternate code in mpfr_sub1sp2 and mpfr_sub1sp2n
- (see comments in mpfr_sub1sp2) */
-/* #define MPFR_FULLSUB */
-
-#if MPFR_WANT_ASSERT >= 2
-/* Check the result of mpfr_sub1sp with mpfr_sub1.
-
- Note: mpfr_sub1sp itself has two algorithms: one always valid and one
- faster for small precisions (up to 3 limbs). The latter one is disabled
- if MPFR_GENERIC_ABI is defined. When MPFR_WANT_ASSERT >= 2, it could be
- interesting to compare the results of these different algorithms. For
- the time being, this is currently done by running the same code on the
- same data with and without MPFR_GENERIC_ABI defined, where we have the
- following comparisons in small precisions:
- mpfr_sub1sp slow <-> mpfr_sub1 when MPFR_GENERIC_ABI is defined;
- mpfr_sub1sp fast <-> mpfr_sub1 when MPFR_GENERIC_ABI is not defined.
- By transitivity, the absence of failures implies that the 3 results are
- the same.
-*/
-
-int mpfr_sub1sp_ref (mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t);
-int mpfr_sub1sp (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_t tmpa, tmpb, tmpc;
- mpfr_flags_t old_flags, flags, flags2;
- int inexb, inexc, inexact, inexact2;
-
- if (rnd_mode == MPFR_RNDF)
- return mpfr_sub1sp_ref (a, b, c, rnd_mode);
-
- old_flags = __gmpfr_flags;
-
- mpfr_init2 (tmpa, MPFR_PREC (a));
- mpfr_init2 (tmpb, MPFR_PREC (b));
- mpfr_init2 (tmpc, MPFR_PREC (c));
-
- inexb = mpfr_set (tmpb, b, MPFR_RNDN);
- MPFR_ASSERTN (inexb == 0);
-
- inexc = mpfr_set (tmpc, c, MPFR_RNDN);
- MPFR_ASSERTN (inexc == 0);
-
- MPFR_ASSERTN (__gmpfr_flags == old_flags);
-
- inexact2 = mpfr_sub1 (tmpa, tmpb, tmpc, rnd_mode);
- flags2 = __gmpfr_flags;
-
- __gmpfr_flags = old_flags;
- inexact = mpfr_sub1sp_ref (a, b, c, rnd_mode);
- flags = __gmpfr_flags;
-
- /* Convert the ternary values to (-1,0,1). */
- inexact2 = VSIGN (inexact2);
- inexact = VSIGN (inexact);
-
- if (! mpfr_equal_p (tmpa, a) || inexact != inexact2 || flags != flags2)
- {
- fprintf (stderr, "sub1 & sub1sp return different values for %s\n"
- "Prec_a = %lu, Prec_b = %lu, Prec_c = %lu\nB = ",
- mpfr_print_rnd_mode (rnd_mode),
- (unsigned long) MPFR_PREC (a),
- (unsigned long) MPFR_PREC (b),
- (unsigned long) MPFR_PREC (c));
- mpfr_fdump (stderr, tmpb);
- fprintf (stderr, "C = ");
- mpfr_fdump (stderr, tmpc);
- fprintf (stderr, "sub1 : ");
- mpfr_fdump (stderr, tmpa);
- fprintf (stderr, "sub1sp: ");
- mpfr_fdump (stderr, a);
- fprintf (stderr, "sub1 : ternary = %2d, flags =", inexact2);
- flags_fout (stderr, flags2);
- fprintf (stderr, "sub1sp: ternary = %2d, flags =", inexact);
- flags_fout (stderr, flags);
- MPFR_ASSERTN (0);
- }
- mpfr_clears (tmpa, tmpb, tmpc, (mpfr_ptr) 0);
- return inexact;
-}
-# define mpfr_sub1sp mpfr_sub1sp_ref
-#endif /* MPFR_WANT_ASSERT >= 2 */
-
-#if !defined(MPFR_GENERIC_ABI)
-
-/* the sub1sp1_extracted.c is not ready yet */
-
-#if 0 && defined(MPFR_WANT_PROVEN_CODE) && GMP_NUMB_BITS == 64 && \
- UINT_MAX == 0xffffffff && MPFR_PREC_BITS == 64 && \
- _MPFR_PREC_FORMAT == 3 && _MPFR_EXP_FORMAT == _MPFR_PREC_FORMAT
-
-/* The code assumes that mp_limb_t has 64 bits exactly, unsigned int
- has 32 bits exactly, mpfr_prec_t and mpfr_exp_t are of type long,
- which has 64 bits exactly. */
-
-#include "sub1sp1_extracted.c"
-
-#else
-
-/* special code for p < GMP_NUMB_BITS */
-static int
-mpfr_sub1sp1 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t cnt, INITIALIZED(sh);
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a0;
- mp_limb_t mask;
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(p < GMP_NUMB_BITS);
-
- if (bx == cx)
- {
- if (MPFR_UNLIKELY(bp[0] == cp[0])) /* result is zero */
- {
- if (rnd_mode == MPFR_RNDD)
- MPFR_SET_NEG(a);
- else
- MPFR_SET_POS(a);
- MPFR_SET_ZERO(a);
- MPFR_RET (0);
- }
- else if (cp[0] > bp[0]) /* borrow: |c| > |b| */
- {
- a0 = cp[0] - bp[0];
- MPFR_SET_OPPOSITE_SIGN (a, b);
- }
- else /* bp[0] > cp[0] */
- {
- a0 = bp[0] - cp[0];
- MPFR_SET_SAME_SIGN (a, b);
- }
-
- /* now a0 != 0 */
- MPFR_ASSERTD(a0 != 0);
- count_leading_zeros (cnt, a0);
- ap[0] = a0 << cnt;
- bx -= cnt;
- rb = sb = 0;
- /* Note: sh is not initialized, but will not be used in this case. */
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- MPFR_SET_OPPOSITE_SIGN (a, b);
- }
- else
- {
- MPFR_SET_SAME_SIGN (a, b);
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- sh = GMP_NUMB_BITS - p;
- mask = MPFR_LIMB_MASK(sh);
- if (d < GMP_NUMB_BITS)
- {
- sb = - (cp[0] << (GMP_NUMB_BITS - d)); /* neglected part of -c */
- /* Note that "a0 = bp[0] - (cp[0] >> d) - (sb != 0);" is faster
- on some other machines and has no immediate dependencies for
- the first subtraction. In the future, make sure that the code
- is recognized as a *single* subtraction with borrow and/or use
- a builtin when available (currently provided by Clang, but not
- by GCC); create a new macro for that. See the TODO later.
- Note also that with Clang, the constant 0 for the first
- subtraction instead of a variable breaks the optimization:
- https://llvm.org/bugs/show_bug.cgi?id=31754 */
- a0 = bp[0] - (sb != 0) - (cp[0] >> d);
- /* a0 cannot be zero here since:
- a) if d >= 2, then a0 >= 2^(w-1) - (2^(w-2)-1) with
- w = GMP_NUMB_BITS, thus a0 - 1 >= 2^(w-2),
- b) if d = 1, then since p < GMP_NUMB_BITS we have sb=0.
- */
- MPFR_ASSERTD(a0 > 0);
- count_leading_zeros (cnt, a0);
- if (cnt)
- a0 = (a0 << cnt) | (sb >> (GMP_NUMB_BITS - cnt));
- sb <<= cnt;
- bx -= cnt;
- /* sh > 0 since p < GMP_NUMB_BITS */
- MPFR_ASSERTD(sh > 0);
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else /* d >= GMP_NUMB_BITS */
- {
- if (bp[0] > MPFR_LIMB_HIGHBIT)
- {
- /* We compute b - ulp(b), and the remainder ulp(b) - c satisfies:
- 1/2 ulp(b) < ulp(b) - c < ulp(b), thus rb = sb = 1. */
- ap[0] = bp[0] - (MPFR_LIMB_ONE << sh);
- rb = 1;
- }
- else
- {
- /* Warning: since we have an exponent decrease, when
- p = GMP_NUMB_BITS - 1 and d = GMP_NUMB_BITS, the round bit
- corresponds to the upper bit of -c. In that case rb = 0 and
- sb = 1, except when c0 = MPFR_LIMB_HIGHBIT where rb = 1 and
- sb = 0. */
- rb = sh > 1 || d > GMP_NUMB_BITS || cp[0] == MPFR_LIMB_HIGHBIT;
- /* sb=1 below is incorrect when p = GMP_NUMB_BITS - 1,
- d = GMP_NUMB_BITS and c0 = MPFR_LIMB_HIGHBIT, but in
- that case the even rule wound round up too. */
- ap[0] = ~mask;
- bx --;
- /* Warning: if d = GMP_NUMB_BITS and c0 = 1000...000, then
- b0 - c0 = |0111...111|1000...000|, which after the shift
- becomes |111...111|000...000| thus if p = GMP_NUMB_BITS-1
- we have rb = 1 but sb = 0. However in this case the round
- even rule will round up, which is what we get with sb = 1:
- the final result will be correct, while sb is incorrect. */
- }
- sb = 1;
- }
- }
-
- /* now perform rounding */
-
- /* Warning: MPFR considers underflow *after* rounding with an unbounded
- exponent range. However since b and c have same precision p, they are
- multiples of 2^(emin-p), likewise for b-c. Thus if bx < emin, the
- subtraction (with an unbounded exponent range) is exact, so that bx is
- also the exponent after rounding with an unbounded exponent range. */
- if (MPFR_UNLIKELY(bx < __gmpfr_emin))
- {
- /* For RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either bx < emin - 1
- (b) or bx = emin - 1 and ap[0] = 1000....000 (in this case necessarily
- rb = sb = 0 since b-c is multiple of 2^(emin-p) */
- if (rnd_mode == MPFR_RNDN &&
- (bx < __gmpfr_emin - 1 || ap[0] == MPFR_LIMB_HIGHBIT))
- {
- MPFR_ASSERTD(rb == 0 && sb == 0);
- rnd_mode = MPFR_RNDZ;
- }
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET (0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- if (MPFR_UNLIKELY(ap[0] == 0))
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- /* Note: bx+1 cannot exceed __gmpfr_emax, since |a| <= |b|, thus
- bx+1 is at most equal to the original exponent of b. */
- MPFR_ASSERTD(bx + 1 <= __gmpfr_emax);
- MPFR_SET_EXP (a, bx + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-#endif /* MPFR_WANT_PROVEN_CODE */
-
-/* special code for p = GMP_NUMB_BITS */
-static int
-mpfr_sub1sp1n (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t cnt;
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a0;
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(MPFR_PREC(a) == GMP_NUMB_BITS);
- MPFR_ASSERTD(MPFR_PREC(b) == GMP_NUMB_BITS);
- MPFR_ASSERTD(MPFR_PREC(c) == GMP_NUMB_BITS);
-
- if (bx == cx)
- {
- a0 = bp[0] - cp[0];
- if (a0 == 0) /* result is zero */
- {
- if (rnd_mode == MPFR_RNDD)
- MPFR_SET_NEG(a);
- else
- MPFR_SET_POS(a);
- MPFR_SET_ZERO(a);
- MPFR_RET (0);
- }
- else if (a0 > bp[0]) /* borrow: |c| > |b| */
- {
- MPFR_SET_OPPOSITE_SIGN (a, b);
- a0 = -a0;
- }
- else /* bp[0] > cp[0] */
- MPFR_SET_SAME_SIGN (a, b);
-
- /* now a0 != 0 */
- MPFR_ASSERTD(a0 != 0);
- count_leading_zeros (cnt, a0);
- ap[0] = a0 << cnt;
- bx -= cnt;
- rb = sb = 0;
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- MPFR_SET_OPPOSITE_SIGN (a, b);
- }
- else
- {
- MPFR_SET_SAME_SIGN (a, b);
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- if (d < GMP_NUMB_BITS)
- {
- sb = - (cp[0] << (GMP_NUMB_BITS - d)); /* neglected part of -c */
- a0 = bp[0] - (sb != 0) - (cp[0] >> d);
- /* a0 can only be zero when d=1, b0 = B/2, and c0 = B-1, where
- B = 2^GMP_NUMB_BITS, thus b0 - c0/2 = 1/2 */
- if (a0 == MPFR_LIMB_ZERO)
- {
- bx -= GMP_NUMB_BITS;
- ap[0] = MPFR_LIMB_HIGHBIT;
- rb = sb = 0;
- }
- else
- {
- count_leading_zeros (cnt, a0);
- if (cnt)
- a0 = (a0 << cnt) | (sb >> (GMP_NUMB_BITS - cnt));
- sb <<= cnt;
- bx -= cnt;
- rb = sb & MPFR_LIMB_HIGHBIT;
- sb &= ~MPFR_LIMB_HIGHBIT;
- ap[0] = a0;
- }
- }
- else /* d >= GMP_NUMB_BITS */
- {
- /* We compute b - ulp(b) */
- if (bp[0] > MPFR_LIMB_HIGHBIT)
- {
- /* If d = GMP_NUMB_BITS, rb = 0 and sb = 1,
- unless c0 = MPFR_LIMB_HIGHBIT in which case rb = 1 and sb = 0.
- If d > GMP_NUMB_BITS, rb = sb = 1. */
- rb = d > GMP_NUMB_BITS || cp[0] == MPFR_LIMB_HIGHBIT;
- sb = d > GMP_NUMB_BITS || cp[0] != MPFR_LIMB_HIGHBIT;
- ap[0] = bp[0] - MPFR_LIMB_ONE;
- }
- else
- {
- /* Warning: in this case a0 is shifted by one!
- If d=GMP_NUMB_BITS:
- (a) if c0 = MPFR_LIMB_HIGHBIT, a0 = 111...111, rb = sb = 0
- (b) otherwise, a0 = 111...110, rb = -c0 >= 01000...000,
- sb = (-c0) << 2
- If d=GMP_NUMB_BITS+1: a0 = 111...111
- (c) if c0 = MPFR_LIMB_HIGHBIT, rb = 1 and sb = 0
- (d) otherwise rb = 0 and sb = 1
- If d > GMP_NUMB_BITS+1:
- (e) a0 = 111...111, rb = sb = 1
- */
- bx --;
- if (d == GMP_NUMB_BITS && cp[0] > MPFR_LIMB_HIGHBIT)
- { /* case (b) */
- rb = MPFR_LIMB(-cp[0]) >= (MPFR_LIMB_HIGHBIT >> 1);
- sb = MPFR_LIMB(-cp[0]) << 2;
- ap[0] = -(MPFR_LIMB_ONE << 1);
- }
- else /* cases (a), (c), (d) and (e) */
- {
- /* rb=1 in case (e) and case (c) */
- rb = d > GMP_NUMB_BITS + 1
- || (d == GMP_NUMB_BITS + 1 && cp[0] == MPFR_LIMB_HIGHBIT);
- /* sb = 1 in case (d) and (e) */
- sb = d > GMP_NUMB_BITS + 1
- || (d == GMP_NUMB_BITS + 1 && cp[0] > MPFR_LIMB_HIGHBIT);
- /* Warning: only set ap[0] last, otherwise in case ap=cp,
- the above comparisons involving cp[0] would be wrong */
- ap[0] = -MPFR_LIMB_ONE;
- }
- }
- }
- }
-
- /* now perform rounding */
-
- /* Warning: MPFR considers underflow *after* rounding with an unbounded
- exponent range. However since b and c have same precision p, they are
- multiples of 2^(emin-p), likewise for b-c. Thus if bx < emin, the
- subtraction (with an unbounded exponent range) is exact, so that bx is
- also the exponent after rounding with an unbounded exponent range. */
- if (MPFR_UNLIKELY(bx < __gmpfr_emin))
- {
- /* For RNDN, mpfr_underflow always rounds away, thus for |a| <= 2^(emin-2)
- we have to change to RNDZ. This corresponds to:
- (a) either bx < emin - 1
- (b) or bx = emin - 1 and ap[0] = 1000....000 (in this case necessarily
- rb = sb = 0 since b-c is multiple of 2^(emin-p) */
- if (rnd_mode == MPFR_RNDN &&
- (bx < __gmpfr_emin - 1 || ap[0] == MPFR_LIMB_HIGHBIT))
- {
- MPFR_ASSERTD(rb == 0 && sb == 0);
- rnd_mode = MPFR_RNDZ;
- }
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET (0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & MPFR_LIMB_ONE) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE;
- if (MPFR_UNLIKELY(ap[0] == 0))
- {
- ap[0] = MPFR_LIMB_HIGHBIT;
- /* Note: bx+1 cannot exceed __gmpfr_emax, since |a| <= |b|, thus
- bx+1 is at most equal to the original exponent of b. */
- MPFR_ASSERTD(bx + 1 <= __gmpfr_emax);
- MPFR_SET_EXP (a, bx + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* special code for GMP_NUMB_BITS < p < 2*GMP_NUMB_BITS */
-static int
-mpfr_sub1sp2 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t cnt, INITIALIZED(sh);
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t mask, a0, a1;
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(GMP_NUMB_BITS < p && p < 2 * GMP_NUMB_BITS);
-
- if (bx == cx) /* subtraction is exact in this case */
- {
- /* first compute a0: if the compiler is smart enough, it will use the generated
- borrow to get for free the term (bp[0] < cp[0]) */
- a0 = bp[0] - cp[0];
- a1 = bp[1] - cp[1] - (bp[0] < cp[0]);
- if (a1 == 0 && a0 == 0) /* result is zero */
- {
- if (rnd_mode == MPFR_RNDD)
- MPFR_SET_NEG(a);
- else
- MPFR_SET_POS(a);
- MPFR_SET_ZERO(a);
- MPFR_RET (0);
- }
- else if (a1 >= bp[1]) /* borrow: |c| > |b| */
- {
- MPFR_SET_OPPOSITE_SIGN (a, b);
- /* a = b-c mod 2^(2*GMP_NUMB_BITS) */
- a0 = -a0;
- a1 = -a1 - (a0 != 0);
- }
- else /* bp[0] > cp[0] */
- MPFR_SET_SAME_SIGN (a, b);
-
- if (a1 == 0)
- {
- a1 = a0;
- a0 = 0;
- bx -= GMP_NUMB_BITS;
- }
-
- /* now a1 != 0 */
- MPFR_ASSERTD(a1 != 0);
- count_leading_zeros (cnt, a1);
- if (cnt)
- {
- ap[1] = (a1 << cnt) | (a0 >> (GMP_NUMB_BITS - cnt));
- ap[0] = a0 << cnt;
- bx -= cnt;
- }
- else
- {
- ap[1] = a1;
- ap[0] = a0;
- }
- rb = sb = 0;
- /* Note: sh is not initialized, but will not be used in this case. */
- }
- else
- {
- mp_limb_t t;
-
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- MPFR_SET_OPPOSITE_SIGN (a, b);
- }
- else
- {
- MPFR_SET_SAME_SIGN (a, b);
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- sh = 2 * GMP_NUMB_BITS - p;
- mask = MPFR_LIMB_MASK(sh);
- if (d < GMP_NUMB_BITS)
- {
- t = (cp[1] << (GMP_NUMB_BITS - d)) | (cp[0] >> d);
- /* TODO: Change the code to generate a full subtraction with borrow,
- avoiding the test on sb and the corresponding correction. Note
- that Clang has builtins:
- http://clang.llvm.org/docs/LanguageExtensions.html#multiprecision-arithmetic-builtins
- but the generated code may not be good:
- https://llvm.org/bugs/show_bug.cgi?id=20748
- With the current source code, Clang generates on x86_64:
- 1. sub %rsi,%rbx for the first subtraction in a1;
- 2. sub %rdi,%rax for the subtraction in a0;
- 3. sbb $0x0,%rbx for the second subtraction in a1, i.e. just
- subtracting the borrow out from (2).
- So, Clang recognizes the borrow, but doesn't merge (1) and (3).
- Bug: https://llvm.org/bugs/show_bug.cgi?id=25858
- For GCC: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79173
- */
-#ifndef MPFR_FULLSUB
- a0 = bp[0] - t;
- a1 = bp[1] - (cp[1] >> d) - (bp[0] < t);
- sb = cp[0] << (GMP_NUMB_BITS - d); /* neglected part of c */
- if (sb)
- {
- a1 -= (a0 == 0);
- a0 --;
- /* a = a1,a0 cannot become zero here, since:
- a) if d >= 2, then a1 >= 2^(w-1) - (2^(w-2)-1) with
- w = GMP_NUMB_BITS, thus a1 - 1 >= 2^(w-2),
- b) if d = 1, then since p < 2*GMP_NUMB_BITS we have sb=0. */
- MPFR_ASSERTD(a1 > 0 || a0 > 0);
- sb = -sb; /* 2^GMP_NUMB_BITS - sb */
- }
-#else
- sb = - (cp[0] << (GMP_NUMB_BITS - d));
- a0 = bp[0] - t - (sb != 0);
- a1 = bp[1] - (cp[1] >> d) - (bp[0] < t || (bp[0] == t && sb != 0));
-#endif
- if (a1 == 0)
- {
- /* this implies d=1, which in turn implies sb=0 */
- MPFR_ASSERTD(sb == 0);
- a1 = a0;
- a0 = 0; /* should be a0 = sb */
- /* since sb=0 already, no need to set it to 0 */
- bx -= GMP_NUMB_BITS;
- }
- /* now a1 != 0 */
- MPFR_ASSERTD(a1 != 0);
- count_leading_zeros (cnt, a1);
- if (cnt)
- {
- ap[1] = (a1 << cnt) | (a0 >> (GMP_NUMB_BITS - cnt));
- a0 = (a0 << cnt) | (sb >> (GMP_NUMB_BITS - cnt));
- sb <<= cnt;
- bx -= cnt;
- }
- else
- ap[1] = a1;
- /* sh > 0 since p < 2*GMP_NUMB_BITS */
- MPFR_ASSERTD(sh > 0);
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else if (d < 2 * GMP_NUMB_BITS)
- { /* GMP_NUMB_BITS <= d < 2*GMP_NUMB_BITS */
- /* warning: the most significant bit of sb might become the least
- significant bit of a0 below */
- sb = (d == GMP_NUMB_BITS) ? cp[0]
- : (cp[1] << (2*GMP_NUMB_BITS - d)) | (cp[0] != 0);
- t = (cp[1] >> (d - GMP_NUMB_BITS)) + (sb != 0);
- /* warning: t might overflow to 0 if d=GMP_NUMB_BITS and sb <> 0 */
- a0 = bp[0] - t;
- a1 = bp[1] - (bp[0] < t) - (t == 0 && sb != 0);
- sb = -sb;
- /* since bp[1] has its most significant bit set, we can have an
- exponent decrease of at most one */
- if (a1 < MPFR_LIMB_HIGHBIT)
- {
- ap[1] = (a1 << 1) | (a0 >> (GMP_NUMB_BITS - 1));
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- bx --;
- }
- else
- ap[1] = a1;
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else /* d >= 2*GMP_NUMB_BITS */
- {
- /* We compute b - ulp(b), and the remainder ulp(b) - c satisfies:
- 1/2 ulp(b) < ulp(b) - c < ulp(b), thus rb = sb = 1, unless we
- had an exponent decrease. */
- t = MPFR_LIMB_ONE << sh;
- a0 = bp[0] - t;
- a1 = bp[1] - (bp[0] < t);
- if (a1 < MPFR_LIMB_HIGHBIT)
- {
- /* necessarily we had b = 1000...000 */
- /* Warning: since we have an exponent decrease, when
- p = 2*GMP_NUMB_BITS - 1 and d = 2*GMP_NUMB_BITS, the round bit
- corresponds to the upper bit of -c. In that case rb = 0 and
- sb = 1, except when c = 1000...000 where rb = 1 and sb = 0. */
- rb = sh > 1 || d > 2 * GMP_NUMB_BITS
- || (cp[1] == MPFR_LIMB_HIGHBIT && cp[0] == MPFR_LIMB_ZERO);
- /* sb=1 below is incorrect when p = 2*GMP_NUMB_BITS - 1,
- d = 2*GMP_NUMB_BITS and c = 1000...000, but in
- that case the even rule wound round up too. */
- ap[0] = ~mask;
- ap[1] = MPFR_LIMB_MAX;
- bx --;
- }
- else
- {
- ap[0] = a0;
- ap[1] = a1;
- rb = 1;
- }
- sb = 1;
- }
- }
-
- /* now perform rounding */
-
- /* Warning: MPFR considers underflow *after* rounding with an unbounded
- exponent range. However since b and c have same precision p, they are
- multiples of 2^(emin-p), likewise for b-c. Thus if bx < emin, the
- subtraction (with an unbounded exponent range) is exact, so that bx is
- also the exponent after rounding with an unbounded exponent range. */
- if (MPFR_UNLIKELY(bx < __gmpfr_emin))
- {
- /* for RNDN, mpfr_underflow always rounds away, thus for |a|<=2^(emin-2)
- we have to change to RNDZ */
- if (rnd_mode == MPFR_RNDN &&
- (bx < __gmpfr_emin - 1 ||
- (ap[1] == MPFR_LIMB_HIGHBIT && ap[0] == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET (0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- if (MPFR_UNLIKELY(ap[1] == 0))
- {
- ap[1] = MPFR_LIMB_HIGHBIT;
- /* Note: bx+1 cannot exceed __gmpfr_emax, since |a| <= |b|, thus
- bx+1 is at most equal to the original exponent of b. */
- MPFR_ASSERTD(bx + 1 <= __gmpfr_emax);
- MPFR_SET_EXP (a, bx + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* special code for p = 2*GMP_NUMB_BITS */
-static int
-mpfr_sub1sp2n (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t cnt;
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t a0, a1;
- mpfr_uexp_t d;
-
-/* this function is inspired by mpfr_sub1sp2 (for the operations of the
- 2-limb arrays) and by mpfr_sub1sp1n (for the different cases to handle) */
-
- if (bx == cx) /* subtraction is exact in this case */
- {
- a0 = bp[0] - cp[0];
- a1 = bp[1] - cp[1] - (bp[0] < cp[0]);
- if (a1 == 0 && a0 == 0) /* result is zero */
- {
- if (rnd_mode == MPFR_RNDD)
- MPFR_SET_NEG(a);
- else
- MPFR_SET_POS(a);
- MPFR_SET_ZERO(a);
- MPFR_RET (0);
- }
- /* since B/2 <= bp[1], cp[1] < B with B=2^GMP_NUMB_BITS,
- if no borrow we have 0 <= bp[1] - cp[1] - x < B/2
- where x = (bp[0] < cp[0]) is 0 or 1, thus a1 < B/2 <= bp[1] */
- else if (a1 >= bp[1]) /* borrow: |c| > |b| */
- {
- MPFR_SET_OPPOSITE_SIGN (a, b);
- /* negate [a1,a0] */
- a0 = -a0;
- a1 = -a1 - (a0 != 0);
- }
- else /* no borrow */
- MPFR_SET_SAME_SIGN (a, b);
-
- /* now [a1,a0] is the absolute value of b - c,
- maybe not normalized */
- if (a1 == 0)
- {
- a1 = a0;
- a0 = 0;
- bx -= GMP_NUMB_BITS;
- }
-
- /* now a1 != 0 */
- MPFR_ASSERTD(a1 != 0);
- count_leading_zeros (cnt, a1);
- if (cnt)
- {
- /* shift [a1,a0] left by cnt bit and store in result */
- ap[1] = (a1 << cnt) | (a0 >> (GMP_NUMB_BITS - cnt));
- ap[0] = a0 << cnt;
- bx -= cnt;
- }
- else
- {
- ap[1] = a1;
- ap[0] = a0;
- }
- rb = sb = 0; /* the subtraction is exact */
- }
- else
- {
- mp_limb_t t;
-
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- MPFR_SET_OPPOSITE_SIGN (a, b);
- }
- else
- {
- MPFR_SET_SAME_SIGN (a, b);
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- if (d < GMP_NUMB_BITS)
- {
- t = (cp[1] << (GMP_NUMB_BITS - d)) | (cp[0] >> d);
- /* t is the part that should be subtracted to bp[0]:
- | a1 | a0 |
- | bp[1] | bp[0] |
- | cp[1]>>d | t | sb | */
-#ifndef MPFR_FULLSUB
- a0 = bp[0] - t;
- a1 = bp[1] - (cp[1] >> d) - (bp[0] < t);
- sb = cp[0] << (GMP_NUMB_BITS - d); /* neglected part of c */
- /* now negate sb and subtract borrow to a0 if sb <> 0 */
- if (sb)
- {
- a1 -= (a0 == 0);
- a0 --;
- /* a = a1,a0 can only be zero when d=1, b = 0.1000...000*2^bx,
- and c = 0.111...111*2^(bx-1). In that case (where we have
- sb = MPFR_LIMB_HIGHBIT below), the subtraction is exact, the
- result is b/2^(2*GMP_NUMB_BITS). This case is dealt below. */
- sb = -sb;
- }
-#else
- sb = - (cp[0] << (GMP_NUMB_BITS - d));
- a0 = bp[0] - t - (sb != 0);
- a1 = bp[1] - (cp[1] >> d) - (bp[0] < t || (bp[0] == t && sb != 0));
-#endif
- /* now the result is formed of [a1,a0,sb], which might not be
- normalized */
- if (a1 == MPFR_LIMB_ZERO)
- {
- /* this implies d=1 */
- MPFR_ASSERTD(d == 1);
- a1 = a0;
- a0 = sb;
- sb = MPFR_LIMB_ZERO;
- bx -= GMP_NUMB_BITS;
- }
- if (a1 == MPFR_LIMB_ZERO) /* case a = a1,a0 = 0 mentioned above */
- {
- MPFR_ASSERTD(a0 == MPFR_LIMB_HIGHBIT); /* was sb above */
- a1 = a0;
- a0 = sb;
- bx -= GMP_NUMB_BITS;
- sb = MPFR_LIMB_ZERO;
- }
- else
- {
- count_leading_zeros (cnt, a1);
- if (cnt)
- {
- /* shift [a1,a0,sb] left by cnt bits and adjust exponent */
- a1 = (a1 << cnt) | (a0 >> (GMP_NUMB_BITS - cnt));
- a0 = (a0 << cnt) | (sb >> (GMP_NUMB_BITS - cnt));
- sb <<= cnt;
- bx -= cnt;
- }
- }
- rb = sb & MPFR_LIMB_HIGHBIT;
- sb = sb & ~MPFR_LIMB_HIGHBIT;
- ap[1] = a1;
- ap[0] = a0;
- }
- else if (d < 2 * GMP_NUMB_BITS)
- { /* GMP_NUMB_BITS <= d < 2*GMP_NUMB_BITS:
- compute t, the part to be subtracted to bp[0],
- and sb, the neglected part of c:
- | a1 | a0 |
- | bp[1] | bp[0] |
- | t | sb | */
- /* warning: we should not ignore the low bits from cp[0]
- in case d > GMP_NUMB_BITS */
- sb = (d == GMP_NUMB_BITS) ? cp[0]
- : (cp[1] << (2*GMP_NUMB_BITS - d))
- | (cp[0] >> (d - GMP_NUMB_BITS))
- | ((cp[0] << (2*GMP_NUMB_BITS - d)) != 0);
- t = (cp[1] >> (d - GMP_NUMB_BITS)) + (sb != 0);
- /* Warning: t might overflow to 0 if d=GMP_NUMB_BITS, sb <> 0,
- and cp[1] = 111...111 */
- a0 = bp[0] - t;
- a1 = bp[1] - (bp[0] < t) - (t == 0 && sb != 0);
- sb = -sb;
- /* now the result is [a1,a0,sb]. Since bp[1] has its most significant
- bit set, we can have an exponent decrease of at most one */
- if (a1 < MPFR_LIMB_HIGHBIT)
- {
- /* shift [a1,a0] left by 1 bit */
- a1 = (a1 << 1) | (a0 >> (GMP_NUMB_BITS - 1));
- MPFR_ASSERTD(a1 >= MPFR_LIMB_HIGHBIT);
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- bx --;
- }
- ap[1] = a1;
- ap[0] = a0;
- rb = sb & MPFR_LIMB_HIGHBIT;
- sb = sb & ~MPFR_LIMB_HIGHBIT;
- }
- else
- { /* d >= 2*GMP_NUMB_BITS:
- | a1 | a0 |
- | bp[1] | bp[0] |
- | cp[1] | cp[0] | */
- /* we mimic the case d >= GMP_NUMB_BITS of mpfr_sub1sp1n */
- int tst = cp[1] == MPFR_LIMB_HIGHBIT && cp[0] == MPFR_LIMB_ZERO;
- /* if d = 2 * GMP_NUMB_BITS and tst=1, c = 1/2*ulp(b) */
- if (bp[1] > MPFR_LIMB_HIGHBIT || bp[0] > MPFR_LIMB_ZERO)
- {
- /* no borrow in b - ulp(b) */
- rb = d > 2 * GMP_NUMB_BITS || tst;
- sb = d > 2 * GMP_NUMB_BITS || !tst;
- ap[1] = bp[1] - (bp[0] == MPFR_LIMB_ZERO);
- ap[0] = bp[0] - MPFR_LIMB_ONE;
- }
- else
- {
- /* b = 1000...000, thus subtracting c yields an exponent shift */
- bx --;
- if (d == 2 * GMP_NUMB_BITS && !tst) /* c > 1/2*ulp(b) */
- {
- t = -cp[1] - (cp[0] > MPFR_LIMB_ZERO);
- /* the rounding bit is the 2nd most significant bit of t
- (where the most significant bit of t is necessarily 0),
- and the sticky bit is formed by the remaining bits of t,
- and those from -cp[0] */
- rb = t >= (MPFR_LIMB_HIGHBIT >> 1);
- sb = (t << 2) | cp[0];
- ap[1] = MPFR_LIMB_MAX;
- ap[0] = -(MPFR_LIMB_ONE << 1);
- }
- else /* c <= 1/2*ulp(b) */
- {
- rb = d > 2 * GMP_NUMB_BITS + 1
- || (d == 2 * GMP_NUMB_BITS + 1 && tst);
- sb = d > 2 * GMP_NUMB_BITS + 1
- || (d == 2 * GMP_NUMB_BITS + 1 && !tst);
- ap[1] = -MPFR_LIMB_ONE;
- ap[0] = -MPFR_LIMB_ONE;
- }
- }
- }
- }
-
- /* now perform rounding */
-
- /* Warning: MPFR considers underflow *after* rounding with an unbounded
- exponent range. However since b and c have same precision p, they are
- multiples of 2^(emin-p), likewise for b-c. Thus if bx < emin, the
- subtraction (with an unbounded exponent range) is exact, so that bx is
- also the exponent after rounding with an unbounded exponent range. */
- if (MPFR_UNLIKELY(bx < __gmpfr_emin))
- {
- /* for RNDN, mpfr_underflow always rounds away, thus for |a|<=2^(emin-2)
- we have to change to RNDZ */
- if (rnd_mode == MPFR_RNDN &&
- (bx < __gmpfr_emin - 1 ||
- (ap[1] == MPFR_LIMB_HIGHBIT && ap[0] == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET (0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & MPFR_LIMB_ONE) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE;
- ap[1] += (ap[0] == 0);
- if (MPFR_UNLIKELY(ap[1] == 0))
- {
- ap[1] = MPFR_LIMB_HIGHBIT;
- /* Note: bx+1 cannot exceed __gmpfr_emax, since |a| <= |b|, thus
- bx+1 is at most equal to the original exponent of b. */
- MPFR_ASSERTD(bx + 1 <= __gmpfr_emax);
- MPFR_SET_EXP (a, bx + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-/* special code for 2*GMP_NUMB_BITS < p < 3*GMP_NUMB_BITS */
-static int
-mpfr_sub1sp3 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode,
- mpfr_prec_t p)
-{
- mpfr_exp_t bx = MPFR_GET_EXP (b);
- mpfr_exp_t cx = MPFR_GET_EXP (c);
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mpfr_prec_t cnt, INITIALIZED(sh);
- mp_limb_t rb; /* round bit */
- mp_limb_t sb; /* sticky bit */
- mp_limb_t mask, a0, a1, a2;
- mpfr_uexp_t d;
-
- MPFR_ASSERTD(2 * GMP_NUMB_BITS < p && p < 3 * GMP_NUMB_BITS);
-
- if (bx == cx) /* subtraction is exact in this case */
- {
- a0 = bp[0] - cp[0];
- a1 = bp[1] - cp[1] - (bp[0] < cp[0]);
- /* a borrow is generated for a when either bp[1] < cp[1],
- or bp[1] = cp[1] and bp[0] < cp[0] */
- a2 = bp[2] - cp[2]
- - (bp[1] < cp[1] || (bp[1] == cp[1] && bp[0] < cp[0]));
- if (a2 == 0 && a1 == 0 && a0 == 0) /* result is zero */
- {
- if (rnd_mode == MPFR_RNDD)
- MPFR_SET_NEG(a);
- else
- MPFR_SET_POS(a);
- MPFR_SET_ZERO(a);
- MPFR_RET (0);
- }
- else if (a2 >= bp[2]) /* borrow: |c| > |b| */
- {
- MPFR_SET_OPPOSITE_SIGN (a, b);
- /* a = b-c mod 2^(3*GMP_NUMB_BITS) */
- a0 = -a0;
- a1 = -a1 - (a0 != 0);
- a2 = -a2 - (a0 != 0 || a1 != 0);
- }
- else /* bp[0] > cp[0] */
- MPFR_SET_SAME_SIGN (a, b);
-
- if (a2 == 0)
- {
- a2 = a1;
- a1 = a0;
- a0 = 0;
- bx -= GMP_NUMB_BITS;
- if (a2 == 0)
- {
- a2 = a1;
- a1 = 0;
- bx -= GMP_NUMB_BITS;
- }
- }
-
- /* now a2 != 0 */
- MPFR_ASSERTD(a2 != 0);
- count_leading_zeros (cnt, a2);
- if (cnt)
- {
- ap[2] = (a2 << cnt) | (a1 >> (GMP_NUMB_BITS - cnt));
- ap[1] = (a1 << cnt) | (a0 >> (GMP_NUMB_BITS - cnt));
- ap[0] = a0 << cnt;
- bx -= cnt;
- }
- else
- {
- ap[2] = a2;
- ap[1] = a1;
- ap[0] = a0;
- }
- rb = sb = 0;
- /* Note: sh is not initialized, but will not be used in this case. */
- }
- else
- {
- if (bx < cx) /* swap b and c */
- {
- mpfr_exp_t tx;
- mp_limb_t *tp;
- tx = bx; bx = cx; cx = tx;
- tp = bp; bp = cp; cp = tp;
- MPFR_SET_OPPOSITE_SIGN (a, b);
- }
- else
- {
- MPFR_SET_SAME_SIGN (a, b);
- }
- MPFR_ASSERTD (bx > cx);
- d = (mpfr_uexp_t) bx - cx;
- sh = 3 * GMP_NUMB_BITS - p;
- mask = MPFR_LIMB_MASK(sh);
- if (d < GMP_NUMB_BITS)
- {
- mp_limb_t cy;
- /* warning: we must have the most significant bit of sb correct
- since it might become the round bit below */
- sb = cp[0] << (GMP_NUMB_BITS - d); /* neglected part of c */
- a0 = bp[0] - ((cp[1] << (GMP_NUMB_BITS - d)) | (cp[0] >> d));
- a1 = bp[1] - ((cp[2] << (GMP_NUMB_BITS - d)) | (cp[1] >> d))
- - (a0 > bp[0]);
- cy = a1 > bp[1] || (a1 == bp[1] && a0 > bp[0]); /* borrow in a1 */
- a2 = bp[2] - (cp[2] >> d) - cy;
- /* if sb is non-zero, subtract 1 from a2, a1, a0 since we want a
- non-negative neglected part */
- if (sb)
- {
- a2 -= (a1 == 0 && a0 == 0);
- a1 -= (a0 == 0);
- a0 --;
- /* a = a2,a1,a0 cannot become zero here, since:
- a) if d >= 2, then a2 >= 2^(w-1) - (2^(w-2)-1) with
- w = GMP_NUMB_BITS, thus a2 - 1 >= 2^(w-2),
- b) if d = 1, then since p < 3*GMP_NUMB_BITS we have sb=0. */
- MPFR_ASSERTD(a2 > 0 || a1 > 0 || a0 > 0);
- sb = -sb; /* 2^GMP_NUMB_BITS - sb */
- }
- if (a2 == 0)
- {
- /* this implies d=1, which in turn implies sb=0 */
- MPFR_ASSERTD(sb == 0);
- a2 = a1;
- a1 = a0;
- a0 = 0; /* should be a0 = sb */
- /* since sb=0 already, no need to set it to 0 */
- bx -= GMP_NUMB_BITS;
- if (a2 == 0)
- {
- a2 = a1;
- a1 = 0; /* should be a1 = a0 */
- bx -= GMP_NUMB_BITS;
- }
- }
- /* now a1 != 0 */
- MPFR_ASSERTD(a2 != 0);
- count_leading_zeros (cnt, a2);
- if (cnt)
- {
- ap[2] = (a2 << cnt) | (a1 >> (GMP_NUMB_BITS - cnt));
- ap[1] = (a1 << cnt) | (a0 >> (GMP_NUMB_BITS - cnt));
- a0 = (a0 << cnt) | (sb >> (GMP_NUMB_BITS - cnt));
- sb <<= cnt;
- bx -= cnt;
- }
- else
- {
- ap[2] = a2;
- ap[1] = a1;
- }
- /* sh > 0 since p < 2*GMP_NUMB_BITS */
- MPFR_ASSERTD(sh > 0);
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else if (d < 2 * GMP_NUMB_BITS)
- {
- mp_limb_t c0shifted;
- /* warning: we must have the most significant bit of sb correct
- since it might become the round bit below */
- sb = (d == GMP_NUMB_BITS) ? cp[0]
- : (cp[1] << (2*GMP_NUMB_BITS - d)) | (cp[0] != 0);
- c0shifted = (d == GMP_NUMB_BITS) ? cp[1]
- : (cp[2] << (2*GMP_NUMB_BITS-d)) | (cp[1] >> (d - GMP_NUMB_BITS));
- a0 = bp[0] - c0shifted;
- /* TODO: add a non-regression test for cp[2] == MPFR_LIMB_MAX,
- d == GMP_NUMB_BITS and a0 > bp[0]. */
- a1 = bp[1] - (cp[2] >> (d - GMP_NUMB_BITS)) - (a0 > bp[0]);
- a2 = bp[2] - (a1 > bp[1] || (a1 == bp[1] && a0 > bp[0]));
- /* if sb is non-zero, subtract 1 from a2, a1, a0 since we want a
- non-negative neglected part */
- if (sb)
- {
- a2 -= (a1 == 0 && a0 == 0);
- a1 -= (a0 == 0);
- a0 --;
- /* a = a2,a1,a0 cannot become zero here, since:
- a) if d >= 2, then a2 >= 2^(w-1) - (2^(w-2)-1) with
- w = GMP_NUMB_BITS, thus a2 - 1 >= 2^(w-2),
- b) if d = 1, then since p < 3*GMP_NUMB_BITS we have sb=0. */
- MPFR_ASSERTD(a2 > 0 || a1 > 0 || a0 > 0);
- sb = -sb; /* 2^GMP_NUMB_BITS - sb */
- }
- /* since bp[2] has its most significant bit set, we can have an
- exponent decrease of at most one */
- if (a2 < MPFR_LIMB_HIGHBIT)
- {
- ap[2] = (a2 << 1) | (a1 >> (GMP_NUMB_BITS - 1));
- ap[1] = (a1 << 1) | (a0 >> (GMP_NUMB_BITS - 1));
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- bx --;
- }
- else
- {
- ap[2] = a2;
- ap[1] = a1;
- }
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else if (d < 3 * GMP_NUMB_BITS) /* 2*GMP_NUMB_BITS<=d<3*GMP_NUMB_BITS */
- {
- MPFR_ASSERTD (2*GMP_NUMB_BITS <= d && d < 3*GMP_NUMB_BITS);
- /* warning: we must have the most significant bit of sb correct
- since it might become the round bit below */
- if (d == 2 * GMP_NUMB_BITS)
- sb = cp[1] | (cp[0] != 0);
- else
- sb = cp[2] << (3*GMP_NUMB_BITS - d) | (cp[1] != 0) | (cp[0] != 0);
- sb = -sb;
- /* TODO: add a non-regression test for cp[2] == MPFR_LIMB_MAX,
- d == 2*GMP_NUMB_BITS and sb != 0. */
- a0 = bp[0] - (cp[2] >> (d - 2*GMP_NUMB_BITS)) - (sb != 0);
- a1 = bp[1] - (a0 > bp[0] || (a0 == bp[0] && sb != 0));
- a2 = bp[2] - (a1 > bp[1]);
- if (a2 < MPFR_LIMB_HIGHBIT)
- {
- ap[2] = (a2 << 1) | (a1 >> (GMP_NUMB_BITS - 1));
- ap[1] = (a1 << 1) | (a0 >> (GMP_NUMB_BITS - 1));
- a0 = (a0 << 1) | (sb >> (GMP_NUMB_BITS - 1));
- sb <<= 1;
- bx --;
- }
- else
- {
- ap[2] = a2;
- ap[1] = a1;
- }
- rb = a0 & (MPFR_LIMB_ONE << (sh - 1));
- sb |= (a0 & mask) ^ rb;
- ap[0] = a0 & ~mask;
- }
- else /* d >= 3*GMP_NUMB_BITS */
- {
- /* We compute b - ulp(b), and the remainder ulp(b) - c satisfies:
- 1/2 ulp(b) < ulp(b) - c < ulp(b), thus rb = sb = 1. */
- mp_limb_t t = MPFR_LIMB_ONE << sh;
- a0 = bp[0] - t;
- a1 = bp[1] - (bp[0] < t);
- a2 = bp[2] - (a1 > bp[1]);
- if (a2 < MPFR_LIMB_HIGHBIT)
- {
- /* necessarily we had b = 1000...000 */
- /* Warning: since we have an exponent decrease, when
- p = 3*GMP_NUMB_BITS - 1 and d = 3*GMP_NUMB_BITS, the round bit
- corresponds to the upper bit of -c. In that case rb = 0 and
- sb = 1, except when c = 1000...000 where rb = 1 and sb = 0. */
- rb = sh > 1 || d > 3 * GMP_NUMB_BITS
- || (cp[2] == MPFR_LIMB_HIGHBIT && cp[1] == MPFR_LIMB_ZERO &&
- cp[0] == MPFR_LIMB_ZERO);
- /* sb=1 below is incorrect when p = 2*GMP_NUMB_BITS - 1,
- d = 2*GMP_NUMB_BITS and c = 1000...000, but in
- that case the even rule wound round up too. */
- ap[0] = ~mask;
- ap[1] = MPFR_LIMB_MAX;
- ap[2] = MPFR_LIMB_MAX;
- bx --;
- }
- else
- {
- ap[0] = a0;
- ap[1] = a1;
- ap[2] = a2;
- rb = 1;
- }
- sb = 1;
- }
- }
-
- /* now perform rounding */
-
- /* Warning: MPFR considers underflow *after* rounding with an unbounded
- exponent range. However since b and c have same precision p, they are
- multiples of 2^(emin-p), likewise for b-c. Thus if bx < emin, the
- subtraction (with an unbounded exponent range) is exact, so that bx is
- also the exponent after rounding with an unbounded exponent range. */
- if (MPFR_UNLIKELY(bx < __gmpfr_emin))
- {
- /* for RNDN, mpfr_underflow always rounds away, thus for |a|<=2^(emin-2)
- we have to change to RNDZ */
- if (rnd_mode == MPFR_RNDN &&
- (bx < __gmpfr_emin - 1 ||
- (ap[2] == MPFR_LIMB_HIGHBIT && ap[1] == 0 && ap[0] == 0)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
-
- MPFR_SET_EXP (a, bx);
- if ((rb == 0 && sb == 0) || rnd_mode == MPFR_RNDF)
- MPFR_RET (0);
- else if (rnd_mode == MPFR_RNDN)
- {
- if (rb == 0 || (sb == 0 && (ap[0] & (MPFR_LIMB_ONE << sh)) == 0))
- goto truncate;
- else
- goto add_one_ulp;
- }
- else if (MPFR_IS_LIKE_RNDZ(rnd_mode, MPFR_IS_NEG(a)))
- {
- truncate:
- MPFR_RET(-MPFR_SIGN(a));
- }
- else /* round away from zero */
- {
- add_one_ulp:
- ap[0] += MPFR_LIMB_ONE << sh;
- ap[1] += (ap[0] == 0);
- ap[2] += (ap[1] == 0 && ap[0] == 0);
- if (MPFR_UNLIKELY(ap[2] == 0))
- {
- ap[2] = MPFR_LIMB_HIGHBIT;
- /* Note: bx+1 cannot exceed __gmpfr_emax, since |a| <= |b|, thus
- bx+1 is at most equal to the original exponent of b. */
- MPFR_ASSERTD(bx + 1 <= __gmpfr_emax);
- MPFR_SET_EXP (a, bx + 1);
- }
- MPFR_RET(MPFR_SIGN(a));
- }
-}
-
-#endif /* !defined(MPFR_GENERIC_ABI) */
-
-/* Rounding Sub */
-
-/*
- compute sgn(b)*(|b| - |c|) if |b|>|c| else -sgn(b)*(|c| -|b|)
- Returns 0 iff result is exact,
- a negative value when the result is less than the exact value,
- a positive value otherwise.
-*/
-
-/* A0...Ap-1
- * Cp Cp+1 ....
- * <- C'p+1 ->
- * Cp = -1 if calculated from c mantissa
- * Cp = 0 if 0 from a or c
- * Cp = 1 if calculated from a.
- * C'p+1 = First bit not null or 0 if there isn't one
- *
- * Can't have Cp=-1 and C'p+1=1*/
-
-/* RND = MPFR_RNDZ:
- * + if Cp=0 and C'p+1=0,1, Truncate.
- * + if Cp=0 and C'p+1=-1, SubOneUlp
- * + if Cp=-1, SubOneUlp
- * + if Cp=1, AddOneUlp
- * RND = MPFR_RNDA (Away)
- * + if Cp=0 and C'p+1=0,-1, Truncate
- * + if Cp=0 and C'p+1=1, AddOneUlp
- * + if Cp=1, AddOneUlp
- * + if Cp=-1, Truncate
- * RND = MPFR_RNDN
- * + if Cp=0, Truncate
- * + if Cp=1 and C'p+1=1, AddOneUlp
- * + if Cp=1 and C'p+1=-1, Truncate
- * + if Cp=1 and C'p+1=0, Truncate if Ap-1=0, AddOneUlp else
- * + if Cp=-1 and C'p+1=-1, SubOneUlp
- * + if Cp=-1 and C'p+1=0, Truncate if Ap-1=0, SubOneUlp else
- *
- * If AddOneUlp:
- * If carry, then it is 11111111111 + 1 = 10000000000000
- * ap[n-1]=MPFR_HIGHT_BIT
- * If SubOneUlp:
- * If we lose one bit, it is 1000000000 - 1 = 0111111111111
- * Then shift, and put as last bit x which is calculated
- * according Cp, Cp-1 and rnd_mode.
- * If Truncate,
- * If it is a power of 2,
- * we may have to suboneulp in some special cases.
- *
- * To simplify, we don't use Cp = 1.
- *
- */
-
-MPFR_HOT_FUNCTION_ATTR int
-mpfr_sub1sp (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
-{
- mpfr_exp_t bx, cx;
- mpfr_uexp_t d;
- mpfr_prec_t p, sh, cnt;
- mp_size_t n, k;
- mp_limb_t *ap = MPFR_MANT(a);
- mp_limb_t *bp = MPFR_MANT(b);
- mp_limb_t *cp = MPFR_MANT(c);
- mp_limb_t limb;
- int inexact;
- mp_limb_t rb, sb; /* round and sticky bits. They are interpreted as
- negative, i.e., if rb <> 0, then we should subtract 1
- at the round bit position, and of sb <> 0, we should
- subtract something below the round bit position. */
- mp_limb_t rbb = MPFR_LIMB_MAX, sbb = MPFR_LIMB_MAX; /* rbb is the next bit
- after the round bit, and sbb the corresponding sticky bit.
- gcc claims that they might be used uninitialized. We fill them with invalid
- values, which should produce a failure if so. See README.dev file. */
- int pow2;
-
- MPFR_TMP_DECL(marker);
-
- MPFR_ASSERTD(MPFR_PREC(a) == MPFR_PREC(b) && MPFR_PREC(b) == MPFR_PREC(c));
- MPFR_ASSERTD(MPFR_IS_PURE_FP(b));
- MPFR_ASSERTD(MPFR_IS_PURE_FP(c));
-
- /* Read prec and num of limbs */
- p = MPFR_GET_PREC (b);
-
-#if !defined(MPFR_GENERIC_ABI)
- /* special case for p < GMP_NUMB_BITS */
- if (p < GMP_NUMB_BITS)
- return mpfr_sub1sp1 (a, b, c, rnd_mode, p);
-
- /* special case for GMP_NUMB_BITS < p < 2*GMP_NUMB_BITS */
- if (GMP_NUMB_BITS < p && p < 2 * GMP_NUMB_BITS)
- return mpfr_sub1sp2 (a, b, c, rnd_mode, p);
-
- /* special case for p = GMP_NUMB_BITS: we put it *after* mpfr_sub1sp2,
- in order not to slow down mpfr_sub1sp2, which should be more frequent */
- if (p == GMP_NUMB_BITS)
- return mpfr_sub1sp1n (a, b, c, rnd_mode);
-
- /* special case for 2*GMP_NUMB_BITS < p < 3*GMP_NUMB_BITS */
- if (2 * GMP_NUMB_BITS < p && p < 3 * GMP_NUMB_BITS)
- return mpfr_sub1sp3 (a, b, c, rnd_mode, p);
-
- if (p == 2 * GMP_NUMB_BITS)
- return mpfr_sub1sp2n (a, b, c, rnd_mode);
-#endif
-
- n = MPFR_PREC2LIMBS (p);
- /* Fast cmp of |b| and |c| */
- bx = MPFR_GET_EXP (b);
- cx = MPFR_GET_EXP (c);
-
- MPFR_TMP_MARK(marker);
-
- k = n - 1;
-
- if (bx == cx)
- {
- /* Check mantissa since exponents are equal */
- while (k >= 0 && MPFR_UNLIKELY(bp[k] == cp[k]))
- k--;
- /* now k = - 1 if b == c, otherwise k is the largest integer < n such
- that bp[k] <> cp[k] */
- if (k < 0)
- /* b == c ! */
- {
- /* Return exact number 0 */
- if (rnd_mode == MPFR_RNDD)
- MPFR_SET_NEG(a);
- else
- MPFR_SET_POS(a);
- MPFR_SET_ZERO(a);
- MPFR_RET(0);
- }
- else if (bp[k] > cp[k])
- goto BGreater;
- else
- {
- MPFR_ASSERTD(bp[k] < cp[k]);
- goto CGreater;
- }
- }
- else if (bx < cx)
- {
- /* Swap b and c and set sign */
- mpfr_srcptr t;
- mpfr_exp_t tx;
- mp_limb_t *tp;
-
- tx = bx; bx = cx; cx = tx;
- CGreater:
- MPFR_SET_OPPOSITE_SIGN(a,b);
- t = b; b = c; c = t;
- tp = bp; bp = cp; cp = tp;
- }
- else
- {
- /* |b| > |c| */
- BGreater:
- MPFR_SET_SAME_SIGN(a,b);
- }
-
- /* Now |b| > |c| */
- MPFR_ASSERTD(bx >= cx);
- d = (mpfr_uexp_t) bx - cx;
- /* printf ("New with diff=%lu\n", (unsigned long) d); */
-
- /* FIXME: The goto's below are too complex (long backward) and make
- the code unreadable. */
-
- if (d == 0)
- {
- /* <-- b -->
- <-- c --> : exact sub */
- mpn_sub_n (ap, bp, cp, n);
- /* Normalize */
- ExactNormalize:
- limb = ap[n-1];
- if (MPFR_LIKELY (limb != 0))
- {
- /* First limb is not zero. */
- count_leading_zeros (cnt, limb);
- /* Warning: cnt can be 0 when we come from the case SubD1Lose
- with goto ExactNormalize */
- if (MPFR_LIKELY(cnt))
- {
- mpn_lshift (ap, ap, n, cnt); /* Normalize number */
- bx -= cnt; /* Update final expo */
- }
- /* Last limb should be OK */
- MPFR_ASSERTD(!(ap[0] & MPFR_LIMB_MASK((unsigned int) (-p)
- % GMP_NUMB_BITS)));
- }
- else
- {
- /* First limb is zero: this can only occur for n >= 2 */
- mp_size_t len;
- /* Find the first limb not equal to zero. It necessarily exists
- since |b| > |c|. We know that bp[k] > cp[k] and all upper
- limbs are equal. */
- while (ap[k] == 0)
- k--;
- limb = ap[k];
- /* ap[k] is the non-zero limb of largest index, thus we have
- to consider the k+1 least significant limbs */
- MPFR_ASSERTD(limb != 0);
- count_leading_zeros(cnt, limb);
- k++;
- len = n - k; /* Number of most significant zero limbs */
- MPFR_ASSERTD(k > 0);
- if (cnt)
- mpn_lshift (ap + len, ap, k, cnt); /* Normalize the High Limb*/
- else
- /* Must use copyd since src and dst may overlap & dst>=src */
- mpn_copyd (ap + len, ap, k);
- MPN_ZERO(ap, len); /* Zeroing the last limbs */
- bx -= cnt + len * GMP_NUMB_BITS; /* update exponent */
- /* ap[len] should have its low bits zero: it is bp[0]-cp[0] */
- MPFR_ASSERTD(!(ap[len] & MPFR_LIMB_MASK((unsigned int) (-p)
- % GMP_NUMB_BITS)));
- }
- /* Check exponent underflow (no overflow can happen) */
- if (MPFR_UNLIKELY(bx < __gmpfr_emin))
- {
- MPFR_TMP_FREE(marker);
- /* since b and c have same sign, exponent and precision, the
- subtraction is exact */
- /* printf("(D==0 Underflow)\n"); */
- /* for MPFR_RNDN, mpfr_underflow always rounds away from zero,
- thus for |a| <= 2^(emin-2) we change to RNDZ. */
- if (rnd_mode == MPFR_RNDN &&
- (bx < __gmpfr_emin - 1 || mpfr_powerof2_raw (a)))
- rnd_mode = MPFR_RNDZ;
- return mpfr_underflow (a, rnd_mode, MPFR_SIGN(a));
- }
- MPFR_SET_EXP (a, bx);
- /* No rounding is necessary since the result is exact */
- MPFR_ASSERTD(ap[n-1] & MPFR_LIMB_HIGHBIT);
- MPFR_TMP_FREE(marker);
- return 0;
- }
- else if (d == 1)
- {
- /* | <-- b -->
- | <-- c --> */
- mp_limb_t c0, mask;
- MPFR_UNSIGNED_MINUS_MODULO(sh, p);
- /* If we lose at least one bit, compute 2*b-c (Exact)
- * else compute b-c/2 */
- limb = bp[k] - cp[k]/2;
- /* Let W = 2^GMP_NUMB_BITS:
- we have |b|-|c| >= limb*W^k - (2*W^k-1)/2 >= limb*W^k - W^k + 1/2
- thus if limb > W/2, |b|-|c| >= 1/2*W^n.
- Moreover if trunc(|c|) represents the first p-1 bits of |c|,
- minus the last significant bit called c0 below (in fact c0 is that
- bit shifted by sh bits), then we have
- |b|-trunc(|c|) >= 1/2*W^n+1, thus the two mpn_sub_n calls
- below necessarily yield a > 1/2*W^n. */
- if (limb > MPFR_LIMB_HIGHBIT) /* case limb > W/2 */
- {
- mp_limb_t *tp;
- /* The exponent cannot decrease: compute b-c/2 */
- /* Shift c in the allocated temporary block */
- SubD1NoLose:
- c0 = cp[0] & (MPFR_LIMB_ONE << sh);
- mask = ~MPFR_LIMB_MASK(sh);
- tp = MPFR_TMP_LIMBS_ALLOC (n);
- /* FIXME: it might be faster to have one function shifting c by 1
- to the right and adding with b to a, which would read c once
- only, and avoid a temporary allocation. */
- mpn_rshift (tp, cp, n, 1);
- tp[0] &= mask; /* Zero last bit of c if set */
- mpn_sub_n (ap, bp, tp, n);
- MPFR_SET_EXP(a, bx); /* No exponent overflow! */
- MPFR_ASSERTD(ap[n-1] & MPFR_LIMB_HIGHBIT);
- if (MPFR_LIKELY(c0 == 0))
- {
- /* Result is exact: no need of rounding! */
- MPFR_TMP_FREE(marker);
- return 0;
- }
- /* c0 is non-zero, thus we have to subtract 1/2*ulp(a),
- however we know (see analysis above) that this cannot
- make the exponent decrease */
- MPFR_ASSERTD( !(ap[0] & ~mask) ); /* Check last bits */
- /* No normalize is needed */
-
- /* Rounding is necessary since c0 is non-zero */
- /* we have to subtract 1 at the round bit position,
- and 0 for the lower bits */
- rb = 1; rbb = sbb = 0;
- }
- else if (MPFR_LIKELY(limb < MPFR_LIMB_HIGHBIT))
- {
- mp_limb_t *tp;
- /* |b| - |c| <= (W/2-1)*W^k + W^k-1 = 1/2*W^n - 1 */
- /* The exponent decreases by one. */
- SubD1Lose:
- /* Compute 2*b-c (Exact) */
-#if defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_RSBLSH1_N)
- /* {ap, n} = 2*{bp, n} - {cp, n} */
- /* mpn_rsblsh1_n -- rp[] = (vp[] << 1) - up[] */
- __gmpn_rsblsh1_n (ap, cp, bp, n);
-#else
- tp = MPFR_TMP_LIMBS_ALLOC (n);
- /* Shift b in the allocated temporary block */
- mpn_lshift (tp, bp, n, 1);
- mpn_sub_n (ap, tp, cp, n);
-#endif
- bx--;
- MPFR_ASSERTD(k == n-1);
- goto ExactNormalize;
- }
- else /* limb = MPFR_LIMB_HIGHBIT */
- {
- /* Case: limb = 100000000000 */
- /* Check while b[l] == c'[l] (C' is C shifted by 1) */
- /* If b[l]<c'[l] => We lose at least one bit */
- /* If b[l]>c'[l] => We don't lose any bit */
- /* If l==-1 => We don't lose any bit
- AND the result is 100000000000 0000000000 00000000000 */
- mp_size_t l = n - 1;
- mp_limb_t cl_shifted;
- do
- {
- /* the first loop will compare b[n-2] and c'[n-2] */
- cl_shifted = cp[l] << (GMP_NUMB_BITS - 1);
- if (--l < 0)
- break;
- cl_shifted += cp[l] >> 1;
- }
- while (bp[l] == cl_shifted);
- if (MPFR_UNLIKELY(l < 0))
- {
- if (MPFR_UNLIKELY(cl_shifted))
- {
- /* Since cl_shifted is what should be subtracted
- from ap[-1], if non-zero then necessarily the
- precision is a multiple of GMP_NUMB_BITS, and we lose
- one bit, thus the (exact) result is a power of 2
- minus 1. */
- memset (ap, -1, n * MPFR_BYTES_PER_MP_LIMB);
- MPFR_SET_EXP (a, bx - 1);
- /* No underflow is possible since cx = bx-1 is a valid
- exponent. */
- }
- else
- {
- /* cl_shifted=0: result is a power of 2. */
- MPN_ZERO (ap, n - 1);
- ap[n-1] = MPFR_LIMB_HIGHBIT;
- MPFR_SET_EXP (a, bx); /* No exponent overflow! */
- }
- /* No Normalize is needed */
- /* No Rounding is needed */
- MPFR_TMP_FREE (marker);
- return 0;
- }
- /* cl_shifted is the shifted value c'[l] */
- else if (bp[l] > cl_shifted)
- goto SubD1NoLose; /* |b|-|c| >= 1/2*W^n */
- else
- {
- /* we cannot have bp[l] = cl_shifted since the only way we
- can exit the while loop above is when bp[l] <> cl_shifted
- or l < 0, and the case l < 0 was already treated above. */
- MPFR_ASSERTD(bp[l] < cl_shifted);
- goto SubD1Lose; /* |b|-|c| <= 1/2*W^n-1 and is exact */
- }
- }
- }
- else if (MPFR_UNLIKELY(d >= p)) /* the difference of exponents is larger
- than the precision of all operands, thus
- the result is either b or b - 1 ulp,
- with a possible exact result when
- d = p, b = 2^e and c = 1/2 ulp(b) */
- {
- MPFR_UNSIGNED_MINUS_MODULO(sh, p);
- /* We can't set A before since we use cp for rounding... */
- /* Perform rounding: check if a=b or a=b-ulp(b) */
- if (MPFR_UNLIKELY(d == p))
- {
- /* since c is normalized, we need to subtract 1/2 ulp(b) */
- rb = 1;
- /* rbb is the bit of weight 1/4 ulp(b) in c. We assume a limb has
- at least 2 bits. If the precision is 1, we read in the unused
- bits, which should be zero, and this is what we want. */
- rbb = cp[n-1] & (MPFR_LIMB_HIGHBIT >> 1);
-
- /* We need also sbb */
- sbb = cp[n-1] & MPFR_LIMB_MASK(GMP_NUMB_BITS - 2);
- for (k = n-1; sbb == 0 && k > 0;)
- sbb = cp[--k];
- }
- else
- {
- rb = 0;
- if (d == p + 1)
- {
- rbb = 1;
- sbb = cp[n-1] & MPFR_LIMB_MASK(GMP_NUMB_BITS - 1);
- for (k = n-1; sbb == 0 && k > 0;)
- sbb = cp[--k];
- }
- else
- {
- rbb = 0;
- sbb = 1; /* since C is non-zero */
- }
- }
- /* Copy mantissa B in A */
- MPN_COPY(ap, bp, n);
- }
- else /* case 2 <= d < p */
- {
- mpfr_uexp_t dm;
- mp_size_t m;
- mp_limb_t mask, *tp;
-
- MPFR_UNSIGNED_MINUS_MODULO(sh, p);
- tp = MPFR_TMP_LIMBS_ALLOC (n);
-
- /* Shift c in temporary allocated place */
- dm = d % GMP_NUMB_BITS;
- m = d / GMP_NUMB_BITS;
- if (MPFR_UNLIKELY(dm == 0))
- {
- /* dm = 0 and m > 0: Just copy */
- MPFR_ASSERTD(m != 0);
- MPN_COPY(tp, cp + m, n - m);
- MPN_ZERO(tp + n - m, m);
- }
- else if (MPFR_LIKELY(m == 0))
- {
- /* dm >=2 and m == 0: just shift */
- MPFR_ASSERTD(dm >= 2);
- mpn_rshift (tp, cp, n, dm);
- }
- else
- {
- /* dm > 0 and m > 0: shift and zero */
- mpn_rshift (tp, cp + m, n - m, dm);
- MPN_ZERO (tp + n - m, m);
- }
- /* FIXME: Instead of doing "cp = tp;", keep using tp to avoid
- confusion? Thus in the block below, we don't need
- "mp_limb_t *cp = MPFR_MANT(c);". In short, cp should always
- be MPFR_MANT(c) defined earlier, possibly after the swap. */
- cp = tp;
-
- /* mpfr_print_mant_binary("Before", MPFR_MANT(c), p); */
- /* mpfr_print_mant_binary("B= ", MPFR_MANT(b), p); */
- /* mpfr_print_mant_binary("After ", cp, p); */
-
- /* Compute rb=Cp and sb=C'p+1 */
- {
- /* Compute rb and rbb from C */
- mp_limb_t *cp = MPFR_MANT(c);
- /* The round bit is bit p-d in C, assuming the most significant bit
- of C is bit 0 */
- mpfr_prec_t x = p - d;
- mp_size_t kx = n - 1 - (x / GMP_NUMB_BITS);
- mpfr_prec_t sx = GMP_NUMB_BITS - 1 - (x % GMP_NUMB_BITS);
- /* the round bit is in cp[kx], at position sx */
- MPFR_ASSERTD(p >= d);
- rb = cp[kx] & (MPFR_LIMB_ONE << sx);
-
- /* Now compute rbb: since d >= 2 it always exists in C */
- if (sx == 0) /* rbb is in the next limb */
- {
- kx --;
- sx = GMP_NUMB_BITS - 1;
- }
- else
- sx --; /* rb and rbb are in the same limb */
- rbb = cp[kx] & (MPFR_LIMB_ONE << sx);
-
- /* Now look at the remaining low bits of C to determine sbb */
- sbb = cp[kx] & MPFR_LIMB_MASK(sx);
- while (sbb == 0 && kx > 0)
- sbb = cp[--kx];
- }
- /* printf("sh=%lu Cp=%d C'p+1=%d\n", sh, rb!=0, sb!=0); */
-
- /* Clean shifted C' */
- mask = ~MPFR_LIMB_MASK (sh);
- cp[0] &= mask;
-
- /* Subtract the mantissa c from b in a */
- mpn_sub_n (ap, bp, cp, n);
- /* mpfr_print_mant_binary("Sub= ", ap, p); */
-
- /* Normalize: we lose at most one bit */
- if (MPFR_UNLIKELY(MPFR_LIMB_MSB(ap[n-1]) == 0))
- {
- /* High bit is not set and we have to fix it! */
- /* Ap >= 010000xxx001 */
- mpn_lshift (ap, ap, n, 1);
- /* Ap >= 100000xxx010 */
- if (MPFR_UNLIKELY(rb != 0)) /* Check if Cp = -1 */
- /* Since Cp == -1, we have to subtract one more */
- {
- mpn_sub_1 (ap, ap, n, MPFR_LIMB_ONE << sh);
- MPFR_ASSERTD(MPFR_LIMB_MSB(ap[n-1]) != 0);
- }
- /* Ap >= 10000xxx001 */
- /* Final exponent -1 since we have shifted the mantissa */
- bx--;
- /* Update rb and sb */
- rb = rbb;
- rbb = sbb;
- /* We don't have anymore a valid Cp+1!
- But since Ap >= 100000xxx001, the final sub can't unnormalize!*/
- }
- MPFR_ASSERTD( !(ap[0] & ~mask) );
- }
-
- rounding:
- /* at this point 'a' contains b - high(c), normalized,
- and we have to subtract rb * 1/2 ulp(a), rbb * 1/4 ulp(a),
- and sbb * 1/8 ulp(a), interpreting rb/rbb/sbb as 1 if non-zero. */
-
- sb = rbb | sbb;
-
- if (rb == 0 && sb == 0)
- {
- inexact = 0;
- goto end_of_sub;
- }
-
- pow2 = mpfr_powerof2_raw (a);
- if (pow2 && rb != 0) /* subtract 1 ulp */
- {
- mpn_sub_1 (ap, ap, n, MPFR_LIMB_ONE << sh);
- ap[n-1] |= MPFR_LIMB_HIGHBIT;
- bx--;
- rb = rbb;
- rbb = sbb;
- sbb = 0;
- /* Note: for p=1 this case can only happen with d=1, but then we will
- have rb=sb=0 at the next round. */
- goto rounding;
- }
-
- /* now if a is a power of two, necessary rb = 0,
- which means the exact result is always in (pred(a), a),
- and the bounds cannot be attained */
-
- if (rnd_mode == MPFR_RNDF)
- inexact = 0;
- else if (rnd_mode == MPFR_RNDN)
- {
- if (pow2)
- {
- MPFR_ASSERTD(rb == 0);
- /* since we have at the end of the binade, we have in fact rb = rbb
- and sb = sbb */
- rb = rbb;
- sb = sbb;
- }
- /* Warning: for p=1, the significand is always odd: the "even" rule
- rounds to the value with largest magnitude, thus we have to check
- that case separately */
- if (rb == 0 ||
- (rb != 0 && sb == 0 &&
- ((ap[0] & (MPFR_LIMB_ONE << sh)) == 0 || p == 1)))
- inexact = 1; /* round to a and return 1 */
- else /* round to pred(a) and return -1 */
- {
- subtract:
- mpn_sub_1 (ap, ap, n, MPFR_LIMB_ONE << sh);
- if (pow2) /* deal with cancellation */
- {
- ap[n-1] |= MPFR_LIMB_HIGHBIT;
- bx--;
- }
- inexact = -1;
- }
- }
- else /* directed rounding */
- {
- MPFR_UPDATE_RND_MODE(rnd_mode, MPFR_IS_NEG(a));
- if (rnd_mode == MPFR_RNDZ)
- goto subtract;
- else
- inexact = 1;
- }
-
- end_of_sub:
- /* Update Exponent */
- /* bx >= emin. Proof:
- If d==0 : Exact case. This is never called.
- if 1 < d < p : bx=MPFR_EXP(b) or MPFR_EXP(b)-1 > MPFR_EXP(c) > emin
- if d == 1 : bx=MPFR_EXP(b). If we could lose any bits, the exact
- normalization is called.
- if d >= p : bx=MPFR_EXP(b) >= MPFR_EXP(c) + p > emin
- After SubOneUlp, we could have one bit less.
- if 1 < d < p : bx >= MPFR_EXP(b)-2 >= MPFR_EXP(c) > emin
- if d == 1 : bx >= MPFR_EXP(b)-1 = MPFR_EXP(c) > emin.
- if d >= p : bx >= MPFR_EXP(b)-1 > emin since p>=2.
- */
- MPFR_ASSERTD( bx >= __gmpfr_emin);
- MPFR_SET_EXP (a, bx);
-
- MPFR_TMP_FREE(marker);
- MPFR_RET (inexact * MPFR_INT_SIGN (a));
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sub1sp1_extracted.c b/Build/source/libs/mpfr/mpfr-src/src/sub1sp1_extracted.c
deleted file mode 100644
index 8e62b3f4dcf..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sub1sp1_extracted.c
+++ /dev/null
@@ -1,530 +0,0 @@
-/* mpfr_sub1sp1 -- internal function to perform a "real" subtraction on one limb
- This code was extracted by Kremlin from a formal proof in F*
- done by Félix Breton in June-July 2019: do not modify it!
-
-Source: https://github.com/project-everest/hacl-star/tree/dev_mpfr/code/mpfr
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "stdint.h"
-#include "inttypes.h" /* for __builtin_clzll */
-
-/* beginning of manually added declarations */
-
-#define MPFR_mpfr_sub1sp1 mpfr_sub1sp1
-#define MPFR_RoundingMode_mpfr_rnd_t mpfr_rnd_t
-#define MPFR_Lib_mpfr_struct __mpfr_struct
-#define MPFR_Lib_gmp_NUMB_BITS GMP_NUMB_BITS
-#define __eq__MPFR_RoundingMode_mpfr_rnd_t(x,y) ((x)==(y))
-#define MPFR_RoundingMode_MPFR_RNDD MPFR_RNDD
-#define MPFR_RoundingMode_MPFR_RNDN MPFR_RNDN
-#define MPFR_RoundingMode_MPFR_RNDZ MPFR_RNDZ
-#define MPFR_RoundingMode_MPFR_RNDU MPFR_RNDU
-#define MPFR_Lib_mpfr_SET_EXP MPFR_SET_EXP
-#define MPFR_Lib_mpfr_RET MPFR_RET
-#define MPFR_Lib_mpfr_NEG_SIGN(x) (-(x))
-#define MPFR_Exceptions_mpfr_underflow mpfr_underflow
-#define MPFR_Exceptions_mpfr_overflow mpfr_overflow
-#define true 1
-#define false 0
-
-/* the original code had mpfr_exp instead of _mpfr_exp */
-#define mpfr_exp _mpfr_exp
-/* the original code had mpfr_d instead of _mpfr_d */
-#define mpfr_d _mpfr_d
-/* the original code had mpfr_prec instead of _mpfr_prec */
-#define mpfr_prec _mpfr_prec
-/* the original code had mpfr_sign instead of _mpfr_sign */
-#define mpfr_sign _mpfr_sign
-#define bool int /* to avoid conflict with C++ keyword */
-
-/* end of manually added declarations */
-
-static uint32_t MPFR_Lib_Clz_count_leading_zeros (uint64_t a) {
- return __builtin_clzll(a);
-}
-
-typedef struct MPFR_Add1sp1_state_s
-{
- int64_t sh;
- int64_t bx;
- uint64_t rb;
- uint64_t sb;
-}
-MPFR_Add1sp1_state;
-
-typedef struct
-K___MPFR_Lib_mpfr_struct__MPFR_Lib_mpfr_struct__int64_t_int64_t_uint64_t__uint64_t__s
-{
- const MPFR_Lib_mpfr_struct *fst; /* added const */
- const MPFR_Lib_mpfr_struct *snd; /* added const */
- int64_t thd;
- int64_t f3;
- uint64_t *f4;
- uint64_t *f5;
-}
-K___MPFR_Lib_mpfr_struct__MPFR_Lib_mpfr_struct__int64_t_int64_t_uint64_t__uint64_t_;
-
-static MPFR_Add1sp1_state
-MPFR_Add1sp1_mk_state(int64_t sh, int64_t bx, uint64_t rb, uint64_t sb)
-{
- MPFR_Add1sp1_state lit;
- lit.sh = sh;
- lit.bx = bx;
- lit.rb = rb;
- lit.sb = sb;
- return lit;
-}
-
-static MPFR_Add1sp1_state
-MPFR_Sub1sp1_mpfr_sub1sp1_gt_branch_1(
- MPFR_Lib_mpfr_struct *a,
- const MPFR_Lib_mpfr_struct *b, /* added const */
- const MPFR_Lib_mpfr_struct *c, /* added const */
- uint64_t *ap,
- uint64_t *bp,
- uint64_t *cp,
- int64_t bx,
- int64_t cx,
- int64_t p,
- int64_t sh,
- uint64_t mask,
- uint64_t sb_1,
- uint64_t a0_base
-)
-{
- uint32_t cnt = MPFR_Lib_Clz_count_leading_zeros(a0_base);
- uint64_t a0;
- if (cnt == (uint32_t)0U)
- {
- a0 = a0_base;
- }
- else
- {
- a0 = a0_base << cnt | sb_1 >> ((uint32_t)64U - cnt);
- }
- {
- uint64_t sb_2 = sb_1 << cnt;
- uint64_t rb = a0 & (uint64_t)1U << (uint32_t)(sh - (int64_t)1);
- uint64_t sb = sb_2 | ((a0 & mask) ^ rb);
- ap[0U] = a0 & ~mask;
- return MPFR_Add1sp1_mk_state(sh, bx - (int64_t)cnt, rb, sb);
- }
-}
-
-static bool MPFR_RoundingMode_uu___is_MPFR_RNDN(MPFR_RoundingMode_mpfr_rnd_t projectee)
-{
- switch (projectee)
- {
- case MPFR_RoundingMode_MPFR_RNDN:
- {
- return true;
- }
- default:
- {
- return false;
- }
- }
-}
-
-static bool MPFR_RoundingMode_uu___is_MPFR_RNDZ(MPFR_RoundingMode_mpfr_rnd_t projectee)
-{
- switch (projectee)
- {
- case MPFR_RoundingMode_MPFR_RNDZ:
- {
- return true;
- }
- default:
- {
- return false;
- }
- }
-}
-
-static bool MPFR_RoundingMode_uu___is_MPFR_RNDU(MPFR_RoundingMode_mpfr_rnd_t projectee)
-{
- switch (projectee)
- {
- case MPFR_RoundingMode_MPFR_RNDU:
- {
- return true;
- }
- default:
- {
- return false;
- }
- }
-}
-
-static bool MPFR_RoundingMode_uu___is_MPFR_RNDD(MPFR_RoundingMode_mpfr_rnd_t projectee)
-{
- switch (projectee)
- {
- case MPFR_RoundingMode_MPFR_RNDD:
- {
- return true;
- }
- default:
- {
- return false;
- }
- }
-}
-
-static int32_t
-MPFR_Sub1sp1_mpfr_sub1sp1(
- MPFR_Lib_mpfr_struct *a,
- const MPFR_Lib_mpfr_struct *b, /* added const */
- const MPFR_Lib_mpfr_struct *c, /* added const */
- MPFR_RoundingMode_mpfr_rnd_t rnd_mode,
- int64_t p
-)
-{
- int64_t bx = b->mpfr_exp;
- int64_t cx = c->mpfr_exp;
- uint64_t *ap = a->mpfr_d;
- uint64_t *bp = b->mpfr_d;
- uint64_t *cp = c->mpfr_d;
- int64_t sh = MPFR_Lib_gmp_NUMB_BITS - p;
- uint64_t bp0ul = bp[0U];
- uint64_t cp0ul = cp[0U];
- if (bx == cx && bp0ul == cp0ul)
- {
- if (__eq__MPFR_RoundingMode_mpfr_rnd_t(rnd_mode, MPFR_RoundingMode_MPFR_RNDD))
- {
- MPFR_Lib_mpfr_struct uu____0 = a[0U];
- MPFR_Lib_mpfr_struct lit;
- lit.mpfr_prec = uu____0.mpfr_prec;
- lit.mpfr_sign = (int32_t)-1;
- lit.mpfr_exp = uu____0.mpfr_exp;
- lit.mpfr_d = uu____0.mpfr_d;
- a[0U] = lit;
- }
- else
- {
- MPFR_Lib_mpfr_struct uu____1 = a[0U];
- MPFR_Lib_mpfr_struct lit;
- lit.mpfr_prec = uu____1.mpfr_prec;
- lit.mpfr_sign = (int32_t)1;
- lit.mpfr_exp = uu____1.mpfr_exp;
- lit.mpfr_d = uu____1.mpfr_d;
- a[0U] = lit;
- }
- MPFR_Lib_mpfr_SET_EXP(a, (int64_t)-0x7fffffffffffffff);
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET((int32_t)0);
- }
- else
- {
- MPFR_Add1sp1_state st;
- if (bx == cx)
- {
- /* Prims_int vb = FStar_UInt64_v(bp[0U]); */ /* unused */
- /* Prims_int vc = FStar_UInt64_v(cp[0U]); */ /* unused */
- /* Prims_int vsh = FStar_Int64_v(sh); */ /* unused */
- if (cp[0U] > bp[0U])
- {
- uint64_t a0 = cp[0U] - bp[0U];
- uint32_t cnt = MPFR_Lib_Clz_count_leading_zeros(a0);
- int32_t uu____2 = MPFR_Lib_mpfr_NEG_SIGN(b->mpfr_sign);
- MPFR_Lib_mpfr_struct uu____3 = a[0U];
- MPFR_Lib_mpfr_struct lit;
- lit.mpfr_prec = uu____3.mpfr_prec;
- lit.mpfr_sign = uu____2;
- lit.mpfr_exp = uu____3.mpfr_exp;
- lit.mpfr_d = uu____3.mpfr_d;
- a[0U] = lit;
- ap[0U] = a0 << cnt;
- {
- int64_t bx1 = bx - (int64_t)cnt;
- st = MPFR_Add1sp1_mk_state(sh, bx1, (uint64_t)0U, (uint64_t)0U);
- }
- }
- else
- {
- uint64_t a0 = bp[0U] - cp[0U];
- uint32_t cnt = MPFR_Lib_Clz_count_leading_zeros(a0);
- MPFR_Lib_mpfr_struct uu____4 = a[0U];
- MPFR_Lib_mpfr_struct lit;
- lit.mpfr_prec = uu____4.mpfr_prec;
- lit.mpfr_sign = b->mpfr_sign;
- lit.mpfr_exp = uu____4.mpfr_exp;
- lit.mpfr_d = uu____4.mpfr_d;
- a[0U] = lit;
- ap[0U] = a0 << cnt;
- {
- int64_t bx1 = bx - (int64_t)cnt;
- st = MPFR_Add1sp1_mk_state(sh, bx1, (uint64_t)0U, (uint64_t)0U);
- }
- }
- }
- else
- {
- K___MPFR_Lib_mpfr_struct__MPFR_Lib_mpfr_struct__int64_t_int64_t_uint64_t__uint64_t_ scrut;
- if (bx >= cx)
- {
- MPFR_Lib_mpfr_struct uu____5 = a[0U];
- MPFR_Lib_mpfr_struct lit;
- lit.mpfr_prec = uu____5.mpfr_prec;
- lit.mpfr_sign = b->mpfr_sign;
- lit.mpfr_exp = uu____5.mpfr_exp;
- lit.mpfr_d = uu____5.mpfr_d;
- a[0U] = lit;
- {
- K___MPFR_Lib_mpfr_struct__MPFR_Lib_mpfr_struct__int64_t_int64_t_uint64_t__uint64_t_ lit0;
- lit0.fst = b;
- lit0.snd = c;
- lit0.thd = bx;
- lit0.f3 = cx;
- lit0.f4 = bp;
- lit0.f5 = cp;
- scrut = lit0;
- }
- }
- else
- {
- int32_t uu____6 = MPFR_Lib_mpfr_NEG_SIGN(b->mpfr_sign);
- MPFR_Lib_mpfr_struct uu____7 = a[0U];
- MPFR_Lib_mpfr_struct lit;
- lit.mpfr_prec = uu____7.mpfr_prec;
- lit.mpfr_sign = uu____6;
- lit.mpfr_exp = uu____7.mpfr_exp;
- lit.mpfr_d = uu____7.mpfr_d;
- a[0U] = lit;
- {
- K___MPFR_Lib_mpfr_struct__MPFR_Lib_mpfr_struct__int64_t_int64_t_uint64_t__uint64_t_ lit0;
- lit0.fst = c;
- lit0.snd = b;
- lit0.thd = cx;
- lit0.f3 = bx;
- lit0.f4 = cp;
- lit0.f5 = bp;
- scrut = lit0;
- }
- }
- {
- const MPFR_Lib_mpfr_struct *b1 = scrut.fst; /* added const */
- const MPFR_Lib_mpfr_struct *c1 = scrut.snd; /* added const */
- int64_t bx1 = scrut.thd;
- int64_t cx1 = scrut.f3;
- uint64_t *bp1 = scrut.f4;
- uint64_t *cp1 = scrut.f5;
- int64_t d = bx1 - cx1;
- uint64_t bp0ul1 = bp1[0U];
- uint64_t cp0ul1 = cp1[0U];
- uint64_t mask = ((uint64_t)1U << (uint32_t)sh) - (uint64_t)1U;
- if (d < (int64_t)64)
- {
- uint64_t sb_1 = ~(cp0ul1 << (uint32_t)(MPFR_Lib_gmp_NUMB_BITS - d)) + (uint64_t)1U;
- uint64_t ite;
- if (sb_1 == (uint64_t)0U)
- {
- ite = (uint64_t)0U;
- }
- else
- {
- ite = (uint64_t)1U;
- }
- st =
- MPFR_Sub1sp1_mpfr_sub1sp1_gt_branch_1(a,
- b1,
- c1,
- ap,
- bp1,
- cp1,
- bx1,
- cx1,
- p,
- sh,
- mask,
- sb_1,
- bp0ul1 - ite - (cp0ul1 >> (uint32_t)d));
- }
- else if (bp0ul1 > (uint64_t)0x8000000000000000U)
- {
- ap[0U] = bp0ul1 - ((uint64_t)1U << (uint32_t)sh);
- st = MPFR_Add1sp1_mk_state(sh, bx1, (uint64_t)1U, (uint64_t)1U);
- }
- else
- {
- bool
- rb =
- sh
- > (int64_t)1
- || d > MPFR_Lib_gmp_NUMB_BITS
- || cp0ul1 == (uint64_t)0x8000000000000000U;
- bool
- sb =
- sh
- > (int64_t)1
- || d > MPFR_Lib_gmp_NUMB_BITS
- || cp0ul1 != (uint64_t)0x8000000000000000U;
- ap[0U] = ~mask;
- {
- uint64_t ite0;
- if (rb)
- {
- ite0 = (uint64_t)1U;
- }
- else
- {
- ite0 = (uint64_t)0U;
- }
- {
- uint64_t ite;
- if (sb)
- {
- ite = (uint64_t)1U;
- }
- else
- {
- ite = (uint64_t)0U;
- }
- st = MPFR_Add1sp1_mk_state(sh, bx1 - (int64_t)1, ite0, ite);
- }
- }
- }
- }
- }
- /* the constant (int64_t)-0x000000003fffffff from the original extracted
- code was manually replaced by __gmpfr_emin */
- if (st.bx < __gmpfr_emin)
- {
- int32_t s = a->mpfr_sign;
- uint64_t ap0ul = ap[0U];
- if
- (
- __eq__MPFR_RoundingMode_mpfr_rnd_t(rnd_mode,
- MPFR_RoundingMode_MPFR_RNDN)
- /* the constant (int64_t)-1073741824 from the original extracted
- code was manually replaced by __gmpfr_emin-1 */
- && (st.bx < __gmpfr_emin - 1 || ap0ul == (uint64_t)0x8000000000000000U)
- )
- {
- MPFR_Lib_mpfr_SET_EXP(a, (int64_t)-0x7fffffffffffffff);
- return MPFR_Lib_mpfr_NEG_SIGN(s);
- }
- else
- {
- int32_t t = MPFR_Exceptions_mpfr_underflow(a, rnd_mode, s);
- return t;
- }
- }
- else
- {
- uint64_t a0 = ap[0U];
- MPFR_Lib_mpfr_SET_EXP(a, st.bx);
- if (st.rb == (uint64_t)0U && st.sb == (uint64_t)0U)
- {
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET((int32_t)0);
- }
- else if (MPFR_RoundingMode_uu___is_MPFR_RNDN(rnd_mode))
- {
- if
- (
- st.rb
- == (uint64_t)0U
- || (st.sb == (uint64_t)0U && (a0 & (uint64_t)1U << (uint32_t)st.sh) == (uint64_t)0U)
- )
- {
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(MPFR_Lib_mpfr_NEG_SIGN(a->mpfr_sign));
- }
- else if (ap[0U] + ((uint64_t)1U << (uint32_t)st.sh) == (uint64_t)0U)
- {
- ap[0U] = ap[0U] + ((uint64_t)1U << (uint32_t)st.sh);
- ap[0U] = (uint64_t)0x8000000000000000U;
- /* the constant (int64_t)0x000000003fffffff from the original
- extracted code was replaced by __gmpfr_emax */
- if (st.bx + (int64_t)1 <= __gmpfr_emax)
- {
- MPFR_Lib_mpfr_SET_EXP(a, st.bx + (int64_t)1);
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- else
- {
- int32_t t = MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(t);
- }
- }
- else
- {
- ap[0U] = ap[0U] + ((uint64_t)1U << (uint32_t)st.sh);
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
- else
- {
- bool uu____8 = a->mpfr_sign < (int32_t)0;
- if
- (
- MPFR_RoundingMode_uu___is_MPFR_RNDZ(rnd_mode)
- || (MPFR_RoundingMode_uu___is_MPFR_RNDU(rnd_mode) && uu____8)
- || (MPFR_RoundingMode_uu___is_MPFR_RNDD(rnd_mode) && !uu____8)
- )
- {
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(MPFR_Lib_mpfr_NEG_SIGN(a->mpfr_sign));
- }
- else if (ap[0U] + ((uint64_t)1U << (uint32_t)st.sh) == (uint64_t)0U)
- {
- ap[0U] = ap[0U] + ((uint64_t)1U << (uint32_t)st.sh);
- ap[0U] = (uint64_t)0x8000000000000000U;
- /* the constant (int64_t)0x000000003fffffff from the original
- extracted code was replaced by __gmpfr_emax */
- if (st.bx + (int64_t)1 <= __gmpfr_emax)
- {
- MPFR_Lib_mpfr_SET_EXP(a, st.bx + (int64_t)1);
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- else
- {
- int32_t t = MPFR_Exceptions_mpfr_overflow(a, rnd_mode, a->mpfr_sign);
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(t);
- }
- }
- else
- {
- ap[0U] = ap[0U] + ((uint64_t)1U << (uint32_t)st.sh);
- /* the following return was commented out from the extracted code */
- /*return*/ MPFR_Lib_mpfr_RET(a->mpfr_sign);
- }
- }
- }
- }
-}
-
-int32_t
-(*MPFR_mpfr_sub1sp1)(
- MPFR_Lib_mpfr_struct *x0,
- const MPFR_Lib_mpfr_struct *x1, /* added const */
- const MPFR_Lib_mpfr_struct *x2, /* added const */
- MPFR_RoundingMode_mpfr_rnd_t x3,
- int64_t x4
-) = MPFR_Sub1sp1_mpfr_sub1sp1;
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sub_d.c b/Build/source/libs/mpfr/mpfr-src/src/sub_d.c
deleted file mode 100644
index d7b2585dcc7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sub_d.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* mpfr_sub_d -- subtract a machine double precision float from
- a multiple precision floating-point number
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_sub_d (mpfr_ptr a, mpfr_srcptr b, double c, mpfr_rnd_t rnd_mode)
-{
- int inexact;
- mpfr_t d;
- mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("b[%Pu]=%.*Rg c=%.20g rnd=%d",
- mpfr_get_prec (b), mpfr_log_prec, b, c, rnd_mode),
- ("a[%Pu]=%.*Rg", mpfr_get_prec (a), mpfr_log_prec, a));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- MPFR_TMP_INIT1(tmp_man, d, IEEE_DBL_MANT_DIG);
- inexact = mpfr_set_d (d, c, rnd_mode);
- MPFR_ASSERTD (inexact == 0);
-
- MPFR_CLEAR_FLAGS ();
- inexact = mpfr_sub (a, b, d, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (a, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sub_ui.c b/Build/source/libs/mpfr/mpfr-src/src/sub_ui.c
deleted file mode 100644
index 936e1756d65..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sub_ui.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* mpfr_sub_ui -- subtract a floating-point number and a machine integer
-
-Copyright 2000-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_sub_ui (mpfr_ptr y, mpfr_srcptr x, unsigned long int u, mpfr_rnd_t rnd_mode)
-{
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%lu rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y));
-
- /* (unsigned long) 0 is assumed to be a real 0 (unsigned) */
- if (MPFR_UNLIKELY (u == 0))
- return mpfr_set (y, x, rnd_mode);
-
- /* This block is actually useless, but this is a minor optimization. */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- if (MPFR_IS_INF (x))
- {
- MPFR_SET_INF (y);
- MPFR_SET_SAME_SIGN (y, x);
- MPFR_RET (0); /* +/-infinity is exact */
- }
- /* The case x being zero is handled below: we can't use mpfr_set_si
- as the opposite of u does not necessarily fit in a long. */
- }
-
- /* Main code */
- {
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Optimization note: Exponent save/restore operations may be
- removed if mpfr_sub works even when uu is out-of-range. */
- MPFR_SAVE_EXPO_MARK (expo);
-
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- mpfr_t uu;
- mp_limb_t up[1];
- int cnt;
-
- MPFR_TMP_INIT1 (up, uu, GMP_NUMB_BITS);
- /* So, u fits in a mp_limb_t, which justifies the casts below. */
- MPFR_ASSERTD (u != 0);
- count_leading_zeros (cnt, (mp_limb_t) u);
- up[0] = (mp_limb_t) u << cnt;
- MPFR_SET_EXP (uu, GMP_NUMB_BITS - cnt);
- inex = mpfr_sub (y, x, uu, rnd_mode);
- }
-#else
- {
- mpfr_t uu;
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- mpfr_set_ui (uu, u, MPFR_RNDZ);
- inex = mpfr_sub (y, x, uu, rnd_mode);
- mpfr_clear (uu);
- }
-#endif
-
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd_mode);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/subnormal.c b/Build/source/libs/mpfr/mpfr-src/src/subnormal.c
deleted file mode 100644
index 76fccf0576f..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/subnormal.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* mpfr_subnormalize -- Subnormalize a floating point number
- emulating sub-normal numbers.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* For MPFR_RNDN, we can have a problem of double rounding.
- In such a case, this table helps to conclude what to do (y positive):
- Rounding Bit | Sticky Bit | inexact | Action | new inexact
- 0 | ? | ? | Trunc | sticky
- 1 | 0 | 1 | Trunc |
- 1 | 0 | 0 | Trunc if even |
- 1 | 0 | -1 | AddOneUlp |
- 1 | 1 | ? | AddOneUlp |
-
- For other rounding mode, there isn't such a problem.
- Just round it again and merge the ternary values.
-
- Set the inexact flag if the returned ternary value is non-zero.
- Set the underflow flag if a second rounding occurred (whether this
- rounding is exact or not). See
- https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00000.html
- https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00008.html
- https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00010.html
-*/
-
-int
-mpfr_subnormalize (mpfr_ptr y, int old_inexact, mpfr_rnd_t rnd)
-{
- int sign;
-
- /* The subnormal exponent range is [ emin, emin + MPFR_PREC(y) - 2 ] */
- if (MPFR_LIKELY (MPFR_IS_SINGULAR (y)
- || (MPFR_GET_EXP (y) >=
- __gmpfr_emin + (mpfr_exp_t) MPFR_PREC (y) - 1)))
- MPFR_RET (old_inexact);
-
- MPFR_SET_UNDERFLOW ();
- sign = MPFR_SIGN (y);
-
- /* We have to emulate one bit rounding if EXP(y) = emin */
- if (MPFR_GET_EXP (y) == __gmpfr_emin)
- {
- /* If this is a power of 2, we don't need rounding.
- It handles cases when |y| = 0.1 * 2^emin */
- if (mpfr_powerof2_raw (y))
- MPFR_RET (old_inexact);
-
- /* We keep the same sign for y.
- Assuming Y is the real value and y the approximation
- and since y is not a power of 2: 0.5*2^emin < Y < 1*2^emin
- We also know the direction of the error thanks to ternary value. */
-
- if (rnd == MPFR_RNDN || rnd == MPFR_RNDNA)
- {
- mp_limb_t *mant, rb ,sb;
- mp_size_t s;
- /* We need the rounding bit and the sticky bit. Read them
- and use the previous table to conclude. */
- s = MPFR_LIMB_SIZE (y) - 1;
- mant = MPFR_MANT (y) + s;
- rb = *mant & (MPFR_LIMB_HIGHBIT >> 1);
- if (rb == 0)
- goto set_min;
- sb = *mant & ((MPFR_LIMB_HIGHBIT >> 1) - 1);
- while (sb == 0 && s-- != 0)
- sb = *--mant;
- if (sb != 0)
- goto set_min_p1;
- /* Rounding bit is 1 and sticky bit is 0.
- We need to examine old inexact flag to conclude. */
- if ((old_inexact > 0 && sign > 0) ||
- (old_inexact < 0 && sign < 0))
- goto set_min;
- /* If inexact != 0, return 0.1*2^(emin+1).
- Otherwise, rounding bit = 1, sticky bit = 0 and inexact = 0
- So we have 0.1100000000000000000000000*2^emin exactly.
- We return 0.1*2^(emin+1) according to the even-rounding
- rule on subnormals. Note the same holds for RNDNA. */
- goto set_min_p1;
- }
- else if (MPFR_IS_LIKE_RNDZ (rnd, MPFR_IS_NEG (y)))
- {
- set_min:
- mpfr_setmin (y, __gmpfr_emin);
- MPFR_RET (-sign);
- }
- else
- {
- set_min_p1:
- /* Note: mpfr_setmin will abort if __gmpfr_emax == __gmpfr_emin. */
- mpfr_setmin (y, __gmpfr_emin + 1);
- MPFR_RET (sign);
- }
- }
- else /* Hard case: It is more or less the same problem as mpfr_cache */
- {
- mpfr_t dest;
- mpfr_prec_t q;
- mpfr_rnd_t rnd2;
- int inexact, inex2;
-
- MPFR_ASSERTD (MPFR_GET_EXP (y) > __gmpfr_emin);
-
- /* Compute the intermediary precision */
- q = (mpfr_uexp_t) MPFR_GET_EXP (y) - __gmpfr_emin + 1;
- MPFR_ASSERTD (q >= MPFR_PREC_MIN && q < MPFR_PREC (y));
-
- /* TODO: perform the rounding in place. */
- mpfr_init2 (dest, q);
- /* Round y in dest */
- MPFR_SET_EXP (dest, MPFR_GET_EXP (y));
- MPFR_SET_SIGN (dest, sign);
- rnd2 = rnd == MPFR_RNDNA ? MPFR_RNDN : rnd;
- MPFR_RNDRAW_EVEN (inexact, dest,
- MPFR_MANT (y), MPFR_PREC (y), rnd2, sign,
- MPFR_SET_EXP (dest, MPFR_GET_EXP (dest) + 1));
- if (MPFR_LIKELY (old_inexact != 0))
- {
- if (MPFR_UNLIKELY (rnd2 == MPFR_RNDN &&
- (inexact == MPFR_EVEN_INEX ||
- inexact == -MPFR_EVEN_INEX)))
- {
- /* If both roundings are in the same direction,
- we have to go back in the other direction.
- For MPFR_RNDNA it is the same, since we are not
- exactly in the middle case (old_inexact != 0). */
- if (SAME_SIGN (inexact, old_inexact))
- {
- if (SAME_SIGN (inexact, MPFR_INT_SIGN (y)))
- mpfr_nexttozero (dest);
- else /* subnormal range, thus no overflow */
- {
- mpfr_nexttoinf (dest);
- MPFR_ASSERTD(!MPFR_IS_INF (dest));
- }
- inexact = -inexact;
- }
- }
- else if (MPFR_UNLIKELY (inexact == 0))
- inexact = old_inexact;
- }
- else if (rnd == MPFR_RNDNA &&
- (inexact == MPFR_EVEN_INEX || inexact == -MPFR_EVEN_INEX))
- {
- /* We are in the middle case: since we used RNDN to round, we should
- round in the opposite direction when inexact has the opposite
- sign of y. */
- if (!SAME_SIGN (inexact, MPFR_INT_SIGN (y)))
- {
- mpfr_nexttoinf (dest);
- MPFR_ASSERTD(!MPFR_IS_INF (dest));
- inexact = -inexact;
- }
- }
-
- inex2 = mpfr_set (y, dest, rnd);
- MPFR_ASSERTN (inex2 == 0);
- MPFR_ASSERTN (MPFR_IS_PURE_FP (y));
- mpfr_clear (dest);
-
- MPFR_RET (inexact);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/sum.c b/Build/source/libs/mpfr/mpfr-src/src/sum.c
deleted file mode 100644
index ca3cba48c74..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/sum.c
+++ /dev/null
@@ -1,1395 +0,0 @@
-/* Sum -- efficiently sum a list of floating-point numbers
-
-Copyright 2014-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Note: In the prototypes, one uses
- *
- * const mpfr_ptr *x i.e.: __mpfr_struct *const *x
- *
- * instead of
- *
- * const mpfr_srcptr *x i.e.: const __mpfr_struct *const *x
- *
- * because here one has a double indirection and the type matching rules
- * from the C standard in such a case are stricter and they would yield
- * annoying errors for the user in practice. See:
- *
- * Why can't I pass a char ** to a function which expects a const char **?
- *
- * in the comp.lang.c FAQ:
- *
- * http://c-faq.com/ansi/constmismatch.html
- */
-
-/* See the doc/sum.txt file for the algorithm and a part of its proof
-(this will later go into algorithms.tex).
-
-TODO [VL, after a discussion with James Demmel]: Compared to
- James Demmel and Yozo Hida, Fast and accurate floating-point summation
- with application to computational geometry, Numerical Algorithms,
- volume 37, number 1-4, pages 101--112, 2004.
-sorting is not necessary here. It is not done because in the most common
-cases (where big cancellations are rare), it would take time and be
-useless. However the lack of sorting increases the worst case complexity.
-For instance, consider many inputs that cancel one another (two by two).
-One would need n/2 iterations, where each iteration reads the exponent
-of each input, therefore n*n/2 read operations. Using a worst-case sort
-in O(n log n) could give a O(n log n) worst-case complexity. As we don't
-want to slow down the most common cases, this could be done at the 3rd
-iteration. But are there practical applications which would be used as
-tests?
-
-Note: see the following paper and its references:
-http://www.eecs.berkeley.edu/~hdnguyen/public/papers/ARITH21_Fast_Sum.pdf
-VL: This is very different:
- In MPFR In the paper & references
- arbitrary precision fixed precision
- correct rounding just reproducible rounding
- integer operations floating-point operations
- sequential parallel (& sequential)
-*/
-
-#ifdef MPFR_COV_CHECK
-int __gmpfr_cov_sum_tmd[MPFR_RND_MAX][2][2][3][2][2] = { 0 };
-#endif
-
-/* Update minexp (V) after detecting a potential integer overflow in
- extreme cases (only a 32-bit ABI may be concerned in practice).
- Instead of an assertion failure below, we could
- 1. check that the ulp of each regular input has an exponent >= MPFR_EXP_MIN
- (with an assertion failure if this is not the case);
- 2. set minexp to MPFR_EXP_MIN and shift the accumulator accordingly
- (the sum will then be exact).
- However, such cases, which involve huge precisions, will probably
- never occur in practice (at least with a 64-bit ABI) and are not
- easily testable due to these huge precisions. Moreover, switching
- to a 64-bit ABI would be a better solution for such computations.
- So, let's leave this unimplemented. */
-#define SAFE_SUB(V,E,SH) \
- do \
- { \
- mpfr_prec_t sh = (SH); \
- MPFR_ASSERTN ((E) >= MPFR_EXP_MIN + sh); \
- V = (E) - sh; \
- } \
- while (0)
-
-/* Function sum_raw
- * ================
- *
- * Accumulate a new [minexp,maxexp[ block into (wp,ws). If e and err denote
- * the exponents of the computed result and of the error bound respectively,
- * while e - err is less than some given bound (due to cancellation), shift
- * the accumulator and reiterate.
- *
- * Inputs:
- * wp: pointer to the accumulator (least significant limb first).
- * ws: size of the accumulator (in limbs).
- * wq: precision of the accumulator (ws * GMP_NUMB_BITS).
- * x: array of the input numbers.
- * n: size of this array (number of inputs, regular or not).
- * minexp: exponent of the least significant bit of the first block.
- * maxexp: exponent of the first block (exponent of its MSB + 1).
- * tp: pointer to a temporary area (pre-allocated).
- * ts: size of this temporary area.
- * logn: ceil(log2(rn)), where rn is the number of regular inputs.
- * prec: lower bound for e - err (as described above).
- * ep: pointer to mpfr_exp_t (see below), or a null pointer.
- * minexpp: pointer to mpfr_exp_t (see below), or a null pointer.
- * maxexpp: pointer to mpfr_exp_t (see below), or a null pointer.
- *
- * Preconditions:
- * prec >= 1
- * wq >= logn + prec + 2
- *
- * This function returns 0 if the accumulator is 0 (which implies that
- * the exact sum for this sum_raw invocation is 0), otherwise the number
- * of cancelled bits (>= 1), defined as the number of identical bits on
- * the most significant part of the accumulator. In the latter case, it
- * also returns the following data in variables passed by reference, if
- * the pointers are not NULL:
- * - in ep: the exponent e of the computed result;
- * - in minexpp: the last value of minexp;
- * - in maxexpp: the new value of maxexp (for the next iteration after
- * the first invocation of sum_raw in the main code).
- *
- * Notes:
- * - minexp is also the exponent of the least significant bit of the
- * accumulator;
- * - the temporary area must be large enough to hold a shifted input
- * block, and the value of ts is used only when the full assertions
- * are checked (i.e. with the --enable-assert configure option), to
- * check that a buffer overflow doesn't occur;
- * - contrary to the returned value of minexp (the value in the last
- * iteration), the returned value of maxexp is the one for the next
- * iteration (= maxexp2 of the last iteration).
- */
-static mpfr_prec_t
-sum_raw (mp_limb_t *wp, mp_size_t ws, mpfr_prec_t wq, const mpfr_ptr *x,
- unsigned long n, mpfr_exp_t minexp, mpfr_exp_t maxexp,
- mp_limb_t *tp, mp_size_t ts, int logn, mpfr_prec_t prec,
- mpfr_exp_t *ep, mpfr_exp_t *minexpp, mpfr_exp_t *maxexpp)
-{
- MPFR_LOG_FUNC
- (("ws=%Pd ts=%Pd prec=%Pd", (mpfr_prec_t) ws, (mpfr_prec_t) ts, prec),
- ("", 0));
-
- /* The C code below requires prec >= 0 due to the use of unsigned
- integer arithmetic on it. Actually the computation makes sense
- only with prec >= 1 (otherwise one can't even know the sign of
- the result), hence the following assertion. */
- MPFR_ASSERTD (prec >= 1);
-
- /* Consistency check. */
- MPFR_ASSERTD (wq == (mpfr_prec_t) ws * GMP_NUMB_BITS);
-
- /* The following precondition together with prec >= 1 will imply:
- minexp - shiftq < maxexp2, as required by the algorithm. */
- MPFR_ASSERTD (wq >= logn + prec + 2);
-
- while (1)
- {
- mpfr_exp_t maxexp2 = MPFR_EXP_MIN;
- unsigned long i;
-
- MPFR_LOG_MSG (("sum_raw loop: "
- "maxexp=%" MPFR_EXP_FSPEC "d "
- "minexp=%" MPFR_EXP_FSPEC "d\n",
- (mpfr_eexp_t) maxexp, (mpfr_eexp_t) minexp));
-
- MPFR_ASSERTD (maxexp > minexp);
-
- for (i = 0; i < n; i++)
- if (! MPFR_IS_SINGULAR (x[i])) /* Step 1 (see sum_raw in sum.txt) */
- {
- mp_limb_t *dp, *vp;
- mp_size_t ds, vs, vds;
- mpfr_exp_t xe, vd;
- mpfr_prec_t xq;
- int tr;
-
- xe = MPFR_GET_EXP (x[i]);
- xq = MPFR_GET_PREC (x[i]);
-
- vp = MPFR_MANT (x[i]);
- vs = MPFR_PREC2LIMBS (xq);
- vd = xe - vs * GMP_NUMB_BITS - minexp;
- /* vd is the exponent of the least significant represented bit of
- x[i] (including the trailing bits, whose value is 0) minus the
- exponent of the least significant bit of the accumulator. To
- make the code simpler, we won't try to filter out the trailing
- bits of x[i]. */
-
- /* Steps 2, 3, 4 (see sum_raw in sum.txt) */
-
- if (vd < 0)
- {
- /* This covers the following cases:
- * [-+- accumulator ---]
- * [---|----- x[i] ------|--]
- * | [----- x[i] --|--]
- * | |[----- x[i] -----]
- * | | [----- x[i] -----]
- * maxexp minexp
- */
-
- /* Step 2 for subcase vd < 0 */
-
- if (xe <= minexp)
- {
- /* x[i] is entirely after the LSB of the accumulator,
- so that it will be ignored at this iteration. */
- if (xe > maxexp2)
- {
- maxexp2 = xe;
- /* And since the exponent of x[i] is valid... */
- MPFR_ASSERTD (maxexp2 >= MPFR_EMIN_MIN);
- }
- continue;
- }
-
- /* Step 3 for subcase vd < 0 */
-
- /* If some significant bits of x[i] are after the LSB of the
- accumulator, then maxexp2 will necessarily be minexp. */
- if (MPFR_LIKELY (xe - xq < minexp))
- maxexp2 = minexp;
-
- /* Step 4 for subcase vd < 0 */
-
- /* We need to ignore the least |vd| significant bits of x[i].
- First, let's ignore the least vds = |vd| / GMP_NUMB_BITS
- limbs. */
- vd = - vd;
- vds = vd / GMP_NUMB_BITS;
- vs -= vds;
- MPFR_ASSERTD (vs > 0); /* see xe <= minexp test above */
- vp += vds;
- vd -= vds * GMP_NUMB_BITS;
- MPFR_ASSERTD (vd >= 0 && vd < GMP_NUMB_BITS);
-
- if (xe > maxexp)
- {
- vs -= (xe - maxexp) / GMP_NUMB_BITS;
- MPFR_ASSERTD (vs > 0);
- tr = (xe - maxexp) % GMP_NUMB_BITS;
- }
- else
- tr = 0;
-
- if (vd != 0)
- {
- MPFR_ASSERTD (vs <= ts);
- mpn_rshift (tp, vp, vs, vd);
- vp = tp;
- tr += vd;
- if (tr >= GMP_NUMB_BITS)
- {
- vs--;
- tr -= GMP_NUMB_BITS;
- }
- MPFR_ASSERTD (vs >= 1);
- MPFR_ASSERTD (tr >= 0 && tr < GMP_NUMB_BITS);
- if (tr != 0)
- {
- tp[vs-1] &= MPFR_LIMB_MASK (GMP_NUMB_BITS - tr);
- tr = 0;
- }
- /* Truncation has now been taken into account. */
- MPFR_ASSERTD (tr == 0);
- }
-
- dp = wp;
- ds = ws;
- }
- else /* vd >= 0 */
- {
- /* This covers the following cases:
- * [-+- accumulator ---]
- * [- x[i] -] | |
- * [---|-- x[i] ------] |
- * [------|-- x[i] ---------]
- * | [- x[i] -] |
- * maxexp minexp
- */
-
- /* Steps 2 and 3 for subcase vd >= 0 */
-
- MPFR_ASSERTD (xe - xq >= minexp); /* see definition of vd */
-
- /* Step 4 for subcase vd >= 0 */
-
- /* We need to ignore the least vd significant bits
- of the accumulator. First, let's ignore the least
- vds = vd / GMP_NUMB_BITS limbs. -> (dp,ds) */
- vds = vd / GMP_NUMB_BITS;
- ds = ws - vds;
- if (ds <= 0)
- continue;
- dp = wp + vds;
- vd -= vds * GMP_NUMB_BITS;
- MPFR_ASSERTD (vd >= 0 && vd < GMP_NUMB_BITS);
-
- /* The low part of x[i] (to be determined) will have to be
- shifted vd bits to the left if vd != 0. */
-
- if (xe > maxexp)
- {
- vs -= (xe - maxexp) / GMP_NUMB_BITS;
- if (vs <= 0)
- continue;
- tr = (xe - maxexp) % GMP_NUMB_BITS;
- }
- else
- tr = 0;
-
- MPFR_ASSERTD (tr >= 0 && tr < GMP_NUMB_BITS && vs > 0);
-
- /* We need to consider the least significant vs limbs of x[i]
- except the most significant tr bits. */
-
- if (vd != 0)
- {
- mp_limb_t carry;
-
- MPFR_ASSERTD (vs <= ts);
- carry = mpn_lshift (tp, vp, vs, vd);
- tr -= vd;
- if (tr < 0)
- {
- tr += GMP_NUMB_BITS;
- MPFR_ASSERTD (vs + 1 <= ts);
- tp[vs++] = carry;
- }
- MPFR_ASSERTD (tr >= 0 && tr < GMP_NUMB_BITS);
- vp = tp;
- }
- } /* vd >= 0 */
-
- MPFR_ASSERTD (vs > 0 && vs <= ds);
-
- /* We can't truncate the most significant limb of the input
- (in case it hasn't been shifted to the temporary area).
- So, let's ignore it now. It will be taken into account
- via carry propagation after the addition. */
- if (tr != 0)
- vs--;
-
- /* Step 5 (see sum_raw in sum.txt) */
-
- if (MPFR_IS_POS (x[i]))
- {
- mp_limb_t carry;
-
- carry = vs > 0 ? mpn_add_n (dp, dp, vp, vs) : 0;
- MPFR_ASSERTD (carry <= 1);
- if (tr != 0)
- carry += vp[vs] & MPFR_LIMB_MASK (GMP_NUMB_BITS - tr);
- if (ds > vs)
- mpn_add_1 (dp + vs, dp + vs, ds - vs, carry);
- }
- else
- {
- mp_limb_t borrow;
-
- borrow = vs > 0 ? mpn_sub_n (dp, dp, vp, vs) : 0;
- MPFR_ASSERTD (borrow <= 1);
- if (tr != 0)
- borrow += vp[vs] & MPFR_LIMB_MASK (GMP_NUMB_BITS - tr);
- if (ds > vs)
- mpn_sub_1 (dp + vs, dp + vs, ds - vs, borrow);
- }
- }
-
- {
- mpfr_prec_t cancel; /* number of cancelled bits */
- mp_size_t wi; /* index in the accumulator */
- mp_limb_t a, b;
- int cnt;
-
- cancel = 0;
- wi = ws - 1;
- MPFR_ASSERTD (wi >= 0);
- a = wp[wi] >> (GMP_NUMB_BITS - 1) ? MPFR_LIMB_MAX : MPFR_LIMB_ZERO;
-
- while (wi >= 0)
- if ((b = wp[wi]) == a)
- {
- cancel += GMP_NUMB_BITS;
- wi--;
- }
- else
- {
- b ^= a;
- MPFR_ASSERTD (b != 0);
- count_leading_zeros (cnt, b);
- cancel += cnt;
- break;
- }
-
- if (wi >= 0 || a != MPFR_LIMB_ZERO) /* accumulator != 0 */
- {
- mpfr_exp_t e; /* exponent of the computed result */
- mpfr_exp_t err; /* exponent of the error bound */
-
- MPFR_LOG_MSG (("accumulator %s 0, cancel=%Pd\n",
- a != MPFR_LIMB_ZERO ? "<" : ">", cancel));
-
- MPFR_ASSERTD (cancel > 0);
- e = minexp + wq - cancel;
- MPFR_ASSERTD (e >= minexp);
- err = maxexp2 + logn; /* OK even if maxexp2 == MPFR_EXP_MIN */
-
- /* The absolute value of the truncated sum is in the binade
- [2^(e-1),2^e] (closed on both ends due to two's complement).
- The error is strictly less than 2^err (and is 0 if
- maxexp2 == MPFR_EXP_MIN). */
-
- /* This basically tests whether err <= e - prec without
- potential integer overflow (since prec >= 0)...
- Note that the maxexp2 == MPFR_EXP_MIN test is there just for
- the potential corner case e - prec < MPFR_EXP_MIN + logn.
- Such corner cases, involving specific huge-precision numbers,
- are probably not supported in many places in MPFR, but this
- test doesn't hurt... */
- if (maxexp2 == MPFR_EXP_MIN ||
- (err <= e && SAFE_DIFF (mpfr_uexp_t, e, err) >= prec))
- {
- MPFR_LOG_MSG (("(err=%" MPFR_EXP_FSPEC "d) <= (e=%"
- MPFR_EXP_FSPEC "d) - (prec=%Pd)\n",
- (mpfr_eexp_t) err, (mpfr_eexp_t) e, prec));
- /* To avoid tests or copies, we consider the only two cases
- that will occur in sum_aux. */
- MPFR_ASSERTD ((ep != NULL &&
- minexpp != NULL &&
- maxexpp != NULL) ||
- (ep == NULL &&
- minexpp == NULL &&
- maxexpp == NULL));
- if (ep != NULL)
- {
- *ep = e;
- *minexpp = minexp;
- *maxexpp = maxexp2;
- }
- MPFR_LOG_MSG (("return with minexp=%" MPFR_EXP_FSPEC
- "d maxexp2=%" MPFR_EXP_FSPEC "d%s\n",
- (mpfr_eexp_t) minexp, (mpfr_eexp_t) maxexp2,
- maxexp2 == MPFR_EXP_MIN ?
- " (MPFR_EXP_MIN)" : ""));
- return cancel;
- }
- else
- {
- mpfr_exp_t diffexp;
- mpfr_prec_t shiftq;
- mpfr_size_t shifts;
- int shiftc;
-
- MPFR_LOG_MSG (("e=%" MPFR_EXP_FSPEC "d err=%" MPFR_EXP_FSPEC
- "d maxexp2=%" MPFR_EXP_FSPEC "d%s\n",
- (mpfr_eexp_t) e, (mpfr_eexp_t) err,
- (mpfr_eexp_t) maxexp2,
- maxexp2 == MPFR_EXP_MIN ?
- " (MPFR_EXP_MIN)" : ""));
-
- diffexp = err - e;
- if (diffexp < 0)
- diffexp = 0;
- /* diffexp = max(0, err - e) */
-
- MPFR_LOG_MSG (("diffexp=%" MPFR_EXP_FSPEC "d\n",
- (mpfr_eexp_t) diffexp));
-
- MPFR_ASSERTD (diffexp < cancel - 2);
- shiftq = cancel - 2 - (mpfr_prec_t) diffexp;
- /* equivalent to: minexp + wq - 2 - max(e,err) */
- MPFR_ASSERTD (shiftq > 0);
- shifts = shiftq / GMP_NUMB_BITS;
- shiftc = shiftq % GMP_NUMB_BITS;
- MPFR_LOG_MSG (("shiftq = %Pd = %Pd * GMP_NUMB_BITS + %d\n",
- shiftq, (mpfr_prec_t) shifts, shiftc));
- if (MPFR_LIKELY (shiftc != 0))
- mpn_lshift (wp + shifts, wp, ws - shifts, shiftc);
- else
- mpn_copyd (wp + shifts, wp, ws - shifts);
- MPN_ZERO (wp, shifts);
- /* Compute minexp = minexp - shiftq safely. */
- SAFE_SUB (minexp, minexp, shiftq);
- MPFR_ASSERTD (minexp < maxexp2);
- }
- }
- else if (maxexp2 == MPFR_EXP_MIN)
- {
- MPFR_LOG_MSG (("accumulator = 0, maxexp2 = MPFR_EXP_MIN\n", 0));
- return 0;
- }
- else
- {
- MPFR_LOG_MSG (("accumulator = 0, reiterate\n", 0));
- /* Compute minexp = maxexp2 - (wq - (logn + 1)) safely. */
- SAFE_SUB (minexp, maxexp2, wq - (logn + 1));
- /* Note: the logn + 1 corresponds to cq in the main code. */
- }
- }
-
- maxexp = maxexp2;
- }
-}
-
-/**********************************************************************/
-
-/* Generic case: all the inputs are finite numbers,
- with at least 3 regular numbers. */
-static int
-sum_aux (mpfr_ptr sum, const mpfr_ptr *x, unsigned long n, mpfr_rnd_t rnd,
- mpfr_exp_t maxexp, unsigned long rn)
-{
- mp_limb_t *sump;
- mp_limb_t *tp; /* pointer to a temporary area */
- mp_limb_t *wp; /* pointer to the accumulator */
- mp_size_t ts; /* size of the temporary area, in limbs */
- mp_size_t ws; /* size of the accumulator, in limbs */
- mp_size_t zs; /* size of the TMD accumulator, in limbs */
- mpfr_prec_t wq; /* size of the accumulator, in bits */
- int logn; /* ceil(log2(rn)) */
- int cq;
- mpfr_prec_t sq;
- int inex;
- MPFR_TMP_DECL (marker);
-
- MPFR_LOG_FUNC
- (("n=%lu rnd=%d maxexp=%" MPFR_EXP_FSPEC "d rn=%lu",
- n, rnd, (mpfr_eexp_t) maxexp, rn),
- ("sum[%Pu]=%.*Rg", mpfr_get_prec (sum), mpfr_log_prec, sum));
-
- MPFR_ASSERTD (rn >= 3 && rn <= n);
-
- /* In practice, no integer overflow on the exponent. */
- MPFR_STAT_STATIC_ASSERT (MPFR_EXP_MAX - MPFR_EMAX_MAX >=
- sizeof (unsigned long) * CHAR_BIT);
-
- /* Set up some variables and the accumulator. */
-
- sump = MPFR_MANT (sum);
-
- /* rn is the number of regular inputs (the singular ones will be
- ignored). Compute logn = ceil(log2(rn)). */
- logn = MPFR_INT_CEIL_LOG2 (rn);
- MPFR_ASSERTD (logn >= 2);
-
- MPFR_LOG_MSG (("logn=%d maxexp=%" MPFR_EXP_FSPEC "d\n",
- logn, (mpfr_eexp_t) maxexp));
-
- sq = MPFR_GET_PREC (sum);
- cq = logn + 1;
-
- /* First determine the size of the accumulator.
- * cq + sq + logn + 2 >= logn + sq + 5, which will be used later.
- * The assertion wq - cq - sq >= 4 is another way to check that.
- */
- ws = MPFR_PREC2LIMBS (cq + sq + logn + 2);
- wq = (mpfr_prec_t) ws * GMP_NUMB_BITS;
- MPFR_ASSERTD (wq - cq - sq >= 4);
-
- /* TODO: timings, comparing with a larger zs. */
- zs = MPFR_PREC2LIMBS (wq - sq);
-
- MPFR_LOG_MSG (("cq=%d sq=%Pd logn=%d wq=%Pd\n", cq, sq, logn, wq));
-
- /* An input block will have up to wq - cq bits, and its shifted value
- (to be correctly aligned) may take GMP_NUMB_BITS - 1 additional bits. */
- ts = MPFR_PREC2LIMBS (wq - cq + GMP_NUMB_BITS - 1);
-
- MPFR_TMP_MARK (marker);
-
- /* Note: If the TMD does not occur, which should be the case for most
- sums, allocating zs limbs is not necessary. However, we choose to
- do this now (thus in all cases) because zs is very small, so that
- the difference on the memory footprint will not be noticeable.
- More precisely, zs is at most 2 in practice with the current code;
- we may want to increase it in order to avoid performance issues in
- some unlikely corner cases, but even in this case, it will remain
- small.
- One will have:
- [------ ts ------][------ ws ------][- zs -]
- The following would probably be better:
- [------ ts ------] [------ ws ------]
- [- zs -]
- i.e. where the TMD accumulator (partially or completely) takes
- some unneeded part of the temporary area in order to improve
- data locality. But
- * in low precision, data locality is regarded as ensured even
- with the actual choice;
- * in high precision, data locality for TMD resolution may not
- be that important.
- */
- tp = MPFR_TMP_LIMBS_ALLOC (ts + ws + zs);
- wp = tp + ts;
-
- MPN_ZERO (wp, ws); /* zero the accumulator */
-
- {
- mpfr_exp_t minexp; /* exponent of the LSB of the block for sum_raw */
- mpfr_prec_t cancel; /* number of cancelled bits */
- mpfr_exp_t e; /* temporary exponent of the result */
- mpfr_exp_t u; /* temporary exponent of the ulp (quantum) */
- mp_limb_t lbit; /* last bit (useful if even rounding) */
- mp_limb_t rbit; /* rounding bit (corrected in halfway case) */
- int corr; /* correction term (from -1 to 2) */
- int sd, sh; /* shift counts */
- mp_size_t sn; /* size of the output number */
- int tmd; /* 0: the TMD does not occur
- 1: the TMD occurs on a machine number
- 2: the TMD occurs on a midpoint */
- int neg; /* 0 if positive sum, 1 if negative */
- int sgn; /* +1 if positive sum, -1 if negative */
-
- MPFR_LOG_MSG (("Compute an approximation with sum_raw...\n", 0));
-
- /* Compute minexp = maxexp - (wq - cq) safely. */
- SAFE_SUB (minexp, maxexp, wq - cq);
- MPFR_ASSERTD (wq >= logn + sq + 5);
- cancel = sum_raw (wp, ws, wq, x, n, minexp, maxexp, tp, ts,
- logn, sq + 3, &e, &minexp, &maxexp);
-
- if (MPFR_UNLIKELY (cancel == 0))
- {
- /* The exact sum is zero. Since not all inputs are 0, the sum
- * is +0 except in MPFR_RNDD, as specified according to the
- * IEEE 754 rules for the addition of two numbers.
- */
- MPFR_SET_SIGN (sum, (rnd != MPFR_RNDD ?
- MPFR_SIGN_POS : MPFR_SIGN_NEG));
- MPFR_SET_ZERO (sum);
- MPFR_TMP_FREE (marker);
- MPFR_RET (0);
- }
-
- /* The absolute value of the truncated sum is in the binade
- [2^(e-1),2^e] (closed on both ends due to two's complement).
- The error is strictly less than 2^(maxexp + logn) (and is 0
- if maxexp == MPFR_EXP_MIN). */
-
- u = e - sq; /* e being the exponent, u is the ulp of the target */
-
- /* neg = 1 if negative, 0 if positive. */
- neg = wp[ws-1] >> (GMP_NUMB_BITS - 1);
- MPFR_ASSERTD (neg == 0 || neg == 1);
-
- sgn = neg ? -1 : 1;
- MPFR_ASSERTN (sgn == (neg ? MPFR_SIGN_NEG : MPFR_SIGN_POS));
-
- MPFR_LOG_MSG (("neg=%d sgn=%d cancel=%Pd"
- " e=%" MPFR_EXP_FSPEC "d"
- " u=%" MPFR_EXP_FSPEC "d"
- " maxexp=%" MPFR_EXP_FSPEC "d%s\n",
- neg, sgn, cancel, (mpfr_eexp_t) e, (mpfr_eexp_t) u,
- (mpfr_eexp_t) maxexp,
- maxexp == MPFR_EXP_MIN ? " (MPFR_EXP_MIN)" : ""));
-
- if (rnd == MPFR_RNDF)
- {
- /* Rounding the approximate value to nearest (ties don't matter) is
- sufficient. We need to get the rounding bit; the code is similar
- to a part from the generic code (here, corr = rbit). */
- if (MPFR_LIKELY (u > minexp))
- {
- mpfr_prec_t tq;
- mp_size_t wi;
- int td;
-
- tq = u - minexp;
- MPFR_ASSERTD (tq > 0); /* number of trailing bits */
- MPFR_LOG_MSG (("tq=%Pd\n", tq));
-
- wi = tq / GMP_NUMB_BITS;
- td = tq % GMP_NUMB_BITS;
- corr = td >= 1 ? ((wp[wi] >> (td - 1)) & MPFR_LIMB_ONE) :
- (MPFR_ASSERTD (wi >= 1), wp[wi-1] >> (GMP_NUMB_BITS - 1));
- }
- else
- corr = 0;
- inex = 0; /* not meaningful, but needs to have a value */
- }
- else /* rnd != MPFR_RNDF */
- {
- if (MPFR_LIKELY (u > minexp))
- {
- mpfr_prec_t tq;
- mp_size_t wi;
- int td;
-
- tq = u - minexp;
- MPFR_ASSERTD (tq > 0); /* number of trailing bits */
- MPFR_LOG_MSG (("tq=%Pd\n", tq));
-
- wi = tq / GMP_NUMB_BITS;
-
- /* Determine the rounding bit, which is represented. */
- td = tq % GMP_NUMB_BITS;
- lbit = (wp[wi] >> td) & MPFR_LIMB_ONE;
- rbit = td >= 1 ? ((wp[wi] >> (td - 1)) & MPFR_LIMB_ONE) :
- (MPFR_ASSERTD (wi >= 1), wp[wi-1] >> (GMP_NUMB_BITS - 1));
- MPFR_ASSERTD (rbit == 0 || rbit == 1);
- MPFR_LOG_MSG (("rbit=%d\n", (int) rbit));
-
- if (maxexp == MPFR_EXP_MIN)
- {
- /* The sum in the accumulator is exact. Determine inex:
- inex = 0 if the final sum is exact, else 1, i.e.
- inex = rounding bit || sticky bit. In round to nearest,
- also determine the rounding direction: obtained from
- the rounding bit possibly except in halfway cases.
- Halfway cases are rounded toward -inf iff the last bit
- of the truncated significand in two's complement is 0
- (in precision > 1, because the parity after rounding is
- the same in two's complement and sign + magnitude; in
- precision 1, one checks that the rule works for both
- positive (lbit == 1) and negative (lbit == 0) numbers,
- rounding halfway cases away from zero). */
- if (MPFR_LIKELY (rbit == 0 || (rnd == MPFR_RNDN && lbit == 0)))
- {
- /* We need to determine the sticky bit, either to set inex
- (if the rounding bit is 0) or to possibly "correct" rbit
- (round to nearest, halfway case rounded downward) from
- which the rounding direction will be determined. */
- MPFR_LOG_MSG (("Determine the sticky bit...\n", 0));
-
- inex = td >= 2 ? (wp[wi] & MPFR_LIMB_MASK (td - 1)) != 0
- : td == 0 ?
- (MPFR_ASSERTD (wi >= 1),
- (wp[--wi] & MPFR_LIMB_MASK (GMP_NUMB_BITS - 1)) != 0)
- : 0;
-
- if (!inex)
- {
- while (!inex && wi > 0)
- inex = wp[--wi] != 0;
- if (!inex && rbit != 0)
- {
- /* sticky bit = 0, rounding bit = 1,
- i.e. halfway case, which will be
- rounded downward (see earlier if). */
- MPFR_ASSERTD (rnd == MPFR_RNDN);
- inex = 1;
- rbit = 0; /* even rounding downward */
- MPFR_LOG_MSG (("Halfway case rounded downward;"
- " set inex=1 rbit=0\n", 0));
- }
- }
- }
- else
- inex = 1;
- tmd = 0; /* We can round correctly -> no TMD. */
- }
- else /* maxexp > MPFR_EXP_MIN */
- {
- mpfr_exp_t d;
- mp_limb_t limb, mask;
- int nbits;
-
- /* Since maxexp was set to either the exponent of a x[i] or
- to minexp... */
- MPFR_ASSERTD (maxexp >= MPFR_EMIN_MIN || maxexp == minexp);
-
- inex = 1; /* We do not know whether the sum is exact. */
-
- MPFR_ASSERTD (u <= MPFR_EMAX_MAX && u <= minexp + wq);
- d = u - (maxexp + logn); /* representable */
- MPFR_ASSERTD (d >= 3); /* due to prec = sq + 3 in sum_raw */
-
- /* Let's see whether the TMD occurs by looking at the d bits
- following the ulp bit, or the d-1 bits after the rounding
- bit. */
-
- /* First chunk after the rounding bit... It starts at:
- (wi,td-2) if td >= 2,
- (wi-1,td-2+GMP_NUMB_BITS) if td < 2. */
- if (td == 0)
- {
- MPFR_ASSERTD (wi >= 1);
- limb = wp[--wi];
- mask = MPFR_LIMB_MASK (GMP_NUMB_BITS - 1);
- nbits = GMP_NUMB_BITS;
- }
- else if (td == 1)
- {
- limb = wi >= 1 ? wp[--wi] : MPFR_LIMB_ZERO;
- mask = MPFR_LIMB_MAX;
- nbits = GMP_NUMB_BITS + 1;
- }
- else /* td >= 2 */
- {
- MPFR_ASSERTD (td >= 2);
- limb = wp[wi];
- mask = MPFR_LIMB_MASK (td - 1);
- nbits = td;
- }
-
- /* nbits: number of bits of the first chunk + 1
- (the +1 is for the rounding bit). */
-
- if (nbits > d)
- {
- /* Some low significant bits must be ignored. */
- limb >>= nbits - d;
- mask >>= nbits - d;
- d = 0;
- }
- else
- {
- d -= nbits;
- MPFR_ASSERTD (d >= 0);
- }
-
- limb &= mask;
- tmd =
- limb == MPFR_LIMB_ZERO ?
- (rbit == 0 ? 1 : rnd == MPFR_RNDN ? 2 : 0) :
- limb == mask ?
- (limb = MPFR_LIMB_MAX,
- rbit != 0 ? 1 : rnd == MPFR_RNDN ? 2 : 0) : 0;
-
- while (tmd != 0 && d != 0)
- {
- mp_limb_t limb2;
-
- MPFR_ASSERTD (d > 0);
- if (wi == 0)
- {
- /* The non-represented bits are 0's. */
- if (limb != MPFR_LIMB_ZERO)
- tmd = 0;
- break;
- }
- MPFR_ASSERTD (wi > 0);
- limb2 = wp[--wi];
- if (d < GMP_NUMB_BITS)
- {
- int c = GMP_NUMB_BITS - d;
- MPFR_ASSERTD (c > 0 && c < GMP_NUMB_BITS);
- if ((limb2 >> c) != (limb >> c))
- tmd = 0;
- break;
- }
- if (limb2 != limb)
- tmd = 0;
- d -= GMP_NUMB_BITS;
- }
- }
- }
- else /* u <= minexp */
- {
- /* The exact value of the accumulator will be copied.
- * The TMD occurs if and only if there are bits still
- * not taken into account, and if it occurs, this is
- * necessarily on a machine number (-> tmd = 1).
- */
- lbit = u == minexp ? wp[0] & MPFR_LIMB_ONE : 0;
- rbit = 0;
- inex = tmd = maxexp != MPFR_EXP_MIN;
- }
-
- MPFR_ASSERTD (rbit == 0 || rbit == 1);
-
- MPFR_LOG_MSG (("tmd=%d lbit=%d rbit=%d inex=%d neg=%d\n",
- tmd, (int) lbit, (int) rbit, inex, neg));
-
- /* Here, if the final sum is known to be exact, inex = 0, otherwise
- * inex = 1. We have a truncated significand, a trailing term t such
- * that 0 <= t < 1 ulp, and an error on the trailing term bounded by
- * t' in absolute value. Thus the error e on the truncated significand
- * satisfies -t' <= e < 1 ulp + t'. Thus one has 4 correction cases
- * denoted by a corr value between -1 and 2 depending on e, neg, rbit,
- * and the rounding mode:
- * -1: equivalent to nextbelow;
- * 0: the truncated significand is not corrected;
- * 1: add 1 ulp;
- * 2: add 1 ulp, then nextabove.
- * The nextbelow and nextabove are used here since there may be a
- * change of the binade.
- */
-
- if (tmd == 0) /* no TMD */
- {
- switch (rnd)
- {
- case MPFR_RNDD:
- corr = 0;
- break;
- case MPFR_RNDU:
- corr = inex;
- break;
- case MPFR_RNDZ:
- corr = inex && neg;
- break;
- case MPFR_RNDA:
- corr = inex && !neg;
- break;
- default:
- MPFR_ASSERTN (rnd == MPFR_RNDN);
- /* Note: for halfway cases (maxexp == MPFR_EXP_MIN) that are
- rounded downward, rbit has been changed to 0 so that corr
- is set correctly. */
- corr = rbit;
- }
- MPFR_ASSERTD (corr == 0 || corr == 1);
- if (inex &&
- corr == 0) /* two's complement significand decreased */
- inex = -1;
- }
- else /* tmd */
- {
- mpfr_exp_t minexp2;
- mpfr_prec_t cancel2;
- mpfr_exp_t err; /* exponent of the error bound */
- mp_size_t zz; /* nb of limbs to zero in the TMD accumulator */
- mp_limb_t *zp; /* pointer to the TMD accumulator */
- mpfr_prec_t zq; /* size of the TMD accumulator, in bits */
- int sst; /* sign of the secondary term */
-
- /* TMD case. Here we use a new variable minexp2, with the same
- meaning as minexp, as we want to keep the minexp value for
- the copy to the destination. */
-
- MPFR_ASSERTD (maxexp > MPFR_EXP_MIN);
- MPFR_ASSERTD (tmd == 1 || tmd == 2);
-
- /* TMD accumulator */
- zp = wp + ws;
- zq = (mpfr_prec_t) zs * GMP_NUMB_BITS;
-
- err = maxexp + logn;
-
- MPFR_LOG_MSG (("TMD with"
- " maxexp=%" MPFR_EXP_FSPEC "d"
- " err=%" MPFR_EXP_FSPEC "d"
- " zs=%Pd"
- " zq=%Pd\n",
- (mpfr_eexp_t) maxexp, (mpfr_eexp_t) err,
- (mpfr_prec_t) zs, zq));
-
- /* The d-1 bits from u-2 to u-d (= err) are identical. */
-
- if (err >= minexp)
- {
- mpfr_prec_t tq;
- mp_size_t wi;
- int td;
-
- /* Let's keep the last 2 over the d-1 identical bits and the
- following bits, i.e. the bits from err+1 to minexp. */
- tq = err - minexp + 2; /* tq = number of such bits */
- MPFR_LOG_MSG (("[TMD] tq=%Pd\n", tq));
- MPFR_ASSERTD (tq >= 2);
-
- wi = tq / GMP_NUMB_BITS;
- td = tq % GMP_NUMB_BITS;
-
- /* Note: The "else" (td == 0) branch below can be executed
- only if tq >= GMP_NUMB_BITS, which is possible only when
- logn is large enough. Indeed, if tq > logn + some constant,
- this means that the TMD did not occur.
- TODO: Find an upper bound on tq, and add a corresponding
- MPFR_ASSERTD assertion / hint. On some platforms, this
- branch might be dead code, and such information would
- allow the compiler to remove it.
- It seems that this branch is never tested (r12754). */
-
- if (td != 0)
- {
- wi++; /* number of words with represented bits */
- td = GMP_NUMB_BITS - td;
- zz = zs - wi;
- MPFR_ASSERTD (zz >= 0 && zz < zs);
- mpn_lshift (zp + zz, wp, wi, td);
- }
- else
- {
- MPFR_ASSERTD (wi > 0);
- zz = zs - wi;
- MPFR_ASSERTD (zz >= 0 && zz < zs);
- if (zz > 0)
- MPN_COPY (zp + zz, wp, wi);
- }
-
- /* Compute minexp2 = minexp - (zs * GMP_NUMB_BITS + td)
- safely. */
- SAFE_SUB (minexp2, minexp, zz * GMP_NUMB_BITS + td);
- MPFR_ASSERTD (minexp2 == err + 2 - zq);
- }
- else /* err < minexp */
- {
- /* At least one of the identical bits is not represented,
- meaning that it is 0 and all these bits are 0's. Thus
- the accumulator will be 0. The new minexp is determined
- from maxexp, with cq bits reserved to avoid an overflow
- (as in the early steps). */
- MPFR_LOG_MSG (("[TMD] err < minexp\n", 0));
- zz = zs;
-
- /* Compute minexp2 = maxexp - (zq - cq) safely. */
- SAFE_SUB (minexp2, maxexp, zq - cq);
- MPFR_ASSERTD (minexp2 == err + 1 - zq);
- }
-
- MPN_ZERO (zp, zz);
-
- /* We need to determine the sign sst of the secondary term.
- In sum_raw, since the truncated sum corresponding to this
- secondary term will be in [2^(e-1),2^e] and the error
- strictly less than 2^err, we can stop the iterations when
- e - err >= 1 (this bound is the 11th argument of sum_raw). */
- cancel2 = sum_raw (zp, zs, zq, x, n, minexp2, maxexp, tp, ts,
- logn, 1, NULL, NULL, NULL);
-
- if (cancel2 != 0)
- sst = MPFR_LIMB_MSB (zp[zs-1]) == 0 ? 1 : -1;
- else if (tmd == 1)
- sst = 0;
- else
- {
- /* For halfway cases, let's virtually eliminate them
- by setting a sst equivalent to a non-halfway case,
- which depends on the last bit of the pre-rounded
- result. */
- MPFR_ASSERTD (rnd == MPFR_RNDN && tmd == 2);
- sst = lbit != 0 ? 1 : -1;
- }
-
- MPFR_LOG_MSG (("[TMD] tmd=%d rbit=%d sst=%d\n",
- tmd, (int) rbit, sst));
-
- /* Do not consider the corrected sst for MPFR_COV_SET */
- MPFR_COV_SET (sum_tmd[(int) rnd][tmd-1][rbit]
- [cancel2 == 0 ? 1 : sst+1][neg][sq > MPFR_PREC_MIN]);
-
- inex =
- MPFR_IS_LIKE_RNDD (rnd, sgn) ? (sst ? -1 : 0) :
- MPFR_IS_LIKE_RNDU (rnd, sgn) ? (sst ? 1 : 0) :
- (MPFR_ASSERTD (rnd == MPFR_RNDN),
- tmd == 1 ? - sst : sst);
-
- if (tmd == 2 && sst == (rbit != 0 ? -1 : 1))
- corr = 1 - (int) rbit;
- else if (MPFR_IS_LIKE_RNDD (rnd, sgn) && sst == -1)
- corr = (int) rbit - 1;
- else if (MPFR_IS_LIKE_RNDU (rnd, sgn) && sst == +1)
- corr = (int) rbit + 1;
- else
- corr = (int) rbit;
- } /* tmd */
- } /* rnd != MPFR_RNDF */
-
- MPFR_LOG_MSG (("neg=%d corr=%d inex=%d\n", neg, corr, inex));
-
- /* Sign handling (-> absolute value and sign), together with
- rounding. The most common cases are corr = 0 and corr = 1
- as this is necessarily the case when the TMD did not occur. */
-
- MPFR_ASSERTD (corr >= -1 && corr <= 2);
-
- MPFR_SIGN (sum) = sgn;
-
- /* Let's copy/shift the bits [max(u,minexp),e) to the
- most significant part of the destination, and zero
- the least significant part (there can be one only if
- u < minexp). The trailing bits of the destination may
- contain garbage at this point. */
-
- sn = MPFR_PREC2LIMBS (sq);
- sd = (mpfr_prec_t) sn * GMP_NUMB_BITS - sq;
- sh = cancel % GMP_NUMB_BITS;
-
- MPFR_ASSERTD (sd >= 0 && sd < GMP_NUMB_BITS);
-
- if (MPFR_LIKELY (u > minexp))
- {
- mp_size_t wi;
-
- /* Recompute the initial value of wi. */
- wi = (u - minexp) / GMP_NUMB_BITS;
- if (MPFR_LIKELY (sh != 0))
- {
- mp_size_t fi;
-
- fi = (e - minexp) / GMP_NUMB_BITS - (sn - 1);
- MPFR_ASSERTD (fi == wi || fi == wi + 1);
- mpn_lshift (sump, wp + fi, sn, sh);
- if (fi != wi)
- sump[0] |= wp[wi] >> (GMP_NUMB_BITS - sh);
- }
- else
- {
- MPFR_ASSERTD ((mpfr_prec_t) (ws - (wi + sn)) * GMP_NUMB_BITS
- == cancel);
- MPN_COPY (sump, wp + wi, sn);
- }
- }
- else /* u <= minexp */
- {
- mp_size_t en;
-
- en = (e - minexp + (GMP_NUMB_BITS - 1)) / GMP_NUMB_BITS;
- if (MPFR_LIKELY (sh != 0))
- mpn_lshift (sump + sn - en, wp, en, sh);
- else if (MPFR_UNLIKELY (en > 0))
- MPN_COPY (sump + sn - en, wp, en);
- if (sn > en)
- MPN_ZERO (sump, sn - en);
- }
-
- /* Let's take the complement if the result is negative, and at
- the same time, do the rounding and zero the trailing bits.
- As this is valid only for precisions >= 2, there is special
- code for precision 1 first. */
-
- if (MPFR_UNLIKELY (sq == 1)) /* precision 1 */
- {
- sump[0] = MPFR_LIMB_HIGHBIT;
- e += neg ? 1 - corr : corr;
- }
- else if (neg) /* negative result with sq > 1 */
- {
- MPFR_ASSERTD (MPFR_LIMB_MSB (sump[sn-1]) == 0);
-
- /* abs(x + corr) = - (x + corr) = com(x) + (1 - corr) */
-
- /* We want to avoid separate mpn_com (or mpn_neg) and mpn_add_1
- (or mpn_sub_1) operations, as they could yield two loops in
- some particular cases involving a long sequence of 0's in
- the low significant bits (except the least significant bit,
- which doesn't matter). */
-
- if (corr <= 1)
- {
- mp_limb_t corr2;
-
- /* Here we can just do the correction operation on the
- least significant limb, then do either a mpn_com or
- a mpn_neg on the remaining limbs, depending on the
- carry (BTW, mpn_neg is just a mpn_com with an initial
- carry propagation: after some point, mpn_neg does a
- complement). */
-
- corr2 = (mp_limb_t) (1 - corr) << sd;
- /* Note: If corr = -1, this can overflow to corr2 = 0.
- This case is taken into account below. */
-
- sump[0] = (~ (sump[0] | MPFR_LIMB_MASK (sd))) + corr2;
-
- if (sump[0] < corr2 || (corr2 == 0 && corr < 0))
- {
- if (sn == 1 || ! mpn_neg (sump + 1, sump + 1, sn - 1))
- {
- /* Note: The | is important when sump[sn-1] is not 0
- (this can occur with sn = 1 and corr = -1). TODO:
- Add something to make sure that this is tested. */
- sump[sn-1] |= MPFR_LIMB_HIGHBIT;
- e++;
- }
- }
- else if (sn > 1)
- mpn_com (sump + 1, sump + 1, sn - 1);
- }
- else /* corr == 2 */
- {
- mp_limb_t corr2, c;
- mp_size_t i = 1;
-
- /* We want to compute com(x) - 1, but GMP doesn't have an
- operation for that. The fact is that a sequence of low
- significant bits 1 is invariant. Starting at the first
- low significant bit 0, we can do the complement with
- mpn_com. */
-
- corr2 = MPFR_LIMB_ONE << sd;
- c = ~ (sump[0] | MPFR_LIMB_MASK (sd));
- sump[0] = c - corr2;
-
- if (c == 0)
- {
- while (MPFR_ASSERTD (i < sn), sump[i] == MPFR_LIMB_MAX)
- i++;
- sump[i] = (~ sump[i]) - 1;
- i++;
- }
-
- if (i < sn)
- mpn_com (sump + i, sump + i, sn - i);
- else if (MPFR_UNLIKELY (MPFR_LIMB_MSB (sump[sn-1]) == 0))
- {
- /* Happens on 01111...111, whose complement is
- 10000...000, and com(x) - 1 is 01111...111. */
- sump[sn-1] |= MPFR_LIMB_HIGHBIT;
- e--;
- }
- }
- }
- else /* positive result with sq > 1 */
- {
- MPFR_ASSERTD (MPFR_LIMB_MSB (sump[sn-1]) != 0);
- sump[0] &= ~ MPFR_LIMB_MASK (sd);
-
- if (corr > 0)
- {
- mp_limb_t corr2, carry_out;
-
- corr2 = (mp_limb_t) corr << sd;
- /* If corr == 2 && sd == GMP_NUMB_BITS - 1, this overflows
- to corr2 = 0. This case is taken into account below. */
-
- carry_out = corr2 != 0 ? mpn_add_1 (sump, sump, sn, corr2) :
- (MPFR_ASSERTD (sn > 1),
- mpn_add_1 (sump + 1, sump + 1, sn - 1, MPFR_LIMB_ONE));
-
- MPFR_ASSERTD (sump[sn-1] >> (GMP_NUMB_BITS - 1) == !carry_out);
-
- if (MPFR_UNLIKELY (carry_out))
- {
- /* Note: The | is important when sump[sn-1] is not 0
- (this can occur with sn = 1 and corr = 2). TODO:
- Add something to make sure that this is tested. */
- sump[sn-1] |= MPFR_LIMB_HIGHBIT;
- e++;
- }
- }
-
- if (corr < 0)
- {
- mpn_sub_1 (sump, sump, sn, MPFR_LIMB_ONE << sd);
-
- if (MPFR_UNLIKELY (MPFR_LIMB_MSB (sump[sn-1]) == 0))
- {
- sump[sn-1] |= MPFR_LIMB_HIGHBIT;
- e--;
- }
- }
- }
-
- MPFR_ASSERTD (MPFR_LIMB_MSB (sump[sn-1]) != 0);
- MPFR_LOG_MSG (("Set exponent e=%" MPFR_EXP_FSPEC "d\n", (mpfr_eexp_t) e));
- /* e may be outside the current exponent range, but this will be checked
- with mpfr_check_range below. */
- MPFR_EXP (sum) = e;
- } /* main block */
-
- MPFR_TMP_FREE (marker);
- return mpfr_check_range (sum, inex, rnd);
-}
-
-/**********************************************************************/
-
-int
-mpfr_sum (mpfr_ptr sum, const mpfr_ptr *x, unsigned long n, mpfr_rnd_t rnd)
-{
- MPFR_LOG_FUNC
- (("n=%lu rnd=%d", n, rnd),
- ("sum[%Pu]=%.*Rg", mpfr_get_prec (sum), mpfr_log_prec, sum));
-
- if (MPFR_UNLIKELY (n <= 2))
- {
- if (n == 0)
- {
- MPFR_SET_ZERO (sum);
- MPFR_SET_POS (sum);
- MPFR_RET (0);
- }
- else if (n == 1)
- return mpfr_set (sum, x[0], rnd);
- else
- return mpfr_add (sum, x[0], x[1], rnd);
- }
- else
- {
- mpfr_exp_t maxexp = MPFR_EXP_MIN; /* max(Empty) */
- unsigned long i;
- unsigned long rn = 0; /* will be the number of regular inputs */
- /* sign of infinities and zeros (0: currently unknown) */
- int sign_inf = 0, sign_zero = 0;
-
- MPFR_LOG_MSG (("Check for special inputs (n = %lu >= 3)\n", n));
-
- for (i = 0; i < n; i++)
- {
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x[i])))
- {
- if (MPFR_IS_NAN (x[i]))
- {
- /* The current value x[i] is NaN. Then the sum is NaN. */
- nan:
- MPFR_SET_NAN (sum);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (x[i]))
- {
- /* The current value x[i] is an infinity.
- There are two cases:
- 1. This is the first infinity value (sign_inf == 0).
- Then set sign_inf to its sign, and go on.
- 2. All the infinities found until now have the same
- sign sign_inf. If this new infinity has a different
- sign, then return NaN immediately, else go on. */
- if (sign_inf == 0)
- sign_inf = MPFR_SIGN (x[i]);
- else if (MPFR_SIGN (x[i]) != sign_inf)
- goto nan;
- }
- else if (MPFR_UNLIKELY (rn == 0))
- {
- /* The current value x[i] is a zero. The code below matters
- only when all values found until now are zeros, otherwise
- it is harmless (the test rn == 0 above is just a minor
- optimization).
- Here we track the sign of the zero result when all inputs
- are zeros: if all zeros have the same sign, the result
- will have this sign, otherwise (i.e. if there is at least
- a zero of each sign), the sign of the zero result depends
- only on the rounding mode (note that this choice is
- sticky when new zeros are considered). */
- MPFR_ASSERTD (MPFR_IS_ZERO (x[i]));
- if (sign_zero == 0)
- sign_zero = MPFR_SIGN (x[i]);
- else if (MPFR_SIGN (x[i]) != sign_zero)
- sign_zero = rnd == MPFR_RNDD ? -1 : 1;
- }
- }
- else
- {
- /* The current value x[i] is a regular number. */
- mpfr_exp_t e = MPFR_GET_EXP (x[i]);
- if (e > maxexp)
- maxexp = e; /* maximum exponent found until now */
- rn++; /* current number of regular inputs */
- }
- }
-
- MPFR_LOG_MSG (("rn=%lu sign_inf=%d sign_zero=%d\n",
- rn, sign_inf, sign_zero));
-
- /* At this point the result cannot be NaN (this case has already
- been filtered out). */
-
- if (MPFR_UNLIKELY (sign_inf != 0))
- {
- /* At least one infinity, and all of them have the same sign
- sign_inf. The sum is the infinity of this sign. */
- MPFR_SET_INF (sum);
- MPFR_SET_SIGN (sum, sign_inf);
- MPFR_RET (0);
- }
-
- /* At this point, all the inputs are finite numbers. */
-
- if (MPFR_UNLIKELY (rn == 0))
- {
- /* All the numbers were zeros (and there is at least one).
- The sum is zero with sign sign_zero. */
- MPFR_ASSERTD (sign_zero != 0);
- MPFR_SET_ZERO (sum);
- MPFR_SET_SIGN (sum, sign_zero);
- MPFR_RET (0);
- }
-
- /* Optimize the case where there are only two regular numbers. */
- if (MPFR_UNLIKELY (rn <= 2))
- {
- unsigned long h = ULONG_MAX;
-
- for (i = 0; i < n; i++)
- if (! MPFR_IS_SINGULAR (x[i]))
- {
- if (rn == 1)
- return mpfr_set (sum, x[i], rnd);
- if (h != ULONG_MAX)
- return mpfr_add (sum, x[h], x[i], rnd);
- h = i;
- }
- MPFR_RET_NEVER_GO_HERE();
- }
-
- return sum_aux (sum, x, n, rnd, maxexp, rn);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/swap.c b/Build/source/libs/mpfr/mpfr-src/src/swap.c
deleted file mode 100644
index bd461d44059..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/swap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* mpfr_swap (U, V) -- Swap U and V.
-
-Copyright 2000-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Using memcpy is a few slower than swapping by hand. */
-
-void
-mpfr_swap (mpfr_ptr u, mpfr_ptr v)
-{
- mpfr_prec_t p1, p2;
- mpfr_sign_t s1, s2;
- mpfr_exp_t e1, e2;
- mp_limb_t *m1, *m2;
-
- p1 = MPFR_PREC(u);
- p2 = MPFR_PREC(v);
- MPFR_PREC(v) = p1;
- MPFR_PREC(u) = p2;
-
- s1 = MPFR_SIGN(u);
- s2 = MPFR_SIGN(v);
- MPFR_SIGN(v) = s1;
- MPFR_SIGN(u) = s2;
-
- e1 = MPFR_EXP(u);
- e2 = MPFR_EXP(v);
- MPFR_EXP(v) = e1;
- MPFR_EXP(u) = e2;
-
- m1 = MPFR_MANT(u);
- m2 = MPFR_MANT(v);
- MPFR_MANT(v) = m1;
- MPFR_MANT(u) = m2;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/tan.c b/Build/source/libs/mpfr/mpfr-src/src/tan.c
deleted file mode 100644
index ccdaa907a8b..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/tan.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* mpfr_tan -- tangent of a floating-point number
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* computes tan(x) = sign(x)*sqrt(1/cos(x)^2-1) */
-int
-mpfr_tan (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_prec_t precy, m;
- int inexact;
- mpfr_t s, c;
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_GROUP_DECL (group);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)))
- {
- if (MPFR_IS_NAN(x) || MPFR_IS_INF(x))
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
- else /* x is zero */
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(x));
- MPFR_SET_ZERO(y);
- MPFR_SET_SAME_SIGN(y, x);
- MPFR_RET(0);
- }
- }
-
- /* tan(x) = x + x^3/3 + ... so the error is < 2^(3*EXP(x)-1) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, x, -2 * MPFR_GET_EXP (x), 1, 1,
- rnd_mode, {});
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Compute initial precision */
- precy = MPFR_PREC (y);
- m = precy + MPFR_INT_CEIL_LOG2 (precy) + 13;
- MPFR_ASSERTD (m >= 2); /* needed for the error analysis in algorithms.tex */
-
- MPFR_GROUP_INIT_2 (group, m, s, c);
- MPFR_ZIV_INIT (loop, m);
- for (;;)
- {
- /* The only way to get an overflow is to get ~ Pi/2
- But the result will be ~ 2^Prec(y). */
- mpfr_sin_cos (s, c, x, MPFR_RNDN); /* err <= 1/2 ulp on s and c */
- mpfr_div (c, s, c, MPFR_RNDN); /* err <= 4 ulps */
- MPFR_ASSERTD (!MPFR_IS_SINGULAR (c));
- if (MPFR_LIKELY (MPFR_CAN_ROUND (c, m - 2, precy, rnd_mode)))
- break;
- MPFR_ZIV_NEXT (loop, m);
- MPFR_GROUP_REPREC_2 (group, m, s, c);
- }
- MPFR_ZIV_FREE (loop);
- inexact = mpfr_set (y, c, rnd_mode);
- MPFR_GROUP_CLEAR (group);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/tanh.c b/Build/source/libs/mpfr/mpfr-src/src/tanh.c
deleted file mode 100644
index 29117d7e6ef..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/tanh.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* mpfr_tanh -- hyperbolic tangent
-
-Copyright 2001-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_tanh (mpfr_ptr y, mpfr_srcptr xt , mpfr_rnd_t rnd_mode)
-{
- /****** Declaration ******/
- mpfr_t x;
- int inexact;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (xt), mpfr_log_prec, xt, rnd_mode),
- ("y[%Pu]=%.*Rg inexact=%d",
- mpfr_get_prec (y), mpfr_log_prec, y, inexact));
-
- /* Special value checking */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (xt)))
- {
- if (MPFR_IS_NAN (xt))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (xt))
- {
- /* tanh(inf) = 1 && tanh(-inf) = -1 */
- return mpfr_set_si (y, MPFR_INT_SIGN (xt), rnd_mode);
- }
- else /* tanh (0) = 0 and xt is zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO(xt));
- MPFR_SET_ZERO (y);
- MPFR_SET_SAME_SIGN (y, xt);
- MPFR_RET (0);
- }
- }
-
- /* tanh(x) = x - x^3/3 + ... so the error is < 2^(3*EXP(x)-1) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (y, xt, -2 * MPFR_GET_EXP (xt), 1, 0,
- rnd_mode, {});
-
- MPFR_TMP_INIT_ABS (x, xt);
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* General case */
- {
- /* Declaration of the intermediary variable */
- mpfr_t t, te;
- mpfr_exp_t d;
-
- /* Declaration of the size variable */
- mpfr_prec_t Ny = MPFR_PREC(y); /* target precision */
- mpfr_prec_t Nt; /* working precision */
- long int err; /* error */
- int sign = MPFR_SIGN (xt);
- MPFR_ZIV_DECL (loop);
- MPFR_GROUP_DECL (group);
-
- /* First check for BIG overflow of exp(2*x):
- For x > 0, exp(2*x) > 2^(2*x)
- If 2 ^(2*x) > 2^emax or x>emax/2, there is an overflow */
- if (MPFR_UNLIKELY (mpfr_cmp_si (x, __gmpfr_emax/2) >= 0)) {
- /* initialize of intermediary variables
- since 'set_one' label assumes the variables have been
- initialize */
- MPFR_GROUP_INIT_2 (group, MPFR_PREC_MIN, t, te);
- goto set_one;
- }
-
- /* Compute the precision of intermediary variable */
- /* The optimal number of bits: see algorithms.tex */
- Nt = Ny + MPFR_INT_CEIL_LOG2 (Ny) + 4;
- /* if x is small, there will be a cancellation in exp(2x)-1 */
- if (MPFR_GET_EXP (x) < 0)
- Nt += -MPFR_GET_EXP (x);
-
- /* The error analysis in algorithms.tex assumes that x is exactly
- representable with working precision Nt.
- FIXME: adapt the error analysis for the case Nt < PREC(x). */
- if (Nt < MPFR_PREC(x))
- Nt = MPFR_PREC(x);
-
- /* initialize of intermediary variable */
- MPFR_GROUP_INIT_2 (group, Nt, t, te);
-
- MPFR_ZIV_INIT (loop, Nt);
- for (;;)
- {
- /* tanh = (exp(2x)-1)/(exp(2x)+1) */
- inexact = mpfr_mul_2ui (te, x, 1, MPFR_RNDN); /* 2x */
- MPFR_ASSERTD(inexact == 0); /* see FIXME above */
- /* since x > 0, we can only have an overflow */
- mpfr_exp (te, te, MPFR_RNDN); /* exp(2x) */
- if (MPFR_UNLIKELY (MPFR_IS_INF (te)))
- {
- set_one:
- inexact = MPFR_FROM_SIGN_TO_INT (sign);
- mpfr_set4 (y, __gmpfr_one, MPFR_RNDN, sign);
- if (MPFR_IS_LIKE_RNDZ (rnd_mode, MPFR_IS_NEG_SIGN (sign)))
- {
- inexact = -inexact;
- mpfr_nexttozero (y);
- }
- break;
- }
- d = MPFR_GET_EXP (te); /* For Error calculation */
- mpfr_add_ui (t, te, 1, MPFR_RNDD); /* exp(2x) + 1 */
- mpfr_sub_ui (te, te, 1, MPFR_RNDU); /* exp(2x) - 1 */
- d = d - MPFR_GET_EXP (te);
- mpfr_div (t, te, t, MPFR_RNDN); /* (exp(2x)-1)/(exp(2x)+1) */
-
- /* Calculation of the error, see algorithms.tex; the current value
- of d is k in algorithms.tex. */
- d = MAX(3, d + 1); /* d = exponent in 2^(max(3,k+1)) */
- err = Nt - (d + 1);
-
- /* The inequality is the condition max(3,k+1) <= floor(p/2). */
- if (MPFR_LIKELY (d <= Nt / 2 &&
- MPFR_CAN_ROUND (t, err, Ny, rnd_mode)))
- {
- inexact = mpfr_set4 (y, t, rnd_mode, sign);
- break;
- }
-
- /* if t=1, we still can round since |sinh(x)| < 1 */
- if (MPFR_GET_EXP (t) == 1)
- goto set_one;
-
- /* Actualisation of the precision */
- MPFR_ZIV_NEXT (loop, Nt);
- MPFR_GROUP_REPREC_2 (group, Nt, t, te);
- }
- MPFR_ZIV_FREE (loop);
- MPFR_GROUP_CLEAR (group);
- }
- MPFR_SAVE_EXPO_FREE (expo);
- inexact = mpfr_check_range (y, inexact, rnd_mode);
-
- return inexact;
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/total_order.c b/Build/source/libs/mpfr/mpfr-src/src/total_order.c
deleted file mode 100644
index c0999f2d13c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/total_order.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* mpfr_total_order_p -- total order of two floating-point numbers
-
-Copyright 2018-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* follows IEEE 754-2008, Section 5.10 */
-int
-mpfr_total_order_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- if (MPFR_SIGN (x) != MPFR_SIGN (y))
- return MPFR_IS_POS (y);
-
- if (MPFR_IS_NAN (x))
- return MPFR_IS_NAN (y) || MPFR_IS_NEG (x);
-
- /* Now x is not NaN. */
- if (MPFR_IS_NAN (y))
- return MPFR_IS_POS (y); /* x < +NaN, x > -NaN */
-
- /* Now neither x nor y is NaN, and zeros of different sign have
- already been taken into account. */
- return mpfr_lessequal_p (x, y);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ubf.c b/Build/source/libs/mpfr/mpfr-src/src/ubf.c
deleted file mode 100644
index 8b3ba066b7c..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ubf.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Functions to work with unbounded floats (limited low-level interface).
-
-Copyright 2016-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* Note: In MPFR math functions, even if UBF code is not called first,
- we may still need to handle special values NaN and infinities here.
- Indeed, for MAXR * MAXR + (-inf), even though this is a special case,
- the computation will also generate an overflow due to MAXR * MAXR,
- so that UBF code will be called anyway (except if special cases are
- detected and handled separately, but for polynomial, this should not
- be needed). */
-
-/* Get the exponent of a regular MPFR number or UBF as a mpz_t, which is
- initialized by this function. The flags are not changed. */
-static void
-mpfr_init_get_zexp (mpz_ptr ez, mpfr_srcptr x)
-{
- mpz_init (ez);
-
- if (MPFR_IS_UBF (x))
- mpz_set (ez, MPFR_ZEXP (x));
- else
- {
- mpfr_exp_t ex = MPFR_GET_EXP (x);
-
-#if _MPFR_EXP_FORMAT <= 3
- /* mpfr_exp_t fits in a long */
- mpz_set_si (ez, ex);
-#else
- mp_limb_t e_limb[MPFR_EXP_LIMB_SIZE];
- mpfr_t e;
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_TMP_INIT1 (e_limb, e, sizeof (mpfr_exp_t) * CHAR_BIT);
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_DBGRES (inex = mpfr_set_exp_t (e, ex, MPFR_RNDN));
- MPFR_ASSERTD (inex == 0);
- MPFR_DBGRES (inex = mpfr_get_z (ez, e, MPFR_RNDN));
- MPFR_ASSERTD (inex == 0);
- MPFR_SAVE_EXPO_FREE (expo);
-#endif
- }
-}
-
-/* Exact product. The number a is assumed to have enough allocated memory,
- where the trailing bits are regarded as being part of the input numbers
- (no reallocation is attempted and no check is performed as MPFR_TMP_INIT
- could have been used). The arguments b and c may actually be UBF numbers
- (mpfr_srcptr can be seen a bit like void *, but is stronger).
- This function does not change the flags, except in case of NaN. */
-void
-mpfr_ubf_mul_exact (mpfr_ubf_ptr a, mpfr_srcptr b, mpfr_srcptr c)
-{
- MPFR_LOG_FUNC
- (("b[%Pu]=%.*Rg c[%Pu]=%.*Rg",
- mpfr_get_prec (b), mpfr_log_prec, b,
- mpfr_get_prec (c), mpfr_log_prec, c),
- ("a[%Pu]=%.*Rg",
- mpfr_get_prec (a), mpfr_log_prec, a));
-
- MPFR_ASSERTD ((mpfr_ptr) a != b);
- MPFR_ASSERTD ((mpfr_ptr) a != c);
- MPFR_SIGN (a) = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c));
-
- if (MPFR_ARE_SINGULAR (b, c))
- {
- if (MPFR_IS_NAN (b) || MPFR_IS_NAN (c))
- MPFR_SET_NAN (a);
- else if (MPFR_IS_INF (b))
- {
- if (MPFR_NOTZERO (c))
- MPFR_SET_INF (a);
- else
- MPFR_SET_NAN (a);
- }
- else if (MPFR_IS_INF (c))
- {
- if (!MPFR_IS_ZERO (b))
- MPFR_SET_INF (a);
- else
- MPFR_SET_NAN (a);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO(b) || MPFR_IS_ZERO(c));
- MPFR_SET_ZERO (a);
- }
- }
- else
- {
- mpfr_exp_t e;
- mp_size_t bn, cn;
- mpfr_limb_ptr ap;
- mp_limb_t u, v;
- int m;
-
- /* Note about the code below: For the choice of the precision of
- * the result a, one could choose PREC(b) + PREC(c), instead of
- * taking whole limbs into account, but in most cases where one
- * would gain one limb, one would need to copy the significand
- * instead of a no-op (see the mul.c code).
- * But in the case MPFR_LIMB_MSB (u) == 0, if the result fits in
- * an-1 limbs, one could actually do
- * mpn_rshift (ap, ap, k, GMP_NUMB_BITS - 1)
- * instead of
- * mpn_lshift (ap, ap, k, 1)
- * to gain one limb (and reduce the precision), replacing a shift
- * by another one. Would this be interesting?
- */
-
- bn = MPFR_LIMB_SIZE (b);
- cn = MPFR_LIMB_SIZE (c);
-
- ap = MPFR_MANT (a);
-
- if (bn == 1 && cn == 1)
- {
- umul_ppmm (ap[1], ap[0], MPFR_MANT(b)[0], MPFR_MANT(c)[0]);
- if (ap[1] & MPFR_LIMB_HIGHBIT)
- m = 0;
- else
- {
- ap[1] = (ap[1] << 1) | (ap[0] >> (GMP_NUMB_BITS - 1));
- ap[0] = ap[0] << 1;
- m = 1;
- }
- }
- else
- {
- u = (bn >= cn) ?
- mpn_mul (ap, MPFR_MANT (b), bn, MPFR_MANT (c), cn) :
- mpn_mul (ap, MPFR_MANT (c), cn, MPFR_MANT (b), bn);
- if (MPFR_LIMB_MSB (u) == 0)
- {
- m = 1;
- MPFR_DBGRES (v = mpn_lshift (ap, ap, bn + cn, 1));
- MPFR_ASSERTD (v == 0);
- }
- else
- m = 0;
- }
-
- if (! MPFR_IS_UBF (b) && ! MPFR_IS_UBF (c) &&
- (e = MPFR_GET_EXP (b) + MPFR_GET_EXP (c) - m,
- MPFR_EXP_IN_RANGE (e)))
- {
- MPFR_SET_EXP (a, e);
- }
- else
- {
- mpz_t be, ce;
-
- mpz_init (MPFR_ZEXP (a));
-
- /* This may involve copies of mpz_t, but exponents should not be
- very large integers anyway. */
- mpfr_init_get_zexp (be, b);
- mpfr_init_get_zexp (ce, c);
- mpz_add (MPFR_ZEXP (a), be, ce);
- mpz_clear (be);
- mpz_clear (ce);
- mpz_sub_ui (MPFR_ZEXP (a), MPFR_ZEXP (a), m);
- MPFR_SET_UBF (a);
- }
- }
-}
-
-/* Compare the exponents of two numbers, which can be either MPFR numbers
- or UBF numbers. If both numbers can be MPFR numbers, it is better to
- use the MPFR_UBF_EXP_LESS_P wrapper macro, which is optimized for this
- common case. */
-int
-mpfr_ubf_exp_less_p (mpfr_srcptr x, mpfr_srcptr y)
-{
- mpz_t xe, ye;
- int c;
-
- mpfr_init_get_zexp (xe, x);
- mpfr_init_get_zexp (ye, y);
- c = mpz_cmp (xe, ye) < 0;
- mpz_clear (xe);
- mpz_clear (ye);
- return c;
-}
-
-/* Convert an mpz_t to an mpfr_exp_t, saturated to
- the interval [MPFR_EXP_MIN,MPFR_EXP_MAX]. */
-mpfr_exp_t
-mpfr_ubf_zexp2exp (mpz_ptr ez)
-{
- mp_size_t n;
- mpfr_eexp_t e;
- mpfr_t d;
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- n = ABSIZ (ez); /* limb size of ez */
- if (n == 0)
- return 0;
-
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_init2 (d, n * GMP_NUMB_BITS);
- MPFR_DBGRES (inex = mpfr_set_z (d, ez, MPFR_RNDN));
- MPFR_ASSERTD (inex == 0);
- e = mpfr_get_exp_t (d, MPFR_RNDZ);
- mpfr_clear (d);
- MPFR_SAVE_EXPO_FREE (expo);
- if (MPFR_UNLIKELY (e < MPFR_EXP_MIN))
- return MPFR_EXP_MIN;
- if (MPFR_UNLIKELY (e > MPFR_EXP_MAX))
- return MPFR_EXP_MAX;
- return e;
-}
-
-/* Return the difference of the exponents of x and y, saturated to
- the interval [MPFR_EXP_MIN,MPFR_EXP_MAX]. */
-mpfr_exp_t
-mpfr_ubf_diff_exp (mpfr_srcptr x, mpfr_srcptr y)
-{
- mpz_t xe, ye;
- mpfr_exp_t e;
-
- mpfr_init_get_zexp (xe, x);
- mpfr_init_get_zexp (ye, y);
- mpz_sub (xe, xe, ye);
- mpz_clear (ye);
- e = mpfr_ubf_zexp2exp (xe);
- mpz_clear (xe);
- return e;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/uceil_exp2.c b/Build/source/libs/mpfr/mpfr-src/src/uceil_exp2.c
deleted file mode 100644
index ee61d14d767..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/uceil_exp2.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* __gmpfr_ceil_exp2 - returns y >= 2^d
-
-Copyright 1999-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* returns y >= 2^d, assuming that d <= 1024
- for d integer, returns exactly 2^d
-*/
-double
-__gmpfr_ceil_exp2 (double d)
-{
- long exp;
-#if _MPFR_IEEE_FLOATS
- union mpfr_ieee_double_extract x;
-#else
- struct {double d;} x;
-#endif
-
- MPFR_ASSERTN(d <= 1024.0);
- exp = (long) d;
- if (d != (double) exp)
- exp++;
- /* now exp = ceil(d) */
- x.d = 1.0;
-#if _MPFR_IEEE_FLOATS
- x.s.exp = exp <= -1022 ? 1 : 1023 + exp;
-#else
- if (exp >= 0)
- {
- while (exp != 0)
- {
- x.d *= 2.0;
- exp--;
- }
- }
- else
- {
- while (exp != 0)
- {
- x.d *= (1.0 / 2.0);
- exp++;
- }
- }
-#endif /* _MPFR_IEEE_FLOATS */
- return x.d;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/uceil_log2.c b/Build/source/libs/mpfr/mpfr-src/src/uceil_log2.c
deleted file mode 100644
index d82af18ff7d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/uceil_log2.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* __gmpfr_ceil_log2 - returns ceil(log(d)/log(2))
-
-Copyright 1999-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* returns ceil(log(d)/log(2)) if d > 0,
- -1023 if d = +0,
- and floor(log(-d)/log(2))+1 if d < 0
-*/
-long
-__gmpfr_ceil_log2 (double d)
-{
- long exp;
-#if _MPFR_IEEE_FLOATS
- union mpfr_ieee_double_extract x;
-
- x.d = d;
- /* The cast below is useless in theory, but let us not depend on the
- integer promotion rules (for instance, tcc is currently wrong). */
- exp = (long) x.s.exp - 1023;
- MPFR_ASSERTN (exp < 1023); /* fail on infinities */
- x.s.exp = 1023; /* value for 1 <= d < 2 */
- if (x.d != 1.0) /* d: not a power of two? */
- exp++;
- return exp;
-#else /* _MPFR_IEEE_FLOATS */
- double m;
-
- if (d < 0.0)
- return __gmpfr_floor_log2 (-d) + 1;
- else if (d == 0.0)
- return -1023;
- else if (d >= 1.0)
- {
- exp = 0;
- for (m = 1.0; m < d; m *= 2.0)
- exp++;
- }
- else
- {
- exp = 1;
- for (m = 1.0; m >= d; m *= 0.5)
- exp--;
- }
-#endif /* _MPFR_IEEE_FLOATS */
- return exp;
-}
-
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ufloor_log2.c b/Build/source/libs/mpfr/mpfr-src/src/ufloor_log2.c
deleted file mode 100644
index 6d3ee5f8f47..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ufloor_log2.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* __gmpfr_floor_log2 - returns floor(log(d)/log(2))
-
-Copyright 1999-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* returns floor(log2(d)) */
-long
-__gmpfr_floor_log2 (double d)
-{
- long exp;
-#if _MPFR_IEEE_FLOATS
- union mpfr_ieee_double_extract x;
-
- x.d = d;
- /* The cast below is useless in theory, but let us not depend on the
- integer promotion rules (for instance, tcc is currently wrong). */
- exp = (long) x.s.exp - 1023;
- MPFR_ASSERTN (exp < 1023); /* fail on infinities */
- return exp;
-#else /* _MPFR_IEEE_FLOATS */
- double m;
-
- MPFR_ASSERTD (d >= 0);
- if (d >= 1.0)
- {
- exp = -1;
- for (m = 1.0; m <= d; m *= 2.0)
- exp++;
- }
- else
- {
- exp = 0;
- for (m = 1.0; m > d; m *= 0.5)
- exp--;
- }
- return exp;
-#endif /* _MPFR_IEEE_FLOATS */
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ui_div.c b/Build/source/libs/mpfr/mpfr-src/src/ui_div.c
deleted file mode 100644
index 03629555e19..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ui_div.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* mpfr_ui_div -- divide a machine integer by a floating-point number
-
-Copyright 2000-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_ui_div (mpfr_ptr y, unsigned long int u, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- MPFR_LOG_FUNC
- (("u=%lu x[%Pu]=%.*Rg rnd=%d",
- u, mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg", mpfr_get_prec(y), mpfr_log_prec, y));
-
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)))
- {
- if (MPFR_IS_NAN(x))
- {
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF(x)) /* u/Inf = 0 */
- {
- MPFR_SET_ZERO(y);
- MPFR_SET_SAME_SIGN(y,x);
- MPFR_RET(0);
- }
- else /* u / 0 */
- {
- MPFR_ASSERTD(MPFR_IS_ZERO(x));
- if (u)
- {
- /* u > 0, so y = sign(x) * Inf */
- MPFR_SET_SAME_SIGN(y, x);
- MPFR_SET_INF(y);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- else
- {
- /* 0 / 0 */
- MPFR_SET_NAN(y);
- MPFR_RET_NAN;
- }
- }
- }
- else if (MPFR_LIKELY(u != 0))
- {
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Optimization note: Exponent save/restore operations may be
- removed if mpfr_div works even when uu is out-of-range. */
- MPFR_SAVE_EXPO_MARK (expo);
-
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- mpfr_t uu;
- mp_limb_t up[1];
- int cnt;
-
- MPFR_TMP_INIT1(up, uu, GMP_NUMB_BITS);
- MPFR_ASSERTN(u == (mp_limb_t) u);
- count_leading_zeros(cnt, (mp_limb_t) u);
- up[0] = (mp_limb_t) u << cnt;
-
- MPFR_SET_EXP (uu, GMP_NUMB_BITS - cnt);
- inex = mpfr_div (y, uu, x, rnd_mode);
- }
-#else
- {
- mpfr_t uu;
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- mpfr_set_ui (uu, u, MPFR_RNDZ);
- inex = mpfr_div (y, uu, x, rnd_mode);
- mpfr_clear (uu);
- }
-#endif
-
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd_mode);
- }
- else /* u = 0, and x != 0 */
- {
- MPFR_SET_ZERO(y); /* if u=0, then set y to 0 */
- MPFR_SET_SAME_SIGN(y, x); /* u considered as +0: sign(+0/x) = sign(x) */
- MPFR_RET(0);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ui_pow.c b/Build/source/libs/mpfr/mpfr-src/src/ui_pow.c
deleted file mode 100644
index 6d8930b784e..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ui_pow.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* mpfr_ui_pow -- power of n function n^x
-
-Copyright 2001-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_ui_pow (mpfr_ptr y, unsigned long int n, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- mpfr_t t;
- int inexact;
- mp_limb_t tmp_mant[(sizeof (n) - 1) / sizeof (mp_limb_t) + 1];
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_SAVE_EXPO_MARK (expo);
- MPFR_TMP_INIT1(tmp_mant, t, sizeof(n) * CHAR_BIT);
- inexact = mpfr_set_ui (t, n, MPFR_RNDN);
- MPFR_ASSERTD (inexact == 0);
- inexact = mpfr_pow (y, t, x, rnd_mode);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inexact, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ui_pow_ui.c b/Build/source/libs/mpfr/mpfr-src/src/ui_pow_ui.c
deleted file mode 100644
index 79b25bf5fb7..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ui_pow_ui.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* mpfr_ui_pow_ui -- compute the power between two machine integers
-
-Copyright 1999-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-int
-mpfr_ui_pow_ui (mpfr_ptr x, unsigned long int y, unsigned long int n,
- mpfr_rnd_t rnd)
-{
- mpfr_exp_t err;
- unsigned long m;
- mpfr_t res;
- mpfr_prec_t prec;
- int size_n;
- int inexact;
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (MPFR_UNLIKELY (n <= 1))
- {
- if (n == 1)
- return mpfr_set_ui (x, y, rnd); /* y^1 = y */
- else
- return mpfr_set_ui (x, 1, rnd); /* y^0 = 1 for any y */
- }
- else if (MPFR_UNLIKELY (y <= 1))
- {
- if (y == 1)
- return mpfr_set_ui (x, 1, rnd); /* 1^n = 1 for any n > 0 */
- else
- return mpfr_set_ui (x, 0, rnd); /* 0^n = 0 for any n > 0 */
- }
-
- for (size_n = 0, m = n; m; size_n++, m >>= 1);
-
- MPFR_SAVE_EXPO_MARK (expo);
- prec = MPFR_PREC (x) + 3 + size_n;
- mpfr_init2 (res, prec);
-
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- int i = size_n;
-
- inexact = mpfr_set_ui (res, y, MPFR_RNDU);
- err = 1;
- /* now 2^(i-1) <= n < 2^i: i=1+floor(log2(n)) */
- for (i -= 2; i >= 0; i--)
- {
- inexact |= mpfr_sqr (res, res, MPFR_RNDU);
- err++;
- if (n & (1UL << i))
- inexact |= mpfr_mul_ui (res, res, y, MPFR_RNDU);
- }
- /* since the loop is executed floor(log2(n)) times,
- we have err = 1+floor(log2(n)).
- Since prec >= MPFR_PREC(x) + 4 + floor(log2(n)), prec > err */
- err = prec - err;
-
- if (MPFR_LIKELY (inexact == 0
- || MPFR_CAN_ROUND (res, err, MPFR_PREC (x), rnd)))
- break;
-
- /* Actualisation of the precision */
- MPFR_ZIV_NEXT (loop, prec);
- mpfr_set_prec (res, prec);
- }
- MPFR_ZIV_FREE (loop);
-
- inexact = mpfr_set (x, res, rnd);
-
- mpfr_clear (res);
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (x, inexact, rnd);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/ui_sub.c b/Build/source/libs/mpfr/mpfr-src/src/ui_sub.c
deleted file mode 100644
index c0b8fadb664..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/ui_sub.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* mpfr_ui_sub -- subtract a floating-point number from an integer
-
-Copyright 2000-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_ui_sub (mpfr_ptr y, unsigned long int u, mpfr_srcptr x, mpfr_rnd_t rnd_mode)
-{
- MPFR_LOG_FUNC
- (("u=%lu x[%Pu]=%.*Rg rnd=%d",
- u, mpfr_get_prec(x), mpfr_log_prec, x, rnd_mode),
- ("y[%Pu]=%.*Rg", mpfr_get_prec(y), mpfr_log_prec, y));
-
- /* (unsigned long) 0 is assumed to be a real 0 (unsigned) */
- if (MPFR_UNLIKELY (u == 0))
- return mpfr_neg (y, x, rnd_mode);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
- {
- if (MPFR_IS_NAN (x))
- {
- MPFR_SET_NAN (y);
- MPFR_RET_NAN;
- }
- if (MPFR_IS_INF (x))
- {
- /* u - Inf = -Inf and u - -Inf = +Inf */
- MPFR_SET_INF (y);
- MPFR_SET_OPPOSITE_SIGN (y, x);
- MPFR_RET (0); /* +/-infinity is exact */
- }
- MPFR_ASSERTD (MPFR_IS_ZERO (x) && u != 0);
- /* Note: the fact that u != 0 is important due to signed zeros. */
- /* u - 0 = u */
- return mpfr_set_ui (y, u, rnd_mode);
- }
-
- /* Main code */
- {
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* Optimization note: Exponent save/restore operations may be
- removed if mpfr_sub works even when uu is out-of-range. */
- MPFR_SAVE_EXPO_MARK (expo);
-
-#ifdef MPFR_LONG_WITHIN_LIMB
- {
- mpfr_t uu;
- mp_limb_t up[1];
- int cnt;
-
- MPFR_TMP_INIT1 (up, uu, GMP_NUMB_BITS);
- /* So, u fits in a mp_limb_t, which justifies the casts below. */
- MPFR_ASSERTD (u != 0);
- count_leading_zeros (cnt, (mp_limb_t) u);
- up[0] = (mp_limb_t) u << cnt;
- MPFR_SET_EXP (uu, GMP_NUMB_BITS - cnt);
- inex = mpfr_sub (y, uu, x, rnd_mode);
- }
-#else
- {
- mpfr_t uu;
-
- mpfr_init2 (uu, sizeof (unsigned long) * CHAR_BIT);
- mpfr_set_ui (uu, u, MPFR_RNDZ);
- inex = mpfr_sub (y, uu, x, rnd_mode);
- mpfr_clear (uu);
- }
-#endif
-
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (y, inex, rnd_mode);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/urandom.c b/Build/source/libs/mpfr/mpfr-src/src/urandom.c
deleted file mode 100644
index 13a83b279c9..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/urandom.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* mpfr_urandom (rop, state, rnd_mode) -- Generate a uniform pseudorandom
- real number between 0 and 1 (exclusive) and round it to the precision of rop
- according to the given rounding mode.
-
-Copyright 2000-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-
-/* The mpfr_urandom() function is implemented in the following way,
- so that the exact number (the random value to be rounded) and the
- final status of the random generator do not depend on the current
- exponent range and on the rounding mode. However, they depend on
- the target precision: from the same state of the random generator,
- if the precision of the destination is changed, then the value may
- be completely different (and the state of the random generator is
- different too).
- 1. One determines the exponent exp: 0 with probability 1/2, -1 with
- probability 1/4, -2 with probability 1/8, etc.
- 2. One draws a 1-ulp interval ]a,b[ containing the exact result (the
- interval can be regarded as open since it has the same measure as
- the closed interval).
- One also draws the rounding bit. This is currently done with a
- separate call to mpfr_rand_raw(), but it should be better to draw
- the rounding bit as part of the significand; there is space for it
- since the MSB is always 1.
- 3. Rounding is done. For the directed rounding modes, the rounded value
- is uniquely determined. For rounding to nearest, ]a,m[ and ]m,b[,
- where m = (a+b)/2, have the same measure, so that one gets a or b
- with equal probabilities.
-*/
-
-int
-mpfr_urandom (mpfr_ptr rop, gmp_randstate_t rstate, mpfr_rnd_t rnd_mode)
-{
- mpfr_limb_ptr rp;
- mpfr_prec_t nbits;
- mp_size_t nlimbs;
- mp_size_t n;
- mpfr_exp_t exp;
- mp_limb_t rbit;
- int cnt;
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- /* We need to extend the exponent range in order to simplify
- the case where one rounds upward (we would not be able to
- use mpfr_nextabove() in the case emin = max). It could be
- partly reimplemented under a simpler form here, but it is
- better to make the code shorter and more readable. */
- MPFR_SAVE_EXPO_MARK (expo);
-
- rp = MPFR_MANT (rop);
- nbits = MPFR_PREC (rop);
- MPFR_SET_EXP (rop, 0);
- MPFR_SET_POS (rop);
- exp = 0;
-
- /* Step 1 (exponent). */
-#define DRAW_BITS 8 /* we draw DRAW_BITS at a time */
- MPFR_STAT_STATIC_ASSERT (DRAW_BITS <= GMP_NUMB_BITS);
- do
- {
- /* generate DRAW_BITS in rp[0] */
- mpfr_rand_raw (rp, rstate, DRAW_BITS);
- if (MPFR_UNLIKELY (rp[0] == 0))
- cnt = DRAW_BITS;
- else
- {
- count_leading_zeros (cnt, rp[0]);
- cnt -= GMP_NUMB_BITS - DRAW_BITS;
- }
- /* Any value of exp < MPFR_EMIN_MIN - 1 are equivalent. So, we can
- avoid a theoretical integer overflow in the following way. */
- if (MPFR_LIKELY (exp >= MPFR_EMIN_MIN - 1))
- exp -= cnt; /* no integer overflow */
- }
- while (cnt == DRAW_BITS);
- /* We do not want the random generator to depend on the ABI or on the
- exponent range. Therefore we do not use MPFR_EMIN_MIN or __gmpfr_emin
- in the stop condition. */
-
- /* Step 2 (significand): we need generate only nbits-1 bits, since the
- most significant bit is 1. */
- if (MPFR_UNLIKELY (nbits == 1))
- {
- rp[0] = MPFR_LIMB_HIGHBIT;
- }
- else
- {
- mpfr_rand_raw (rp, rstate, nbits - 1);
- nlimbs = MPFR_LIMB_SIZE (rop);
- n = nlimbs * GMP_NUMB_BITS - nbits;
- if (MPFR_LIKELY (n != 0)) /* this will put the low bits to zero */
- mpn_lshift (rp, rp, nlimbs, n);
- rp[nlimbs - 1] |= MPFR_LIMB_HIGHBIT;
- }
-
- /* Rounding bit */
- mpfr_rand_raw (&rbit, rstate, 1);
- MPFR_ASSERTD (rbit == 0 || rbit == 1);
-
- /* Step 3 (rounding). */
- if (rnd_mode == MPFR_RNDU || rnd_mode == MPFR_RNDA
- || (rnd_mode == MPFR_RNDN && rbit != 0))
- {
- mpfr_nextabove (rop);
- inex = +1;
- }
- else
- {
- inex = -1;
- }
-
- MPFR_EXP (rop) += exp; /* may be smaller than emin */
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (rop, inex, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/urandomb.c b/Build/source/libs/mpfr/mpfr-src/src/urandomb.c
deleted file mode 100644
index ee1b5b3c912..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/urandomb.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* mpfr_urandomb (rop, state, nbits) -- Generate a uniform pseudorandom
- real number between 0 (inclusive) and 1 (exclusive) of size NBITS,
- using STATE as the random state previously initialized by a call to
- gmp_randinit_lc_2exp_size().
-
-Copyright 2000-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/* generate nbits random bits into mp[], assuming mp was allocated to contain
- a sufficient number of limbs */
-void
-mpfr_rand_raw (mpfr_limb_ptr mp, gmp_randstate_t rstate,
- mpfr_prec_t nbits)
-{
- mpz_t z;
-
- MPFR_ASSERTN (nbits >= 1);
- /* Check for integer overflow (unless mp_bitcnt_t is signed,
- but according to the GMP manual, this shouldn't happen).
- Note: mp_bitcnt_t has been introduced in GMP 5.0.0. */
- MPFR_ASSERTN ((mp_bitcnt_t) -1 < 0 || nbits <= (mp_bitcnt_t) -1);
- mpz_init (z);
- mpz_urandomb (z, rstate, nbits);
- MPN_COPY(mp, PTR(z), MPFR_PREC2LIMBS (nbits));
- mpz_clear (z);
-}
-
-int
-mpfr_urandomb (mpfr_ptr rop, gmp_randstate_t rstate)
-{
- mpfr_limb_ptr rp;
- mpfr_prec_t nbits;
- mp_size_t nlimbs;
- mp_size_t k; /* number of high zero limbs */
- mpfr_exp_t exp;
- int cnt;
-
- rp = MPFR_MANT (rop);
- nbits = MPFR_PREC (rop);
- nlimbs = MPFR_LIMB_SIZE (rop);
- MPFR_SET_POS (rop);
- cnt = nlimbs * GMP_NUMB_BITS - nbits;
-
- /* Uniform non-normalized significand */
- /* generate exactly nbits so that the random generator stays in the same
- state, independent of the machine word size GMP_NUMB_BITS */
- mpfr_rand_raw (rp, rstate, nbits);
- if (MPFR_LIKELY (cnt != 0)) /* this will put the low bits to zero */
- mpn_lshift (rp, rp, nlimbs, cnt);
-
- /* Count the null significant limbs and remaining limbs */
- exp = 0;
- k = 0;
- while (nlimbs != 0 && rp[nlimbs - 1] == 0)
- {
- k ++;
- nlimbs --;
- exp -= GMP_NUMB_BITS;
- }
-
- if (MPFR_LIKELY (nlimbs != 0)) /* otherwise value is zero */
- {
- count_leading_zeros (cnt, rp[nlimbs - 1]);
- /* Normalization */
- exp -= cnt;
- if (MPFR_UNLIKELY (! MPFR_EXP_IN_RANGE (exp)))
- {
- /* If the exponent is not in the current exponent range, we
- choose to return a NaN as this is probably a user error.
- Indeed this can happen only if the exponent range has been
- reduced to a very small interval and/or the precision is
- huge (very unlikely). */
- MPFR_SET_NAN (rop);
- __gmpfr_flags |= MPFR_FLAGS_NAN; /* Can't use MPFR_RET_NAN */
- return 1;
- }
- MPFR_SET_EXP (rop, exp);
- if (cnt != 0)
- mpn_lshift (rp + k, rp, nlimbs, cnt);
- else if (k != 0)
- mpn_copyd (rp + k, rp, nlimbs);
- if (k != 0)
- MPN_ZERO (rp, k);
- }
- else
- MPFR_SET_ZERO (rop);
-
- return 0;
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/vasprintf.c b/Build/source/libs/mpfr/mpfr-src/src/vasprintf.c
deleted file mode 100644
index 6173f149c97..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/vasprintf.c
+++ /dev/null
@@ -1,2456 +0,0 @@
-/* mpfr_vasnprintf_aux -- helper function for the formatted output functions
- (printf functions family).
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* If the number of output characters is larger than INT_MAX, the
- ISO C99 / C11 standards are silent, but POSIX[*] requires the
- function to return a negative value and set errno to EOVERFLOW.
- [*] The Open Group Base Specifications Issue 7, 2018 edition
- IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
- http://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html
- This follows a defect report submitted in 2007 to austin-review-l.
- Even in case of such a failure (just because of the limitation on int),
- we try to support %n, %ln, %jn when possible. That's why the sizes (or
- lengths) are expressed using mpfr_intmax_t in the code below. */
-
-/* Notes about limitations on some platforms:
-
- Due to limitations from the C standard and GMP, if size_t < unsigned int
- (which is allowed by the C standard but unlikely to occur on any
- platform), the behavior is undefined for output that would reach
- SIZE_MAX = (size_t) -1 (if the result cannot be delivered, there should
- be an assertion failure, but this could not be tested).
-
- The stdarg(3) Linux man page says:
- On some systems, va_end contains a closing '}' matching a '{' in
- va_start, so that both macros must occur in the same function,
- and in a way that allows this.
- However, the only requirement from ISO C is that both macros must be
- invoked in the same function (MPFR uses va_copy instead of va_start,
- but the requirement is the same). Here, MPFR just follows ISO C.
-*/
-
-/* Needed due to the tests on HAVE_STDARG and MPFR_USE_MINI_GMP */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-/* The mpfr_printf-like functions are defined only if <stdarg.h> exists.
- Since they use mpf_t, they cannot be defined with mini-gmp. */
-#if defined(HAVE_STDARG) && !defined(MPFR_USE_MINI_GMP)
-
-#include <stdarg.h>
-
-#ifndef HAVE_VA_COPY
-# ifdef HAVE___VA_COPY
-# define va_copy(dst,src) __va_copy(dst, src)
-# else
-/* autoconf manual advocates this fallback.
- This is also the solution chosen by gmp */
-# define va_copy(dst,src) \
- do { memcpy(&(dst), &(src), sizeof(va_list)); } while (0)
-# endif /* HAVE___VA_COPY */
-#endif /* HAVE_VA_COPY */
-
-#ifdef HAVE_WCHAR_H
-#include <wchar.h>
-#endif
-
-#if defined (__cplusplus)
-#include <cstddef>
-#else
-#include <stddef.h> /* for ptrdiff_t */
-#endif
-
-#include <errno.h>
-
-#define MPFR_NEED_LONGLONG_H
-#define MPFR_NEED_INTMAX_H
-#include "mpfr-impl.h"
-
-/* Define a length modifier corresponding to mpfr_prec_t.
- We use literal string instead of literal character so as to permit future
- extension to long long int ("ll"). */
-#if _MPFR_PREC_FORMAT == 1
-#define MPFR_PREC_FORMAT_TYPE "h"
-#define MPFR_PREC_FORMAT_SIZE 1
-#elif _MPFR_PREC_FORMAT == 2
-#define MPFR_PREC_FORMAT_TYPE ""
-#define MPFR_PREC_FORMAT_SIZE 0
-#elif _MPFR_PREC_FORMAT == 3
-#define MPFR_PREC_FORMAT_TYPE "l"
-#define MPFR_PREC_FORMAT_SIZE 1
-#else
-#error "mpfr_prec_t size not supported"
-#endif
-
-/* Output for special values defined in the C99 standard */
-#define MPFR_NAN_STRING_LC "nan"
-#define MPFR_NAN_STRING_UC "NAN"
-#define MPFR_NAN_STRING_LENGTH 3
-#define MPFR_INF_STRING_LC "inf"
-#define MPFR_INF_STRING_UC "INF"
-#define MPFR_INF_STRING_LENGTH 3
-
-#define DEFAULT_DECIMAL_PREC 6
-
-/* The implicit \0 is useless, but we do not write num_to_text[16]
- otherwise g++ complains. */
-static const char num_to_text[] = "0123456789abcdef";
-
-/* some macro and functions for parsing format string */
-
-/* Read an integer var of type mpfr_intmax_t. In case of overflow, set
- overflow to 1.
- Note: Since mpfr_intmax_t = int is theoretically possible, all values
- of var are potentially valid values (via '*'). Hence the need of an
- overflow flag instead of a special value that would indicate overflow.
- Saturating would not be OK either as the maximum value could be
- meaningful with %jn and/or in the case mpfr_intmax_t = int, for
- MPFR_PREC_ARG.
-*/
-#define READ_INT(ap, format, var) \
- do { \
- MPFR_ASSERTD ((var) == 0); \
- if (*(format) == '*') \
- { \
- (var) = va_arg ((ap), int); \
- ++(format); \
- } \
- else \
- for ( ; *(format) >= '0' && *(format) <= '9' ; ++(format)) \
- if (!(overflow)) \
- { \
- if ((var) > MPFR_INTMAX_MAX / 10) \
- (overflow) = 1; \
- else \
- { \
- int _i; \
- (var) *= 10; \
- _i = *(format) - '0'; \
- MPFR_ASSERTN (_i >= 0 && _i <= 9); \
- if ((var) > MPFR_INTMAX_MAX - _i) \
- (overflow) = 1; \
- else \
- (var) += _i; \
- } \
- } \
- } while (0)
-
-/* arg_t contains all the types described by the 'type' field of the
- format string */
-enum arg_t
- {
- NONE,
- CHAR_ARG,
- SHORT_ARG,
- LONG_ARG,
- LONG_LONG_ARG,
- INTMAX_ARG,
- SIZE_ARG,
- PTRDIFF_ARG,
- LONG_DOUBLE_ARG,
- MPF_ARG,
- MPQ_ARG,
- MP_LIMB_ARG,
- MP_LIMB_ARRAY_ARG,
- MPZ_ARG,
- MPFR_PREC_ARG,
- MPFR_ARG,
- UNSUPPORTED
- };
-
-/* Each conversion specification of the format string will be translated in a
- printf_spec structure by the parser.
- This structure is adapted from the GNU libc one. */
-struct printf_spec
-{
- unsigned int alt:1; /* # flag */
- unsigned int space:1; /* Space flag */
- unsigned int left:1; /* - flag */
- unsigned int showsign:1; /* + flag */
- unsigned int group:1; /* ' flag */
-
- mpfr_intmax_t width; /* Width */
- mpfr_intmax_t prec; /* Precision, or negative if omitted */
- size_t size; /* Wanted size (0 iff snprintf with size=0) */
-
- enum arg_t arg_type; /* Type of argument */
- mpfr_rnd_t rnd_mode; /* Rounding mode */
- char spec; /* Conversion specifier */
-
- char pad; /* Padding character */
-};
-
-static void
-specinfo_init (struct printf_spec *specinfo)
-{
- specinfo->alt = 0;
- specinfo->space = 0;
- specinfo->left = 0;
- specinfo->showsign = 0;
- specinfo->group = 0;
- specinfo->width = 0;
- specinfo->prec = 0;
- specinfo->size = 1;
- specinfo->arg_type = NONE;
- specinfo->rnd_mode = MPFR_RNDN;
- specinfo->spec = '\0';
- specinfo->pad = ' ';
-}
-
-#define FLOATING_POINT_ARG_TYPE(at) \
- ((at) == MPFR_ARG || (at) == MPF_ARG || (at) == LONG_DOUBLE_ARG)
-
-#define INTEGER_LIKE_ARG_TYPE(at) \
- ((at) == SHORT_ARG || (at) == LONG_ARG || (at) == LONG_LONG_ARG \
- || (at) == INTMAX_ARG || (at) == MPFR_PREC_ARG || (at) == MPZ_ARG \
- || (at) == MPQ_ARG || (at) == MP_LIMB_ARG || (at) == MP_LIMB_ARRAY_ARG \
- || (at) == CHAR_ARG || (at) == SIZE_ARG || (at) == PTRDIFF_ARG)
-
-static int
-specinfo_is_valid (struct printf_spec spec)
-{
- switch (spec.spec)
- {
- case 'n':
- return -1;
-
- case 'a': case 'A':
- case 'e': case 'E':
- case 'f': case 'F':
- case 'g': case 'G':
- return (spec.arg_type == NONE
- || FLOATING_POINT_ARG_TYPE (spec.arg_type));
-
- case 'b':
- return spec.arg_type == MPFR_ARG;
-
- case 'd': case 'i':
- case 'u': case 'o':
- case 'x': case 'X':
- return (spec.arg_type == NONE
- || INTEGER_LIKE_ARG_TYPE (spec.arg_type));
-
- case 'c':
- case 's':
- return (spec.arg_type == NONE || spec.arg_type == LONG_ARG);
-
- case 'p':
- return spec.arg_type == NONE;
-
- default:
- return 0;
- }
-}
-
-/* Note: additional flags should be added to the MPFR_PREC_ARG code
- for gmp_asprintf (when supported). */
-MPFR_RETURNS_NONNULL static const char *
-parse_flags (const char *format, struct printf_spec *specinfo)
-{
- while (*format)
- {
- switch (*format)
- {
- case '0':
- specinfo->pad = '0';
- ++format;
- break;
- case '#':
- specinfo->alt = 1;
- ++format;
- break;
- case '+':
- specinfo->showsign = 1;
- ++format;
- break;
- case ' ':
- specinfo->space = 1;
- ++format;
- break;
- case '-':
- specinfo->left = 1;
- ++format;
- break;
- case '\'':
- /* Single UNIX Specification for thousand separator */
- specinfo->group = 1;
- ++format;
- break;
- default:
- return format;
- }
- }
- return format;
-}
-
-MPFR_RETURNS_NONNULL static const char *
-parse_arg_type (const char *format, struct printf_spec *specinfo)
-{
- switch (*format)
- {
- case '\0':
- break;
- case 'h':
- if (*++format == 'h')
- {
- ++format;
- specinfo->arg_type = CHAR_ARG;
- }
- else
- specinfo->arg_type = SHORT_ARG;
- break;
- case 'l':
- if (*++format == 'l')
- {
- ++format;
-#if defined (HAVE_LONG_LONG)
- specinfo->arg_type = LONG_LONG_ARG;
-#else
- specinfo->arg_type = UNSUPPORTED;
-#endif
- break;
- }
- else
- {
- specinfo->arg_type = LONG_ARG;
- break;
- }
- case 'j':
- ++format;
-#if defined(_MPFR_H_HAVE_INTMAX_T)
- specinfo->arg_type = INTMAX_ARG;
-#else
- specinfo->arg_type = UNSUPPORTED;
-#endif
- break;
- case 'z':
- ++format;
- specinfo->arg_type = SIZE_ARG;
- break;
- case 't':
- ++format;
- specinfo->arg_type = PTRDIFF_ARG;
- break;
- case 'L':
- ++format;
- specinfo->arg_type = LONG_DOUBLE_ARG;
- break;
- case 'F':
- ++format;
- specinfo->arg_type = MPF_ARG;
- break;
- case 'Q':
- ++format;
- specinfo->arg_type = MPQ_ARG;
- break;
- case 'M':
- ++format;
- /* The 'M' specifier was added in gmp 4.2.0 */
- specinfo->arg_type = MP_LIMB_ARG;
- break;
- case 'N':
- ++format;
- specinfo->arg_type = MP_LIMB_ARRAY_ARG;
- break;
- case 'Z':
- ++format;
- specinfo->arg_type = MPZ_ARG;
- break;
-
- /* mpfr specific specifiers */
- case 'P':
- ++format;
- specinfo->arg_type = MPFR_PREC_ARG;
- break;
- case 'R':
- ++format;
- specinfo->arg_type = MPFR_ARG;
- }
- return format;
-}
-
-
-/* some macros and functions filling the buffer */
-
-/* CONSUME_VA_ARG removes from va_list AP the type expected by SPECINFO */
-
-/* With a C++ compiler wchar_t and enumeration in va_list are converted to
- integer type : int, unsigned int, long or unsigned long (unfortunately,
- this is implementation dependent).
- We follow gmp which assumes in print/doprnt.c that wchar_t is converted
- to int (because wchar_t <= int).
- For wint_t, we assume that the case WINT_MAX < INT_MAX yields an
- integer promotion. */
-#ifdef HAVE_WCHAR_H
-#if defined(WINT_MAX) && WINT_MAX < INT_MAX
-typedef int mpfr_va_wint; /* integer promotion */
-#else
-typedef wint_t mpfr_va_wint;
-#endif
-#define CASE_LONG_ARG(specinfo, ap) \
- case LONG_ARG: \
- if ((specinfo).spec == 'd' || (specinfo).spec == 'i' \
- || (specinfo).spec == 'o' || (specinfo).spec == 'u' \
- || (specinfo).spec == 'x' || (specinfo).spec == 'X') \
- (void) va_arg ((ap), long); \
- else if ((specinfo).spec == 'c') \
- (void) va_arg ((ap), mpfr_va_wint); \
- else if ((specinfo).spec == 's') \
- (void) va_arg ((ap), int); /* we assume integer promotion */ \
- break;
-#else
-#define CASE_LONG_ARG(specinfo, ap) \
- case LONG_ARG: \
- (void) va_arg ((ap), long); \
- break;
-#endif
-
-#if defined(_MPFR_H_HAVE_INTMAX_T)
-#define CASE_INTMAX_ARG(specinfo, ap) \
- case INTMAX_ARG: \
- (void) va_arg ((ap), intmax_t); \
- break;
-#else
-#define CASE_INTMAX_ARG(specinfo, ap)
-#endif
-
-#ifdef HAVE_LONG_LONG
-#define CASE_LONG_LONG_ARG(specinfo, ap) \
- case LONG_LONG_ARG: \
- (void) va_arg ((ap), long long); \
- break;
-#else
-#define CASE_LONG_LONG_ARG(specinfo, ap)
-#endif
-
-/* Note: (specinfo).width may be incorrect in case of overflow,
- but it is not used by CONSUME_VA_ARG. */
-#define CONSUME_VA_ARG(specinfo, ap) \
- do { \
- switch ((specinfo).arg_type) \
- { \
- case CHAR_ARG: \
- case SHORT_ARG: \
- (void) va_arg ((ap), int); \
- break; \
- CASE_LONG_ARG (specinfo, ap) \
- CASE_LONG_LONG_ARG (specinfo, ap) \
- CASE_INTMAX_ARG (specinfo, ap) \
- case SIZE_ARG: \
- (void) va_arg ((ap), size_t); \
- break; \
- case PTRDIFF_ARG: \
- (void) va_arg ((ap), ptrdiff_t); \
- break; \
- case LONG_DOUBLE_ARG: \
- (void) va_arg ((ap), long double); \
- break; \
- case MPF_ARG: \
- (void) va_arg ((ap), mpf_srcptr); \
- break; \
- case MPQ_ARG: \
- (void) va_arg ((ap), mpq_srcptr); \
- break; \
- case MP_LIMB_ARG: \
- (void) va_arg ((ap), mp_limb_t); \
- break; \
- case MP_LIMB_ARRAY_ARG: \
- (void) va_arg ((ap), mpfr_limb_ptr); \
- (void) va_arg ((ap), mp_size_t); \
- break; \
- case MPZ_ARG: \
- (void) va_arg ((ap), mpz_srcptr); \
- break; \
- default: \
- switch ((specinfo).spec) \
- { \
- case 'd': \
- case 'i': \
- case 'o': \
- case 'u': \
- case 'x': \
- case 'X': \
- case 'c': \
- (void) va_arg ((ap), int); \
- break; \
- case 'f': \
- case 'F': \
- case 'e': \
- case 'E': \
- case 'g': \
- case 'G': \
- case 'a': \
- case 'A': \
- (void) va_arg ((ap), double); \
- break; \
- case 's': \
- (void) va_arg ((ap), char *); \
- break; \
- case 'p': \
- (void) va_arg ((ap), void *); \
- } \
- } \
- } while (0)
-
-/* Process the format part which does not deal with mpfr types,
- Jump to external label 'error' if gmp_asprintf return -1.
- Note: start and end are pointers to the format string, so that
- size_t is the best type to express the difference.
- FIXME: If buf.size = 0 or size != 0, gmp_vsnprintf should be called
- instead of gmp_vasprintf, outputting data directly to the buffer
- when applicable.
-*/
-#define FLUSH(flag, start, end, ap, buf_ptr) \
- do { \
- const size_t n = (end) - (start); \
- if ((flag)) \
- /* previous specifiers are understood by gmp_printf */ \
- { \
- MPFR_TMP_DECL (marker); \
- char *fmt_copy, *s; \
- int length; \
- \
- MPFR_TMP_MARK (marker); \
- fmt_copy = (char *) MPFR_TMP_ALLOC (n + 1); \
- strncpy (fmt_copy, (start), n); \
- fmt_copy[n] = '\0'; \
- length = gmp_vasprintf (&s, fmt_copy, (ap)); \
- if (length < 0) \
- { \
- MPFR_TMP_FREE (marker); \
- goto error; \
- } \
- buffer_cat ((buf_ptr), s, length); \
- mpfr_free_str (s); \
- (flag) = 0; \
- MPFR_TMP_FREE (marker); \
- } \
- else if ((start) != (end)) \
- /* no conversion specification, just simple characters */ \
- buffer_cat ((buf_ptr), (start), n); \
- } while (0)
-
-/* Note: in case some form of %n is used in the format string,
- we may need the maximum signed integer type for len. */
-struct string_buffer
-{
- char *start; /* beginning of the buffer */
- char *curr; /* null terminating character */
- size_t size; /* buffer capacity */
- mpfr_intmax_t len; /* string length or -1 if overflow */
-};
-
-static void
-buffer_init (struct string_buffer *b, size_t s)
-{
- if (s != 0)
- {
- b->start = (char *) mpfr_allocate_func (s);
- b->start[0] = '\0';
- b->curr = b->start;
- }
- b->size = s;
- b->len = 0;
-}
-
-/* Increase the len field of the buffer. Return non-zero iff overflow. */
-static int
-buffer_incr_len (struct string_buffer *b, mpfr_intmax_t len)
-{
- if (b->len == -1)
- return 1;
- else
- {
- /* We need to take mpfr_uintmax_t as the type must be as large
- as both size_t (which is unsigned) and mpfr_intmax_t (which
- is used for the 'n' format specifier). */
- mpfr_uintmax_t newlen = (mpfr_uintmax_t) b->len + len;
-
- /* mpfr_uintmax_t is unsigned, thus the above is valid, but one
- has newlen < len in case of overflow. */
-
- if (MPFR_UNLIKELY (newlen < len || newlen > MPFR_INTMAX_MAX))
- {
- MPFR_LOG_MSG (("Overflow\n", 0));
- b->len = -1;
- return 1;
- }
- else
- {
- b->len = newlen;
- return 0;
- }
- }
-}
-
-/* Increase buffer size by a number of character being the least multiple of
- 4096 greater than len+1. */
-static void
-buffer_widen (struct string_buffer *b, size_t len)
-{
- const size_t pos = b->curr - b->start;
- const size_t n = 0x1000 + (len & ~((size_t) 0xfff));
-
- /* There are currently limitations here. We would need to switch to
- the null-size behavior once there is an overflow in the buffer. */
-
- MPFR_ASSERTN (n >= 0x1000 && n >= len);
-
- MPFR_ASSERTD (*b->curr == '\0');
- MPFR_ASSERTD (pos < b->size);
-
- MPFR_ASSERTN (b->size < ((size_t) -1) - n);
-
- b->start = (char *) mpfr_reallocate_func (b->start, b->size, b->size + n);
- b->size += n;
- b->curr = b->start + pos;
-
- MPFR_ASSERTD (pos < b->size);
- MPFR_ASSERTD (*b->curr == '\0');
-}
-
-/* Concatenate the first len characters of the string s to the buffer b and
- expand it if needed. Return non-zero if overflow. */
-static int
-buffer_cat (struct string_buffer *b, const char *s, size_t len)
-{
- MPFR_ASSERTD (len > 0);
- MPFR_ASSERTD (len <= strlen (s));
-
- if (buffer_incr_len (b, len))
- return 1;
-
- if (b->size != 0)
- {
- MPFR_ASSERTD (*b->curr == '\0');
- MPFR_ASSERTN (b->size < ((size_t) -1) - len);
- if (MPFR_UNLIKELY (b->curr + len >= b->start + b->size))
- buffer_widen (b, len);
-
- /* strncat is similar to strncpy here, except that strncat ensures
- that the buffer will be null-terminated. */
- strncat (b->curr, s, len);
- b->curr += len;
-
- MPFR_ASSERTD (b->curr < b->start + b->size);
- MPFR_ASSERTD (*b->curr == '\0');
- }
-
- return 0;
-}
-
-/* Add n characters c to the end of buffer b. Return non-zero if overflow. */
-static int
-buffer_pad (struct string_buffer *b, const char c, const mpfr_intmax_t n)
-{
- MPFR_ASSERTD (n > 0);
-
- if (buffer_incr_len (b, n))
- return 1;
-
- if (b->size != 0)
- {
- MPFR_ASSERTD (*b->curr == '\0');
-
- if (n > (size_t) -1 || b->size > ((size_t) -1) - n)
- {
- /* Reallocation will not be possible. Regard this as an overflow. */
- b->len = -1;
- return 1;
- }
-
- if (MPFR_UNLIKELY (b->curr + n >= b->start + b->size))
- buffer_widen (b, n);
-
- if (n == 1)
- *b->curr = c;
- else
- memset (b->curr, c, n);
- b->curr += n;
- *b->curr = '\0';
-
- MPFR_ASSERTD (b->curr < b->start + b->size);
- }
-
- return 0;
-}
-
-/* Form a string by concatenating the first len characters of str to tz
- zero(s), insert into one character c each 3 characters starting from end
- to beginning and concatenate the result to the buffer b.
- Assume c is not null (\0). Return non-zero if overflow. */
-static int
-buffer_sandwich (struct string_buffer *b, char *str, size_t len,
- const size_t tz, const char c)
-{
- const size_t step = 3;
- size_t size, q, r, fullsize, i;
- char *oldcurr;
-
- MPFR_ASSERTD (b->size != 0);
- MPFR_ASSERTD (tz == 0 || tz == 1);
-
- if (len <= ULONG_MAX)
- MPFR_LOG_MSG (("len=%lu\n", (unsigned long) len));
- if (tz <= ULONG_MAX)
- MPFR_LOG_MSG (("tz=%lu\n", (unsigned long) tz));
-
- MPFR_ASSERTD (len <= strlen (str));
- MPFR_ASSERTD (c != '\0');
-
- /* check that len + tz does not overflow */
- if (len > (size_t) -1 - tz)
- return 1;
-
- size = len + tz; /* number of digits */
- MPFR_ASSERTD (size > 0);
-
- q = (size - 1) / step; /* number of separators C */
- r = ((size - 1) % step) + 1; /* number of digits in the leftmost block */
- MPFR_ASSERTD (r >= 1 && r <= step);
-
- /* check that size + q does not overflow */
- if (size > (size_t) -1 - q)
- return 1;
-
- fullsize = size + q; /* number of digits and separators */
-
- if (buffer_incr_len (b, fullsize))
- return 1;
-
- MPFR_ASSERTD (*b->curr == '\0');
- MPFR_ASSERTN (b->size < ((size_t) -1) - fullsize);
- if (MPFR_UNLIKELY (b->curr + fullsize >= b->start + b->size))
- buffer_widen (b, fullsize);
-
- MPFR_DBGRES (oldcurr = b->curr);
-
- /* first r significant digits (leftmost block) */
- if (r <= len)
- {
- memcpy (b->curr, str, r);
- str += r;
- len -= r;
- }
- else
- {
- MPFR_ASSERTD (r > len);
- MPFR_ASSERTD (len < step); /* as a consequence */
- MPFR_ASSERTD (size <= step); /* as a consequence */
- MPFR_ASSERTD (q == 0); /* as a consequence */
- MPFR_ASSERTD (r == size); /* as a consequence */
- MPFR_ASSERTD (tz == 1); /* as a consequence */
- memcpy (b->curr, str, len);
- *(b->curr + len) = '0'; /* trailing zero */
- /* We do not need to set len to 0 since it will not be read again
- (q = 0, so that the loop below will have 0 iterations). */
- }
- b->curr += r;
-
- for (i = 0; i < q; ++i)
- {
- *b->curr++ = c;
- if (MPFR_LIKELY (len >= step))
- {
- memcpy (b->curr, str, step);
- len -= step;
- str += step;
- }
- else
- {
- /* last digits */
- MPFR_ASSERTD (i == q - 1 && step - len == 1);
- memcpy (b->curr, str, len);
- *(b->curr + len) = '0'; /* trailing zero */
- }
- b->curr += step;
- }
-
- MPFR_ASSERTD (b->curr - oldcurr == fullsize);
-
- *b->curr = '\0';
-
- MPFR_ASSERTD (b->curr < b->start + b->size);
-
- return 0;
-}
-
-/* Helper struct and functions for temporary strings management */
-/* struct for easy string clearing */
-struct string_list
-{
- char *string;
- struct string_list *next; /* NULL in last node */
-};
-
-/* initialization */
-static void
-init_string_list (struct string_list *sl)
-{
- sl->string = NULL;
- sl->next = NULL;
-}
-
-/* clear all strings in the list */
-static void
-clear_string_list (struct string_list *sl)
-{
- struct string_list *n;
-
- while (sl)
- {
- if (sl->string)
- mpfr_free_str (sl->string);
- n = sl->next;
- mpfr_free_func (sl, sizeof(struct string_list));
- sl = n;
- }
-}
-
-/* add a string in the list */
-static char *
-register_string (struct string_list *sl, char *new_string)
-{
- /* look for the last node */
- while (sl->next)
- sl = sl->next;
-
- sl->next = (struct string_list *)
- mpfr_allocate_func (sizeof (struct string_list));
-
- sl = sl->next;
- sl->next = NULL;
- return sl->string = new_string;
-}
-
-/* padding type: where are the padding characters */
-enum pad_t
- {
- LEFT, /* spaces in left hand side for right justification */
- LEADING_ZEROS, /* padding with '0' characters in integral part */
- RIGHT /* spaces in right hand side for left justification */
- };
-
-/* number_parts details how much characters are needed in each part of a float
- print. */
-struct number_parts
-{
- enum pad_t pad_type; /* Padding type */
- mpfr_intmax_t pad_size; /* Number of padding characters */
-
- char sign; /* Sign character */
-
- char *prefix_ptr; /* Pointer to prefix part */
- size_t prefix_size; /* Number of characters in *prefix_ptr */
-
- char thousands_sep; /* Thousands separator (only with style 'f') */
-
- char *ip_ptr; /* Pointer to integral part characters*/
- size_t ip_size; /* Number of digits in *ip_ptr */
- int ip_trailing_digits; /* Number of additional digits in integral part
- (if spec.size != 0, this can only be a zero) */
-
- char point; /* Decimal point character */
-
- mpfr_intmax_t fp_leading_zeros; /* Number of additional leading zeros in
- fractional part */
- char *fp_ptr; /* Pointer to fractional part characters */
- size_t fp_size; /* Number of digits in *fp_ptr */
- mpfr_intmax_t fp_trailing_zeros; /* Number of additional trailing zeros in
- fractional part */
-
- char *exp_ptr; /* Pointer to exponent part */
- size_t exp_size; /* Number of characters in *exp_ptr */
-
- struct string_list *sl; /* List of string buffers in use: we need such a
- mechanism because fp_ptr may point into the same
- string as ip_ptr */
-};
-
-/* For a real non zero number x, what is the base exponent f when rounding x
- with rounding mode r to r(x) = m*b^f, where m is a digit and 1 <= m < b ?
- Return non zero value if x is rounded up to b^f, return zero otherwise */
-static int
-next_base_power_p (mpfr_srcptr x, int base, mpfr_rnd_t rnd)
-{
- mpfr_prec_t nbits;
- mp_limb_t pm;
- mp_limb_t xm;
-
- MPFR_ASSERTD (MPFR_IS_PURE_FP (x));
- MPFR_ASSERTD (base == 2 || base == 16);
-
- /* Warning: the decimal point is AFTER THE FIRST DIGIT in this output
- representation. */
- nbits = base == 2 ? 1 : 4;
-
- if (rnd == MPFR_RNDZ
- || (rnd == MPFR_RNDD && MPFR_IS_POS (x))
- || (rnd == MPFR_RNDU && MPFR_IS_NEG (x))
- || MPFR_PREC (x) <= nbits)
- /* no rounding when printing x with 1 digit */
- return 0;
-
- xm = MPFR_MANT (x) [MPFR_LIMB_SIZE (x) - 1];
- pm = MPFR_LIMB_MASK (GMP_NUMB_BITS - nbits);
- if ((xm & ~pm) ^ ~pm)
- /* do no round up if some of the nbits first bits are 0s. */
- return 0;
-
- if (rnd == MPFR_RNDN)
- /* mask for rounding bit */
- pm = (MPFR_LIMB_ONE << (GMP_NUMB_BITS - nbits - 1));
-
- /* round up if some remaining bits are 1 */
- /* warning: the return value must be an int */
- return xm & pm ? 1 : 0;
-}
-
-/* Record information from mpfr_get_str() so as to avoid multiple
- calls to this expensive function. */
-struct decimal_info
-{
- mpfr_exp_t exp;
- char *str;
-};
-
-/* For a real non zero number x, what is the exponent f so that
- 10^f <= x < 10^(f+1). */
-static mpfr_exp_t
-floor_log10 (mpfr_srcptr x)
-{
- mpfr_t y;
- mpfr_exp_t exp;
-
- /* make sure first that y can represent a mpfr_exp_t exactly
- and can compare with x */
- mpfr_prec_t prec = sizeof (mpfr_exp_t) * CHAR_BIT;
- mpfr_init2 (y, MAX (prec, MPFR_PREC (x)));
-
- exp = mpfr_ceil_mul (MPFR_GET_EXP (x), 10, 1) - 1;
- mpfr_set_exp_t (y, exp, MPFR_RNDU);
- /* The following call to mpfr_ui_pow should be fast: y is an integer
- (not too large), so that mpfr_pow_z will be used internally. */
- mpfr_ui_pow (y, 10, y, MPFR_RNDU);
- if (mpfr_cmpabs (x, y) < 0)
- exp--;
-
- mpfr_clear (y);
- return exp;
-}
-
-#define NDIGITS 8
-
-MPFR_RETURNS_NONNULL static char *
-mpfr_get_str_wrapper (mpfr_exp_t *exp, int base, size_t n, const mpfr_t op,
- const struct printf_spec spec)
-{
- size_t ndigits;
- char *str, *s, nine;
- int neg;
-
- /* Possibles bases for the *printf functions. */
- MPFR_ASSERTD (base == 2 || base == 10 || base == 16);
-
- if (spec.size != 0)
- return mpfr_get_str (NULL, exp, base, n, op, spec.rnd_mode);
-
- /* Special case size = 0, i.e., xxx_snprintf with size = 0: we only want
- to compute the number of printed characters. Try to deduce it from
- a small number of significant digits. */
- nine = base == 2 ? '1' : base == 10 ? '9' : 'f';
- for (ndigits = NDIGITS; ; ndigits *= 2)
- {
- mpfr_rnd_t rnd = MPFR_RNDZ;
- /* when ndigits > n, we reduce it to the target size n, and then we use
- the wanted rounding mode, to avoid errors for example when n=1 and
- x = 9.5 with spec.rnd_mode = RNDU */
- if (ndigits >= n)
- {
- ndigits = n;
- rnd = spec.rnd_mode;
- }
- str = mpfr_get_str (NULL, exp, base, ndigits, op, rnd);
- if (ndigits == n)
- break;
- neg = str[0] == '-';
- s = str + neg;
- while (*s == nine)
- s ++;
- if (s < str + neg + ndigits) /* we don't have ndigits 'nines' */
- break;
- mpfr_free_str (str);
- MPFR_ASSERTN (ndigits <= ((size_t) -1) / 2);
- /* to make sure that the product by 2 is representable. */
- }
- return str;
-}
-
-/* Determine the different parts of the string representation of the regular
- number P when spec.spec is 'a', 'A', or 'b'.
-
- Return -1 in case of overflow on the sizes. */
-static int
-regular_ab (struct number_parts *np, mpfr_srcptr p,
- const struct printf_spec spec)
-{
- int uppercase;
- int base;
- char *str;
- mpfr_exp_t exp;
-
- uppercase = spec.spec == 'A';
-
- /* sign */
- if (MPFR_IS_NEG (p))
- np->sign = '-';
- else if (spec.showsign || spec.space)
- np->sign = spec.showsign ? '+' : ' ';
-
- if (spec.spec == 'a' || spec.spec == 'A')
- /* prefix part */
- {
- np->prefix_size = 2;
- str = (char *) mpfr_allocate_func (1 + np->prefix_size);
- str[0] = '0';
- str[1] = uppercase ? 'X' : 'x';
- str[2] = '\0';
- np->prefix_ptr = register_string (np->sl, str);
- }
-
- /* integral part */
- np->ip_size = 1;
- base = (spec.spec == 'b') ? 2 : 16;
-
- if (spec.prec != 0)
- {
- size_t nsd;
-
- /* Number of significant digits:
- - if no given precision, let mpfr_get_str determine it;
- - if a non-zero precision is specified, then one digit before decimal
- point plus SPEC.PREC after it (which will give nsd > 1 below). */
- MPFR_ASSERTD (np->ip_size == 1); /* thus the + 1 below */
- if (spec.prec < 0)
- nsd = 0;
- else
- {
- if (MPFR_UNLIKELY (spec.prec > (size_t) -2)) /* overflow */
- return -1;
- nsd = (size_t) spec.prec + 1;
- MPFR_ASSERTD (nsd != 1);
- }
- str = mpfr_get_str_wrapper (&exp, base, nsd, p, spec);
- register_string (np->sl, str);
- np->ip_ptr = MPFR_IS_NEG (p) ? ++str : str; /* skip sign if any */
-
- if (base == 16)
- /* EXP is the exponent for radix sixteen with decimal point BEFORE the
- first digit, we want the exponent for radix two and the decimal
- point AFTER the first digit. */
- {
- /* An integer overflow is normally not possible since MPFR_EXP_MIN
- is twice as large as MPFR_EMIN_MIN. */
- MPFR_ASSERTN (exp > (MPFR_EXP_MIN + 3) / 4);
- exp = (exp - 1) * 4;
- }
- else
- /* EXP is the exponent for decimal point BEFORE the first digit, we
- want the exponent for decimal point AFTER the first digit. */
- {
- /* An integer overflow is normally not possible since MPFR_EXP_MIN
- is twice as large as MPFR_EMIN_MIN. */
- MPFR_ASSERTN (exp > MPFR_EXP_MIN);
- --exp;
- }
- }
- else if (next_base_power_p (p, base, spec.rnd_mode))
- {
- str = (char *) mpfr_allocate_func (2);
- str[0] = '1';
- str[1] = '\0';
- np->ip_ptr = register_string (np->sl, str);
-
- exp = MPFR_GET_EXP (p);
- }
- else if (base == 2)
- {
- str = (char *) mpfr_allocate_func (2);
- str[0] = '1';
- str[1] = '\0';
- np->ip_ptr = register_string (np->sl, str);
-
- exp = MPFR_GET_EXP (p) - 1;
- }
- else
- {
- int digit;
- mp_limb_t msl = MPFR_MANT (p)[MPFR_LIMB_SIZE (p) - 1];
- int rnd_bit = GMP_NUMB_BITS - 5;
-
- /* pick up the 4 first bits */
- digit = msl >> (rnd_bit + 1);
- if (spec.rnd_mode == MPFR_RNDA
- || (spec.rnd_mode == MPFR_RNDU && MPFR_IS_POS (p))
- || (spec.rnd_mode == MPFR_RNDD && MPFR_IS_NEG (p))
- || (spec.rnd_mode == MPFR_RNDN
- && (msl & (MPFR_LIMB_ONE << rnd_bit))))
- digit++;
- MPFR_ASSERTD (0 <= digit && digit <= 15);
-
- str = (char *) mpfr_allocate_func (1 + np->ip_size);
- str[0] = num_to_text [digit];
- str[1] = '\0';
- np->ip_ptr = register_string (np->sl, str);
-
- exp = MPFR_GET_EXP (p) - 4;
- }
-
- if (uppercase)
- /* All digits in upper case */
- {
- char *s1 = str;
- while (*s1)
- {
- switch (*s1)
- {
- case 'a':
- *s1 = 'A';
- break;
- case 'b':
- *s1 = 'B';
- break;
- case 'c':
- *s1 = 'C';
- break;
- case 'd':
- *s1 = 'D';
- break;
- case 'e':
- *s1 = 'E';
- break;
- case 'f':
- *s1 = 'F';
- break;
- }
- s1++;
- }
- }
-
- if (spec.spec == 'b' || spec.prec != 0)
- /* compute the number of digits in fractional part */
- {
- char *ptr;
- size_t str_len;
-
- /* the sign has been skipped, skip also the first digit */
- ++str;
- str_len = strlen (str);
- ptr = str + str_len - 1; /* points to the end of str */
-
- if (spec.prec < 0)
- /* remove trailing zeros, if any */
- {
- while (*ptr == '0' && str_len != 0)
- {
- --ptr;
- --str_len;
- }
- }
-
- if (str_len != 0)
- /* there are some non-zero digits in fractional part */
- {
- np->fp_ptr = str;
- np->fp_size = str_len;
- /* Warning! str_len has type size_t, which is unsigned. */
- if (spec.prec > 0 && str_len < spec.prec)
- {
- np->fp_trailing_zeros = spec.prec - str_len;
- MPFR_ASSERTD (np->fp_trailing_zeros >= 0);
- }
- }
- }
-
- /* decimal point */
- if (np->fp_size != 0 || spec.alt)
- np->point = MPFR_DECIMAL_POINT;
-
- /* the exponent part contains the character 'p', or 'P' plus the sign
- character plus at least one digit and only as many more digits as
- necessary to represent the exponent.
- We assume that |EXP| < 10^INT_MAX. */
- np->exp_size = 3;
- {
- mpfr_uexp_t x;
-
- x = SAFE_ABS (mpfr_uexp_t, exp);
- while (x > 9)
- {
- np->exp_size++;
- x /= 10;
- }
- }
- str = (char *) mpfr_allocate_func (1 + np->exp_size);
- np->exp_ptr = register_string (np->sl, str);
- {
- char exp_fmt[8]; /* contains at most 7 characters like in "p%+.1i",
- or "P%+.2li" */
-
- exp_fmt[0] = uppercase ? 'P' : 'p';
- exp_fmt[1] = '\0';
- strcat (exp_fmt, "%+.1" MPFR_EXP_FSPEC "d");
-
- if (MPFR_UNLIKELY (sprintf (str, exp_fmt, (mpfr_eexp_t) exp) < 0))
- return -1;
- }
-
- return 0;
-}
-
-/* Determine the different parts of the string representation of the regular
- number P when spec.spec is 'e', 'E', 'g', or 'G'.
- dec_info contains the previously computed exponent and string or is
- a null pointer.
-
- Return -1 in case of overflow on the sizes. */
-static int
-regular_eg (struct number_parts *np, mpfr_srcptr p,
- const struct printf_spec spec, struct decimal_info *dec_info,
- int keep_trailing_zeros)
-{
- char *str;
- mpfr_exp_t exp;
-
- const int uppercase = spec.spec == 'E' || spec.spec == 'G';
-
- /* sign */
- if (MPFR_IS_NEG (p))
- np->sign = '-';
- else if (spec.showsign || spec.space)
- np->sign = spec.showsign ? '+' : ' ';
-
- /* integral part */
- np->ip_size = 1;
- if (dec_info == NULL)
- {
- size_t nsd;
-
- /* Number of significant digits:
- - if no given precision, then let mpfr_get_str determine it,
- - if a precision is specified, then one digit before decimal point
- plus SPEC.PREC after it.
- We use the fact here that mpfr_get_str allows us to ask for only one
- significant digit when the base is not a power of 2. */
- MPFR_ASSERTD (np->ip_size == 1); /* thus the + 1 below */
- if (spec.prec < 0)
- nsd = 0;
- else
- {
- if (MPFR_UNLIKELY (spec.prec > (size_t) -2)) /* overflow */
- return -1;
- nsd = (size_t) spec.prec + 1;
- }
- str = mpfr_get_str_wrapper (&exp, 10, nsd, p, spec);
- register_string (np->sl, str);
- }
- else
- {
- exp = dec_info->exp;
- str = dec_info->str;
- }
- np->ip_ptr = MPFR_IS_NEG (p) ? ++str : str; /* skip sign if any */
-
- if (spec.prec != 0)
- /* compute the number of digits in fractional part */
- {
- char *ptr;
- size_t str_len;
-
- /* the sign has been skipped, skip also the first digit */
- ++str;
- str_len = strlen (str);
- ptr = str + str_len - 1; /* points to the end of str */
-
- if (!keep_trailing_zeros)
- /* remove trailing zeros, if any */
- {
- while (*ptr == '0' && str_len != 0)
- {
- --ptr;
- --str_len;
- }
- }
-
- if (str_len != 0)
- /* there are some non-zero digits in fractional part */
- {
- np->fp_ptr = str;
- np->fp_size = str_len;
- /* Warning! str_len has type size_t, which is unsigned. */
- if (keep_trailing_zeros && spec.prec > 0 && str_len < spec.prec)
- {
- /* add missing trailing zeros */
- np->fp_trailing_zeros = spec.prec - str_len;
- MPFR_ASSERTD (np->fp_trailing_zeros >= 0);
- }
- }
- }
-
- /* decimal point */
- if (np->fp_size != 0 || spec.alt)
- np->point = MPFR_DECIMAL_POINT;
-
- /* EXP is the exponent for decimal point BEFORE the first digit, we want
- the exponent for decimal point AFTER the first digit.
- Here, no possible overflow because exp < MPFR_EXP (p) / 3 */
- exp--;
-
- /* the exponent part contains the character 'e', or 'E' plus the sign
- character plus at least two digits and only as many more digits as
- necessary to represent the exponent.
- We assume that |EXP| < 10^INT_MAX. */
- np->exp_size = 3;
- {
- mpfr_uexp_t x;
-
- x = SAFE_ABS (mpfr_uexp_t, exp);
- while (x > 9)
- {
- np->exp_size++;
- x /= 10;
- }
- }
- if (np->exp_size < 4)
- np->exp_size = 4;
-
- str = (char *) mpfr_allocate_func (1 + np->exp_size);
- np->exp_ptr = register_string (np->sl, str);
-
- {
- char exp_fmt[8]; /* e.g. "e%+.2i", or "E%+.2li" */
-
- exp_fmt[0] = uppercase ? 'E' : 'e';
- exp_fmt[1] = '\0';
- strcat (exp_fmt, "%+.2" MPFR_EXP_FSPEC "d");
-
- if (MPFR_UNLIKELY (sprintf (str, exp_fmt, (mpfr_eexp_t) exp) < 0))
- return -1;
- }
-
- return 0;
-}
-
-/* Determine the different parts of the string representation of the regular
- number P when spec.spec is 'f', 'F', 'g', or 'G'.
- dec_info contains the previously computed exponent and string or is
- a null pointer.
-
- Return -1 in case of overflow on the sizes. */
-static int
-regular_fg (struct number_parts *np, mpfr_srcptr p,
- const struct printf_spec spec, struct decimal_info *dec_info,
- int keep_trailing_zeros)
-{
- mpfr_exp_t exp;
- char * str;
-
- /* WARNING: an empty precision field is forbidden (it means precision = 6
- and it should have been changed to 6 before the function call) */
- MPFR_ASSERTD (spec.prec >= 0);
-
- /* sign */
- if (MPFR_IS_NEG (p))
- np->sign = '-';
- else if (spec.showsign || spec.space)
- np->sign = spec.showsign ? '+' : ' ';
-
- if (MPFR_GET_EXP (p) <= 0)
- /* 0 < |p| < 1 */
- {
- /* Most of the time, integral part is 0 */
- np->ip_size = 1;
- str = (char *) mpfr_allocate_func (1 + np->ip_size);
- str[0] = '0';
- str[1] = '\0';
- np->ip_ptr = register_string (np->sl, str);
-
- if (spec.prec == 0)
- /* only two possibilities: either 1 or 0. */
- {
- mpfr_t y;
- /* y = abs(p) */
- MPFR_ALIAS (y, p, 1, MPFR_EXP (p));
-
- if (spec.rnd_mode == MPFR_RNDA
- || (spec.rnd_mode == MPFR_RNDD && MPFR_IS_NEG (p))
- || (spec.rnd_mode == MPFR_RNDU && MPFR_IS_POS (p))
- || (spec.rnd_mode == MPFR_RNDN && mpfr_cmp_d (y, 0.5) > 0))
- /* rounded up to 1: one digit '1' in integral part.
- note that 0.5 is rounded to 0 with RNDN (round ties to even) */
- np->ip_ptr[0] = '1';
- }
- else
- {
- /* exp = position of the most significant decimal digit. */
- exp = floor_log10 (p);
- MPFR_ASSERTD (exp < 0);
-
- if (exp < -spec.prec)
- /* only the last digit may be non zero */
- {
- int round_away;
-
- /* Due to mpfr_set_si below... */
- if (MPFR_UNLIKELY (spec.prec > LONG_MAX)) /* overflow */
- return -1;
-
- switch (spec.rnd_mode)
- {
- case MPFR_RNDA:
- case MPFR_RNDF: /* round_away = 1 needed for %Rg */
- round_away = 1;
- break;
- case MPFR_RNDZ:
- round_away = 0;
- break;
- case MPFR_RNDD:
- round_away = MPFR_IS_NEG (p);
- break;
- case MPFR_RNDU:
- round_away = MPFR_IS_POS (p);
- break;
- default:
- {
- /* compare |p| to y = 0.5*10^(-spec.prec) */
- mpfr_t y;
- mpfr_exp_t e = MAX (MPFR_PREC (p), 56);
- int cmp;
-
- MPFR_ASSERTN (spec.rnd_mode == MPFR_RNDN);
- mpfr_init2 (y, e + 8);
-
- do
- {
- /* find a lower approximation of
- 0.5*10^(-spec.prec) different from |p| */
- e += 8;
- mpfr_set_prec (y, e);
- mpfr_set_si (y, -spec.prec, MPFR_RNDN);
- mpfr_exp10 (y, y, MPFR_RNDD);
- mpfr_div_2ui (y, y, 1, MPFR_RNDN);
- cmp = mpfr_cmpabs (y, p);
- }
- while (cmp == 0);
-
- round_away = cmp < 0;
- mpfr_clear (y);
- }
- break;
- }
-
- if (round_away)
- /* round away from zero: the last output digit is '1' */
- {
- np->fp_leading_zeros = spec.prec - 1;
-
- np->fp_size = 1;
- str = (char *) mpfr_allocate_func (1 + np->fp_size);
- str[0] = '1';
- str[1] = '\0';
- np->fp_ptr = register_string (np->sl, str);
- }
- else
- /* only zeros in fractional part */
- {
- MPFR_ASSERTD (spec.spec == 'f' || spec.spec == 'F');
- np->fp_leading_zeros = spec.prec;
- }
- }
- else /* exp >= -spec.prec */
- /* the most significant digits are the last
- spec.prec + exp + 1 digits in fractional part */
- {
- char *ptr;
- size_t str_len;
-
- MPFR_ASSERTD (exp >= -spec.prec);
- if (dec_info == NULL)
- {
- size_t nsd;
-
- MPFR_ASSERTD (exp <= -1);
- MPFR_ASSERTD (spec.prec + (exp + 1) >= 0);
- if (MPFR_UNLIKELY (spec.prec + (exp + 1) > (size_t) -1))
- return -1;
- nsd = spec.prec + (exp + 1);
- /* WARNING: nsd may equal 1, but here we use the
- fact that mpfr_get_str can return one digit with
- base ten (undocumented feature, see comments in
- get_str.c) */
-
- str = mpfr_get_str_wrapper (&exp, 10, nsd, p, spec);
- register_string (np->sl, str);
- }
- else
- {
- exp = dec_info->exp;
- str = dec_info->str;
- }
- if (MPFR_IS_NEG (p))
- /* skip sign */
- ++str;
- if (exp == 1)
- /* round up to 1 */
- {
- MPFR_ASSERTD (str[0] == '1');
- np->ip_ptr[0] = '1';
- if (keep_trailing_zeros)
- np->fp_leading_zeros = spec.prec;
- }
- else
- {
- np->fp_ptr = str;
- np->fp_leading_zeros = -exp;
- MPFR_ASSERTD (exp <= 0);
-
- str_len = strlen (str); /* the sign has been skipped */
- ptr = str + str_len - 1; /* points to the end of str */
-
- if (!keep_trailing_zeros)
- /* remove trailing zeros, if any */
- {
- while (*ptr == '0' && str_len != 0)
- {
- --ptr;
- --str_len;
- }
- }
-
- MPFR_ASSERTD (str_len > 0);
- np->fp_size = str_len;
-
- /* The np->fp_size <= MPFR_INTMAX_MAX test and the
- cast to mpfr_uintmax_t below allow one to avoid
- integer overflow. */
- if (keep_trailing_zeros
- && spec.prec > 0
- && np->fp_size <= MPFR_INTMAX_MAX
- && ((mpfr_uintmax_t)
- np->fp_leading_zeros + np->fp_size) < spec.prec)
- {
- /* add missing trailing zeros */
- np->fp_trailing_zeros = spec.prec
- - np->fp_leading_zeros - np->fp_size;
- MPFR_ASSERTD (np->fp_trailing_zeros >= 0);
- }
- }
- }
- }
-
- if (spec.alt || np->fp_leading_zeros != 0 || np->fp_size != 0
- || np->fp_trailing_zeros != 0)
- np->point = MPFR_DECIMAL_POINT;
- }
- else
- /* 1 <= |p| */
- {
- size_t str_len;
-
- /* Determine the position of the most significant decimal digit. */
- exp = floor_log10 (p);
- MPFR_ASSERTD (exp >= 0);
-
- if (dec_info == NULL)
- {
- /* %f case */
- mpfr_uintmax_t n;
-
- n = (mpfr_uintmax_t) spec.prec + (exp + 1);
- if (MPFR_UNLIKELY (n > (size_t) -1))
- return -1;
- str = mpfr_get_str_wrapper (&exp, 10, n, p, spec);
- register_string (np->sl, str);
- }
- else
- {
- /* %g case */
- exp = dec_info->exp;
- str = dec_info->str;
- }
- np->ip_ptr = MPFR_IS_NEG (p) ? ++str : str; /* skip sign */
- str_len = strlen (str);
-
- /* integral part */
- if (exp > str_len)
- {
- /* When spec.size == 0, mpfr_get_str may be called in a reduced
- precision, so that some trailing digits may have been ignored.
- When spec.size != 0, this case is also possible in the case
- where p is rounded up to the next power of 10: a zero must be
- added since the exponent has been increased by 1. */
- np->ip_trailing_digits = exp - str_len;
- np->ip_size = str_len;
- }
- else
- np->ip_size = exp;
-
- if (spec.group)
- /* thousands separator in integral part */
- np->thousands_sep = MPFR_THOUSANDS_SEPARATOR;
-
- /* fractional part */
- str += np->ip_size;
- str_len -= np->ip_size;
- if (!keep_trailing_zeros)
- /* remove trailing zeros, if any */
- {
- char *ptr = str + str_len - 1; /* pointer to the last digit of
- str */
- while (*ptr == '0' && str_len != 0)
- {
- --ptr;
- --str_len;
- }
- }
-
- if (str_len > 0)
- /* some nonzero digits in fractional part */
- {
- np->point = MPFR_DECIMAL_POINT;
- np->fp_ptr = str;
- np->fp_size = str_len;
- }
-
- /* Warning! str_len has type size_t, which is unsigned. */
- MPFR_ASSERTD (spec.prec >= 0); /* let's recall this */
- if (keep_trailing_zeros && str_len < spec.prec)
- /* add missing trailing zeros */
- {
- np->point = MPFR_DECIMAL_POINT;
- np->fp_trailing_zeros = spec.prec - np->fp_size;
- MPFR_ASSERTD (np->fp_trailing_zeros >= 0);
- }
-
- if (spec.alt)
- /* add decimal point even if no digits follow it */
- np->point = MPFR_DECIMAL_POINT;
- }
-
- return 0;
-}
-
-/* partition_number determines the different parts of the string
- representation of the number p according to the given specification.
- partition_number initializes the given structure np, so all previous
- information in that variable is lost.
- Return the total number of characters to be written.
- Return -1 if an error occurred, in that case np's fields are in an
- undefined state but all string buffers have been freed. */
-static mpfr_intmax_t
-partition_number (struct number_parts *np, mpfr_srcptr p,
- struct printf_spec spec)
-{
- char *str;
- mpfr_uintmax_t total; /* can hold the sum of two non-negative
- signed integers + 1 */
- int uppercase;
-
- /* WARNING: left justification means right space padding */
- np->pad_type = spec.left ? RIGHT : spec.pad == '0' ? LEADING_ZEROS : LEFT;
- np->pad_size = 0;
- np->sign = '\0';
- np->prefix_ptr =NULL;
- np->prefix_size = 0;
- np->thousands_sep = '\0';
- np->ip_ptr = NULL;
- np->ip_size = 0;
- np->ip_trailing_digits = 0;
- np->point = '\0';
- np->fp_leading_zeros = 0;
- np->fp_ptr = NULL;
- np->fp_size = 0;
- np->fp_trailing_zeros = 0;
- np->exp_ptr = NULL;
- np->exp_size = 0;
- np->sl = (struct string_list *)
- mpfr_allocate_func (sizeof (struct string_list));
- init_string_list (np->sl);
-
- uppercase = spec.spec == 'A' || spec.spec == 'E' || spec.spec == 'F'
- || spec.spec == 'G';
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (p)))
- {
- if (MPFR_IS_NAN (p))
- {
- if (np->pad_type == LEADING_ZEROS)
- /* don't want "0000nan", change to right justification padding
- with left spaces instead */
- np->pad_type = LEFT;
-
- np->ip_size = MPFR_NAN_STRING_LENGTH;
- str = (char *) mpfr_allocate_func (1 + np->ip_size);
- strcpy (str, uppercase ? MPFR_NAN_STRING_UC : MPFR_NAN_STRING_LC);
- np->ip_ptr = register_string (np->sl, str);
- }
- else if (MPFR_IS_INF (p))
- {
- if (np->pad_type == LEADING_ZEROS)
- /* don't want "0000inf", change to right justification padding
- with left spaces instead */
- np->pad_type = LEFT;
-
- if (MPFR_IS_NEG (p))
- np->sign = '-';
-
- np->ip_size = MPFR_INF_STRING_LENGTH;
- str = (char *) mpfr_allocate_func (1 + np->ip_size);
- strcpy (str, uppercase ? MPFR_INF_STRING_UC : MPFR_INF_STRING_LC);
- np->ip_ptr = register_string (np->sl, str);
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (p));
- /* note: for 'g' spec, zero is always displayed with 'f'-style with
- precision spec.prec - 1 and the trailing zeros are removed unless
- the flag '#' is used. */
- if (MPFR_IS_NEG (p))
- /* signed zero */
- np->sign = '-';
- else if (spec.showsign || spec.space)
- np->sign = spec.showsign ? '+' : ' ';
-
- if (spec.spec == 'a' || spec.spec == 'A')
- /* prefix part */
- {
- np->prefix_size = 2;
- str = (char *) mpfr_allocate_func (1 + np->prefix_size);
- str[0] = '0';
- str[1] = uppercase ? 'X' : 'x';
- str[2] = '\0';
- np->prefix_ptr = register_string (np->sl, str);
- }
-
- /* integral part */
- np->ip_size = 1;
- str = (char *) mpfr_allocate_func (1 + np->ip_size);
- str[0] = '0';
- str[1] = '\0';
- np->ip_ptr = register_string (np->sl, str);
-
- if (spec.prec < 0) /* empty precision field */
- {
- if (spec.spec == 'e' || spec.spec == 'E')
- spec.prec = mpfr_get_str_ndigits (10, MPFR_GET_PREC (p)) - 1;
- else if (spec.spec == 'f' || spec.spec == 'F' ||
- spec.spec == 'g' || spec.spec == 'G')
- spec.prec = DEFAULT_DECIMAL_PREC;
- }
-
- if (spec.prec > 0
- && ((spec.spec != 'g' && spec.spec != 'G') || spec.alt))
- /* fractional part */
- {
- np->point = MPFR_DECIMAL_POINT;
- np->fp_trailing_zeros = (spec.spec == 'g' || spec.spec == 'G') ?
- spec.prec - 1 : spec.prec;
- MPFR_ASSERTD (np->fp_trailing_zeros >= 0);
- }
- else if (spec.alt)
- np->point = MPFR_DECIMAL_POINT;
-
- if (spec.spec == 'a' || spec.spec == 'A' || spec.spec == 'b'
- || spec.spec == 'e' || spec.spec == 'E')
- /* exponent part */
- {
- np->exp_size = (spec.spec == 'e' || spec.spec == 'E') ? 4 : 3;
- str = (char *) mpfr_allocate_func (1 + np->exp_size);
- if (spec.spec == 'e' || spec.spec == 'E')
- strcpy (str, uppercase ? "E+00" : "e+00");
- else
- strcpy (str, uppercase ? "P+0" : "p+0");
- np->exp_ptr = register_string (np->sl, str);
- }
- }
- }
- else if (MPFR_UNLIKELY (MPFR_IS_UBF (p)))
- {
- /* mpfr_get_str does not support UBF, so that UBF numbers are regarded
- as special cases here. This is not much a problem since UBF numbers
- are internal to MPFR and here, they only for logging. */
- if (np->pad_type == LEADING_ZEROS)
- /* change to right justification padding with left spaces */
- np->pad_type = LEFT;
-
- if (MPFR_IS_NEG (p))
- np->sign = '-';
-
- np->ip_size = 3;
- str = (char *) mpfr_allocate_func (1 + np->ip_size);
- strcpy (str, uppercase ? "UBF" : "ubf");
- np->ip_ptr = register_string (np->sl, str);
- /* TODO: output more information (e.g. the exponent) if need be. */
- }
- else
- {
- MPFR_ASSERTD (MPFR_IS_PURE_FP (p));
- if (spec.spec == 'a' || spec.spec == 'A' || spec.spec == 'b')
- {
- if (regular_ab (np, p, spec) == -1)
- goto error;
- }
- else if (spec.spec == 'f' || spec.spec == 'F')
- {
- if (spec.prec < 0)
- spec.prec = DEFAULT_DECIMAL_PREC;
- if (regular_fg (np, p, spec, NULL, 1) == -1)
- goto error;
- }
- else if (spec.spec == 'e' || spec.spec == 'E')
- {
- if (regular_eg (np, p, spec, NULL, 1) == -1)
- goto error;
- }
- else
- /* %g case */
- {
- /* Use the C99 rules:
- if T > X >= -4 then the conversion is with style 'f'/'F' and
- precision T-(X+1).
- otherwise, the conversion is with style 'e'/'E' and
- precision T-1.
- where T is the threshold computed below and X is the exponent
- that would be displayed with style 'e' and precision T-1. */
- int threshold;
- mpfr_exp_t x, e, k;
- struct decimal_info dec_info;
-
- threshold = spec.prec < 0 ? DEFAULT_DECIMAL_PREC :
- spec.prec == 0 ? 1 : spec.prec;
- MPFR_ASSERTD (threshold >= 1);
-
- /* Here we cannot call mpfr_get_str_wrapper since we need the full
- significand in dec_info.str.
- Moreover, threshold may be huge while one can know that the
- number of digits that are not trailing zeros remains limited;
- such a limit occurs in practical cases, e.g. with numbers
- representable in the IEEE 754-2008 basic formats. Since the
- trailing zeros are not necessarily output, we do not want to
- waste time and memory by making mpfr_get_str generate them.
- So, let us try to find a smaller threshold for mpfr_get_str.
- |p| < 2^EXP(p) = 10^(EXP(p)*log10(2)). So, the integer part
- takes at most ceil(EXP(p)*log10(2)) digits (unless p rounds
- to the next power of 10, but in this case any threshold will
- be OK). So, for the integer part, we will take:
- max(0,floor((EXP(p)+2)/3)).
- Let k = PREC(p) - EXP(p), so that the last bit of p has
- weight 2^(-k). If k <= 0, then p is an integer, otherwise
- the fractional part in base 10 may have up to k digits
- (this bound is reached if the last bit is 1).
- Note: The bound could be improved, but this is not critical. */
- e = MPFR_GET_EXP (p);
- k = MPFR_PREC (p) - e;
- e = e <= 0 ? k : (e + 2) / 3 + (k <= 0 ? 0 : k);
- MPFR_ASSERTD (e >= 1);
-
- dec_info.str = mpfr_get_str (NULL, &dec_info.exp, 10,
- e < threshold ? e : threshold,
- p, spec.rnd_mode);
- register_string (np->sl, dec_info.str);
- /* mpfr_get_str corresponds to a significand between 0.1 and 1,
- whereas here we want a significand between 1 and 10. */
- x = dec_info.exp - 1;
-
- if (threshold > x && x >= -4)
- {
- /* the conversion is with style 'f' */
- spec.prec = threshold - x - 1;
-
- if (regular_fg (np, p, spec, &dec_info, spec.alt) == -1)
- goto error;
- }
- else
- {
- spec.prec = threshold - 1;
-
- if (regular_eg (np, p, spec, &dec_info, spec.alt) == -1)
- goto error;
- }
- }
- }
-
- /* compute the number of characters to be written verifying it is not too
- much */
-
-#define INCR_TOTAL(v) \
- do { \
- MPFR_ASSERTD ((v) >= 0); \
- if (MPFR_UNLIKELY ((v) > MPFR_INTMAX_MAX)) \
- goto error; \
- total += (v); \
- if (MPFR_UNLIKELY (total > MPFR_INTMAX_MAX)) \
- goto error; \
- } while (0)
-
- total = np->sign ? 1 : 0;
- INCR_TOTAL (np->prefix_size);
- INCR_TOTAL (np->ip_size);
- INCR_TOTAL (np->ip_trailing_digits);
- MPFR_ASSERTD (np->ip_size + np->ip_trailing_digits >= 1);
- if (np->thousands_sep)
- /* ' flag, style f and the thousands separator in current locale is not
- reduced to the null character */
- INCR_TOTAL ((np->ip_size + np->ip_trailing_digits - 1) / 3);
- if (np->point)
- ++total;
- INCR_TOTAL (np->fp_leading_zeros);
- INCR_TOTAL (np->fp_size);
- INCR_TOTAL (np->fp_trailing_zeros);
- INCR_TOTAL (np->exp_size);
-
- if (spec.width > total)
- /* pad with spaces or zeros depending on np->pad_type */
- {
- np->pad_size = spec.width - total;
- total = spec.width;
- }
-
- MPFR_ASSERTD (total > 0 && total <= MPFR_INTMAX_MAX);
- return total;
-
- error:
- clear_string_list (np->sl);
- np->prefix_ptr = NULL;
- np->ip_ptr = NULL;
- np->fp_ptr = NULL;
- np->exp_ptr = NULL;
- return -1;
-}
-
-/* sprnt_fp prints a mpfr_t according to spec.spec specification.
-
- Return the size of the string (not counting the terminating '\0').
- Return -1 if the built string is too long (i.e. has more than
- INT_MAX or MPFR_INTMAX_MAX characters).
-
- If spec.size is 0, we only want the size of the string.
-*/
-static int
-sprnt_fp (struct string_buffer *buf, mpfr_srcptr p,
- const struct printf_spec spec)
-{
- mpfr_intmax_t length, start;
- struct number_parts np;
-
- length = partition_number (&np, p, spec);
- if (MPFR_UNLIKELY (length < 0))
- {
- buf->len = -1;
- return -1;
- }
-
- if (spec.size == 0)
- {
- /* This is equivalent to the following code (no need to fill the buffer
- and length is known). */
- buffer_incr_len (buf, length);
- goto clear_and_exit;
- }
-
- MPFR_DBGRES (start = buf->len);
-
- /* right justification padding with left spaces */
- if (np.pad_type == LEFT && np.pad_size != 0)
- buffer_pad (buf, ' ', np.pad_size);
-
- /* sign character (may be '-', '+', or ' ') */
- if (np.sign)
- buffer_pad (buf, np.sign, 1);
-
- /* prefix part */
- if (np.prefix_ptr)
- buffer_cat (buf, np.prefix_ptr, np.prefix_size);
-
- /* right justification padding with leading zeros */
- if (np.pad_type == LEADING_ZEROS && np.pad_size != 0)
- buffer_pad (buf, '0', np.pad_size);
-
- /* integral part (may also be "nan" or "inf") */
- MPFR_ASSERTN (np.ip_ptr != NULL); /* never empty */
- if (MPFR_UNLIKELY (np.thousands_sep))
- {
- if (buffer_sandwich (buf, np.ip_ptr, np.ip_size, np.ip_trailing_digits,
- np.thousands_sep))
- {
- buf->len = -1;
- goto clear_and_exit;
- }
- }
- else
- {
- buffer_cat (buf, np.ip_ptr, np.ip_size);
-
- /* possible trailing zero in integral part (spec.size != 0) */
- MPFR_ASSERTD (np.ip_trailing_digits <= 1);
- if (np.ip_trailing_digits != 0)
- buffer_pad (buf, '0', 1);
- }
-
- /* decimal point */
- if (np.point)
- buffer_pad (buf, np.point, 1);
-
- /* leading zeros in fractional part */
- if (np.fp_leading_zeros != 0)
- buffer_pad (buf, '0', np.fp_leading_zeros);
-
- /* significant digits in fractional part */
- if (np.fp_ptr)
- buffer_cat (buf, np.fp_ptr, np.fp_size);
-
- /* trailing zeros in fractional part */
- if (np.fp_trailing_zeros != 0)
- buffer_pad (buf, '0', np.fp_trailing_zeros);
-
- /* exponent part */
- if (np.exp_ptr)
- buffer_cat (buf, np.exp_ptr, np.exp_size);
-
- /* left justification padding with right spaces */
- if (np.pad_type == RIGHT && np.pad_size != 0)
- buffer_pad (buf, ' ', np.pad_size);
-
- MPFR_ASSERTD (buf->len == -1 || buf->len - start == length);
-
- clear_and_exit:
- clear_string_list (np.sl);
- return buf->len == -1 ? -1 : length;
-}
-
-/* The following internal function implements both mpfr_vasprintf and
- mpfr_vsnprintf:
- (a) either ptr <> NULL, and then Buf and size are not used, and it
- implements mpfr_vasprintf (ptr, fmt, ap)
- (b) or ptr = NULL, and it implements mpfr_vsnprintf (Buf, size, fmt, ap)
- It returns the number of characters that would have been written had 'size'
- been sufficiently large, not counting the terminating null character, or -1
- if this number is too large for the return type 'int' (overflow).
-*/
-int
-mpfr_vasnprintf_aux (char **ptr, char *Buf, size_t size, const char *fmt,
- va_list ap)
-{
- struct string_buffer buf;
- int nbchar;
-
- /* information on the conversion specification filled by the parser */
- struct printf_spec spec;
- /* flag raised when previous part of fmt need to be processed by
- gmp_vsnprintf */
- int xgmp_fmt_flag;
- /* beginning and end of the previous unprocessed part of fmt */
- const char *start, *end;
- /* pointer to arguments for gmp_vasprintf */
- va_list ap2;
-
- MPFR_SAVE_EXPO_DECL (expo);
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* FIXME: Once buf.len >= size, switch to size = 0 for efficiency and
- avoid potential DoS? i.e. we no longer need to generate the strings
- (potentially huge), just compute the lengths. */
-
- buffer_init (&buf, ptr != NULL || size != 0 ? 4096 : 0);
- xgmp_fmt_flag = 0;
- va_copy (ap2, ap);
- start = fmt;
- while (*fmt != '\0')
- {
- int overflow = 0;
-
- /* Look for the next format specification */
- while (*fmt != '\0' && *fmt != '%')
- ++fmt;
-
- if (*fmt == '\0')
- break;
-
- if (*++fmt == '%')
- /* %%: go one step further otherwise the second '%' would be
- considered as a new conversion specification introducing
- character */
- {
- ++fmt;
- xgmp_fmt_flag = 1;
- continue;
- }
-
- end = fmt - 1;
-
- /* format string analysis */
- specinfo_init (&spec);
- fmt = parse_flags (fmt, &spec);
-
- READ_INT (ap, fmt, spec.width);
- if (spec.width < 0) /* integer read via '*', no overflow */
- {
- spec.left = 1;
- /* Since the type of the integer is int, spec.width >= INT_MIN,
- so that an overflow is possible here only if mpfr_intmax_t
- has the same size of int. The INT_MIN < - MPFR_INTMAX_MAX
- test allows the compiler to optimize when it is false. */
- if (MPFR_UNLIKELY (INT_MIN < - MPFR_INTMAX_MAX &&
- spec.width < - MPFR_INTMAX_MAX))
- overflow = 1;
- else
- spec.width = - spec.width;
- }
- /* Note: We will make sure that spec.width is not used in case of
- overflow. */
- MPFR_ASSERTD (overflow || spec.width >= 0);
-
- if (*fmt == '.')
- {
- const char *f = ++fmt;
- READ_INT (ap, fmt, spec.prec);
- if (f == fmt || spec.prec < 0)
- spec.prec = -1;
- }
- else
- spec.prec = -1;
- MPFR_ASSERTD (spec.prec >= -1);
-
- fmt = parse_arg_type (fmt, &spec);
- if (spec.arg_type == UNSUPPORTED)
- /* the current architecture doesn't support the type corresponding to
- the format specifier; according to the ISO C99 standard, the
- behavior is undefined. We choose to print the format specifier as a
- literal string, what may be printed after this string is
- undefined. */
- continue;
- else if (spec.arg_type == MPFR_ARG)
- {
- switch (*fmt)
- {
- case '\0':
- break;
- case '*':
- ++fmt;
- spec.rnd_mode = (mpfr_rnd_t) va_arg (ap, int);
- break;
- case 'D':
- ++fmt;
- spec.rnd_mode = MPFR_RNDD;
- break;
- case 'U':
- ++fmt;
- spec.rnd_mode = MPFR_RNDU;
- break;
- case 'Y':
- ++fmt;
- spec.rnd_mode = MPFR_RNDA;
- break;
- case 'Z':
- ++fmt;
- spec.rnd_mode = MPFR_RNDZ;
- break;
- case 'N':
- ++fmt;
- MPFR_FALLTHROUGH;
- default:
- spec.rnd_mode = MPFR_RNDN;
- }
- }
-
- spec.spec = *fmt;
- if (!specinfo_is_valid (spec))
- /* the format specifier is invalid; according to the ISO C99 standard,
- the behavior is undefined. We choose to print the invalid format
- specifier as a literal string, what may be printed after this
- string is undefined. */
- continue;
-
- if (*fmt != '\0')
- fmt++;
-
- /* Format processing */
- if (spec.spec == '\0')
- /* end of the format string */
- break;
- else if (spec.spec == 'n')
- /* put the number of characters written so far in the location pointed
- by the next va_list argument; the types of pointer accepted are the
- same as in GMP (except unsupported quad_t) plus pointer to a mpfr_t
- so as to be able to accept the same format strings. */
- {
- void *p;
-
- p = va_arg (ap, void *);
- FLUSH (xgmp_fmt_flag, start, end, ap2, &buf);
- va_end (ap2);
- start = fmt;
-
- switch (spec.arg_type)
- {
- case CHAR_ARG:
- *(char *) p = (char) buf.len;
- break;
- case SHORT_ARG:
- *(short *) p = (short) buf.len;
- break;
- case LONG_ARG:
- *(long *) p = (long) buf.len;
- break;
-#ifdef HAVE_LONG_LONG
- case LONG_LONG_ARG:
- *(long long *) p = (long long) buf.len;
- break;
-#endif
-#ifdef _MPFR_H_HAVE_INTMAX_T
- case INTMAX_ARG:
- *(intmax_t *) p = (intmax_t) buf.len;
- break;
-#endif
- case SIZE_ARG:
- *(size_t *) p = buf.len;
- break;
- case PTRDIFF_ARG:
- *(ptrdiff_t *) p = (ptrdiff_t) buf.len;
- break;
- case MPF_ARG:
- mpf_set_ui ((mpf_ptr) p, (unsigned long) buf.len);
- break;
- case MPQ_ARG:
- mpq_set_ui ((mpq_ptr) p, (unsigned long) buf.len, 1L);
- break;
- case MP_LIMB_ARG:
- *(mp_limb_t *) p = (mp_limb_t) buf.len;
- break;
- case MP_LIMB_ARRAY_ARG:
- {
- mp_limb_t *q = (mp_limb_t *) p;
- mp_size_t n;
- n = va_arg (ap, mp_size_t);
- if (n < 0)
- n = -n;
- else if (n == 0)
- break;
-
- /* we assume here that mp_limb_t is wider than int */
- *q = (mp_limb_t) buf.len;
- while (--n != 0)
- {
- q++;
- *q = MPFR_LIMB_ZERO;
- }
- }
- break;
- case MPZ_ARG:
- mpz_set_ui ((mpz_ptr) p, (unsigned long) buf.len);
- break;
-
- case MPFR_ARG:
- mpfr_set_ui ((mpfr_ptr) p, (unsigned long) buf.len,
- spec.rnd_mode);
- break;
-
- default:
- *(int *) p = (int) buf.len;
- }
- va_copy (ap2, ap); /* after the switch, due to MP_LIMB_ARRAY_ARG
- case */
- }
- else if (spec.arg_type == MPFR_PREC_ARG)
- /* output mpfr_prec_t variable */
- {
- char *s;
- char format[MPFR_PREC_FORMAT_SIZE + 12]; /* e.g. "%0#+ -'*.*ld\0" */
- size_t length;
- mpfr_prec_t prec;
-
- /* FIXME: With buf.size = 0 and a huge width or precision, this
- can uselessly take much memory. And even with buf.size != 0,
- this would take more memory than necessary and need a large
- buffer_cat. A solution: compute a bound on the maximum
- number of significant digits, and handle the additional
- characters separately. Moreover, if buf.size = 0 or size != 0,
- gmp_snprintf should be called instead of gmp_asprintf,
- outputting data directly to the buffer when applicable.
- See also: https://sourceware.org/bugzilla/show_bug.cgi?id=23432
- Add testcases. */
-
- prec = va_arg (ap, mpfr_prec_t);
-
- FLUSH (xgmp_fmt_flag, start, end, ap2, &buf);
- va_end (ap2);
- va_copy (ap2, ap);
- start = fmt;
-
- /* The restriction to INT_MAX is a limitation due to the fact
- that *.* is used below. If the width or precision field is
- larger than INT_MAX, then there is a real overflow on the
- return value due to the padding characters, thus the error
- is correct. The only minor drawback is that some variables
- corresponding to the 'n' conversion specifier with a type
- larger than int may not be set. This is not a bug, as there
- are no strong guarantees for such variables in case of error.
- FIXME: If size = 0 and max(spec.width,spec.prec) is large
- enough, there is no need to call gmp_asprintf since we are
- just interested in the length, which should be this maximum;
- in particular, this should avoid the overflow issue. */
- if (overflow || spec.width > INT_MAX || spec.prec > INT_MAX)
- {
- buf.len = -1;
- goto error;
- }
-
- /* Recalled from above. */
- MPFR_ASSERTD (spec.width >= 0);
- MPFR_ASSERTD (spec.prec >= -1);
-
- /* construct format string, like "%*.*hd" "%*.*d" or "%*.*ld" */
- sprintf (format, "%%%s%s%s%s%s%s*.*" MPFR_PREC_FORMAT_TYPE "%c",
- spec.pad == '0' ? "0" : "",
- spec.alt ? "#" : "",
- spec.showsign ? "+" : "",
- spec.space ? " " : "",
- spec.left ? "-" : "",
- spec.group ? "'" : "",
- spec.spec);
- MPFR_LOG_MSG (("MPFR_PREC_ARG: format for gmp_asprintf: \"%s\"\n",
- format));
- MPFR_LOG_MSG (("MPFR_PREC_ARG: width = %d, prec = %d, value = %"
- MPFR_PREC_FORMAT_TYPE "d\n",
- (int) spec.width, (int) spec.prec, prec));
- length = gmp_asprintf (&s, format,
- (int) spec.width, (int) spec.prec, prec);
- MPFR_ASSERTN (length >= 0); /* guaranteed by GMP 6 */
- buffer_cat (&buf, s, length);
- mpfr_free_str (s);
- }
- else if (spec.arg_type == MPFR_ARG)
- /* output a mpfr_t variable */
- {
- mpfr_srcptr p;
-
- if (spec.spec != 'a' && spec.spec != 'A'
- && spec.spec != 'b'
- && spec.spec != 'e' && spec.spec != 'E'
- && spec.spec != 'f' && spec.spec != 'F'
- && spec.spec != 'g' && spec.spec != 'G')
- /* The format specifier is invalid; skip the invalid format
- specifier so as to print it as a literal string. What may
- be printed after this string is undefined. */
- continue;
-
- p = va_arg (ap, mpfr_srcptr);
-
- FLUSH (xgmp_fmt_flag, start, end, ap2, &buf);
- va_end (ap2);
- va_copy (ap2, ap);
- start = fmt;
-
- if (overflow)
- {
- buf.len = -1;
- goto error;
- }
-
- if (ptr == NULL)
- spec.size = size;
- sprnt_fp (&buf, p, spec);
- }
- else
- /* gmp_printf specification, step forward in the va_list */
- {
- CONSUME_VA_ARG (spec, ap);
- xgmp_fmt_flag = 1;
- }
- }
-
- if (start != fmt)
- FLUSH (xgmp_fmt_flag, start, fmt, ap2, &buf);
-
- va_end (ap2);
-
- if (buf.len == -1 || buf.len > INT_MAX) /* overflow */
- goto overflow;
-
- nbchar = buf.len;
- MPFR_ASSERTD (nbchar >= 0);
-
- if (ptr != NULL) /* implement mpfr_vasprintf */
- {
- MPFR_ASSERTD (nbchar == strlen (buf.start));
- *ptr = (char *) mpfr_reallocate_func (buf.start, buf.size, nbchar + 1);
- }
- else if (size != 0) /* implement mpfr_vsnprintf */
- {
- if (nbchar < size)
- {
- strncpy (Buf, buf.start, nbchar);
- Buf[nbchar] = '\0';
- }
- else
- {
- strncpy (Buf, buf.start, size - 1);
- Buf[size-1] = '\0';
- }
- mpfr_free_func (buf.start, buf.size);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return nbchar; /* return the number of characters that would have
- been written had 'size' been sufficiently large,
- not counting the terminating null character */
-
- error:
- va_end (ap2);
- if (buf.len == -1) /* overflow */
- {
- overflow:
- MPFR_LOG_MSG (("Overflow\n", 0));
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_ERANGE);
-#ifdef EOVERFLOW
- MPFR_LOG_MSG (("Setting errno to EOVERFLOW\n", 0));
- errno = EOVERFLOW;
-#endif
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- if (ptr != NULL) /* implement mpfr_vasprintf */
- *ptr = NULL;
- if (ptr != NULL || size != 0)
- mpfr_free_func (buf.start, buf.size);
-
- return -1;
-}
-
-#else /* HAVE_STDARG */
-
-/* Avoid an empty translation unit (see ISO C99, 6.9) */
-typedef int foo;
-
-#endif /* HAVE_STDARG */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/version.c b/Build/source/libs/mpfr/mpfr-src/src/version.c
deleted file mode 100644
index 035f1580aa1..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/version.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mpfr_get_version -- MPFR version
-
-Copyright 2004-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-const char *
-mpfr_get_version (void)
-{
- return "4.1.0";
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/volatile.c b/Build/source/libs/mpfr/mpfr-src/src/volatile.c
deleted file mode 100644
index 7a77d58297d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/volatile.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* __gmpfr_longdouble_volatile -- support for LONGDOUBLE_NAN_ACTION.
-
- THE FUNCTIONS IN THIS FILE ARE FOR INTERNAL USE ONLY. THEY'RE ALMOST
- CERTAIN TO BE SUBJECT TO INCOMPATIBLE CHANGES OR DISAPPEAR COMPLETELY IN
- FUTURE MPFR RELEASES.
-
-Copyright 2003-2004, 2006-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "mpfr-impl.h"
-
-/* Only needed sometimes. */
-#ifdef WANT_GMPFR_LONGDOUBLE_VOLATILE
-long double
-__gmpfr_longdouble_volatile (long double x)
-{
- return x;
-}
-#endif
diff --git a/Build/source/libs/mpfr/mpfr-src/src/x86/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/x86/mparam.h
deleted file mode 100644
index 955bd4f0f36..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/x86/mparam.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 6.3.0 */
-/* gcc14.fsffrance.org (Intel(R) Xeon(R) CPU X5450 @ 3.00GHz)
- with GMP 6.1.2 configured with ABI=32,
- MPFR configured with CFLAGS='-O2 -m32 -march=i686 -mtune=generic' */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,15,0,0,0,16,0,17,18,19, \
- 21,18,19,20,21,21,22,23,24,26,23,28,25,30,30,28, \
- 29,30,34,32,32,34,34,36,36,38,38,38,40,42,42,42, \
- 40,46,42,46,44,44,46,52,48,49,50,50,52,52,54,60, \
- 56,56,58,59,60,60,60,63,64,64,64,64,68,68,68,68, \
- 68,68,64,68,64,68,68,68,68,68,68,68,68,68,76,76, \
- 76,76,68,80,84,68,68,84,84,84,84,84,84,84,84,77, \
- 84,76,80,84,84,76,84,92,84,76,84,84,84,84,92,92, \
- 93,93,84,110,111,99,93,99,111,99,110,111,106,105,108,104, \
- 110,111,111,110,111,111,111,110,110,123,116,110,123,123,120,117, \
- 116,117,116,123,123,123,120,126,123,123,123,129,126,123,129,129, \
- 126,135,132,135,135,135,135,135,134,135,141,141,154,135,156,141, \
- 134,148,156,156,156,147,148,164,164,155,156,156,164,163,164,163, \
- 163,164,164,164,164,164,164,163,171,163,164,172,172,171,172,163, \
- 164,171,180,177,180,179,180,184,172,179,180,180,176,179,180,171, \
- 180,180,188,188,180,187,200,204,180,204,204,187,196,203,204,203, \
- 204,203,204,203,204,203,220,204,220,204,220,220,219,203,204,220, \
- 220,219,220,219,204,219,220,203,220,204,204,219,220,252,236,251, \
- 250,251,252,249,252,249,252,251,252,252,252,251,252,251,252,249, \
- 252,252,252,251,252,252,252,251,252,267,251,252,252,251,268,252, \
- 252,249,250,252,252,252,268,252,252,268,252,268,268,268,268,252, \
- 252,265,251,268,268,268,266,265,267,268,268,268,268,268,268,268, \
- 268,267,268,268,268,268,268,267,268,306,306,306,306,268,306,306, \
- 306,305,305,306,306,268,306,306,305,305,306,306,306,330,306,306, \
- 306,306,306,306,306,306,330,306,306,306,306,330,330,330,330,306, \
- 329,330,330,330,328,329,330,330,354,329,330,329,330,330,354,330, \
- 330,354,329,330,330,354,330,352,354,329,354,330,354,330,330,354, \
- 354,329,354,330,360,330,330,354,352,354,378,371,378,377,354,378, \
- 378,402,354,402,378,378,378,401,402,378,402,378,354,401,377,378, \
- 377,378,402,401,378,378,378,402,401,402,402,402,401,401,402,402, \
- 401,402,401,402,402,402,402,402,402,402,402,402,402,402,401,402, \
- 402,401,402,402,401,402,402,401,402,402,402,402,402,402,402,402, \
- 402,401,402,402,402,401,402,439,439,440,402,440,402,402,426,439, \
- 439,440,440,440,426,426,426,438,439,440,472,439,471,440,440,472, \
- 472,440,440,440,471,439,472,440,472,472,472,440,470,472,471,472, \
- 470,472,504,470,472,472,469,472,496,472,472,472,471,502,472,472, \
- 471,472,471,504,472,472,472,472,480,504,472,496,503,503,504,504, \
- 503,503,472,504,504,472,496,503,502,472,504,496,472,504,503,472, \
- 504,496,504,504,503,536,470,536,472,536,535,535,536,534,504,536, \
- 536,503,504,536,536,544,536,503,504,536,535,503,480,504,504,536, \
- 535,568,568,504,568,568,568,544,568,536,535,568,568,535,504,535, \
- 568,568,568,536,504,567,544,568,568,536,544,567,544,544,568,584, \
- 544,568,560,568,600,559,568,584,583,568,568,600,599,567,568,567, \
- 568,567,568,567,600,568,568,599,599,568,584,568,567,568,599,568, \
- 567,568,567,600,600,568,600,584,568,599,599,568,600,568,600,599, \
- 608,599,600,568,600,600,568,600,600,568,568,598,599,600,599,600, \
- 600,600,600,664,664,600,632,584,600,664,663,600,664,600,632,663, \
- 663,631,632,600,600,600,600,664,600,656,599,664,600,600,656,600, \
- 600,664,664,664,664,663,663,663,664,664,664,664,663,664,662,663, \
- 664,663,664,664,664,632,632,663,664,663,664,632,664,664,664,664, \
- 664,664,663,664,664,664,662,664,663,664,664,664,664,663,663,664, \
- 664,664,662,663,663,664,664,664,664,664,662,663,664,664,664,664, \
- 664,664,664,664,663,664,664,664,664,664,663,664,663,664,664,664, \
- 663,664,664,687,688,662,663,664,664,663,664,734,664,664,688,736, \
- 736,664,664,664,664,663,664,663,664,736,735,664,664,663,736,733, \
- 736,734,735,736,736,735,736,735,736,736,736,784,736,784,784,736, \
- 736,784,735,736,736,783,736,783,736,736,736,735,784,784,736,736, \
- 735,784,736,784,736,784,784,736,784,784,784,784,784,783,784,783, \
- 783,783,784,784,784,784,784,784,784,783,824,784,782,831,832,783, \
- 824,831,832,832,832,784,784,831,784,784,784,784,784,824,831,824, \
- 823,824,824,824,824,824,831,832,824,822,824,832,824,824,832,823, \
- 832,832,831,831,832,832,832,832,832,856,822,832,832,832,824,856, \
- 824,824,832,832,824,832,856,831,832,832,856,831,832,856,832,830 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,8,9,10, \
- 11,12,13,11,13,12,13,14,15,14,15,16,16,18,17,19, \
- 19,18,19,19,20,20,22,23,23,22,23,24,25,25,26,27, \
- 28,30,30,27,28,29,30,31,32,33,38,40,40,42,42,44, \
- 40,40,42,42,44,44,42,42,44,42,50,50,42,46,50,44, \
- 46,44,46,46,50,48,50,50,50,50,48,54,50,54,50,50, \
- 54,50,54,54,54,62,60,53,54,54,56,56,58,56,60,58, \
- 58,60,60,62,62,60,76,62,76,68,72,66,68,72,76,72, \
- 72,72,76,76,76,80,80,80,76,80,80,88,84,80,84,88, \
- 84,92,88,88,92,92,88,88,80,92,96,92,92,87,96,96, \
- 100,100,100,100,96,100,96,104,96,104,100,100,100,100,108,100, \
- 96,100,104,103,104,104,100,100,104,104,104,104,104,108,108,99, \
- 100,108,108,100,112,100,106,123,108,108,128,123,112,129,112,108, \
- 129,135,134,135,128,129,138,135,123,141,135,127,128,141,129,147, \
- 128,141,134,135,135,141,138,139,135,141,138,141,135,153,146,147, \
- 147,153,141,141,147,153,141,150,135,147,147,159,147,147,147,159, \
- 135,141,135,146,147,165,146,147,159,152,147,147,147,147,146,158, \
- 151,147,153,146,147,157,153,153,188,159,159,188,188,164,164,195, \
- 196,160,180,187,188,180,187,188,180,188,188,165,187,188,196,188, \
- 188,180,188,196,188,188,195,188,187,188,188,196,196,188,195,196, \
- 196,195,196,195,196,196,195,196,196,188,211,203,212,195,196,196, \
- 196,196,212,211,211,195,196,220,220,212,220,225,212,196,216,220, \
- 216,220,220,195,196,196,220,220,196,220,228,203,212,212,212,212, \
- 211,212,212,212,212,212,212,220,212,219,220,220,220,220,212,228, \
- 227,220,228,228,228,228,228,212,212,228,227,211,228,236,276,219, \
- 220,228,212,219,220,244,219,219,244,244,220,227,228,228,244,227, \
- 282,244,294,270,264,282,269,276,264,270,294,276,282,270,270,276, \
- 276,276,282,270,270,276,281,276,282,282,282,282,276,282,294,282, \
- 282,294,270,294,282,294,282,294,294,294,294,294,276,282,282,282, \
- 276,294,282,282,294,282,282,294,306,294,294,294,312,294,294,294, \
- 294,294,294,294,317,318,318,294,293,318,294,306,306,318,330,324, \
- 324,330,318,306,330,312,318,318,324,324,318,324,324,330,317,330, \
- 324,323,324,318,318,330,330,329,329,330,330,318,324,329,329,330, \
- 336,330,329,330,324,342,354,342,318,324,354,342,341,348,348,318, \
- 330,354,354,342,318,368,354,376,368,354,375,330,376,392,392,376, \
- 330,376,376,376,368,392,392,392,384,392,392,392,392,392,392,392, \
- 392,392,392,408,392,392,407,392,392,392,392,406,408,408,407,407, \
- 408,392,408,416,408,392,424,408,375,376,376,408,408,424,376,423, \
- 416,424,392,408,424,408,376,431,432,424,424,423,424,424,424,407, \
- 432,424,392,431,432,392,432,424,407,440,392,440,440,440,408,432, \
- 439,440,424,440,416,440,424,407,423,424,424,424,424,456,424,424, \
- 432,423,424,432,416,424,432,423,424,423,440,424,424,424,424,439, \
- 440,472,424,424,424,424,440,439,440,456,440,456,438,408,456,440, \
- 424,440,424,456,464,488,456,424,456,456,424,439,424,472,472,479, \
- 456,456,432,480,480,455,480,440,472,488,480,488,440,440,464,440, \
- 488,439,488,488,488,488,456,487,488,488,488,456,432,487,504,488, \
- 480,456,488,488,487,488,488,487,488,520,520,520,488,520,520,439, \
- 480,472,480,479,456,487,488,488,496,487,472,488,488,520,520,488, \
- 520,488,520,520,496,488,520,488,488,504,488,520,440,600,536,600, \
- 456,520,536,536,600,600,568,567,600,600,568,599,600,600,600,599, \
- 598,600,600,568,599,600,568,600,600,599,600,600,600,568,568,599, \
- 600,600,600,600,599,600,600,599,600,599,600,600,599,599,600,599, \
- 599,599,600,600,600,599,600,600,599,599,600,600,632,600,600,600, \
- 664,599,600,600,600,600,600,600,631,632,632,632,600,632,632,599, \
- 663,664,624,631,632,632,664,662,663,664,664,632,632,664,632,663, \
- 664,631,664,662,662,664,664,662,664,663,664,663,663,663,664,664, \
- 664,662,663,664,664,664,664,663,664,663,664,664,664,664,664,663, \
- 664,632,663,664,664,663,664,664,664,631,664,663,696,696,696,664, \
- 600,664,664,662,664,664,664,664,664,663,664,663,664,664,663,664, \
- 664,663,664,664,632,664,664,663,664,663,664,663,664,664,728,663, \
- 664,727,663,664,664,663,664,664,696,632,728,728,663,663,664,696, \
- 664,664,696,728,664,664,728,728,696,663,664,663,728,664,664,655, \
- 696,663,664,661,664,695,696,663,656,728,664,663,664,663,664,664, \
- 696,664,663,663,664,695,696,664,664,695,696,662,664,663,664,663 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,20,23,23,23,23,24,23,24,25,27,27, /*32-47*/ \
- 27,27,31,29,32,29,30,30,32,31,33,31,35,35,36,35, /*48-63*/ \
- 36,36,42,42,37,41,41,45,42,42,46,43,44,45,42,45, /*64-79*/ \
- 44,45,49,47,46,49,50,54,50,56,51,56,56,58,54,56, /*80-95*/ \
- 60,54,56,59,55,58,54,56,63,60,62,56,60,66,64,66, /*96-111*/ \
- 63,62,67,68,62,66,64,68,68,72,67,70,67,68,66,67, /*112-127*/ \
- 70,68,74,83,72,70,83,76,84,84,83,84,84,84,82,82, /*128-143*/ \
- 84,84,84,87,84,84,84,82,84,84,84,86,84,88,91,92, /*144-159*/ \
- 88,98,99,84,88,91,90,104,87,99,96,94,100,100,92,94, /*160-175*/ \
- 92,92,112,105,100,104,100,100,104,104,104,104,112,112,104,105, /*176-191*/ \
- 99,112,112,103,104,111,112,112,104,104,112,112,111,112,112,112, /*192-207*/ \
- 111,111,112,128,112,128,111,112,116,120,120,116,120,118,118,128, /*208-223*/ \
- 127,128,128,120,136,136,136,128,135,136,136,132,136,130,128,136, /*224-239*/ \
- 128,136,136,136,126,136,136,136,135,136,136,136,136,136,136,136, /*240-255*/ \
- 136,136,136,136,144,148,168,136,144,136,168,143,142,144,150,143, /*256-271*/ \
- 168,168,143,168,167,167,168,176,176,166,168,171,168,168,172,168, /*272-287*/ \
- 168,176,168,167,168,176,176,176,176,168,176,176,176,172,176,175, /*288-303*/ \
- 176,176,175,176,176,176,174,175,176,168,168,167,168,168,168,183, /*304-319*/ \
- 175,176,176,176,168,176,176,173,176,175,176,176,174,175,175,171, /*320-335*/ \
- 176,184,198,176,176,184,175,175,208,186,186,198,208,184,186,177, /*336-351*/ \
- 208,208,208,209,207,208,209,184,192,197,208,184,192,208,192,208, /*352-367*/ \
- 224,192,222,198,208,196,198,198,210,207,222,216,208,222,222,222, /*368-383*/ \
- 198,198,210,207,224,208,222,222,224,208,224,222,224,224,222,208, /*384-399*/ \
- 210,216,222,222,208,216,222,222,208,224,224,224,222,224,224,228, /*400-415*/ \
- 224,223,224,224,240,224,240,222,248,224,224,222,240,256,240,224, /*416-431*/ \
- 256,257,222,255,224,228,224,256,240,256,240,255,256,255,256,240, /*432-447*/ \
- 256,255,256,257,256,252,256,256,256,256,256,256,264,256,255,256, /*448-463*/ \
- 257,272,256,255,272,270,256,256,272,256,240,257,288,272,252,254, /*464-479*/ \
- 257,256,256,257,256,270,272,255,256,256,267,256,256,255,254,256, /*480-495*/ \
- 255,256,257,268,264,269,256,255,256,256,288,256,269,270,267,336, /*496-511*/ \
- 272,272,272,267,270,264,272,269,288,270,288,288,288,272,272,337, /*512-527*/ \
- 288,336,336,335,288,352,336,334,286,344,288,296,344,288,288,293, /*528-543*/ \
- 288,304,336,336,336,336,336,336,336,288,336,336,304,352,352,336, /*544-559*/ \
- 336,336,336,336,336,336,336,336,336,343,344,340,336,335,336,336, /*560-575*/ \
- 336,336,336,336,342,336,336,336,336,344,352,336,342,335,336,335, /*576-591*/ \
- 336,352,344,344,352,352,352,344,352,352,336,351,350,352,352,352, /*592-607*/ \
- 352,352,341,336,352,335,336,336,352,335,336,344,336,336,334,336, /*608-623*/ \
- 336,343,336,344,344,344,352,344,352,336,344,335,352,343,351,344, /*624-639*/ \
- 344,341,342,352,344,351,352,336,352,336,352,344,336,336,341,344, /*640-655*/ \
- 336,336,344,336,352,336,352,342,352,344,344,344,347,344,344,341, /*656-671*/ \
- 344,352,353,352,352,351,352,359,352,351,352,352,352,352,352,352, /*672-687*/ \
- 352,349,350,351,352,367,368,352,357,352,352,352,360,352,353,353, /*688-703*/ \
- 391,408,408,360,368,388,384,368,392,408,400,416,416,384,392,367, /*704-719*/ \
- 384,408,408,416,408,408,408,392,392,416,416,408,416,415,408,415, /*720-735*/ \
- 416,416,412,408,414,420,448,417,408,408,416,408,408,413,416,408, /*736-751*/ \
- 416,408,415,415,416,431,416,416,416,392,448,415,416,432,416,444, /*752-767*/ \
- 416,448,408,416,416,416,408,408,448,444,416,416,416,416,408,416, /*768-783*/ \
- 408,448,414,415,416,417,418,448,444,416,416,406,416,416,414,432, /*784-799*/ \
- 448,448,416,416,432,448,416,432,448,444,438,448,448,416,448,416, /*800-815*/ \
- 444,448,444,448,416,432,416,416,416,432,416,448,448,416,432,448, /*816-831*/ \
- 444,448,444,448,447,466,448,432,432,448,448,432,448,448,440,444, /*832-847*/ \
- 454,432,448,480,438,447,504,432,448,448,448,448,448,447,448,447, /*848-863*/ \
- 448,446,448,444,443,448,444,448,446,448,448,503,536,448,448,448, /*864-879*/ \
- 448,448,448,448,448,447,450,448,514,448,512,480,448,512,480,454, /*880-895*/ \
- 512,500,504,476,480,536,536,536,504,536,480,504,504,480,536,504, /*896-911*/ \
- 480,504,504,504,480,504,512,480,480,512,480,512,512,480,478,536, /*912-927*/ \
- 480,489,504,513,536,504,511,479,480,480,534,511,511,512,536,512, /*928-943*/ \
- 512,504,504,504,504,504,504,512,511,509,512,512,504,511,544,504, /*944-959*/ \
- 544,504,512,544,544,536,512,504,543,511,512,513,540,511,511,504, /*960-975*/ \
- 544,511,508,504,512,536,536,504,504,512,536,544,504,544,512,536, /*976-991*/ \
- 535,512,512,541,504,536,536,536,536,504,544,511,544,511,544,512, /*992-1007*/ \
- 511,512,544,514,544,535,544,544,544,536,536,536,536,536,544,544 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 13 /* limbs */
-#define MPFR_SQR_THRESHOLD 18 /* limbs */
-#define MPFR_DIV_THRESHOLD 3 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 522 /* bits */
-#define MPFR_EXP_THRESHOLD 6920 /* bits */
-#define MPFR_SINCOS_THRESHOLD 28160 /* bits */
-#define MPFR_AI_THRESHOLD1 -24100 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 2303
-#define MPFR_AI_THRESHOLD3 37484
-/* Tuneup completed successfully, took 787 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/x86_64/core2/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/x86_64/core2/mparam.h
deleted file mode 100644
index 340114c0bc4..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/x86_64/core2/mparam.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 6.3.0 */
-/* gcc14.fsffrance.org (Intel(R) Xeon(R) CPU X5450 @ 3.00GHz) with gmp 6.1.2 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,0,0,0,0,0,0,0,0,0,9,9,9,9, \
- 10,10,11,12,13,12,13,14,15,16,17,18,17,18,19,20, \
- 23,24,24,24,24,26,26,28,28,24,24,24,28,30,28,28, \
- 32,32,30,32,32,34,36,36,36,34,38,38,40,38,40,40, \
- 48,48,46,48,48,48,48,48,48,48,48,48,48,52,56,56, \
- 56,56,56,56,56,60,60,60,64,56,56,64,64,60,60,60, \
- 64,64,64,64,75,64,75,64,64,69,75,75,64,81,84,84, \
- 80,81,81,80,81,81,81,84,87,87,87,87,84,92,87,81, \
- 81,90,93,92,93,93,87,90,90,93,92,93,93,93,92,93, \
- 92,93,104,93,105,93,99,105,105,104,105,108,105,105,108,105, \
- 105,108,110,111,111,110,111,114,117,114,117,116,105,117,116,117, \
- 141,141,141,141,141,141,141,141,140,141,141,141,141,141,141,141, \
- 140,141,141,141,141,141,141,141,141,140,141,141,141,153,140,140, \
- 141,141,141,141,141,141,165,165,165,165,165,153,165,165,165,165, \
- 153,165,165,165,165,177,165,188,165,165,188,165,165,188,165,165, \
- 188,188,165,188,188,188,188,188,188,188,188,188,188,188,186,188, \
- 188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,204, \
- 204,188,204,204,204,204,204,202,204,204,204,204,220,220,220,208, \
- 203,204,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \
- 220,220,220,236,236,236,236,236,236,236,236,236,236,236,236,236, \
- 236,236,236,236,236,236,236,236,236,236,236,282,282,282,282,282, \
- 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, \
- 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, \
- 282,282,282,282,282,282,282,282,281,282,306,282,282,282,306,282, \
- 282,282,330,329,330,330,330,330,306,330,306,330,306,306,330,306, \
- 306,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330, \
- 330,330,330,330,329,330,330,330,330,330,360,360,330,330,360,360, \
- 360,330,360,360,360,360,360,360,360,360,360,360,368,368,360,376, \
- 376,376,368,376,368,376,376,376,376,376,376,376,376,376,368,368, \
- 376,376,376,376,376,376,375,376,376,376,376,376,368,368,376,376, \
- 408,408,408,408,408,376,408,408,376,375,376,439,376,440,440,376, \
- 408,376,376,376,376,376,408,376,440,440,440,440,440,440,440,440, \
- 440,440,432,432,440,440,440,440,440,440,439,440,440,440,440,439, \
- 439,440,408,440,440,440,439,440,440,440,440,440,440,440,472,440, \
- 440,472,472,440,440,440,440,440,440,440,440,439,440,440,440,440, \
- 440,440,440,440,440,439,440,440,440,440,440,440,440,440,440,440, \
- 440,440,440,440,440,472,439,440,440,440,472,472,472,472,472,472, \
- 472,470,472,472,504,471,472,472,480,472,472,472,472,472,472,503, \
- 472,472,472,472,472,472,472,472,504,503,504,504,504,504,504,504, \
- 472,504,504,504,504,504,504,504,504,504,504,504,504,496,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,504,544,544,544,544,544,544,544,544, \
- 544,536,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \
- 544,544,544,544,544,544,544,544,544,544,592,592,592,592,592,592, \
- 591,592,592,591,592,592,568,568,592,591,592,592,592,592,592,640, \
- 592,592,592,592,592,592,592,592,592,592,592,591,592,592,592,592, \
- 592,592,592,624,624,623,630,631,632,632,632,632,632,592,632,639, \
- 640,640,640,639,640,640,640,640,640,632,640,632,632,632,632,632, \
- 640,632,632,639,632,632,632,640,639,640,640,640,664,664,640,640, \
- 640,640,640,664,664,664,664,664,664,664,640,663,640,640,664,664, \
- 640,664,640,664,664,664,664,664,640,664,688,688,688,687,688,688, \
- 680,640,664,664,664,664,688,664,664,688,664,688,640,664,664,664, \
- 639,688,640,640,640,640,712,640,711,712,712,736,688,712,712,712, \
- 736,664,664,664,688,664,664,664,728,664,728,728,728,728,736,736, \
- 736,735,736,736,736,736,728,728,735,736,736,736,736,736,736,736, \
- 735,736,735,736,728,736,736,728,728,735,736,735,736,736,736,736, \
- 736,736,735,736,735,736,736,735,736,728,728,728,728,736,736,735, \
- 735,736,736,736,736,736,736,728,735,736,736,736,736,736,736,736, \
- 735,736,736,736,736,736,736,736,736,736,736,736,736,735,734,736, \
- 736,735,736,736,736,736,736,736,735,736,736,735,736,736,735,735, \
- 736,736,736,784,736,735,784,784,784,784,736,736,824,783,736,735, \
- 783,784,784,736,784,824,784,784,784,784,784,784,832,736,735,832, \
- 824,784,736,736,824,736,824,784,784,784,784,832,832,784,824,824, \
- 824,856,822,824,824,824,824,824,824,824,824,824,824,824,824,824 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,-1,-1,-1,-1,-1,-1,-1,6,6,7,7,8,9,9,9, \
- 10,10,11,12,13,14,13,14,15,16,17,17,17,18,20,20, \
- 21,22,19,19,20,21,24,25,22,22,23,24,24,25,26,27, \
- 26,27,27,27,34,34,30,34,34,34,34,34,38,38,38,38, \
- 38,42,40,40,44,46,44,38,40,46,42,42,44,44,46,46, \
- 46,48,48,48,48,48,50,48,48,50,48,48,50,60,60,60, \
- 50,60,52,60,60,60,60,60,60,64,68,64,64,68,64,64, \
- 68,64,64,68,68,68,68,72,68,68,76,76,76,76,76,76, \
- 76,80,80,80,80,80,80,80,80,76,80,84,84,88,84,84, \
- 76,80,76,80,80,84,80,84,84,84,88,88,88,92,91,92, \
- 92,92,96,96,96,88,92,92,92,92,96,96,96,92,96,96, \
- 95,105,96,110,111,111,117,111,117,117,117,117,117,117,117,123, \
- 123,117,123,117,117,117,117,117,116,129,135,129,123,135,135,123, \
- 123,129,129,135,135,135,134,135,129,135,140,135,140,141,141,141, \
- 141,141,141,141,141,141,141,141,140,141,140,140,141,141,141,141, \
- 141,140,147,140,141,141,141,153,147,153,147,147,172,141,140,141, \
- 140,164,172,164,171,164,172,172,141,141,172,180,180,188,180,180, \
- 180,180,188,180,188,188,188,188,187,188,188,180,188,172,188,188, \
- 187,188,187,188,188,180,172,180,180,196,179,180,188,188,188,187, \
- 188,188,186,185,188,188,188,188,188,196,188,188,188,196,188,188, \
- 188,188,188,196,195,188,188,188,196,196,187,188,188,188,188,196, \
- 195,195,195,196,195,196,204,204,212,212,204,188,196,196,196,204, \
- 212,212,212,212,212,204,234,234,234,258,234,246,234,246,234,234, \
- 246,246,246,234,246,258,258,246,246,234,258,258,258,258,258,246, \
- 258,270,258,258,258,258,258,270,258,270,257,258,270,258,258,270, \
- 270,282,270,282,282,270,282,281,282,282,282,282,282,282,282,282, \
- 282,282,270,282,282,282,282,282,282,282,282,282,282,282,282,282, \
- 282,282,282,282,282,282,282,282,282,282,282,282,282,282,312,312, \
- 282,312,312,312,312,312,312,312,312,328,312,282,282,328,282,270, \
- 282,282,328,282,328,328,328,328,282,328,344,282,282,282,328,344, \
- 328,344,344,344,344,360,344,344,360,344,360,344,344,344,344,344, \
- 344,360,360,344,344,360,360,344,344,360,344,344,360,360,360,360, \
- 360,360,328,360,328,360,328,344,360,328,328,360,344,360,360,344, \
- 360,360,344,360,344,344,360,344,360,344,344,344,344,360,344,344, \
- 360,360,360,359,360,360,360,360,360,360,360,360,360,360,359,360, \
- 360,360,360,360,360,360,359,359,360,360,360,344,360,360,360,360, \
- 360,360,360,360,360,360,360,360,391,360,392,360,360,359,360,359, \
- 360,360,360,360,360,360,360,360,360,360,359,360,360,360,424,424, \
- 423,424,424,424,472,424,472,424,424,424,424,424,424,471,472,472, \
- 424,472,472,424,472,472,472,472,472,424,424,472,472,424,424,472, \
- 472,424,472,472,472,472,472,472,472,472,472,471,472,472,472,472, \
- 472,472,472,472,472,472,471,472,471,472,472,472,472,472,472,472, \
- 472,471,472,472,472,504,504,472,472,472,472,472,504,504,472,504, \
- 472,504,504,504,472,504,504,472,472,472,471,472,472,472,472,471, \
- 472,472,472,472,472,472,472,472,472,472,471,472,472,504,504,472, \
- 472,504,472,536,472,472,471,472,472,472,536,472,472,536,536,536, \
- 536,536,536,536,504,504,504,536,536,504,536,536,504,536,504,504, \
- 536,504,568,504,568,568,568,568,568,568,568,568,568,568,568,568, \
- 568,567,568,536,568,536,568,568,568,536,568,568,536,536,536,536, \
- 536,568,536,536,536,536,568,536,536,568,536,536,568,536,536,568, \
- 568,568,568,568,568,568,568,568,568,568,567,568,568,568,568,568, \
- 568,568,568,568,568,568,567,568,567,568,568,600,600,568,568,568, \
- 568,600,600,568,600,600,568,600,600,600,568,600,600,600,600,600, \
- 600,600,600,600,600,632,599,600,600,600,600,600,600,600,600,600, \
- 632,600,568,600,568,600,568,568,632,568,631,600,568,568,568,568, \
- 632,632,632,632,624,632,631,600,624,632,632,600,600,632,632,632, \
- 600,600,600,600,600,600,632,600,632,600,600,600,664,664,632,664, \
- 664,600,568,600,664,568,600,664,568,568,600,600,568,632,632,632, \
- 599,600,568,600,632,632,632,632,600,600,568,600,600,632,632,600, \
- 600,632,599,600,600,632,599,600,600,600,600,600,600,600,664,600, \
- 600,664,600,664,632,696,696,696,696,696,696,696,695,696,696,695, \
- 696,696,632,632,632,632,632,632,632,632,632,632,632,632,632,631, \
- 632,632,632,632,632,631,728,728,632,632,696,632,696,696,696,664, \
- 696,696,696,664,662,664,664,664,664,664,664,664,664,664,664,664 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*64-79*/ \
- 0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,50, /*80-95*/ \
- 54,55,0,52,56,52,56,56,58,55,58,60,59,60,64,59, /*96-111*/ \
- 64,59,62,68,60,60,64,64,68,62,64,66,72,68,66,68, /*112-127*/ \
- 68,68,68,68,71,69,74,76,70,78,72,72,72,72,78,74, /*128-143*/ \
- 77,75,78,78,78,78,84,77,84,79,80,79,80,86,92,92, /*144-159*/ \
- 83,83,92,92,96,96,96,92,96,96,96,92,92,104,96,104, /*160-175*/ \
- 92,104,96,104,96,96,96,104,104,104,112,104,104,104,112,116, /*176-191*/ \
- 112,112,112,104,112,120,116,112,116,120,112,112,118,104,119,120, /*192-207*/ \
- 112,120,124,124,112,128,112,120,116,116,128,112,120,128,116,120, /*208-223*/ \
- 128,116,120,120,120,128,120,128,128,120,128,128,128,128,124,128, /*224-239*/ \
- 128,124,128,128,128,128,128,128,128,128,128,128,135,136,136,132, /*240-255*/ \
- 136,136,132,134,135,136,137,149,135,160,136,136,156,150,160,160, /*256-271*/ \
- 144,160,144,148,160,160,161,144,144,156,160,156,156,160,160,160, /*272-287*/ \
- 160,150,162,148,160,150,158,158,160,174,156,160,164,160,160,162, /*288-303*/ \
- 156,160,160,168,160,168,158,172,160,159,160,184,162,192,184,174, /*304-319*/ \
- 184,173,168,192,185,186,184,184,184,184,192,192,168,184,184,191, /*320-335*/ \
- 172,184,184,185,192,186,185,184,185,186,192,184,184,184,184,192, /*336-351*/ \
- 184,182,192,191,185,189,192,184,192,192,192,184,184,208,192,185, /*352-367*/ \
- 192,216,208,216,208,192,192,208,192,192,192,192,192,208,208,224, /*368-383*/ \
- 216,216,208,207,222,208,224,224,208,216,232,224,208,208,208,208, /*384-399*/ \
- 232,208,224,224,224,208,216,224,228,216,208,224,232,240,224,222, /*400-415*/ \
- 224,224,224,224,224,216,232,224,232,232,216,216,232,224,232,232, /*416-431*/ \
- 240,240,224,224,224,224,232,228,246,240,232,232,240,240,239,240, /*432-447*/ \
- 240,240,232,232,240,240,240,256,256,240,240,256,240,256,253,240, /*448-463*/ \
- 256,256,256,240,255,256,240,256,256,264,256,240,240,240,256,256, /*464-479*/ \
- 256,256,248,256,257,256,256,256,256,256,256,256,264,256,256,256, /*480-495*/ \
- 256,256,256,256,256,288,256,270,288,256,288,256,270,256,276,288, /*496-511*/ \
- 272,270,282,288,276,276,270,288,288,288,288,276,276,288,288,288, /*512-527*/ \
- 288,288,280,288,276,272,288,288,288,276,272,280,288,312,276,288, /*528-543*/ \
- 284,288,288,312,288,288,288,288,312,316,288,306,288,288,312,312, /*544-559*/ \
- 288,312,288,312,320,304,305,288,312,320,320,312,336,288,312,312, /*560-575*/ \
- 312,330,312,312,330,320,300,336,312,320,312,312,312,312,320,336, /*576-591*/ \
- 316,312,312,312,320,312,348,322,318,312,336,336,312,320,336,312, /*592-607*/ \
- 316,324,336,312,336,384,312,324,384,368,336,320,384,320,336,384, /*608-623*/ \
- 384,320,316,336,320,368,384,384,368,330,384,368,384,336,384,368, /*624-639*/ \
- 384,368,384,336,384,336,336,336,384,336,336,384,384,384,384,370, /*640-655*/ \
- 384,368,384,368,384,384,384,384,368,354,359,368,336,368,368,368, /*656-671*/ \
- 384,384,384,368,384,384,368,384,384,376,368,384,369,384,384,368, /*672-687*/ \
- 372,384,384,384,384,384,368,368,384,368,368,384,383,368,369,368, /*688-703*/ \
- 370,368,368,369,416,384,384,384,384,384,384,384,368,384,384,384, /*704-719*/ \
- 384,416,416,384,384,369,368,416,368,368,384,384,384,384,384,384, /*720-735*/ \
- 384,384,384,384,384,384,384,384,384,384,384,384,382,376,384,408, /*736-751*/ \
- 384,384,384,382,408,384,384,416,384,384,416,384,384,384,448,416, /*752-767*/ \
- 416,432,416,416,416,416,416,416,416,416,416,432,432,416,408,432, /*768-783*/ \
- 432,416,416,416,416,416,416,416,432,416,432,416,432,416,416,416, /*784-799*/ \
- 432,440,416,432,432,416,448,416,416,416,448,416,416,416,448,464, /*800-815*/ \
- 464,432,432,416,448,416,448,464,448,464,464,464,440,456,440,448, /*816-831*/ \
- 480,472,480,432,432,464,448,432,480,464,480,432,464,480,432,480, /*832-847*/ \
- 432,440,432,432,448,440,480,464,480,480,440,448,480,448,448,440, /*848-863*/ \
- 448,464,448,466,448,448,480,448,448,448,512,466,480,480,480,456, /*864-879*/ \
- 464,448,464,464,464,448,464,464,512,464,512,480,480,480,464,480, /*880-895*/ \
- 480,480,480,480,512,480,480,480,480,456,464,464,466,464,512,464, /*896-911*/ \
- 480,480,512,464,512,468,512,472,512,466,480,464,512,480,512,480, /*912-927*/ \
- 480,480,510,512,480,480,480,480,480,512,480,562,512,480,512,480, /*928-943*/ \
- 512,512,480,480,480,538,480,480,480,528,540,480,564,512,540,512, /*944-959*/ \
- 540,512,564,512,512,512,564,550,564,512,512,512,561,512,563,563, /*960-975*/ \
- 512,512,512,512,564,512,512,512,564,564,512,564,563,564,512,540, /*976-991*/ \
- 562,540,528,512,540,512,552,512,552,560,512,512,552,564,540,552, /*992-1007*/ \
- 540,561,562,552,576,564,540,562,552,562,563,562,564,562,564,564 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 10 /* limbs */
-#define MPFR_SQR_THRESHOLD 13 /* limbs */
-#define MPFR_DIV_THRESHOLD 5 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 1023 /* bits */
-#define MPFR_EXP_THRESHOLD 10090 /* bits */
-#define MPFR_SINCOS_THRESHOLD 23323 /* bits */
-#define MPFR_AI_THRESHOLD1 -14098 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 1378
-#define MPFR_AI_THRESHOLD3 21450
-/* Tuneup completed successfully, took 699 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/x86_64/mparam.h b/Build/source/libs/mpfr/mpfr-src/src/x86_64/mparam.h
deleted file mode 100644
index 8dc7acb2a6a..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/x86_64/mparam.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Various Thresholds of MPFR, not exported. -*- mode: C -*-
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 7.3.0 */
-/* tomate.loria.fr Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz with GMP 6.1.2,
- where GMP defines -mtune=haswell */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,24,26,28,28,28,28,28, \
- 30,30,32,32,30,32,30,34,36,36,38,36,38,38,44,44, \
- 44,44,44,44,44,48,44,44,48,44,48,52,52,48,56,56, \
- 56,56,56,56,56,56,56,56,60,56,60,64,64,64,60,64, \
- 64,68,64,64,64,64,72,68,68,72,63,72,64,64,68,64, \
- 81,72,72,84,81,81,86,81,81,81,87,87,81,87,87,84, \
- 80,84,87,90,87,86,93,87,92,93,93,96,96,93,96,93, \
- 96,93,104,104,105,105,105,105,104,105,105,108,105,108,104,108, \
- 104,108,111,104,117,108,114,116,116,116,117,114,116,129,117,114, \
- 128,129,129,132,132,134,132,117,141,141,132,140,141,132,138,141, \
- 141,141,141,144,140,141,138,141,144,144,141,144,141,141,140,141, \
- 141,141,140,141,141,141,144,165,144,165,165,164,163,165,164,164, \
- 164,168,165,168,164,164,164,165,165,164,165,168,168,165,164,165, \
- 164,164,164,176,165,177,164,165,168,168,165,165,168,168,168,174, \
- 177,176,177,177,177,189,188,189,177,180,177,180,189,187,188,188, \
- 189,189,189,189,189,188,189,192,220,192,220,220,219,220,220,219, \
- 220,219,220,220,220,219,220,220,219,220,220,219,220,219,220,220, \
- 220,220,220,219,220,220,220,224,219,224,220,234,234,236,236,236, \
- 236,235,235,240,235,236,236,236,236,236,235,236,236,251,235,236, \
- 236,252,252,252,252,252,252,252,236,251,251,256,252,252,252,252, \
- 250,251,252,252,251,252,251,252,284,252,264,280,251,252,252,284, \
- 252,284,284,284,284,284,284,283,284,284,284,284,284,283,284,284, \
- 283,284,284,282,284,284,283,306,306,306,306,306,306,330,330,330, \
- 330,330,330,330,330,330,330,329,330,329,330,329,330,330,330,330, \
- 330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330, \
- 330,330,330,330,329,330,354,330,330,330,330,330,354,354,354,353, \
- 354,354,354,353,354,330,354,354,330,354,354,330,330,354,330,378, \
- 330,378,378,330,330,330,378,354,378,378,354,378,378,354,378,377, \
- 378,378,377,378,354,354,354,354,354,354,354,378,354,354,378,378, \
- 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,440, \
- 440,439,439,378,440,440,440,440,440,440,440,439,440,439,440,440, \
- 439,440,440,440,440,440,440,440,440,440,440,440,440,439,440,439, \
- 439,440,439,440,440,440,440,440,440,440,440,440,440,440,440,440, \
- 440,440,440,440,440,440,439,440,440,440,440,440,440,440,439,440, \
- 440,440,440,472,472,439,440,472,471,472,440,439,440,440,440,472, \
- 472,440,472,472,471,472,472,472,472,472,472,472,472,472,472,472, \
- 504,472,471,504,504,504,472,504,472,472,470,472,472,472,472,472, \
- 504,472,472,504,504,504,503,504,504,504,504,503,504,504,503,504, \
- 504,504,504,504,504,503,504,504,504,504,504,503,504,504,504,504, \
- 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
- 504,504,504,504,504,504,504,503,503,504,504,504,504,536,536,536, \
- 568,504,568,568,567,568,568,568,567,568,568,567,568,568,568,568, \
- 566,568,568,568,567,568,568,568,567,568,568,568,568,568,568,568, \
- 568,568,568,568,568,568,568,568,567,568,568,568,568,568,568,568, \
- 568,568,568,568,568,567,568,567,568,568,566,568,568,568,568,568, \
- 640,568,640,639,640,640,568,568,640,640,640,640,640,640,640,640, \
- 639,640,640,640,640,640,640,640,639,640,640,639,640,640,640,640, \
- 640,639,640,640,640,640,640,640,640,640,640,638,640,640,640,640, \
- 640,640,640,640,640,640,640,640,640,640,640,640,664,664,664,639, \
- 639,640,664,640,640,639,640,639,640,640,640,639,640,640,640,640, \
- 640,640,640,639,640,688,688,640,640,688,688,640,687,688,664,663, \
- 640,664,688,688,688,688,663,664,736,663,664,664,663,664,712,664, \
- 664,664,688,664,712,712,736,640,688,736,736,736,736,736,736,736, \
- 688,736,736,736,736,736,736,736,735,736,736,736,736,736,736,736, \
- 736,736,736,736,736,736,736,736,735,735,736,736,736,735,736,736, \
- 735,736,736,736,735,736,736,735,735,736,735,736,736,736,735,736, \
- 736,736,736,736,736,736,735,736,735,736,736,736,736,736,736,736, \
- 736,736,735,736,736,736,736,736,736,736,736,736,736,736,735,736, \
- 736,736,736,735,736,736,736,735,736,736,760,736,734,736,736,736, \
- 832,736,784,760,830,760,832,760,736,832,832,832,736,832,832,832, \
- 832,832,832,831,832,832,831,831,832,831,831,832,832,831,832,831, \
- 832,832,832,832,832,831,736,831,832,832,832,832,832,831,831,832 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,7,8,8,9,9, \
- 10,10,12,12,12,12,13,13,14,15,15,16,17,17,18,19, \
- 19,19,19,20,21,22,22,23,23,23,23,23,24,24,26,25, \
- 26,27,28,27,29,29,31,29,31,30,33,32,33,33,33,33, \
- 40,38,40,40,40,44,42,40,42,44,44,46,44,42,48,48, \
- 48,48,50,52,50,50,48,50,50,52,52,56,54,56,58,55, \
- 56,58,58,61,60,61,62,64,64,56,66,68,60,62,58,72, \
- 72,76,76,76,76,72,80,80,80,72,76,76,76,76,76,80, \
- 88,80,76,76,80,76,76,80,88,76,79,84,84,88,84,88, \
- 85,88,92,92,84,92,92,90,91,92,96,92,94,92,94,100, \
- 96,92,92,94,85,100,92,96,88,100,96,96,100,91,94,92, \
- 100,94,95,96,98,96,101,100,100,117,100,100,112,100,104,108, \
- 106,108,111,117,117,117,126,123,120,120,120,117,126,126,123,129, \
- 128,128,128,128,126,131,128,129,132,129,132,135,129,137,136,135, \
- 138,135,132,141,136,144,140,144,141,138,150,147,147,147,142,138, \
- 146,138,147,144,144,150,152,144,147,147,147,162,156,164,165,162, \
- 158,152,162,156,161,162,168,156,168,170,168,171,167,170,171,168, \
- 174,175,174,171,159,164,170,170,150,183,176,176,168,168,177,180, \
- 176,170,160,174,176,171,177,171,176,176,177,183,176,174,177,174, \
- 174,177,176,183,176,177,180,177,180,175,176,183,195,180,194,182, \
- 183,189,192,192,189,177,183,189,195,192,189,201,195,195,186,195, \
- 201,201,201,200,200,198,225,219,224,225,204,213,213,225,213,222, \
- 222,219,227,221,222,212,231,222,228,225,224,224,228,227,228,240, \
- 225,219,225,228,228,224,224,227,237,227,228,228,225,225,225,228, \
- 228,237,231,237,231,236,249,237,249,243,240,240,237,249,249,243, \
- 249,237,261,260,261,261,249,260,249,248,261,249,261,261,261,261, \
- 261,261,260,261,264,272,273,273,236,237,273,261,273,237,273,261, \
- 273,273,273,273,264,240,273,261,273,261,273,273,273,273,261,248, \
- 249,267,273,273,261,261,261,261,261,264,273,264,261,273,270,272, \
- 273,272,273,276,273,272,273,267,273,273,272,276,285,285,285,285, \
- 276,276,285,285,283,288,285,296,296,285,285,273,285,294,297,273, \
- 297,297,296,273,309,297,273,285,297,296,285,308,309,272,285,297, \
- 297,276,309,297,297,321,297,296,297,295,285,297,297,297,297,295, \
- 297,297,309,297,309,309,297,296,321,295,307,321,321,312,348,309, \
- 348,348,309,348,309,347,348,348,324,321,321,363,319,347,364,356, \
- 363,348,333,363,361,348,348,364,364,347,348,362,364,364,380,346, \
- 364,348,347,347,364,348,364,362,364,363,362,364,364,364,363,364, \
- 364,371,364,364,364,363,364,364,363,380,363,377,372,380,380,364, \
- 364,379,371,379,380,364,380,380,379,380,379,380,364,384,363,364, \
- 395,396,395,396,380,395,380,378,396,396,378,396,387,396,396,395, \
- 379,410,396,395,396,395,396,395,411,426,412,412,396,425,396,426, \
- 412,409,410,411,410,450,425,426,394,450,462,419,426,410,431,426, \
- 425,426,432,438,432,450,432,426,432,450,438,449,450,450,456,450, \
- 432,456,456,450,450,461,462,456,474,450,462,450,450,450,474,474, \
- 450,474,474,474,474,474,473,474,474,474,462,474,474,474,474,474, \
- 546,474,474,474,474,474,474,474,486,498,498,498,498,474,497,497, \
- 498,498,498,474,498,522,521,522,522,498,522,522,521,520,521,522, \
- 522,521,522,522,522,522,522,522,522,522,522,522,522,522,522,522, \
- 522,522,522,522,522,545,546,546,546,546,546,545,546,544,522,546, \
- 546,546,567,568,520,567,522,545,567,546,568,545,568,568,568,546, \
- 568,545,546,545,546,546,546,568,568,568,568,567,568,568,568,567, \
- 568,568,568,568,568,568,584,568,567,568,600,568,568,599,600,600, \
- 568,600,600,600,600,600,600,567,600,600,568,600,599,600,600,600, \
- 600,600,600,600,600,600,600,600,600,600,600,600,600,600,632,600, \
- 600,600,632,632,616,632,600,600,600,631,600,632,600,616,600,632, \
- 632,600,600,632,632,600,632,600,632,600,600,600,600,600,600,599, \
- 600,599,600,600,600,599,600,631,600,600,600,600,600,600,600,632, \
- 599,640,600,600,600,632,632,600,600,632,632,631,632,632,632,630, \
- 632,632,632,631,640,696,632,632,632,632,630,631,632,631,648,695, \
- 632,695,696,695,632,631,632,647,648,648,648,696,695,696,696,712, \
- 695,664,695,696,695,695,696,695,696,696,696,696,664,695,696,728, \
- 712,727,728,727,696,728,664,663,696,664,664,728,728,664,696,696, \
- 696,696,696,696,696,695,696,696,696,695,696,696,695,695,696,696, \
- 695,696,695,695,695,696,696,696,696,728,726,728,728,728,727,728 \
-
-#define MPFR_DIVHIGH_TAB \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*64-79*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*80-95*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*96-111*/ \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*112-127*/ \
- 68,68,0,0,75,69,0,0,71,78,72,73,74,72,78,74, /*128-143*/ \
- 77,84,78,79,78,84,84,77,80,79,80,82,80,80,88,84, /*144-159*/ \
- 84,84,83,93,84,91,86,92,90,88,92,90,90,94,96,95, /*160-175*/ \
- 94,94,96,96,96,96,98,94,100,98,100,96,97,104,106,100, /*176-191*/ \
- 98,98,102,106,102,106,106,112,109,103,112,112,110,104,112,111, /*192-207*/ \
- 109,112,110,118,110,128,112,116,126,112,128,132,128,128,128,128, /*208-223*/ \
- 124,127,128,122,129,128,125,126,127,125,128,127,128,125,136,128, /*224-239*/ \
- 128,128,136,128,136,128,144,132,130,144,135,132,132,136,136,134, /*240-255*/ \
- 142,144,144,134,144,137,136,150,135,143,136,146,140,144,144,142, /*256-271*/ \
- 144,144,144,143,144,149,162,144,144,162,144,144,156,144,167,146, /*272-287*/ \
- 148,150,162,150,155,150,150,158,154,156,162,168,164,160,168,162, /*288-303*/ \
- 156,168,160,164,160,160,158,158,160,159,160,168,166,166,180,164, /*304-319*/ \
- 168,168,184,180,165,174,174,174,172,179,174,174,190,185,186,180, /*320-335*/ \
- 182,184,185,185,186,186,186,192,192,184,187,200,188,184,184,180, /*336-351*/ \
- 196,180,184,186,186,198,192,189,185,186,192,184,191,186,196,186, /*352-367*/ \
- 189,192,190,216,196,189,195,200,192,197,192,192,192,206,204,196, /*368-383*/ \
- 200,214,210,207,216,198,216,210,198,216,214,216,216,208,216,216, /*384-399*/ \
- 208,216,222,224,228,216,216,216,208,216,216,232,228,214,212,218, /*400-415*/ \
- 216,216,218,220,214,216,221,228,220,224,218,224,220,216,224,232, /*416-431*/ \
- 232,220,228,228,264,233,232,228,228,233,232,256,252,228,228,256, /*432-447*/ \
- 232,264,232,264,256,254,256,232,264,255,252,257,258,264,268,276, /*448-463*/ \
- 254,251,264,268,264,248,256,268,254,264,256,256,252,255,258,256, /*464-479*/ \
- 256,257,264,252,264,256,268,272,256,267,256,276,272,287,272,264, /*480-495*/ \
- 256,257,272,276,268,264,264,264,270,272,288,268,269,280,288,288, /*496-511*/ \
- 280,284,282,288,276,288,279,288,288,281,286,288,280,272,272,280, /*512-527*/ \
- 288,288,294,281,276,288,288,288,288,288,280,288,288,287,288,288, /*528-543*/ \
- 284,288,288,287,288,291,288,288,288,288,324,324,287,288,287,312, /*544-559*/ \
- 288,288,288,305,324,292,309,288,312,328,288,311,336,327,330,300, /*560-575*/ \
- 318,330,312,336,327,321,324,336,330,324,335,327,335,336,336,336, /*576-591*/ \
- 336,324,352,335,360,329,344,329,318,329,336,328,336,336,324,335, /*592-607*/ \
- 323,336,336,336,336,328,336,325,360,324,336,328,316,335,336,332, /*608-623*/ \
- 324,360,334,323,328,360,360,384,328,360,330,336,336,336,368,328, /*624-639*/ \
- 335,371,336,335,372,372,335,336,372,336,336,348,330,356,360,370, /*640-655*/ \
- 336,336,384,336,340,368,336,384,346,360,348,372,348,366,376,368, /*656-671*/ \
- 340,347,368,360,384,384,372,348,384,376,368,360,384,344,369,384, /*672-687*/ \
- 372,360,384,360,366,372,368,352,392,360,377,384,383,368,384,384, /*688-703*/ \
- 384,384,372,369,384,383,384,376,382,364,376,384,378,376,384,384, /*704-719*/ \
- 376,382,372,375,384,383,372,384,408,378,384,384,384,384,416,432, /*720-735*/ \
- 384,384,432,419,384,424,384,440,417,440,392,380,408,376,424,378, /*736-751*/ \
- 432,384,440,392,444,400,440,440,384,384,440,384,448,384,448,432, /*752-767*/ \
- 448,432,432,432,416,440,440,400,440,440,438,432,432,432,448,440, /*768-783*/ \
- 444,444,440,436,440,444,420,436,432,432,440,456,420,443,420,420, /*784-799*/ \
- 456,432,431,432,424,432,464,440,432,466,432,448,456,463,460,448, /*800-815*/ \
- 440,420,448,448,444,431,440,440,416,440,433,439,440,456,440,456, /*816-831*/ \
- 434,454,432,432,431,440,440,440,464,428,428,436,440,440,432,440, /*832-847*/ \
- 432,436,436,439,436,440,432,440,438,445,456,440,456,448,456,440, /*848-863*/ \
- 456,464,464,440,456,448,451,440,447,512,440,440,446,446,448,456, /*864-879*/ \
- 448,456,452,460,453,455,456,456,448,455,463,464,480,464,463,464, /*880-895*/ \
- 480,452,480,528,466,468,456,457,480,467,464,468,504,504,460,467, /*896-911*/ \
- 480,512,464,484,466,468,512,472,504,504,504,504,504,528,478,479, /*912-927*/ \
- 504,480,504,520,504,520,504,504,512,512,472,512,512,528,512,512, /*928-943*/ \
- 528,512,502,528,504,536,536,520,528,528,552,536,512,511,528,512, /*944-959*/ \
- 536,560,512,512,488,528,512,536,552,528,512,576,560,560,576,576, /*960-975*/ \
- 504,560,512,560,560,511,512,552,528,512,512,512,568,576,512,512, /*976-991*/ \
- 512,528,528,568,528,512,504,576,576,528,512,576,544,504,576,512, /*992-1007*/ \
- 512,536,528,560,528,540,536,576,568,536,544,536,536,576,527,544 /*1008-1023*/ \
-
-#define MPFR_MUL_THRESHOLD 12 /* limbs */
-#define MPFR_SQR_THRESHOLD 19 /* limbs */
-#define MPFR_DIV_THRESHOLD 3 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 894 /* bits */
-#define MPFR_EXP_THRESHOLD 6522 /* bits */
-#define MPFR_SINCOS_THRESHOLD 23540 /* bits */
-#define MPFR_AI_THRESHOLD1 -14260 /* threshold for negative input of mpfr_ai */
-#define MPFR_AI_THRESHOLD2 1680
-#define MPFR_AI_THRESHOLD3 24368
-/* Tuneup completed successfully, took 342 seconds */
diff --git a/Build/source/libs/mpfr/mpfr-src/src/yn.c b/Build/source/libs/mpfr/mpfr-src/src/yn.c
deleted file mode 100644
index 1ff9074e706..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/yn.c
+++ /dev/null
@@ -1,426 +0,0 @@
-/* mpfr_y0, mpfr_y1, mpfr_yn -- Bessel functions of 2nd kind, integer order.
- http://www.opengroup.org/onlinepubs/009695399/functions/y0.html
-
-Copyright 2007-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-static int mpfr_yn_asympt (mpfr_ptr, long, mpfr_srcptr, mpfr_rnd_t);
-
-int
-mpfr_y0 (mpfr_ptr res, mpfr_srcptr z, mpfr_rnd_t r)
-{
- return mpfr_yn (res, 0, z, r);
-}
-
-int
-mpfr_y1 (mpfr_ptr res, mpfr_srcptr z, mpfr_rnd_t r)
-{
- return mpfr_yn (res, 1, z, r);
-}
-
-/* compute in s an approximation of S1 = sum((n-k)!/k!*y^k,k=0..n)
- return e >= 0 the exponent difference between the maximal value of |s|
- during the for loop and the final value of |s|.
-*/
-static mpfr_exp_t
-mpfr_yn_s1 (mpfr_ptr s, mpfr_srcptr y, unsigned long n)
-{
- unsigned long k;
- mpz_t f;
- mpfr_exp_t e, emax;
-
- mpz_init_set_ui (f, 1);
- /* we compute n!*S1 = sum(a[k]*y^k,k=0..n) where a[k] = n!*(n-k)!/k!,
- a[0] = (n!)^2, a[1] = n!*(n-1)!, ..., a[n-1] = n, a[n] = 1 */
- mpfr_set_ui (s, 1, MPFR_RNDN); /* a[n] */
- emax = MPFR_EXP(s);
- for (k = n; k-- > 0;)
- {
- /* a[k]/a[k+1] = (n-k)!/k!/(n-(k+1))!*(k+1)! = (k+1)*(n-k) */
- mpfr_mul (s, s, y, MPFR_RNDN);
- mpz_mul_ui (f, f, n - k);
- mpz_mul_ui (f, f, k + 1);
- /* invariant: f = a[k] */
- mpfr_add_z (s, s, f, MPFR_RNDN);
- e = MPFR_EXP(s);
- if (e > emax)
- emax = e;
- }
- /* now we have f = (n!)^2 */
- mpz_sqrt (f, f);
- mpfr_div_z (s, s, f, MPFR_RNDN);
- mpz_clear (f);
- return emax - MPFR_EXP(s);
-}
-
-/* compute in s an approximation of
- S3 = c*sum((h(k)+h(n+k))*y^k/k!/(n+k)!,k=0..infinity)
- where h(k) = 1 + 1/2 + ... + 1/k
- k=0: h(n)
- k=1: 1+h(n+1)
- k=2: 3/2+h(n+2)
- Returns e such that the error is bounded by 2^e ulp(s).
-*/
-static mpfr_exp_t
-mpfr_yn_s3 (mpfr_ptr s, mpfr_srcptr y, mpfr_srcptr c, unsigned long n)
-{
- unsigned long k, zz;
- mpfr_t t, u;
- mpz_t p, q; /* p/q will store h(k)+h(n+k) */
- mpfr_exp_t exps, expU;
-
- zz = mpfr_get_ui (y, MPFR_RNDU); /* y = z^2/4 */
- MPFR_ASSERTN (zz < ULONG_MAX - 2);
- zz += 2; /* z^2 <= 2^zz */
- mpz_init_set_ui (p, 0);
- mpz_init_set_ui (q, 1);
- /* initialize p/q to h(n) */
- for (k = 1; k <= n; k++)
- {
- /* p/q + 1/k = (k*p+q)/(q*k) */
- mpz_mul_ui (p, p, k);
- mpz_add (p, p, q);
- mpz_mul_ui (q, q, k);
- }
- mpfr_init2 (t, MPFR_PREC(s));
- mpfr_init2 (u, MPFR_PREC(s));
- mpfr_fac_ui (t, n, MPFR_RNDN);
- mpfr_div (t, c, t, MPFR_RNDN); /* c/n! */
- mpfr_mul_z (u, t, p, MPFR_RNDN);
- mpfr_div_z (s, u, q, MPFR_RNDN);
- exps = MPFR_EXP (s);
- expU = exps;
- for (k = 1; ;k ++)
- {
- /* update t */
- mpfr_mul (t, t, y, MPFR_RNDN);
- mpfr_div_ui (t, t, k, MPFR_RNDN);
- mpfr_div_ui (t, t, n + k, MPFR_RNDN);
- /* update p/q:
- p/q + 1/k + 1/(n+k) = [p*k*(n+k) + q*(n+k) + q*k]/(q*k*(n+k)) */
- mpz_mul_ui (p, p, k);
- mpz_mul_ui (p, p, n + k);
- mpz_addmul_ui (p, q, n + 2 * k);
- mpz_mul_ui (q, q, k);
- mpz_mul_ui (q, q, n + k);
- mpfr_mul_z (u, t, p, MPFR_RNDN);
- mpfr_div_z (u, u, q, MPFR_RNDN);
- exps = MPFR_EXP (u);
- if (exps > expU)
- expU = exps;
- mpfr_add (s, s, u, MPFR_RNDN);
- exps = MPFR_EXP (s);
- if (exps > expU)
- expU = exps;
- if (MPFR_EXP (u) + (mpfr_exp_t) MPFR_PREC (u) < MPFR_EXP (s) &&
- zz / (2 * k) < k + n)
- break;
- }
- mpfr_clear (t);
- mpfr_clear (u);
- mpz_clear (p);
- mpz_clear (q);
- exps = expU - MPFR_EXP (s);
- /* the error is bounded by (6k^2+33/2k+11) 2^exps ulps
- <= 8*(k+2)^2 2^exps ulps */
- return 3 + 2 * MPFR_INT_CEIL_LOG2(k + 2) + exps;
-}
-
-int
-mpfr_yn (mpfr_ptr res, long n, mpfr_srcptr z, mpfr_rnd_t r)
-{
- int inex;
- unsigned long absn;
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC
- (("n=%ld x[%Pu]=%.*Rg rnd=%d", n, mpfr_get_prec (z), mpfr_log_prec, z, r),
- ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (res), mpfr_log_prec, res, inex));
-
- absn = SAFE_ABS (unsigned long, n);
-
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (z)))
- {
- if (MPFR_IS_NAN (z))
- {
- MPFR_SET_NAN (res); /* y(n,NaN) = NaN */
- MPFR_RET_NAN;
- }
- /* y(n,z) tends to zero when z goes to +Inf, oscillating around
- 0. We choose to return +0 in that case. */
- else if (MPFR_IS_INF (z))
- {
- if (MPFR_IS_POS (z))
- return mpfr_set_ui (res, 0, r);
- else /* y(n,-Inf) = NaN */
- {
- MPFR_SET_NAN (res);
- MPFR_RET_NAN;
- }
- }
- else /* y(n,z) tends to -Inf for n >= 0 or n even, to +Inf otherwise,
- when z goes to zero */
- {
- MPFR_SET_INF(res);
- if (n >= 0 || ((unsigned long) n & 1) == 0)
- MPFR_SET_NEG(res);
- else
- MPFR_SET_POS(res);
- MPFR_SET_DIVBY0 ();
- MPFR_RET(0);
- }
- }
-
- /* for z < 0, y(n,z) is imaginary except when j(n,|z|) = 0, which we
- assume does not happen for a rational z. */
- if (MPFR_IS_NEG (z))
- {
- MPFR_SET_NAN (res);
- MPFR_RET_NAN;
- }
-
- /* now z is not singular, and z > 0 */
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Deal with tiny arguments. We have:
- y0(z) = 2 log(z)/Pi + 2 (euler - log(2))/Pi + O(log(z)*z^2), more
- precisely for 0 <= z <= 1/2, with g(z) = 2/Pi + 2(euler-log(2))/Pi/log(z),
- g(z) - 0.41*z^2 < y0(z)/log(z) < g(z)
- thus since log(z) is negative:
- g(z)*log(z) < y0(z) < (g(z) - z^2/2)*log(z)
- and since |g(z)| >= 0.63 for 0 <= z <= 1/2, the relative error on
- y0(z)/log(z) is bounded by 0.41*z^2/0.63 <= 0.66*z^2.
- Note: we use both the main term in log(z) and the constant term, because
- otherwise the relative error would be only in 1/log(|log(z)|).
- */
- if (n == 0 && MPFR_EXP(z) < - (mpfr_exp_t) (MPFR_PREC(res) / 2))
- {
- mpfr_t l, h, t, logz;
- mpfr_prec_t prec;
- int ok, inex2;
-
- prec = MPFR_PREC(res) + 10;
- mpfr_init2 (l, prec);
- mpfr_init2 (h, prec);
- mpfr_init2 (t, prec);
- mpfr_init2 (logz, prec);
- /* first enclose log(z) + euler - log(2) = log(z/2) + euler */
- mpfr_log (logz, z, MPFR_RNDD); /* lower bound of log(z) */
- mpfr_set (h, logz, MPFR_RNDU); /* exact */
- mpfr_nextabove (h); /* upper bound of log(z) */
- mpfr_const_euler (t, MPFR_RNDD); /* lower bound of euler */
- mpfr_add (l, logz, t, MPFR_RNDD); /* lower bound of log(z) + euler */
- mpfr_nextabove (t); /* upper bound of euler */
- mpfr_add (h, h, t, MPFR_RNDU); /* upper bound of log(z) + euler */
- mpfr_const_log2 (t, MPFR_RNDU); /* upper bound of log(2) */
- mpfr_sub (l, l, t, MPFR_RNDD); /* lower bound of log(z/2) + euler */
- mpfr_nextbelow (t); /* lower bound of log(2) */
- mpfr_sub (h, h, t, MPFR_RNDU); /* upper bound of log(z/2) + euler */
- mpfr_const_pi (t, MPFR_RNDU); /* upper bound of Pi */
- mpfr_div (l, l, t, MPFR_RNDD); /* lower bound of (log(z/2)+euler)/Pi */
- mpfr_nextbelow (t); /* lower bound of Pi */
- mpfr_div (h, h, t, MPFR_RNDD); /* upper bound of (log(z/2)+euler)/Pi */
- mpfr_mul_2ui (l, l, 1, MPFR_RNDD); /* lower bound on g(z)*log(z) */
- mpfr_mul_2ui (h, h, 1, MPFR_RNDU); /* upper bound on g(z)*log(z) */
- /* we now have l <= g(z)*log(z) <= h, and we need to add -z^2/2*log(z)
- to h */
- mpfr_sqr (t, z, MPFR_RNDU); /* upper bound on z^2 */
- /* since logz is negative, a lower bound corresponds to an upper bound
- for its absolute value */
- mpfr_neg (t, t, MPFR_RNDD);
- mpfr_div_2ui (t, t, 1, MPFR_RNDD);
- mpfr_mul (t, t, logz, MPFR_RNDU); /* upper bound on z^2/2*log(z) */
- mpfr_add (h, h, t, MPFR_RNDU);
- inex = mpfr_prec_round (l, MPFR_PREC(res), r);
- inex2 = mpfr_prec_round (h, MPFR_PREC(res), r);
- /* we need h=l and inex=inex2 */
- ok = (inex == inex2) && mpfr_equal_p (l, h);
- if (ok)
- mpfr_set (res, h, r); /* exact */
- mpfr_clear (l);
- mpfr_clear (h);
- mpfr_clear (t);
- mpfr_clear (logz);
- if (ok)
- goto end;
- }
-
- /* small argument check for y1(z) = -2/Pi/z + O(log(z)):
- for 0 <= z <= 1, |y1(z) + 2/Pi/z| <= 0.25 */
- if (n == 1 && MPFR_EXP(z) + 1 < - (mpfr_exp_t) MPFR_PREC(res))
- {
- mpfr_t y;
- mpfr_prec_t prec;
- mpfr_exp_t err1;
- int ok;
- MPFR_BLOCK_DECL (flags);
-
- /* since 2/Pi > 0.5, and |y1(z)| >= |2/Pi/z|, if z <= 2^(-emax-1),
- then |y1(z)| > 2^emax */
- prec = MPFR_PREC(res) + 10;
- mpfr_init2 (y, prec);
- mpfr_const_pi (y, MPFR_RNDU); /* Pi*(1+u)^2, where here and below u
- represents a quantity <= 1/2^prec */
- mpfr_mul (y, y, z, MPFR_RNDU); /* Pi*z * (1+u)^4, upper bound */
- MPFR_BLOCK (flags, mpfr_ui_div (y, 2, y, MPFR_RNDZ));
- /* 2/Pi/z * (1+u)^6, lower bound, with possible overflow */
- if (MPFR_OVERFLOW (flags))
- {
- mpfr_clear (y);
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_overflow (res, r, -1);
- }
- mpfr_neg (y, y, MPFR_RNDN);
- /* (1+u)^6 can be written 1+7u [for another value of u], thus the
- error on 2/Pi/z is less than 7ulp(y). The truncation error is less
- than 1/4, thus if ulp(y)>=1/4, the total error is less than 8ulp(y),
- otherwise it is less than 1/4+7/8 <= 2. */
- if (MPFR_EXP(y) + 2 >= MPFR_PREC(y)) /* ulp(y) >= 1/4 */
- err1 = 3;
- else /* ulp(y) <= 1/8 */
- err1 = (mpfr_exp_t) MPFR_PREC(y) - MPFR_EXP(y) + 1;
- ok = MPFR_CAN_ROUND (y, prec - err1, MPFR_PREC(res), r);
- if (ok)
- inex = mpfr_set (res, y, r);
- mpfr_clear (y);
- if (ok)
- goto end;
- }
-
- /* we can use the asymptotic expansion as soon as z > p log(2)/2,
- but to get some margin we use it for z > p/2 */
- if (mpfr_cmp_ui (z, MPFR_PREC(res) / 2 + 3) > 0)
- {
- inex = mpfr_yn_asympt (res, n, z, r);
- if (inex != 0)
- goto end;
- }
-
- /* General case */
- {
- mpfr_prec_t prec;
- mpfr_exp_t err1, err2, err3;
- mpfr_t y, s1, s2, s3;
- MPFR_ZIV_DECL (loop);
-
- mpfr_init (y);
- mpfr_init (s1);
- mpfr_init (s2);
- mpfr_init (s3);
-
- prec = MPFR_PREC(res) + 2 * MPFR_INT_CEIL_LOG2 (MPFR_PREC (res)) + 13;
- MPFR_ZIV_INIT (loop, prec);
- for (;;)
- {
- mpfr_set_prec (y, prec);
- mpfr_set_prec (s1, prec);
- mpfr_set_prec (s2, prec);
- mpfr_set_prec (s3, prec);
-
- mpfr_sqr (y, z, MPFR_RNDN);
- mpfr_div_2ui (y, y, 2, MPFR_RNDN); /* z^2/4 */
-
- /* store (z/2)^n temporarily in s2 */
- mpfr_pow_ui (s2, z, absn, MPFR_RNDN);
- mpfr_div_2si (s2, s2, absn, MPFR_RNDN);
-
- /* compute S1 * (z/2)^(-n) */
- if (n == 0)
- {
- mpfr_set_ui (s1, 0, MPFR_RNDN);
- err1 = 0;
- }
- else
- err1 = mpfr_yn_s1 (s1, y, absn - 1);
- mpfr_div (s1, s1, s2, MPFR_RNDN); /* (z/2)^(-n) * S1 */
- /* See algorithms.tex: the relative error on s1 is bounded by
- (3n+3)*2^(e+1-prec). */
- err1 = MPFR_INT_CEIL_LOG2 (3 * absn + 3) + err1 + 1;
- /* rel_err(s1) <= 2^(err1-prec), thus err(s1) <= 2^err1 ulps */
-
- /* compute (z/2)^n * S3 */
- mpfr_neg (y, y, MPFR_RNDN); /* -z^2/4 */
- err3 = mpfr_yn_s3 (s3, y, s2, absn); /* (z/2)^n * S3 */
- /* the error on s3 is bounded by 2^err3 ulps */
-
- /* add s1+s3 */
- err1 += MPFR_EXP(s1);
- mpfr_add (s1, s1, s3, MPFR_RNDN);
- /* the error is bounded by 1/2 + 2^err1*2^(- EXP(s1))
- + 2^err3*2^(EXP(s3) - EXP(s1)) */
- err3 += MPFR_EXP(s3);
- err1 = (err3 > err1) ? err3 + 1 : err1 + 1;
- err1 -= MPFR_EXP(s1);
- err1 = (err1 >= 0) ? err1 + 1 : 1;
- /* now the error on s1 is bounded by 2^err1*ulp(s1) */
-
- /* compute S2 */
- mpfr_div_2ui (s2, z, 1, MPFR_RNDN); /* z/2 */
- mpfr_log (s2, s2, MPFR_RNDN); /* log(z/2) */
- mpfr_const_euler (s3, MPFR_RNDN);
- err2 = MPFR_EXP(s2) > MPFR_EXP(s3) ? MPFR_EXP(s2) : MPFR_EXP(s3);
- mpfr_add (s2, s2, s3, MPFR_RNDN); /* log(z/2) + gamma */
- err2 -= MPFR_EXP(s2);
- mpfr_mul_2ui (s2, s2, 1, MPFR_RNDN); /* 2*(log(z/2) + gamma) */
- mpfr_jn (s3, absn, z, MPFR_RNDN); /* Jn(z) */
- mpfr_mul (s2, s2, s3, MPFR_RNDN); /* 2*(log(z/2) + gamma)*Jn(z) */
- err2 += 4; /* the error on s2 is bounded by 2^err2 ulps, see
- algorithms.tex */
-
- /* add all three sums */
- err1 += MPFR_EXP(s1); /* the error on s1 is bounded by 2^err1 */
- err2 += MPFR_EXP(s2); /* the error on s2 is bounded by 2^err2 */
- mpfr_sub (s2, s2, s1, MPFR_RNDN); /* s2 - (s1+s3) */
- err2 = (err1 > err2) ? err1 + 1 : err2 + 1;
- err2 -= MPFR_EXP(s2);
- err2 = (err2 >= 0) ? err2 + 1 : 1;
- /* now the error on s2 is bounded by 2^err2*ulp(s2) */
- mpfr_const_pi (y, MPFR_RNDN); /* error bounded by 1 ulp */
- mpfr_div (s2, s2, y, MPFR_RNDN); /* error bounded by
- 2^(err2+1)*ulp(s2) */
- err2 ++;
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (s2, prec - err2, MPFR_PREC(res), r)))
- break;
- MPFR_ZIV_NEXT (loop, prec);
- }
- MPFR_ZIV_FREE (loop);
-
- /* Assume two's complement for the test n & 1 */
- inex = mpfr_set4 (res, s2, r, n >= 0 || (n & 1) == 0 ?
- MPFR_SIGN (s2) : - MPFR_SIGN (s2));
-
- mpfr_clear (y);
- mpfr_clear (s1);
- mpfr_clear (s2);
- mpfr_clear (s3);
- }
-
- end:
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (res, inex, r);
-}
-
-#define MPFR_YN
-#include "jyn_asympt.c"
diff --git a/Build/source/libs/mpfr/mpfr-src/src/zeta.c b/Build/source/libs/mpfr/mpfr-src/src/zeta.c
deleted file mode 100644
index ec2d88de7ec..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/zeta.c
+++ /dev/null
@@ -1,689 +0,0 @@
-/* mpfr_zeta -- compute the Riemann Zeta function
-
-Copyright 2003-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <float.h> /* for DBL_MAX */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-/*
- Parameters:
- s - the input floating-point number
- n, p - parameters from the algorithm
- tc - an array of p floating-point numbers tc[1]..tc[p]
- Output:
- b is the result, i.e.
- sum(tc[i]*product((s+2j)*(s+2j-1)/n^2,j=1..i-1), i=1..p)*s*n^(-s-1)
-*/
-static void
-mpfr_zeta_part_b (mpfr_t b, mpfr_srcptr s, int n, int p, mpfr_t *tc)
-{
- mpfr_t s1, d, u;
- unsigned long n2;
- int l, t;
- MPFR_GROUP_DECL (group);
-
- if (p == 0)
- {
- MPFR_SET_ZERO (b);
- MPFR_SET_POS (b);
- return;
- }
-
- n2 = n * n;
- MPFR_GROUP_INIT_3 (group, MPFR_PREC (b), s1, d, u);
-
- /* t equals 2p-2, 2p-3, ... ; s1 equals s+t */
- t = 2 * p - 2;
- mpfr_set (d, tc[p], MPFR_RNDN);
- for (l = 1; l < p; l++)
- {
- mpfr_add_ui (s1, s, t, MPFR_RNDN); /* s + (2p-2l) */
- mpfr_mul (d, d, s1, MPFR_RNDN);
- t = t - 1;
- mpfr_add_ui (s1, s, t, MPFR_RNDN); /* s + (2p-2l-1) */
- mpfr_mul (d, d, s1, MPFR_RNDN);
- t = t - 1;
- mpfr_div_ui (d, d, n2, MPFR_RNDN);
- mpfr_add (d, d, tc[p-l], MPFR_RNDN);
- /* since s is positive and the tc[i] have alternate signs,
- the following is unlikely */
- if (MPFR_UNLIKELY (mpfr_cmpabs (d, tc[p-l]) > 0))
- mpfr_set (d, tc[p-l], MPFR_RNDN);
- }
- mpfr_mul (d, d, s, MPFR_RNDN);
- mpfr_add (s1, s, __gmpfr_one, MPFR_RNDN);
- mpfr_neg (s1, s1, MPFR_RNDN);
- mpfr_ui_pow (u, n, s1, MPFR_RNDN);
- mpfr_mul (b, d, u, MPFR_RNDN);
-
- MPFR_GROUP_CLEAR (group);
-}
-
-/* Input: p - an integer
- Output: fills tc[1..p], tc[i] = bernoulli(2i)/(2i)!
- tc[1]=1/12, tc[2]=-1/720, tc[3]=1/30240, ...
- Assumes all the tc[i] have the same precision.
-
- Uses the recurrence (4.60) from the book "Modern Computer Arithmetic"
- by Brent and Zimmermann for C_k = bernoulli(2k)/(2k)!:
- sum(C_k/(2k+1-2j)!/4^(k-j), j=0..k) = 1/(2k)!/4^k
- If we put together the terms involving C_0 and C_1 we get:
- sum(D_k/(2k+1-2j)!/4^(k-j), j=1..k) = 0
- with D_1 = C_0/4/(2k+1)/(2k)+C_1-1/(2k)/4=(k-1)/(12k+6),
- and D_k = C_k for k >= 2.
-
- FIXME: we have C_k = (-1)^(k-1) 2/(2pi)^(2k) * zeta(2k),
- see for example formula (4.65) from the above book,
- thus since |zeta(2k)-1| < 2^(1-2k) for k >= 2, we have:
- |C_k - E_k| < E_k * 2^(1-2k) for k >= 2 and E_k := (-1)^(k-1) 2/(2pi)^(2k).
- Then if 2k-1 >= prec we can evaluate E_k instead, which only requires one
- multiplication per term, instead of O(k) small divisions.
-*/
-static void
-mpfr_zeta_c (int p, mpfr_t *tc)
-{
- if (p > 0)
- {
- mpfr_t d;
- int k, l;
- mpfr_prec_t prec = MPFR_PREC (tc[1]);
-
- mpfr_init2 (d, prec);
- mpfr_div_ui (tc[1], __gmpfr_one, 12, MPFR_RNDN);
- for (k = 2; k <= p; k++)
- {
- mpfr_set_ui (d, k-1, MPFR_RNDN);
- mpfr_div_ui (d, d, 12*k+6, MPFR_RNDN);
- for (l=2; l < k; l++)
- {
- mpfr_div_ui (d, d, 4*(2*k-2*l+3)*(2*k-2*l+2), MPFR_RNDN);
- mpfr_add (d, d, tc[l], MPFR_RNDN);
- }
- mpfr_div_ui (tc[k], d, 24, MPFR_RNDN);
- MPFR_CHANGE_SIGN (tc[k]);
- }
- mpfr_clear (d);
- }
-}
-
-/* Input: s - a floating-point number
- n - an integer
- Output: sum - a floating-point number approximating sum(1/i^s, i=1..n-1) */
-static void
-mpfr_zeta_part_a (mpfr_t sum, mpfr_srcptr s, int n)
-{
- mpfr_t u, s1;
- int i;
- MPFR_GROUP_DECL (group);
-
- MPFR_GROUP_INIT_2 (group, MPFR_PREC (sum), u, s1);
-
- mpfr_neg (s1, s, MPFR_RNDN);
- mpfr_ui_pow (u, n, s1, MPFR_RNDN);
- mpfr_div_2ui (u, u, 1, MPFR_RNDN);
- mpfr_set (sum, u, MPFR_RNDN);
- for (i=n-1; i>1; i--)
- {
- mpfr_ui_pow (u, i, s1, MPFR_RNDN);
- mpfr_add (sum, sum, u, MPFR_RNDN);
- }
- mpfr_add (sum, sum, __gmpfr_one, MPFR_RNDN);
-
- MPFR_GROUP_CLEAR (group);
-}
-
-/* Input: s - a floating-point number >= 1/2.
- rnd_mode - a rounding mode.
- Assumes s is neither NaN nor Infinite.
- Output: z - Zeta(s) rounded to the precision of z with direction rnd_mode
-*/
-static int
-mpfr_zeta_pos (mpfr_t z, mpfr_srcptr s, mpfr_rnd_t rnd_mode)
-{
- mpfr_t b, c, z_pre, f, s1;
- double beta, sd, dnep;
- mpfr_t *tc1;
- mpfr_prec_t precz, precs, d, dint;
- int p, n, l, add;
- int inex;
- MPFR_GROUP_DECL (group);
- MPFR_ZIV_DECL (loop);
-
- MPFR_ASSERTD (MPFR_IS_POS (s) && MPFR_GET_EXP (s) >= 0);
-
- precz = MPFR_PREC (z);
- precs = MPFR_PREC (s);
-
- /* Zeta(x) = 1+1/2^x+1/3^x+1/4^x+1/5^x+O(1/6^x)
- so with 2^(EXP(x)-1) <= x < 2^EXP(x)
- So for x > 2^3, k^x > k^8, so 2/k^x < 2/k^8
- Zeta(x) = 1 + 1/2^x*(1+(2/3)^x+(2/4)^x+...)
- = 1 + 1/2^x*(1+sum((2/k)^x,k=3..infinity))
- <= 1 + 1/2^x*(1+sum((2/k)^8,k=3..infinity))
- And sum((2/k)^8,k=3..infinity) = -257+128*Pi^8/4725 ~= 0.0438035
- So Zeta(x) <= 1 + 1/2^x*2 for x >= 8
- The error is < 2^(-x+1) <= 2^(-2^(EXP(x)-1)+1) */
- if (MPFR_GET_EXP (s) > 3)
- {
- mpfr_exp_t err;
- err = MPFR_GET_EXP (s) - 1;
- if (err > (mpfr_exp_t) (sizeof (mpfr_exp_t)*CHAR_BIT-2))
- err = MPFR_EMAX_MAX;
- else
- err = ((mpfr_exp_t)1) << err;
- err = 1 - (-err+1); /* GET_EXP(one) - (-err+1) = err :) */
- MPFR_FAST_COMPUTE_IF_SMALL_INPUT (z, __gmpfr_one, err, 0, 1,
- rnd_mode, {});
- }
-
- d = precz + MPFR_INT_CEIL_LOG2(precz) + 10;
-
- /* we want that s1 = s-1 is exact, i.e. we should have PREC(s1) >= EXP(s) */
- dint = (mpfr_uexp_t) MPFR_GET_EXP (s);
- mpfr_init2 (s1, MAX (precs, dint));
- inex = mpfr_sub (s1, s, __gmpfr_one, MPFR_RNDN);
- MPFR_ASSERTD (inex == 0);
-
- /* case s=1 should have already been handled */
- MPFR_ASSERTD (!MPFR_IS_ZERO (s1));
-
- MPFR_GROUP_INIT_4 (group, MPFR_PREC_MIN, b, c, z_pre, f);
-
- MPFR_ZIV_INIT (loop, d);
- for (;;)
- {
- /* Principal loop: we compute, in z_pre,
- an approximation of Zeta(s), that we send to can_round */
- if (MPFR_GET_EXP (s1) <= -(mpfr_exp_t) ((mpfr_prec_t) (d-3)/2))
- /* Branch 1: when s-1 is very small, one
- uses the approximation Zeta(s)=1/(s-1)+gamma,
- where gamma is Euler's constant */
- {
- dint = MAX (d + 3, precs);
- /* branch 1, with internal precision dint */
- MPFR_GROUP_REPREC_4 (group, dint, b, c, z_pre, f);
- mpfr_div (z_pre, __gmpfr_one, s1, MPFR_RNDN);
- mpfr_const_euler (f, MPFR_RNDN);
- mpfr_add (z_pre, z_pre, f, MPFR_RNDN);
- }
- else /* Branch 2 */
- {
- size_t size;
-
- /* branch 2 */
- /* Computation of parameters n, p and working precision */
- dnep = (double) d * LOG2;
- sd = mpfr_get_d (s, MPFR_RNDN);
- /* beta = dnep + 0.61 + sd * log (6.2832 / sd);
- but a larger value is OK */
-#define LOG6dot2832 1.83787940484160805532
- beta = dnep + 0.61 + sd * (LOG6dot2832 - LOG2 *
- __gmpfr_floor_log2 (sd));
- if (beta <= 0.0)
- {
- p = 0;
- /* n = 1 + (int) (exp ((dnep - LOG2) / sd)); */
- n = 1 + (int) __gmpfr_ceil_exp2 ((d - 1.0) / sd);
- }
- else
- {
- p = 1 + (int) beta / 2;
- n = 1 + (int) ((sd + 2.0 * (double) p - 1.0) / 6.2832);
- }
- /* add = 4 + floor(1.5 * log(d) / log (2)).
- We should have add >= 10, which is always fulfilled since
- d = precz + 11 >= 12, thus ceil(log2(d)) >= 4 */
- add = 4 + (3 * MPFR_INT_CEIL_LOG2 (d)) / 2;
- MPFR_ASSERTD(add >= 10);
- dint = d + add;
- if (dint < precs)
- dint = precs;
-
- /* internal precision is dint */
-
- size = (p + 1) * sizeof(mpfr_t);
- tc1 = (mpfr_t*) mpfr_allocate_func (size);
- for (l=1; l<=p; l++)
- mpfr_init2 (tc1[l], dint);
- MPFR_GROUP_REPREC_4 (group, dint, b, c, z_pre, f);
-
- /* precision of z is precz */
-
- /* Computation of the coefficients c_k */
- mpfr_zeta_c (p, tc1);
- /* Computation of the 3 parts of the function Zeta. */
- mpfr_zeta_part_a (z_pre, s, n);
- mpfr_zeta_part_b (b, s, n, p, tc1);
- /* s1 = s-1 is already computed above */
- mpfr_div (c, __gmpfr_one, s1, MPFR_RNDN);
- mpfr_ui_pow (f, n, s1, MPFR_RNDN);
- mpfr_div (c, c, f, MPFR_RNDN);
- mpfr_add (z_pre, z_pre, c, MPFR_RNDN);
- mpfr_add (z_pre, z_pre, b, MPFR_RNDN);
- for (l=1; l<=p; l++)
- mpfr_clear (tc1[l]);
- mpfr_free_func (tc1, size);
- /* End branch 2 */
- }
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (z_pre, d-3, precz, rnd_mode)))
- break;
- MPFR_ZIV_NEXT (loop, d);
- }
- MPFR_ZIV_FREE (loop);
-
- inex = mpfr_set (z, z_pre, rnd_mode);
-
- MPFR_GROUP_CLEAR (group);
- mpfr_clear (s1);
-
- return inex;
-}
-
-/* return add = 1 + floor(log(c^3*(13+m1))/log(2))
- where c = (1+eps)*(1+eps*max(8,m1)),
- m1 = 1 + max(1/eps,2*sd)*(1+eps),
- eps = 2^(-precz-14)
- sd = abs(s-1)
- */
-static long
-compute_add (mpfr_srcptr s, mpfr_prec_t precz)
-{
- mpfr_t t, u, m1;
- long add;
-
- mpfr_inits2 (64, t, u, m1, (mpfr_ptr) 0);
- if (mpfr_cmp_ui (s, 1) >= 0)
- mpfr_sub_ui (t, s, 1, MPFR_RNDU);
- else
- mpfr_ui_sub (t, 1, s, MPFR_RNDU);
- /* now t = sd = abs(s-1), rounded up */
- mpfr_set_ui_2exp (u, 1, - precz - 14, MPFR_RNDU);
- /* u = eps */
- /* since 1/eps = 2^(precz+14), if EXP(sd) >= precz+14, then
- sd >= 1/2*2^(precz+14) thus 2*sd >= 2^(precz+14) >= 1/eps */
- if (mpfr_get_exp (t) >= precz + 14)
- mpfr_mul_2ui (t, t, 1, MPFR_RNDU);
- else
- mpfr_set_ui_2exp (t, 1, precz + 14, MPFR_RNDU);
- /* now t = max(1/eps,2*sd) */
- mpfr_add_ui (u, u, 1, MPFR_RNDU); /* u = 1+eps, rounded up */
- mpfr_mul (t, t, u, MPFR_RNDU); /* t = max(1/eps,2*sd)*(1+eps) */
- mpfr_add_ui (m1, t, 1, MPFR_RNDU);
- if (mpfr_get_exp (m1) <= 3)
- mpfr_set_ui (t, 8, MPFR_RNDU);
- else
- mpfr_set (t, m1, MPFR_RNDU);
- /* now t = max(8,m1) */
- mpfr_div_2ui (t, t, precz + 14, MPFR_RNDU); /* eps*max(8,m1) */
- mpfr_add_ui (t, t, 1, MPFR_RNDU); /* 1+eps*max(8,m1) */
- mpfr_mul (t, t, u, MPFR_RNDU); /* t = c */
- mpfr_add_ui (u, m1, 13, MPFR_RNDU); /* 13+m1 */
- mpfr_mul (u, u, t, MPFR_RNDU); /* c*(13+m1) */
- mpfr_sqr (t, t, MPFR_RNDU); /* c^2 */
- mpfr_mul (u, u, t, MPFR_RNDU); /* c^3*(13+m1) */
- add = mpfr_get_exp (u);
- mpfr_clears (t, u, m1, (mpfr_ptr) 0);
- return add;
-}
-
-/* return in z a lower bound (for rnd = RNDD) or upper bound (for rnd = RNDU)
- of |zeta(s)|/2, using:
- log(|zeta(s)|/2) = (s-1)*log(2*Pi) + lngamma(1-s)
- + log(|sin(Pi*s/2)| * zeta(1-s)).
- Assumes s < 1/2 and s1 = 1-s exactly, thus s1 > 1/2.
- y and p are temporary variables.
- At input, p is Pi rounded down.
- The comments in the code are for rnd = RNDD. */
-static void
-mpfr_reflection_overflow (mpfr_t z, mpfr_t s1, const mpfr_t s, mpfr_t y,
- mpfr_t p, mpfr_rnd_t rnd)
-{
- mpz_t sint;
-
- MPFR_ASSERTD (rnd == MPFR_RNDD || rnd == MPFR_RNDU);
-
- /* Since log is increasing, we want lower bounds on |sin(Pi*s/2)| and
- zeta(1-s). */
- mpz_init (sint);
- mpfr_get_z (sint, s, MPFR_RNDD); /* sint = floor(s) */
- /* We first compute a lower bound of |sin(Pi*s/2)|, which is a periodic
- function of period 2. Thus:
- if 2k < s < 2k+1, then |sin(Pi*s/2)| is increasing;
- if 2k-1 < s < 2k, then |sin(Pi*s/2)| is decreasing.
- These cases are distinguished by testing bit 0 of floor(s) as if
- represented in two's complement (or equivalently, as an unsigned
- integer mod 2):
- 0: sint = 0 mod 2, thus 2k < s < 2k+1 and |sin(Pi*s/2)| is increasing;
- 1: sint = 1 mod 2, thus 2k-1 < s < 2k and |sin(Pi*s/2)| is decreasing.
- Let's recall that the comments are for rnd = RNDD. */
- if (mpz_tstbit (sint, 0) == 0) /* |sin(Pi*s/2)| is increasing: round down
- Pi*s to get a lower bound. */
- {
- mpfr_mul (y, p, s, rnd);
- if (rnd == MPFR_RNDD)
- mpfr_nextabove (p); /* we will need p rounded above afterwards */
- }
- else /* |sin(Pi*s/2)| is decreasing: round up Pi*s to get a lower bound. */
- {
- if (rnd == MPFR_RNDD)
- mpfr_nextabove (p);
- mpfr_mul (y, p, s, MPFR_INVERT_RND(rnd));
- }
- mpfr_div_2ui (y, y, 1, MPFR_RNDN); /* exact, rounding mode doesn't matter */
- /* The rounding direction of sin depends on its sign. We have:
- if -4k-2 < s < -4k, then -2k-1 < s/2 < -2k, thus sin(Pi*s/2) < 0;
- if -4k < s < -4k+2, then -2k < s/2 < -2k+1, thus sin(Pi*s/2) > 0.
- These cases are distinguished by testing bit 1 of floor(s) as if
- represented in two's complement (or equivalently, as an unsigned
- integer mod 4):
- 0: sint = {0,1} mod 4, thus -2k < s/2 < -2k+1 and sin(Pi*s/2) > 0;
- 1: sint = {2,3} mod 4, thus -2k-1 < s/2 < -2k and sin(Pi*s/2) < 0.
- Let's recall that the comments are for rnd = RNDD. */
- if (mpz_tstbit (sint, 1) == 0) /* -2k < s/2 < -2k+1; sin(Pi*s/2) > 0 */
- {
- /* Round sin down to get a lower bound of |sin(Pi*s/2)|. */
- mpfr_sin (y, y, rnd);
- }
- else /* -2k-1 < s/2 < -2k; sin(Pi*s/2) < 0 */
- {
- /* Round sin up to get a lower bound of |sin(Pi*s/2)|. */
- mpfr_sin (y, y, MPFR_INVERT_RND(rnd));
- mpfr_abs (y, y, MPFR_RNDN); /* exact, rounding mode doesn't matter */
- }
- mpz_clear (sint);
- /* now y <= |sin(Pi*s/2)| when rnd=RNDD, y >= |sin(Pi*s/2)| when rnd=RNDU */
- mpfr_zeta_pos (z, s1, rnd); /* zeta(1-s) */
- mpfr_mul (z, z, y, rnd);
- /* now z <= |sin(Pi*s/2)|*zeta(1-s) */
- mpfr_log (z, z, rnd);
- /* now z <= log(|sin(Pi*s/2)|*zeta(1-s)) */
- mpfr_lngamma (y, s1, rnd);
- mpfr_add (z, z, y, rnd);
- /* z <= lngamma(1-s) + log(|sin(Pi*s/2)|*zeta(1-s)) */
- /* since s-1 < 0, we want to round log(2*pi) upwards */
- mpfr_mul_2ui (y, p, 1, MPFR_INVERT_RND(rnd));
- mpfr_log (y, y, MPFR_INVERT_RND(rnd));
- mpfr_mul (y, y, s1, MPFR_INVERT_RND(rnd));
- mpfr_sub (z, z, y, rnd);
- mpfr_exp (z, z, rnd);
- if (rnd == MPFR_RNDD)
- mpfr_nextbelow (p); /* restore original p */
-}
-
-int
-mpfr_zeta (mpfr_t z, mpfr_srcptr s, mpfr_rnd_t rnd_mode)
-{
- mpfr_t z_pre, s1, y, p;
- long add;
- mpfr_prec_t precz, prec1, precs, precs1;
- int inex;
- MPFR_GROUP_DECL (group);
- MPFR_ZIV_DECL (loop);
- MPFR_SAVE_EXPO_DECL (expo);
-
- MPFR_LOG_FUNC (
- ("s[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (s), mpfr_log_prec, s, rnd_mode),
- ("z[%Pu]=%.*Rg inexact=%d", mpfr_get_prec (z), mpfr_log_prec, z, inex));
-
- /* Zero, Nan or Inf ? */
- if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (s)))
- {
- if (MPFR_IS_NAN (s))
- {
- MPFR_SET_NAN (z);
- MPFR_RET_NAN;
- }
- else if (MPFR_IS_INF (s))
- {
- if (MPFR_IS_POS (s))
- return mpfr_set_ui (z, 1, MPFR_RNDN); /* Zeta(+Inf) = 1 */
- MPFR_SET_NAN (z); /* Zeta(-Inf) = NaN */
- MPFR_RET_NAN;
- }
- else /* s iz zero */
- {
- MPFR_ASSERTD (MPFR_IS_ZERO (s));
- return mpfr_set_si_2exp (z, -1, -1, rnd_mode);
- }
- }
-
- /* s is neither Nan, nor Inf, nor Zero */
-
- /* check tiny s: we have zeta(s) = -1/2 - 1/2 log(2 Pi) s + ... around s=0,
- and for |s| <= 2^(-4), we have |zeta(s) + 1/2| <= |s|.
- EXP(s) + 1 < -PREC(z) is a sufficient condition to be able to round
- correctly, for any PREC(z) >= 1 (see algorithms.tex for details). */
- if (MPFR_GET_EXP (s) + 1 < - (mpfr_exp_t) MPFR_PREC(z))
- {
- int signs = MPFR_SIGN(s);
-
- MPFR_SAVE_EXPO_MARK (expo);
- mpfr_set_si_2exp (z, -1, -1, rnd_mode); /* -1/2 */
- if (rnd_mode == MPFR_RNDA)
- rnd_mode = MPFR_RNDD; /* the result is around -1/2, thus negative */
- if ((rnd_mode == MPFR_RNDU || rnd_mode == MPFR_RNDZ) && signs < 0)
- {
- mpfr_nextabove (z); /* z = -1/2 + epsilon */
- inex = 1;
- }
- else if (rnd_mode == MPFR_RNDD && signs > 0)
- {
- mpfr_nextbelow (z); /* z = -1/2 - epsilon */
- inex = -1;
- }
- else
- {
- if (rnd_mode == MPFR_RNDU) /* s > 0: z = -1/2 */
- inex = 1;
- else if (rnd_mode == MPFR_RNDD)
- inex = -1; /* s < 0: z = -1/2 */
- else /* (MPFR_RNDZ and s > 0) or MPFR_RNDN: z = -1/2 */
- inex = (signs > 0) ? 1 : -1;
- }
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (z, inex, rnd_mode);
- }
-
- /* Check for case s= -2n */
- if (MPFR_IS_NEG (s))
- {
- mpfr_t tmp;
- tmp[0] = *s;
- MPFR_EXP (tmp) = MPFR_GET_EXP (s) - 1;
- if (mpfr_integer_p (tmp))
- {
- MPFR_SET_ZERO (z);
- MPFR_SET_POS (z);
- MPFR_RET (0);
- }
- }
-
- /* Check for case s=1 before changing the exponent range */
- if (mpfr_cmp (s, __gmpfr_one) == 0)
- {
- MPFR_SET_INF (z);
- MPFR_SET_POS (z);
- MPFR_SET_DIVBY0 ();
- MPFR_RET (0);
- }
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- /* Compute Zeta */
- if (MPFR_IS_POS (s) && MPFR_GET_EXP (s) >= 0) /* Case s >= 1/2 */
- inex = mpfr_zeta_pos (z, s, rnd_mode);
- else /* use reflection formula
- zeta(s) = 2^s*Pi^(s-1)*sin(Pi*s/2)*gamma(1-s)*zeta(1-s) */
- {
- int overflow = 0;
-
- precz = MPFR_PREC (z);
- precs = MPFR_PREC (s);
-
- /* Precision precs1 needed to represent 1 - s, and s + 2,
- without any truncation */
- precs1 = precs + 2 + MAX (0, - MPFR_GET_EXP (s));
- /* Precision prec1 is the precision on elementary computations;
- it ensures a final precision prec1 - add for zeta(s) */
- add = compute_add (s, precz);
- prec1 = precz + add;
- /* FIXME: To avoid that the working precision (prec1) depends on the
- input precision, one would need to take into account the error made
- when s1 is not exactly 1-s when computing zeta(s1) and gamma(s1)
- below, and also in the case y=Inf (i.e. when gamma(s1) overflows).
- Make sure that underflows do not occur in intermediate computations.
- Due to the limited precision, they are probably not possible
- in practice; add some MPFR_ASSERTN's to be sure that problems
- do not remain undetected? */
- prec1 = MAX (prec1, precs1) + 10;
-
- MPFR_GROUP_INIT_4 (group, prec1, z_pre, s1, y, p);
- MPFR_ZIV_INIT (loop, prec1);
- for (;;)
- {
- mpfr_exp_t ey;
- mpfr_t z_up;
-
- mpfr_const_pi (p, MPFR_RNDD); /* p is Pi */
-
- mpfr_sub (s1, __gmpfr_one, s, MPFR_RNDN); /* s1 = 1-s */
- mpfr_gamma (y, s1, MPFR_RNDN); /* gamma(1-s) */
- if (MPFR_IS_INF (y)) /* zeta(s) < 0 for -4k-2 < s < -4k,
- zeta(s) > 0 for -4k < s < -4k+2 */
- {
- /* FIXME: An overflow in gamma(s1) does not imply that
- zeta(s) will overflow. A solution:
- 1. Compute
- log(|zeta(s)|/2) = (s-1)*log(2*pi) + lngamma(1-s)
- + log(abs(sin(Pi*s/2)) * zeta(1-s))
- (possibly sharing computations with the normal case)
- with a rather good accuracy (see (2)).
- Memorize the sign of sin(...) for the final sign.
- 2. Take the exponential, ~= |zeta(s)|/2. If there is an
- overflow, then this means an overflow on the final result
- (due to the multiplication by 2, which has not been done
- yet).
- 3. Ziv test.
- 4. Correct the sign from the sign of sin(...).
- 5. Round then multiply by 2. Here, an overflow in either
- operation means a real overflow. */
- mpfr_reflection_overflow (z_pre, s1, s, y, p, MPFR_RNDD);
- /* z_pre is a lower bound of |zeta(s)|/2, thus if it overflows,
- or has exponent emax, then |zeta(s)| overflows too. */
- if (MPFR_IS_INF (z_pre) || MPFR_GET_EXP(z_pre) == __gmpfr_emax)
- { /* determine the sign of overflow */
- mpfr_div_2ui (s1, s, 2, MPFR_RNDN); /* s/4, exact */
- mpfr_frac (s1, s1, MPFR_RNDN); /* exact, -1 < s1 < 0 */
- overflow = (mpfr_cmp_si_2exp (s1, -1, -1) > 0) ? -1 : 1;
- break;
- }
- else /* EXP(z_pre) < __gmpfr_emax */
- {
- int ok = 0;
- mpfr_t z_down;
- mpfr_init2 (z_up, mpfr_get_prec (z_pre));
- mpfr_reflection_overflow (z_up, s1, s, y, p, MPFR_RNDU);
- /* if the lower approximation z_pre does not overflow, but
- z_up does, we need more precision */
- if (MPFR_IS_INF (z_up) || MPFR_GET_EXP(z_up) == __gmpfr_emax)
- goto next_loop;
- /* check if z_pre and z_up round to the same number */
- mpfr_init2 (z_down, precz);
- mpfr_set (z_down, z_pre, rnd_mode);
- /* Note: it might be that EXP(z_down) = emax here, in that
- case we will have overflow below when we multiply by 2 */
- mpfr_prec_round (z_up, precz, rnd_mode);
- ok = mpfr_cmp (z_down, z_up) == 0;
- mpfr_clear (z_up);
- mpfr_clear (z_down);
- if (ok)
- {
- /* get correct sign and multiply by 2 */
- mpfr_div_2ui (s1, s, 2, MPFR_RNDN); /* s/4, exact */
- mpfr_frac (s1, s1, MPFR_RNDN); /* exact, -1 < s1 < 0 */
- if (mpfr_cmp_si_2exp (s1, -1, -1) > 0)
- mpfr_neg (z_pre, z_pre, rnd_mode);
- mpfr_mul_2ui (z_pre, z_pre, 1, rnd_mode);
- break;
- }
- else
- goto next_loop;
- }
- }
- mpfr_zeta_pos (z_pre, s1, MPFR_RNDN); /* zeta(1-s) */
- mpfr_mul (z_pre, z_pre, y, MPFR_RNDN); /* gamma(1-s)*zeta(1-s) */
-
- /* multiply z_pre by 2^s*Pi^(s-1) where p=Pi, s1=1-s */
- mpfr_mul_2ui (y, p, 1, MPFR_RNDN); /* 2*Pi */
- mpfr_neg (s1, s1, MPFR_RNDN); /* s-1 */
- mpfr_pow (y, y, s1, MPFR_RNDN); /* (2*Pi)^(s-1) */
- mpfr_mul (z_pre, z_pre, y, MPFR_RNDN);
- mpfr_mul_2ui (z_pre, z_pre, 1, MPFR_RNDN);
-
- /* multiply z_pre by sin(Pi*s/2) */
- mpfr_mul (y, s, p, MPFR_RNDN);
- mpfr_div_2ui (p, y, 1, MPFR_RNDN); /* p = s*Pi/2 */
- /* FIXME: sinpi will be available, we should replace the mpfr_sin
- call below by mpfr_sinpi(s/2), where s/2 will be exact.
- Can mpfr_sin underflow? Moreover, the code below should be
- improved so that the "if" condition becomes unlikely, e.g.
- by taking a slightly larger working precision. */
- mpfr_sin (y, p, MPFR_RNDN); /* y = sin(Pi*s/2) */
- ey = MPFR_GET_EXP (y);
- if (ey < 0) /* take account of cancellation in sin(p) */
- {
- mpfr_t t;
-
- MPFR_ASSERTN (- ey < MPFR_PREC_MAX - prec1);
- mpfr_init2 (t, prec1 - ey);
- mpfr_const_pi (t, MPFR_RNDD);
- mpfr_mul (t, s, t, MPFR_RNDN);
- mpfr_div_2ui (t, t, 1, MPFR_RNDN);
- mpfr_sin (y, t, MPFR_RNDN);
- mpfr_clear (t);
- }
- mpfr_mul (z_pre, z_pre, y, MPFR_RNDN);
-
- if (MPFR_LIKELY (MPFR_CAN_ROUND (z_pre, prec1 - add, precz,
- rnd_mode)))
- break;
-
- next_loop:
- MPFR_ZIV_NEXT (loop, prec1);
- MPFR_GROUP_REPREC_4 (group, prec1, z_pre, s1, y, p);
- }
- MPFR_ZIV_FREE (loop);
- if (overflow != 0)
- {
- inex = mpfr_overflow (z, rnd_mode, overflow);
- MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, MPFR_FLAGS_OVERFLOW);
- }
- else
- inex = mpfr_set (z, z_pre, rnd_mode);
- MPFR_GROUP_CLEAR (group);
- }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (z, inex, rnd_mode);
-}
diff --git a/Build/source/libs/mpfr/mpfr-src/src/zeta_ui.c b/Build/source/libs/mpfr/mpfr-src/src/zeta_ui.c
deleted file mode 100644
index d7ad99a8d7d..00000000000
--- a/Build/source/libs/mpfr/mpfr-src/src/zeta_ui.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/* mpfr_zeta_ui -- compute the Riemann Zeta function for integer argument.
-
-Copyright 2005-2020 Free Software Foundation, Inc.
-Contributed by the AriC and Caramba projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
-https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define MPFR_NEED_LONGLONG_H
-#include "mpfr-impl.h"
-
-int
-mpfr_zeta_ui (mpfr_ptr z, unsigned long m, mpfr_rnd_t r)
-{
- MPFR_ZIV_DECL (loop);
-
- MPFR_LOG_FUNC
- (("m=%lu rnd=%d prec=%Pu", m, r, mpfr_get_prec (z)),
- ("z[%Pu]=%.*Rg", mpfr_get_prec (z), mpfr_log_prec, z));
-
- if (m == 0) /* zeta(0) = -1/2 */
- return mpfr_set_si_2exp (z, -1, -1, r);
- else if (m == 1)
- {
- MPFR_SET_INF (z);
- MPFR_SET_POS (z);
- MPFR_SET_DIVBY0 ();
- return 0;
- }
- else /* m >= 2 */
- {
- mpfr_prec_t p = MPFR_PREC(z);
- unsigned long n, k, err, kbits;
- mpz_t d, t, s, q;
- mpfr_t y;
- int inex;
- MPFR_SAVE_EXPO_DECL (expo);
-
- if (r == MPFR_RNDA)
- r = MPFR_RNDU; /* since the result is always positive */
-
- MPFR_SAVE_EXPO_MARK (expo);
-
- if (m >= p) /* 2^(-m) < ulp(1) = 2^(1-p). This means that
- 2^(-m) <= 1/2*ulp(1). We have 3^(-m)+4^(-m)+... < 2^(-m)
- i.e. zeta(m) < 1+2*2^(-m) for m >= 3 */
- {
- if (m == 2) /* necessarily p=2 */
- inex = mpfr_set_ui_2exp (z, 13, -3, r);
- else if (r == MPFR_RNDZ || r == MPFR_RNDD ||
- (r == MPFR_RNDN && m > p))
- {
- mpfr_set_ui (z, 1, r);
- inex = -1;
- }
- else
- {
- mpfr_set_ui (z, 1, r);
- mpfr_nextabove (z);
- inex = 1;
- }
- goto end;
- }
-
- /* now treat also the case where zeta(m) - (1+1/2^m) < 1/2*ulp(1),
- and the result is either 1+2^(-m) or 1+2^(-m)+2^(1-p). */
- mpfr_init2 (y, 31);
-
- if (m >= p / 2) /* otherwise 4^(-m) > 2^(-p) */
- {
- /* the following is a lower bound for log(3)/log(2) */
- mpfr_set_str_binary (y, "1.100101011100000000011010001110");
- mpfr_mul_ui (y, y, m, MPFR_RNDZ); /* lower bound for log2(3^m) */
- if (mpfr_cmp_ui (y, p + 2) >= 0)
- {
- mpfr_clear (y);
- mpfr_set_ui (z, 1, MPFR_RNDZ);
- mpfr_div_2ui (z, z, m, MPFR_RNDZ);
- mpfr_add_ui (z, z, 1, MPFR_RNDZ);
- if (r != MPFR_RNDU)
- inex = -1;
- else
- {
- mpfr_nextabove (z);
- inex = 1;
- }
- goto end;
- }
- }
-
- mpz_init (s);
- mpz_init (d);
- mpz_init (t);
- mpz_init (q);
-
- p += MPFR_INT_CEIL_LOG2(p); /* account of the n term in the error */
-
- p += MPFR_INT_CEIL_LOG2(p) + 15; /* initial value */
-
- MPFR_ZIV_INIT (loop, p);
- for(;;)
- {
- /* 0.39321985067869744 = log(2)/log(3+sqrt(8)) */
- n = 1 + (unsigned long) (0.39321985067869744 * (double) p);
- err = n + 4;
-
- mpfr_set_prec (y, p);
-
- /* computation of the d[k] */
- mpz_set_ui (s, 0);
- mpz_set_ui (t, 1);
- mpz_mul_2exp (t, t, 2 * n - 1); /* t[n] */
- mpz_set (d, t);
- for (k = n; k > 0; k--)
- {
- count_leading_zeros (kbits, k);
- kbits = GMP_NUMB_BITS - kbits;
- /* if k^m is too large, use mpz_tdiv_q */
- if (m * kbits > 2 * GMP_NUMB_BITS)
- {
- /* if we know in advance that k^m > d, then floor(d/k^m) will
- be zero below, so there is no need to compute k^m */
- kbits = (kbits - 1) * m + 1;
- /* k^m has at least kbits bits */
- if (kbits > mpz_sizeinbase (d, 2))
- mpz_set_ui (q, 0);
- else
- {
- mpz_ui_pow_ui (q, k, m);
- mpz_tdiv_q (q, d, q);
- }
- }
- else /* use several mpz_tdiv_q_ui calls */
- {
- unsigned long km = k, mm = m - 1;
- while (mm > 0 && km < ULONG_MAX / k)
- {
- km *= k;
- mm --;
- }
- mpz_tdiv_q_ui (q, d, km);
- while (mm > 0)
- {
- km = k;
- mm --;
- while (mm > 0 && km < ULONG_MAX / k)
- {
- km *= k;
- mm --;
- }
- mpz_tdiv_q_ui (q, q, km);
- }
- }
- if (k % 2)
- mpz_add (s, s, q);
- else
- mpz_sub (s, s, q);
-
- /* we have d[k] = sum(t[i], i=k+1..n)
- with t[i] = n*(n+i-1)!*4^i/(n-i)!/(2i)!
- t[k-1]/t[k] = k*(2k-1)/(n-k+1)/(n+k-1)/2 */
-#if (GMP_NUMB_BITS == 32)
-#define KMAX 46341 /* max k such that k*(2k-1) < 2^32 */
-#elif (GMP_NUMB_BITS == 64)
-#define KMAX 3037000500
-#endif
-#ifdef KMAX
- if (k <= KMAX)
- mpz_mul_ui (t, t, k * (2 * k - 1));
- else
-#endif
- {
- mpz_mul_ui (t, t, k);
- mpz_mul_ui (t, t, 2 * k - 1);
- }
- mpz_fdiv_q_2exp (t, t, 1);
- /* Warning: the test below assumes that an unsigned long
- has no padding bits. */
- if (n < 1UL << ((sizeof(unsigned long) * CHAR_BIT) / 2))
- /* (n - k + 1) * (n + k - 1) < n^2 */
- mpz_divexact_ui (t, t, (n - k + 1) * (n + k - 1));
- else
- {
- mpz_divexact_ui (t, t, n - k + 1);
- mpz_divexact_ui (t, t, n + k - 1);
- }
- mpz_add (d, d, t);
- }
-
- /* multiply by 1/(1-2^(1-m)) = 1 + 2^(1-m) + 2^(2-m) + ... */
- mpz_fdiv_q_2exp (t, s, m - 1);
- do
- {
- err ++;
- mpz_add (s, s, t);
- mpz_fdiv_q_2exp (t, t, m - 1);
- }
- while (mpz_cmp_ui (t, 0) > 0);
-
- /* divide by d[n] */
- mpz_mul_2exp (s, s, p);
- mpz_tdiv_q (s, s, d);
- mpfr_set_z (y, s, MPFR_RNDN);
- mpfr_div_2ui (y, y, p, MPFR_RNDN);
-
- err = MPFR_INT_CEIL_LOG2 (err);
-
- if (MPFR_LIKELY(MPFR_CAN_ROUND (y, p - err, MPFR_PREC(z), r)))
- break;
-
- MPFR_ZIV_NEXT (loop, p);
- }
- MPFR_ZIV_FREE (loop);
-
- mpz_clear (d);
- mpz_clear (t);
- mpz_clear (q);
- mpz_clear (s);
- inex = mpfr_set (z, y, r);
- mpfr_clear (y);
-
- end:
- MPFR_LOG_VAR (z);
- MPFR_LOG_MSG (("inex = %d before mpfr_check_range\n", inex));
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (z, inex, r);
- }
-}
diff --git a/Build/source/libs/mpfr/mpfr.test b/Build/source/libs/mpfr/mpfr.test
deleted file mode 100755
index 4be42cafe5e..00000000000
--- a/Build/source/libs/mpfr/mpfr.test
+++ /dev/null
@@ -1,7 +0,0 @@
-#! /bin/sh
-
-# Copyright (C) 2014 Taco Hoekwater <taco@metatex.org>
-# You may freely use, modify and/or distribute this file.
-
-./mpfrtest || exit 1
-
diff --git a/Build/source/libs/mpfr/mpfrtest.c b/Build/source/libs/mpfr/mpfrtest.c
deleted file mode 100644
index 545a061a9c5..00000000000
--- a/Build/source/libs/mpfr/mpfrtest.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* mpfrtst.c: Basic test for libmpfr
- *
- * Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org>
- * You may freely use, modify and/or distribute this file.
- */
-
-#include <stdio.h>
-#include <gmp.h>
-#include <mpfr.h>
-
-int main (int argc, char **argv)
-{
- printf ("%s: Compiled with mpfr version %s; using %s\n",
- argv[0], MPFR_VERSION_STRING, mpfr_get_version());
- printf ("%s: Compiled with gmp version %d.%d.%d; using %s\n",
- argv[0], __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR, __GNU_MP_VERSION_PATCHLEVEL,
- gmp_version);
- return 0;
-}
diff --git a/Build/source/libs/mpfr/version.ac b/Build/source/libs/mpfr/version.ac
deleted file mode 100644
index 5133b63bb01..00000000000
--- a/Build/source/libs/mpfr/version.ac
+++ /dev/null
@@ -1,11 +0,0 @@
-dnl
-dnl Copyright (C) 2014, 2015 Taco Hoekwater <taco@metatex.org>
-dnl
-dnl This file is free software; the copyright holder
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl --------------------------------------------------------
-dnl
-dnl m4-include this file to define the current mpfr version
-m4_define([mpfr_version], [4.1.0])