------------------------------------------------------------------------
r13433 | vlefevre | 2019-01-31 20:33:50 +0000 (Thu, 31 Jan 2019) | 2 lines
Changed paths:
   M /branches/4.0/NEWS

[NEWS] Put the "Option -pedantic is now always removed [...]" line
at the right place (4.0.2, not 4.0.1: r13422 was wrong).
------------------------------------------------------------------------
r13432 | vlefevre | 2019-01-31 20:29:48 +0000 (Thu, 31 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.2.
------------------------------------------------------------------------
r13431 | vlefevre | 2019-01-31 15:59:16 +0000 (Thu, 31 Jan 2019) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/Makefile.am

[src/Makefile.am] In check-exported-symbols, replaced grep by $(GREP)
as usual and like in check-gmp-symbols.
(merged changeset 13429 from the trunk)
------------------------------------------------------------------------
r13424 | vlefevre | 2019-01-30 12:45:13 +0000 (Wed, 30 Jan 2019) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/configure.ac

[configure.ac] Updated comment about default options in CFLAGS for GCC.
(merged changeset r13423 from the trunk)
------------------------------------------------------------------------
r13422 | vlefevre | 2019-01-30 09:26:44 +0000 (Wed, 30 Jan 2019) | 8 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/INSTALL
   M /branches/4.0/NEWS
   M /branches/4.0/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.
(merged changeset r13421 from the trunk)
------------------------------------------------------------------------
r13418 | vlefevre | 2019-01-27 23:08:51 +0000 (Sun, 27 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
------------------------------------------------------------------------
r13417 | vlefevre | 2019-01-27 23:01:21 +0000 (Sun, 27 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.2-rc2.
------------------------------------------------------------------------
r13416 | vlefevre | 2019-01-27 18:30:16 +0000 (Sun, 27 Jan 2019) | 38 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/NEWS
   M /branches/4.0/acinclude.m4
   M /branches/4.0/configure.ac
   M /branches/4.0/src/mpfr-impl.h
   M /branches/4.0/src/mpfr-thread.h
   M /branches/4.0/tests
   M /branches/4.0/tests/tversion.c

Shared cache: cleanup and various improvements / corrections.
  * acinclude.m4:
      - test $enable_shared_cache instead of $mpfr_want_shared_cache;
      - check ISO C11 thread support and/or POSIX thread support
        only when necessary;
      - 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>);
      - with POSIX threads, 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;
      - 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);
      - 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.
  * acinclude.m4, 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.
  * src/mpfr-impl.h: added a comment about the cache-related types,
    which depend on the locking methods.
  * 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).
  * 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.
  * NEWS: update.
(merged changesets r13032,13390-13396,13410,13412 from the trunk)
------------------------------------------------------------------------
r13409 | vlefevre | 2019-01-25 02:00:06 +0000 (Fri, 25 Jan 2019) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/acinclude.m4
   M /branches/4.0/configure.ac
   M /branches/4.0/tests
   M /branches/4.0/tests/trint.c

[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.
[acinclude.m4,tests/trint.c] Fixed C++ compatibility issues detected
thanks to this option used with -Werror.
(merged changesets r13406-13408 from the trunk)
------------------------------------------------------------------------
r13402 | vlefevre | 2019-01-13 15:39:13 +0000 (Sun, 13 Jan 2019) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tcheck.c

[tests/tcheck.c] Corrected meaningless error message.
(merged changeset r13401 from the trunk)
------------------------------------------------------------------------
r13400 | vlefevre | 2019-01-13 01:15:11 +0000 (Sun, 13 Jan 2019) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tversion.c

[tests/tversion.c] Decimal formats: output the encoding type (DPD/BID).
(merged changeset r12776 from the trunk, and as a consequence,
completed the merge of r13003)
------------------------------------------------------------------------
r13399 | vlefevre | 2019-01-13 00:17:11 +0000 (Sun, 13 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.2-dev.
------------------------------------------------------------------------
r13398 | vlefevre | 2019-01-13 00:15:31 +0000 (Sun, 13 Jan 2019) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Minor correction for non-tex versions.
Thanks to Trevor Spiteri for the bug report.
(merged changeset r13397 from the trunk)
------------------------------------------------------------------------
r13387 | vlefevre | 2019-01-08 13:43:12 +0000 (Tue, 08 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
------------------------------------------------------------------------
r13386 | vlefevre | 2019-01-08 13:30:18 +0000 (Tue, 08 Jan 2019) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tstrtofr.c

[tests/tstrtofr.c] Updated comment about GCC bug 86554: now fixed in
the GCC trunk.
(merged changeset r13385 from the trunk)
------------------------------------------------------------------------
r13384 | vlefevre | 2019-01-07 16:11:57 +0000 (Mon, 07 Jan 2019) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/Makefile.am

[tests/Makefile.am] Replaced "env -u DISPLAY" by "env DISPLAY=''" as
the -u option is not supported by NetBSD.
(merged changeset r13383 from the trunk)
------------------------------------------------------------------------
r13382 | vlefevre | 2019-01-07 15:22:38 +0000 (Mon, 07 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
------------------------------------------------------------------------
r13381 | vlefevre | 2019-01-07 15:17:51 +0000 (Mon, 07 Jan 2019) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/COPYING
   M /branches/4.0/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.
------------------------------------------------------------------------
r13379 | vlefevre | 2019-01-07 14:32:20 +0000 (Mon, 07 Jan 2019) | 4 lines
Changed paths:
   M /branches/4.0/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 r13373 back
to the old log message, as the URL in this log message here describes
a change in one of the files.
------------------------------------------------------------------------
r13377 | vlefevre | 2019-01-07 14:06:05 +0000 (Mon, 07 Jan 2019) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/README.dev

[doc/README.dev] Updated some URL's (http → https).
(merged changeset r13376 from the trunk)
------------------------------------------------------------------------
r13375 | vlefevre | 2019-01-07 13:57:16 +0000 (Mon, 07 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/doc/texinfo.tex

[doc/texinfo.tex] Update to 2018-02-12.17 with "autoreconf -i -f".
------------------------------------------------------------------------
r13373 | vlefevre | 2019-01-07 13:53:20 +0000 (Mon, 07 Jan 2019) | 3 lines
Changed paths:
   M /branches/4.0/BUGS
   M /branches/4.0/COPYING
   M /branches/4.0/ChangeLog
   M /branches/4.0/INSTALL
   M /branches/4.0/NEWS
   M /branches/4.0/README
   M /branches/4.0/TODO
   M /branches/4.0/acinclude.m4
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/FAQ.html
   M /branches/4.0/doc/README.dev
   M /branches/4.0/doc/faq.xsl
   M /branches/4.0/doc/fdl.texi
   M /branches/4.0/examples/can_round.c
   M /branches/4.0/examples/divworst.c
   M /branches/4.0/examples/rndo-add.c
   M /branches/4.0/examples/sample.c
   M /branches/4.0/examples/version.c
   M /branches/4.0/src/abort_prec_max.c
   M /branches/4.0/src/acos.c
   M /branches/4.0/src/acosh.c
   M /branches/4.0/src/add.c
   M /branches/4.0/src/add1.c
   M /branches/4.0/src/add1sp.c
   M /branches/4.0/src/add_d.c
   M /branches/4.0/src/add_ui.c
   M /branches/4.0/src/agm.c
   M /branches/4.0/src/ai.c
   M /branches/4.0/src/amd/amdfam10/mparam.h
   M /branches/4.0/src/amd/athlon/mparam.h
   M /branches/4.0/src/amd/k8/mparam.h
   M /branches/4.0/src/arm/mparam.h
   M /branches/4.0/src/asin.c
   M /branches/4.0/src/asinh.c
   M /branches/4.0/src/atan.c
   M /branches/4.0/src/atan2.c
   M /branches/4.0/src/atanh.c
   M /branches/4.0/src/bernoulli.c
   M /branches/4.0/src/beta.c
   M /branches/4.0/src/buildopt.c
   M /branches/4.0/src/cache.c
   M /branches/4.0/src/cbrt.c
   M /branches/4.0/src/check.c
   M /branches/4.0/src/clear.c
   M /branches/4.0/src/clears.c
   M /branches/4.0/src/cmp.c
   M /branches/4.0/src/cmp2.c
   M /branches/4.0/src/cmp_abs.c
   M /branches/4.0/src/cmp_d.c
   M /branches/4.0/src/cmp_ld.c
   M /branches/4.0/src/cmp_si.c
   M /branches/4.0/src/cmp_ui.c
   M /branches/4.0/src/comparisons.c
   M /branches/4.0/src/const_catalan.c
   M /branches/4.0/src/const_euler.c
   M /branches/4.0/src/const_log2.c
   M /branches/4.0/src/const_pi.c
   M /branches/4.0/src/constant.c
   M /branches/4.0/src/copysign.c
   M /branches/4.0/src/cos.c
   M /branches/4.0/src/cosh.c
   M /branches/4.0/src/cot.c
   M /branches/4.0/src/coth.c
   M /branches/4.0/src/csc.c
   M /branches/4.0/src/csch.c
   M /branches/4.0/src/d_div.c
   M /branches/4.0/src/d_sub.c
   M /branches/4.0/src/digamma.c
   M /branches/4.0/src/dim.c
   M /branches/4.0/src/div.c
   M /branches/4.0/src/div_2exp.c
   M /branches/4.0/src/div_2si.c
   M /branches/4.0/src/div_2ui.c
   M /branches/4.0/src/div_d.c
   M /branches/4.0/src/div_ui.c
   M /branches/4.0/src/dump.c
   M /branches/4.0/src/eint.c
   M /branches/4.0/src/eq.c
   M /branches/4.0/src/erandom.c
   M /branches/4.0/src/erf.c
   M /branches/4.0/src/erfc.c
   M /branches/4.0/src/exceptions.c
   M /branches/4.0/src/exp.c
   M /branches/4.0/src/exp10.c
   M /branches/4.0/src/exp2.c
   M /branches/4.0/src/exp3.c
   M /branches/4.0/src/exp_2.c
   M /branches/4.0/src/expm1.c
   M /branches/4.0/src/extract.c
   M /branches/4.0/src/factorial.c
   M /branches/4.0/src/fits_intmax.c
   M /branches/4.0/src/fits_s.h
   M /branches/4.0/src/fits_sint.c
   M /branches/4.0/src/fits_slong.c
   M /branches/4.0/src/fits_sshort.c
   M /branches/4.0/src/fits_u.h
   M /branches/4.0/src/fits_uint.c
   M /branches/4.0/src/fits_uintmax.c
   M /branches/4.0/src/fits_ulong.c
   M /branches/4.0/src/fits_ushort.c
   M /branches/4.0/src/fma.c
   M /branches/4.0/src/fmma.c
   M /branches/4.0/src/fms.c
   M /branches/4.0/src/fpif.c
   M /branches/4.0/src/frac.c
   M /branches/4.0/src/free_cache.c
   M /branches/4.0/src/frexp.c
   M /branches/4.0/src/gamma.c
   M /branches/4.0/src/gamma_inc.c
   M /branches/4.0/src/gammaonethird.c
   M /branches/4.0/src/gen_inverse.h
   M /branches/4.0/src/generic/coverage/mparam.h
   M /branches/4.0/src/generic/mparam.h
   M /branches/4.0/src/get_d.c
   M /branches/4.0/src/get_d64.c
   M /branches/4.0/src/get_exp.c
   M /branches/4.0/src/get_f.c
   M /branches/4.0/src/get_float128.c
   M /branches/4.0/src/get_flt.c
   M /branches/4.0/src/get_ld.c
   M /branches/4.0/src/get_q.c
   M /branches/4.0/src/get_si.c
   M /branches/4.0/src/get_sj.c
   M /branches/4.0/src/get_str.c
   M /branches/4.0/src/get_ui.c
   M /branches/4.0/src/get_uj.c
   M /branches/4.0/src/get_z.c
   M /branches/4.0/src/get_z_exp.c
   M /branches/4.0/src/gmp_op.c
   M /branches/4.0/src/grandom.c
   M /branches/4.0/src/hppa/mparam.h
   M /branches/4.0/src/hypot.c
   M /branches/4.0/src/ia64/mparam.h
   M /branches/4.0/src/ieee_floats.h
   M /branches/4.0/src/init.c
   M /branches/4.0/src/init2.c
   M /branches/4.0/src/inits.c
   M /branches/4.0/src/inits2.c
   M /branches/4.0/src/inp_str.c
   M /branches/4.0/src/int_ceil_log2.c
   M /branches/4.0/src/invert_limb.h
   M /branches/4.0/src/invsqrt_limb.h
   M /branches/4.0/src/isinf.c
   M /branches/4.0/src/isinteger.c
   M /branches/4.0/src/isnan.c
   M /branches/4.0/src/isnum.c
   M /branches/4.0/src/isqrt.c
   M /branches/4.0/src/isregular.c
   M /branches/4.0/src/iszero.c
   M /branches/4.0/src/jn.c
   M /branches/4.0/src/jyn_asympt.c
   M /branches/4.0/src/li2.c
   M /branches/4.0/src/lngamma.c
   M /branches/4.0/src/log.c
   M /branches/4.0/src/log10.c
   M /branches/4.0/src/log1p.c
   M /branches/4.0/src/log2.c
   M /branches/4.0/src/log_ui.c
   M /branches/4.0/src/logging.c
   M /branches/4.0/src/min_prec.c
   M /branches/4.0/src/minmax.c
   M /branches/4.0/src/mips/mparam.h
   M /branches/4.0/src/modf.c
   M /branches/4.0/src/mp_clz_tab.c
   M /branches/4.0/src/mparam_h.in
   M /branches/4.0/src/mpf2mpfr.h
   M /branches/4.0/src/mpfr-cvers.h
   M /branches/4.0/src/mpfr-gmp.c
   M /branches/4.0/src/mpfr-gmp.h
   M /branches/4.0/src/mpfr-impl.h
   M /branches/4.0/src/mpfr-intmax.h
   M /branches/4.0/src/mpfr-longlong.h
   M /branches/4.0/src/mpfr-mini-gmp.c
   M /branches/4.0/src/mpfr-mini-gmp.h
   M /branches/4.0/src/mpfr-sassert.h
   M /branches/4.0/src/mpfr-thread.h
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/mpn_exp.c
   M /branches/4.0/src/mul.c
   M /branches/4.0/src/mul_2exp.c
   M /branches/4.0/src/mul_2si.c
   M /branches/4.0/src/mul_2ui.c
   M /branches/4.0/src/mul_d.c
   M /branches/4.0/src/mul_ui.c
   M /branches/4.0/src/mulders.c
   M /branches/4.0/src/neg.c
   M /branches/4.0/src/next.c
   M /branches/4.0/src/nrandom.c
   M /branches/4.0/src/odd_p.c
   M /branches/4.0/src/out_str.c
   M /branches/4.0/src/pool.c
   M /branches/4.0/src/pow.c
   M /branches/4.0/src/pow_si.c
   M /branches/4.0/src/pow_ui.c
   M /branches/4.0/src/pow_z.c
   M /branches/4.0/src/powerof2.c
   M /branches/4.0/src/powerpc32/mparam.h
   M /branches/4.0/src/powerpc64/mparam.h
   M /branches/4.0/src/print_raw.c
   M /branches/4.0/src/print_rnd_mode.c
   M /branches/4.0/src/printf.c
   M /branches/4.0/src/random_deviate.c
   M /branches/4.0/src/random_deviate.h
   M /branches/4.0/src/rec_sqrt.c
   M /branches/4.0/src/reldiff.c
   M /branches/4.0/src/rem1.c
   M /branches/4.0/src/rint.c
   M /branches/4.0/src/rndna.c
   M /branches/4.0/src/root.c
   M /branches/4.0/src/round_near_x.c
   M /branches/4.0/src/round_p.c
   M /branches/4.0/src/round_prec.c
   M /branches/4.0/src/round_raw_generic.c
   M /branches/4.0/src/scale2.c
   M /branches/4.0/src/sec.c
   M /branches/4.0/src/sech.c
   M /branches/4.0/src/set.c
   M /branches/4.0/src/set_d.c
   M /branches/4.0/src/set_d64.c
   M /branches/4.0/src/set_dfl_prec.c
   M /branches/4.0/src/set_exp.c
   M /branches/4.0/src/set_f.c
   M /branches/4.0/src/set_float128.c
   M /branches/4.0/src/set_flt.c
   M /branches/4.0/src/set_inf.c
   M /branches/4.0/src/set_ld.c
   M /branches/4.0/src/set_nan.c
   M /branches/4.0/src/set_prc_raw.c
   M /branches/4.0/src/set_prec.c
   M /branches/4.0/src/set_q.c
   M /branches/4.0/src/set_rnd.c
   M /branches/4.0/src/set_si.c
   M /branches/4.0/src/set_si_2exp.c
   M /branches/4.0/src/set_sj.c
   M /branches/4.0/src/set_str.c
   M /branches/4.0/src/set_str_raw.c
   M /branches/4.0/src/set_ui.c
   M /branches/4.0/src/set_ui_2exp.c
   M /branches/4.0/src/set_uj.c
   M /branches/4.0/src/set_z.c
   M /branches/4.0/src/set_z_exp.c
   M /branches/4.0/src/set_zero.c
   M /branches/4.0/src/setmax.c
   M /branches/4.0/src/setmin.c
   M /branches/4.0/src/setsign.c
   M /branches/4.0/src/sgn.c
   M /branches/4.0/src/si_op.c
   M /branches/4.0/src/signbit.c
   M /branches/4.0/src/sin.c
   M /branches/4.0/src/sin_cos.c
   M /branches/4.0/src/sinh.c
   M /branches/4.0/src/sinh_cosh.c
   M /branches/4.0/src/sparc64/mparam.h
   M /branches/4.0/src/sqr.c
   M /branches/4.0/src/sqrt.c
   M /branches/4.0/src/sqrt_ui.c
   M /branches/4.0/src/stack_interface.c
   M /branches/4.0/src/strtofr.c
   M /branches/4.0/src/sub.c
   M /branches/4.0/src/sub1.c
   M /branches/4.0/src/sub1sp.c
   M /branches/4.0/src/sub_d.c
   M /branches/4.0/src/sub_ui.c
   M /branches/4.0/src/subnormal.c
   M /branches/4.0/src/sum.c
   M /branches/4.0/src/swap.c
   M /branches/4.0/src/tan.c
   M /branches/4.0/src/tanh.c
   M /branches/4.0/src/ubf.c
   M /branches/4.0/src/uceil_exp2.c
   M /branches/4.0/src/uceil_log2.c
   M /branches/4.0/src/ufloor_log2.c
   M /branches/4.0/src/ui_div.c
   M /branches/4.0/src/ui_pow.c
   M /branches/4.0/src/ui_pow_ui.c
   M /branches/4.0/src/ui_sub.c
   M /branches/4.0/src/urandom.c
   M /branches/4.0/src/urandomb.c
   M /branches/4.0/src/vasprintf.c
   M /branches/4.0/src/version.c
   M /branches/4.0/src/volatile.c
   M /branches/4.0/src/x86/core2/mparam.h
   M /branches/4.0/src/x86/mparam.h
   M /branches/4.0/src/x86_64/core2/mparam.h
   M /branches/4.0/src/x86_64/corei5/mparam.h
   M /branches/4.0/src/x86_64/pentium4/mparam.h
   M /branches/4.0/src/yn.c
   M /branches/4.0/src/zeta.c
   M /branches/4.0/src/zeta_ui.c
   M /branches/4.0/tests/Makefile.am
   M /branches/4.0/tests/cmp_str.c
   M /branches/4.0/tests/data/digamma
   M /branches/4.0/tests/data/li2
   M /branches/4.0/tests/memory.c
   M /branches/4.0/tests/mpf_compat.c
   M /branches/4.0/tests/mpf_compat.h
   M /branches/4.0/tests/mpfr-test.h
   M /branches/4.0/tests/mpfr_compat.c
   M /branches/4.0/tests/random2.c
   M /branches/4.0/tests/reuse.c
   M /branches/4.0/tests/rnd_mode.c
   M /branches/4.0/tests/tabort_defalloc1.c
   M /branches/4.0/tests/tabort_defalloc2.c
   M /branches/4.0/tests/tabort_prec_max.c
   M /branches/4.0/tests/tabs.c
   M /branches/4.0/tests/tacos.c
   M /branches/4.0/tests/tacosh.c
   M /branches/4.0/tests/tadd.c
   M /branches/4.0/tests/tadd1sp.c
   M /branches/4.0/tests/tadd_d.c
   M /branches/4.0/tests/tadd_ui.c
   M /branches/4.0/tests/tagm.c
   M /branches/4.0/tests/tai.c
   M /branches/4.0/tests/talloc-cache.c
   M /branches/4.0/tests/talloc.c
   M /branches/4.0/tests/tasin.c
   M /branches/4.0/tests/tasinh.c
   M /branches/4.0/tests/tassert.c
   M /branches/4.0/tests/tatan.c
   M /branches/4.0/tests/tatanh.c
   M /branches/4.0/tests/taway.c
   M /branches/4.0/tests/tbeta.c
   M /branches/4.0/tests/tbuildopt.c
   M /branches/4.0/tests/tcan_round.c
   M /branches/4.0/tests/tcbrt.c
   M /branches/4.0/tests/tcheck.c
   M /branches/4.0/tests/tcmp.c
   M /branches/4.0/tests/tcmp2.c
   M /branches/4.0/tests/tcmp_d.c
   M /branches/4.0/tests/tcmp_ld.c
   M /branches/4.0/tests/tcmp_ui.c
   M /branches/4.0/tests/tcmpabs.c
   M /branches/4.0/tests/tcomparisons.c
   M /branches/4.0/tests/tconst_catalan.c
   M /branches/4.0/tests/tconst_euler.c
   M /branches/4.0/tests/tconst_log2.c
   M /branches/4.0/tests/tconst_pi.c
   M /branches/4.0/tests/tcopysign.c
   M /branches/4.0/tests/tcos.c
   M /branches/4.0/tests/tcosh.c
   M /branches/4.0/tests/tcot.c
   M /branches/4.0/tests/tcoth.c
   M /branches/4.0/tests/tcsc.c
   M /branches/4.0/tests/tcsch.c
   M /branches/4.0/tests/td_div.c
   M /branches/4.0/tests/td_sub.c
   M /branches/4.0/tests/tdigamma.c
   M /branches/4.0/tests/tdim.c
   M /branches/4.0/tests/tdiv.c
   M /branches/4.0/tests/tdiv_d.c
   M /branches/4.0/tests/tdiv_ui.c
   M /branches/4.0/tests/teint.c
   M /branches/4.0/tests/teq.c
   M /branches/4.0/tests/terandom.c
   M /branches/4.0/tests/terandom_chisq.c
   M /branches/4.0/tests/terf.c
   M /branches/4.0/tests/tests.c
   M /branches/4.0/tests/texceptions.c
   M /branches/4.0/tests/texp.c
   M /branches/4.0/tests/texp10.c
   M /branches/4.0/tests/texp2.c
   M /branches/4.0/tests/texpm1.c
   M /branches/4.0/tests/tfactorial.c
   M /branches/4.0/tests/tfits.c
   M /branches/4.0/tests/tfma.c
   M /branches/4.0/tests/tfmma.c
   M /branches/4.0/tests/tfmod.c
   M /branches/4.0/tests/tfms.c
   M /branches/4.0/tests/tfpif.c
   M /branches/4.0/tests/tfprintf.c
   M /branches/4.0/tests/tfrac.c
   M /branches/4.0/tests/tfrexp.c
   M /branches/4.0/tests/tgamma.c
   M /branches/4.0/tests/tgamma_inc.c
   M /branches/4.0/tests/tgeneric.c
   M /branches/4.0/tests/tgeneric_ui.c
   M /branches/4.0/tests/tget_d.c
   M /branches/4.0/tests/tget_d_2exp.c
   M /branches/4.0/tests/tget_f.c
   M /branches/4.0/tests/tget_flt.c
   M /branches/4.0/tests/tget_ld_2exp.c
   M /branches/4.0/tests/tget_q.c
   M /branches/4.0/tests/tget_set_d64.c
   M /branches/4.0/tests/tget_sj.c
   M /branches/4.0/tests/tget_str.c
   M /branches/4.0/tests/tget_z.c
   M /branches/4.0/tests/tgmpop.c
   M /branches/4.0/tests/tgrandom.c
   M /branches/4.0/tests/thyperbolic.c
   M /branches/4.0/tests/thypot.c
   M /branches/4.0/tests/tinits.c
   M /branches/4.0/tests/tinp_str.c
   M /branches/4.0/tests/tinternals.c
   M /branches/4.0/tests/tisnan.c
   M /branches/4.0/tests/tisqrt.c
   M /branches/4.0/tests/tj0.c
   M /branches/4.0/tests/tj1.c
   M /branches/4.0/tests/tjn.c
   M /branches/4.0/tests/tl2b.c
   M /branches/4.0/tests/tlgamma.c
   M /branches/4.0/tests/tli2.c
   M /branches/4.0/tests/tlngamma.c
   M /branches/4.0/tests/tlog.c
   M /branches/4.0/tests/tlog10.c
   M /branches/4.0/tests/tlog1p.c
   M /branches/4.0/tests/tlog2.c
   M /branches/4.0/tests/tlog_ui.c
   M /branches/4.0/tests/tmin_prec.c
   M /branches/4.0/tests/tminmax.c
   M /branches/4.0/tests/tmodf.c
   M /branches/4.0/tests/tmul.c
   M /branches/4.0/tests/tmul_2exp.c
   M /branches/4.0/tests/tmul_d.c
   M /branches/4.0/tests/tmul_ui.c
   M /branches/4.0/tests/tnext.c
   M /branches/4.0/tests/tnrandom.c
   M /branches/4.0/tests/tnrandom_chisq.c
   M /branches/4.0/tests/tout_str.c
   M /branches/4.0/tests/toutimpl.c
   M /branches/4.0/tests/tpow.c
   M /branches/4.0/tests/tpow3.c
   M /branches/4.0/tests/tpow_all.c
   M /branches/4.0/tests/tpow_z.c
   M /branches/4.0/tests/tprintf.c
   M /branches/4.0/tests/trandom.c
   M /branches/4.0/tests/trandom_deviate.c
   M /branches/4.0/tests/trec_sqrt.c
   M /branches/4.0/tests/tremquo.c
   M /branches/4.0/tests/trint.c
   M /branches/4.0/tests/trndna.c
   M /branches/4.0/tests/troot.c
   M /branches/4.0/tests/trootn_ui.c
   M /branches/4.0/tests/tround_prec.c
   M /branches/4.0/tests/tsec.c
   M /branches/4.0/tests/tsech.c
   M /branches/4.0/tests/tset.c
   M /branches/4.0/tests/tset_d.c
   M /branches/4.0/tests/tset_exp.c
   M /branches/4.0/tests/tset_f.c
   M /branches/4.0/tests/tset_float128.c
   M /branches/4.0/tests/tset_ld.c
   M /branches/4.0/tests/tset_q.c
   M /branches/4.0/tests/tset_si.c
   M /branches/4.0/tests/tset_sj.c
   M /branches/4.0/tests/tset_str.c
   M /branches/4.0/tests/tset_z.c
   M /branches/4.0/tests/tset_z_exp.c
   M /branches/4.0/tests/tsgn.c
   M /branches/4.0/tests/tsi_op.c
   M /branches/4.0/tests/tsin.c
   M /branches/4.0/tests/tsin_cos.c
   M /branches/4.0/tests/tsinh.c
   M /branches/4.0/tests/tsinh_cosh.c
   M /branches/4.0/tests/tsprintf.c
   M /branches/4.0/tests/tsqr.c
   M /branches/4.0/tests/tsqrt.c
   M /branches/4.0/tests/tsqrt_ui.c
   M /branches/4.0/tests/tstckintc.c
   M /branches/4.0/tests/tstdint.c
   M /branches/4.0/tests/tstrtofr.c
   M /branches/4.0/tests/tsub.c
   M /branches/4.0/tests/tsub1sp.c
   M /branches/4.0/tests/tsub_d.c
   M /branches/4.0/tests/tsub_ui.c
   M /branches/4.0/tests/tsubnormal.c
   M /branches/4.0/tests/tsum.c
   M /branches/4.0/tests/tswap.c
   M /branches/4.0/tests/ttan.c
   M /branches/4.0/tests/ttanh.c
   M /branches/4.0/tests/ttrunc.c
   M /branches/4.0/tests/tui_div.c
   M /branches/4.0/tests/tui_pow.c
   M /branches/4.0/tests/tui_sub.c
   M /branches/4.0/tests/turandom.c
   M /branches/4.0/tests/tvalist.c
   M /branches/4.0/tests/tversion.c
   M /branches/4.0/tests/ty0.c
   M /branches/4.0/tests/ty1.c
   M /branches/4.0/tests/tyn.c
   M /branches/4.0/tests/tzeta.c
   M /branches/4.0/tests/tzeta_ui.c
   M /branches/4.0/tools/bench/benchtime.h
   M /branches/4.0/tools/bench/mpfrbench.c
   M /branches/4.0/tools/get_patches.sh
   M /branches/4.0/tools/mbench/generate.c
   M /branches/4.0/tools/mbench/mfv5-arprec.cc
   M /branches/4.0/tools/mbench/mfv5-cln.cc
   M /branches/4.0/tools/mbench/mfv5-crlibm.cc
   M /branches/4.0/tools/mbench/mfv5-libc.cc
   M /branches/4.0/tools/mbench/mfv5-lidia.cc
   M /branches/4.0/tools/mbench/mfv5-mpf.cc
   M /branches/4.0/tools/mbench/mfv5-mpfr.cc
   M /branches/4.0/tools/mbench/mfv5-ntl.cc
   M /branches/4.0/tools/mbench/mfv5-pari.cc
   M /branches/4.0/tools/mbench/mfv5-void.cc
   M /branches/4.0/tools/mbench/mfv5.cc
   M /branches/4.0/tools/mbench/mfv5.h
   M /branches/4.0/tools/mbench/mpfr-gfx.c
   M /branches/4.0/tools/mbench/mpfr-v4.c
   M /branches/4.0/tools/mbench/mpfr-v6.c
   M /branches/4.0/tools/mbench/timp.h
   M /branches/4.0/tools/timings-mpfr.c
   M /branches/4.0/tune/bidimensional_sample.c
   M /branches/4.0/tune/speed.c
   M /branches/4.0/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.
------------------------------------------------------------------------
r13371 | vlefevre | 2019-01-07 13:35:33 +0000 (Mon, 07 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/src/Makefile.am

[src/Makefile.am] Updated libmpfr_la_LDFLAGS for MPFR 4.0.2.
------------------------------------------------------------------------
r13370 | vlefevre | 2019-01-07 13:22:53 +0000 (Mon, 07 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.2-rc1.
------------------------------------------------------------------------
r13366 | vlefevre | 2019-01-07 09:39:52 +0000 (Mon, 07 Jan 2019) | 14 lines
Changed paths:
   M /branches/4.0/src/strtofr.c
   M /branches/4.0/tests/tstrtofr.c

[src/strtofr.c] Fixed various issues. In particular, the error analysis
  with associated code was incorrect (due to the bad correction r8384
  of a past bug, later really fixed in r11056). Also adapted the code
  to work with small-size limbs.
[tests/tstrtofr.c] Added tests, including random tests. In particular,
  some part of the code was tested only on hard-to-round cases, meaning
  that some potential issues could not be detected (intermediate results
  were thrown out due to the next Ziv iteration). Moreover, in case of
  failure of some particular test, output the probable cause of this
  failure (GCC bug 86554) with a workaround.
(merged changesets associated with these files r12566-13306,13364-13365
from the trunk)
Note: There may still remain issues with mpfr_strtofr, to be checked
later. At least, the tests do not fail.
------------------------------------------------------------------------
r13363 | vlefevre | 2019-01-04 12:11:10 +0000 (Fri, 04 Jan 2019) | 3 lines
Changed paths:
   M /branches/4.0/src/mpfr-impl.h

[src/mpfr-impl.h] Added a comment with a warning concerning the meaning
of MPFR_EXP_FSPEC (corresponding to the merge of mpfr-impl.h r13299
from the trunk; the other part of this commit with be merged later).
------------------------------------------------------------------------
r13362 | vlefevre | 2019-01-01 21:18:11 +0000 (Tue, 01 Jan 2019) | 1 line
Changed paths:
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Updated the month.
------------------------------------------------------------------------
r13360 | vlefevre | 2019-01-01 21:02:47 +0000 (Tue, 01 Jan 2019) | 4 lines
Changed paths:
   M /branches/4.0/BUGS
   M /branches/4.0/INSTALL
   M /branches/4.0/Makefile.am
   M /branches/4.0/NEWS
   M /branches/4.0/README
   M /branches/4.0/TODO
   M /branches/4.0/acinclude.m4
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/FAQ.html
   M /branches/4.0/doc/Makefile.am
   M /branches/4.0/doc/README.dev
   M /branches/4.0/doc/check-typography
   M /branches/4.0/doc/faq.xsl
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/examples/can_round.c
   M /branches/4.0/examples/divworst.c
   M /branches/4.0/examples/rndo-add.c
   M /branches/4.0/examples/sample.c
   M /branches/4.0/examples/version.c
   M /branches/4.0/src/Makefile.am
   M /branches/4.0/src/abort_prec_max.c
   M /branches/4.0/src/acos.c
   M /branches/4.0/src/acosh.c
   M /branches/4.0/src/add.c
   M /branches/4.0/src/add1.c
   M /branches/4.0/src/add1sp.c
   M /branches/4.0/src/add_d.c
   M /branches/4.0/src/add_ui.c
   M /branches/4.0/src/agm.c
   M /branches/4.0/src/ai.c
   M /branches/4.0/src/amd/amdfam10/mparam.h
   M /branches/4.0/src/amd/athlon/mparam.h
   M /branches/4.0/src/amd/k8/mparam.h
   M /branches/4.0/src/arm/mparam.h
   M /branches/4.0/src/asin.c
   M /branches/4.0/src/asinh.c
   M /branches/4.0/src/atan.c
   M /branches/4.0/src/atan2.c
   M /branches/4.0/src/atanh.c
   M /branches/4.0/src/bernoulli.c
   M /branches/4.0/src/beta.c
   M /branches/4.0/src/buildopt.c
   M /branches/4.0/src/cache.c
   M /branches/4.0/src/cbrt.c
   M /branches/4.0/src/check.c
   M /branches/4.0/src/clear.c
   M /branches/4.0/src/clears.c
   M /branches/4.0/src/cmp.c
   M /branches/4.0/src/cmp2.c
   M /branches/4.0/src/cmp_abs.c
   M /branches/4.0/src/cmp_d.c
   M /branches/4.0/src/cmp_ld.c
   M /branches/4.0/src/cmp_si.c
   M /branches/4.0/src/cmp_ui.c
   M /branches/4.0/src/comparisons.c
   M /branches/4.0/src/const_catalan.c
   M /branches/4.0/src/const_euler.c
   M /branches/4.0/src/const_log2.c
   M /branches/4.0/src/const_pi.c
   M /branches/4.0/src/constant.c
   M /branches/4.0/src/copysign.c
   M /branches/4.0/src/cos.c
   M /branches/4.0/src/cosh.c
   M /branches/4.0/src/cot.c
   M /branches/4.0/src/coth.c
   M /branches/4.0/src/csc.c
   M /branches/4.0/src/csch.c
   M /branches/4.0/src/d_div.c
   M /branches/4.0/src/d_sub.c
   M /branches/4.0/src/digamma.c
   M /branches/4.0/src/dim.c
   M /branches/4.0/src/div.c
   M /branches/4.0/src/div_2exp.c
   M /branches/4.0/src/div_2si.c
   M /branches/4.0/src/div_2ui.c
   M /branches/4.0/src/div_d.c
   M /branches/4.0/src/div_ui.c
   M /branches/4.0/src/dump.c
   M /branches/4.0/src/eint.c
   M /branches/4.0/src/eq.c
   M /branches/4.0/src/erandom.c
   M /branches/4.0/src/erf.c
   M /branches/4.0/src/erfc.c
   M /branches/4.0/src/exceptions.c
   M /branches/4.0/src/exp.c
   M /branches/4.0/src/exp10.c
   M /branches/4.0/src/exp2.c
   M /branches/4.0/src/exp3.c
   M /branches/4.0/src/exp_2.c
   M /branches/4.0/src/expm1.c
   M /branches/4.0/src/extract.c
   M /branches/4.0/src/factorial.c
   M /branches/4.0/src/fits_intmax.c
   M /branches/4.0/src/fits_s.h
   M /branches/4.0/src/fits_sint.c
   M /branches/4.0/src/fits_slong.c
   M /branches/4.0/src/fits_sshort.c
   M /branches/4.0/src/fits_u.h
   M /branches/4.0/src/fits_uint.c
   M /branches/4.0/src/fits_uintmax.c
   M /branches/4.0/src/fits_ulong.c
   M /branches/4.0/src/fits_ushort.c
   M /branches/4.0/src/fma.c
   M /branches/4.0/src/fmma.c
   M /branches/4.0/src/fms.c
   M /branches/4.0/src/fpif.c
   M /branches/4.0/src/frac.c
   M /branches/4.0/src/free_cache.c
   M /branches/4.0/src/frexp.c
   M /branches/4.0/src/gamma.c
   M /branches/4.0/src/gamma_inc.c
   M /branches/4.0/src/gammaonethird.c
   M /branches/4.0/src/gen_inverse.h
   M /branches/4.0/src/generic/coverage/mparam.h
   M /branches/4.0/src/generic/mparam.h
   M /branches/4.0/src/get_d.c
   M /branches/4.0/src/get_d64.c
   M /branches/4.0/src/get_exp.c
   M /branches/4.0/src/get_f.c
   M /branches/4.0/src/get_float128.c
   M /branches/4.0/src/get_flt.c
   M /branches/4.0/src/get_ld.c
   M /branches/4.0/src/get_q.c
   M /branches/4.0/src/get_si.c
   M /branches/4.0/src/get_sj.c
   M /branches/4.0/src/get_str.c
   M /branches/4.0/src/get_ui.c
   M /branches/4.0/src/get_uj.c
   M /branches/4.0/src/get_z.c
   M /branches/4.0/src/get_z_exp.c
   M /branches/4.0/src/gmp_op.c
   M /branches/4.0/src/grandom.c
   M /branches/4.0/src/hppa/mparam.h
   M /branches/4.0/src/hypot.c
   M /branches/4.0/src/ia64/mparam.h
   M /branches/4.0/src/ieee_floats.h
   M /branches/4.0/src/init.c
   M /branches/4.0/src/init2.c
   M /branches/4.0/src/inits.c
   M /branches/4.0/src/inits2.c
   M /branches/4.0/src/inp_str.c
   M /branches/4.0/src/int_ceil_log2.c
   M /branches/4.0/src/invert_limb.h
   M /branches/4.0/src/invsqrt_limb.h
   M /branches/4.0/src/isinf.c
   M /branches/4.0/src/isinteger.c
   M /branches/4.0/src/isnan.c
   M /branches/4.0/src/isnum.c
   M /branches/4.0/src/isqrt.c
   M /branches/4.0/src/isregular.c
   M /branches/4.0/src/iszero.c
   M /branches/4.0/src/jn.c
   M /branches/4.0/src/jyn_asympt.c
   M /branches/4.0/src/li2.c
   M /branches/4.0/src/lngamma.c
   M /branches/4.0/src/log.c
   M /branches/4.0/src/log10.c
   M /branches/4.0/src/log1p.c
   M /branches/4.0/src/log2.c
   M /branches/4.0/src/log_ui.c
   M /branches/4.0/src/logging.c
   M /branches/4.0/src/min_prec.c
   M /branches/4.0/src/minmax.c
   M /branches/4.0/src/mips/mparam.h
   M /branches/4.0/src/modf.c
   M /branches/4.0/src/mp_clz_tab.c
   M /branches/4.0/src/mparam_h.in
   M /branches/4.0/src/mpf2mpfr.h
   M /branches/4.0/src/mpfr-cvers.h
   M /branches/4.0/src/mpfr-gmp.c
   M /branches/4.0/src/mpfr-gmp.h
   M /branches/4.0/src/mpfr-impl.h
   M /branches/4.0/src/mpfr-intmax.h
   M /branches/4.0/src/mpfr-longlong.h
   M /branches/4.0/src/mpfr-mini-gmp.c
   M /branches/4.0/src/mpfr-mini-gmp.h
   M /branches/4.0/src/mpfr-sassert.h
   M /branches/4.0/src/mpfr-thread.h
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/mpn_exp.c
   M /branches/4.0/src/mul.c
   M /branches/4.0/src/mul_2exp.c
   M /branches/4.0/src/mul_2si.c
   M /branches/4.0/src/mul_2ui.c
   M /branches/4.0/src/mul_d.c
   M /branches/4.0/src/mul_ui.c
   M /branches/4.0/src/mulders.c
   M /branches/4.0/src/neg.c
   M /branches/4.0/src/next.c
   M /branches/4.0/src/nrandom.c
   M /branches/4.0/src/odd_p.c
   M /branches/4.0/src/out_str.c
   M /branches/4.0/src/pool.c
   M /branches/4.0/src/pow.c
   M /branches/4.0/src/pow_si.c
   M /branches/4.0/src/pow_ui.c
   M /branches/4.0/src/pow_z.c
   M /branches/4.0/src/powerof2.c
   M /branches/4.0/src/powerpc32/mparam.h
   M /branches/4.0/src/powerpc64/mparam.h
   M /branches/4.0/src/print_raw.c
   M /branches/4.0/src/print_rnd_mode.c
   M /branches/4.0/src/printf.c
   M /branches/4.0/src/random_deviate.c
   M /branches/4.0/src/random_deviate.h
   M /branches/4.0/src/rec_sqrt.c
   M /branches/4.0/src/reldiff.c
   M /branches/4.0/src/rem1.c
   M /branches/4.0/src/rint.c
   M /branches/4.0/src/rndna.c
   M /branches/4.0/src/root.c
   M /branches/4.0/src/round_near_x.c
   M /branches/4.0/src/round_p.c
   M /branches/4.0/src/round_prec.c
   M /branches/4.0/src/round_raw_generic.c
   M /branches/4.0/src/scale2.c
   M /branches/4.0/src/sec.c
   M /branches/4.0/src/sech.c
   M /branches/4.0/src/set.c
   M /branches/4.0/src/set_d.c
   M /branches/4.0/src/set_d64.c
   M /branches/4.0/src/set_dfl_prec.c
   M /branches/4.0/src/set_exp.c
   M /branches/4.0/src/set_f.c
   M /branches/4.0/src/set_float128.c
   M /branches/4.0/src/set_flt.c
   M /branches/4.0/src/set_inf.c
   M /branches/4.0/src/set_ld.c
   M /branches/4.0/src/set_nan.c
   M /branches/4.0/src/set_prc_raw.c
   M /branches/4.0/src/set_prec.c
   M /branches/4.0/src/set_q.c
   M /branches/4.0/src/set_rnd.c
   M /branches/4.0/src/set_si.c
   M /branches/4.0/src/set_si_2exp.c
   M /branches/4.0/src/set_sj.c
   M /branches/4.0/src/set_str.c
   M /branches/4.0/src/set_str_raw.c
   M /branches/4.0/src/set_ui.c
   M /branches/4.0/src/set_ui_2exp.c
   M /branches/4.0/src/set_uj.c
   M /branches/4.0/src/set_z.c
   M /branches/4.0/src/set_z_exp.c
   M /branches/4.0/src/set_zero.c
   M /branches/4.0/src/setmax.c
   M /branches/4.0/src/setmin.c
   M /branches/4.0/src/setsign.c
   M /branches/4.0/src/sgn.c
   M /branches/4.0/src/si_op.c
   M /branches/4.0/src/signbit.c
   M /branches/4.0/src/sin.c
   M /branches/4.0/src/sin_cos.c
   M /branches/4.0/src/sinh.c
   M /branches/4.0/src/sinh_cosh.c
   M /branches/4.0/src/sparc64/mparam.h
   M /branches/4.0/src/sqr.c
   M /branches/4.0/src/sqrt.c
   M /branches/4.0/src/sqrt_ui.c
   M /branches/4.0/src/stack_interface.c
   M /branches/4.0/src/strtofr.c
   M /branches/4.0/src/sub.c
   M /branches/4.0/src/sub1.c
   M /branches/4.0/src/sub1sp.c
   M /branches/4.0/src/sub_d.c
   M /branches/4.0/src/sub_ui.c
   M /branches/4.0/src/subnormal.c
   M /branches/4.0/src/sum.c
   M /branches/4.0/src/swap.c
   M /branches/4.0/src/tan.c
   M /branches/4.0/src/tanh.c
   M /branches/4.0/src/ubf.c
   M /branches/4.0/src/uceil_exp2.c
   M /branches/4.0/src/uceil_log2.c
   M /branches/4.0/src/ufloor_log2.c
   M /branches/4.0/src/ui_div.c
   M /branches/4.0/src/ui_pow.c
   M /branches/4.0/src/ui_pow_ui.c
   M /branches/4.0/src/ui_sub.c
   M /branches/4.0/src/urandom.c
   M /branches/4.0/src/urandomb.c
   M /branches/4.0/src/vasprintf.c
   M /branches/4.0/src/version.c
   M /branches/4.0/src/volatile.c
   M /branches/4.0/src/x86/core2/mparam.h
   M /branches/4.0/src/x86/mparam.h
   M /branches/4.0/src/x86_64/core2/mparam.h
   M /branches/4.0/src/x86_64/corei5/mparam.h
   M /branches/4.0/src/x86_64/pentium4/mparam.h
   M /branches/4.0/src/yn.c
   M /branches/4.0/src/zeta.c
   M /branches/4.0/src/zeta_ui.c
   M /branches/4.0/tests/Makefile.am
   M /branches/4.0/tests/cmp_str.c
   M /branches/4.0/tests/data/digamma
   M /branches/4.0/tests/data/li2
   M /branches/4.0/tests/memory.c
   M /branches/4.0/tests/mpf_compat.c
   M /branches/4.0/tests/mpf_compat.h
   M /branches/4.0/tests/mpfr-test.h
   M /branches/4.0/tests/mpfr_compat.c
   M /branches/4.0/tests/random2.c
   M /branches/4.0/tests/reuse.c
   M /branches/4.0/tests/rnd_mode.c
   M /branches/4.0/tests/tabort_defalloc1.c
   M /branches/4.0/tests/tabort_defalloc2.c
   M /branches/4.0/tests/tabort_prec_max.c
   M /branches/4.0/tests/tabs.c
   M /branches/4.0/tests/tacos.c
   M /branches/4.0/tests/tacosh.c
   M /branches/4.0/tests/tadd.c
   M /branches/4.0/tests/tadd1sp.c
   M /branches/4.0/tests/tadd_d.c
   M /branches/4.0/tests/tadd_ui.c
   M /branches/4.0/tests/tagm.c
   M /branches/4.0/tests/tai.c
   M /branches/4.0/tests/talloc-cache.c
   M /branches/4.0/tests/talloc.c
   M /branches/4.0/tests/tasin.c
   M /branches/4.0/tests/tasinh.c
   M /branches/4.0/tests/tassert.c
   M /branches/4.0/tests/tatan.c
   M /branches/4.0/tests/tatanh.c
   M /branches/4.0/tests/taway.c
   M /branches/4.0/tests/tbeta.c
   M /branches/4.0/tests/tbuildopt.c
   M /branches/4.0/tests/tcan_round.c
   M /branches/4.0/tests/tcbrt.c
   M /branches/4.0/tests/tcheck.c
   M /branches/4.0/tests/tcmp.c
   M /branches/4.0/tests/tcmp2.c
   M /branches/4.0/tests/tcmp_d.c
   M /branches/4.0/tests/tcmp_ld.c
   M /branches/4.0/tests/tcmp_ui.c
   M /branches/4.0/tests/tcmpabs.c
   M /branches/4.0/tests/tcomparisons.c
   M /branches/4.0/tests/tconst_catalan.c
   M /branches/4.0/tests/tconst_euler.c
   M /branches/4.0/tests/tconst_log2.c
   M /branches/4.0/tests/tconst_pi.c
   M /branches/4.0/tests/tcopysign.c
   M /branches/4.0/tests/tcos.c
   M /branches/4.0/tests/tcosh.c
   M /branches/4.0/tests/tcot.c
   M /branches/4.0/tests/tcoth.c
   M /branches/4.0/tests/tcsc.c
   M /branches/4.0/tests/tcsch.c
   M /branches/4.0/tests/td_div.c
   M /branches/4.0/tests/td_sub.c
   M /branches/4.0/tests/tdigamma.c
   M /branches/4.0/tests/tdim.c
   M /branches/4.0/tests/tdiv.c
   M /branches/4.0/tests/tdiv_d.c
   M /branches/4.0/tests/tdiv_ui.c
   M /branches/4.0/tests/teint.c
   M /branches/4.0/tests/teq.c
   M /branches/4.0/tests/terandom.c
   M /branches/4.0/tests/terandom_chisq.c
   M /branches/4.0/tests/terf.c
   M /branches/4.0/tests/tests.c
   M /branches/4.0/tests/texceptions.c
   M /branches/4.0/tests/texp.c
   M /branches/4.0/tests/texp10.c
   M /branches/4.0/tests/texp2.c
   M /branches/4.0/tests/texpm1.c
   M /branches/4.0/tests/tfactorial.c
   M /branches/4.0/tests/tfits.c
   M /branches/4.0/tests/tfma.c
   M /branches/4.0/tests/tfmma.c
   M /branches/4.0/tests/tfmod.c
   M /branches/4.0/tests/tfms.c
   M /branches/4.0/tests/tfpif.c
   M /branches/4.0/tests/tfprintf.c
   M /branches/4.0/tests/tfrac.c
   M /branches/4.0/tests/tfrexp.c
   M /branches/4.0/tests/tgamma.c
   M /branches/4.0/tests/tgamma_inc.c
   M /branches/4.0/tests/tgeneric.c
   M /branches/4.0/tests/tgeneric_ui.c
   M /branches/4.0/tests/tget_d.c
   M /branches/4.0/tests/tget_d_2exp.c
   M /branches/4.0/tests/tget_f.c
   M /branches/4.0/tests/tget_flt.c
   M /branches/4.0/tests/tget_ld_2exp.c
   M /branches/4.0/tests/tget_q.c
   M /branches/4.0/tests/tget_set_d64.c
   M /branches/4.0/tests/tget_sj.c
   M /branches/4.0/tests/tget_str.c
   M /branches/4.0/tests/tget_z.c
   M /branches/4.0/tests/tgmpop.c
   M /branches/4.0/tests/tgrandom.c
   M /branches/4.0/tests/thyperbolic.c
   M /branches/4.0/tests/thypot.c
   M /branches/4.0/tests/tinits.c
   M /branches/4.0/tests/tinp_str.c
   M /branches/4.0/tests/tinternals.c
   M /branches/4.0/tests/tisnan.c
   M /branches/4.0/tests/tisqrt.c
   M /branches/4.0/tests/tj0.c
   M /branches/4.0/tests/tj1.c
   M /branches/4.0/tests/tjn.c
   M /branches/4.0/tests/tl2b.c
   M /branches/4.0/tests/tlgamma.c
   M /branches/4.0/tests/tli2.c
   M /branches/4.0/tests/tlngamma.c
   M /branches/4.0/tests/tlog.c
   M /branches/4.0/tests/tlog10.c
   M /branches/4.0/tests/tlog1p.c
   M /branches/4.0/tests/tlog2.c
   M /branches/4.0/tests/tlog_ui.c
   M /branches/4.0/tests/tmin_prec.c
   M /branches/4.0/tests/tminmax.c
   M /branches/4.0/tests/tmodf.c
   M /branches/4.0/tests/tmul.c
   M /branches/4.0/tests/tmul_2exp.c
   M /branches/4.0/tests/tmul_d.c
   M /branches/4.0/tests/tmul_ui.c
   M /branches/4.0/tests/tnext.c
   M /branches/4.0/tests/tnrandom.c
   M /branches/4.0/tests/tnrandom_chisq.c
   M /branches/4.0/tests/tout_str.c
   M /branches/4.0/tests/toutimpl.c
   M /branches/4.0/tests/tpow.c
   M /branches/4.0/tests/tpow3.c
   M /branches/4.0/tests/tpow_all.c
   M /branches/4.0/tests/tpow_z.c
   M /branches/4.0/tests/tprintf.c
   M /branches/4.0/tests/trandom.c
   M /branches/4.0/tests/trandom_deviate.c
   M /branches/4.0/tests/trec_sqrt.c
   M /branches/4.0/tests/tremquo.c
   M /branches/4.0/tests/trint.c
   M /branches/4.0/tests/trndna.c
   M /branches/4.0/tests/troot.c
   M /branches/4.0/tests/trootn_ui.c
   M /branches/4.0/tests/tround_prec.c
   M /branches/4.0/tests/tsec.c
   M /branches/4.0/tests/tsech.c
   M /branches/4.0/tests/tset.c
   M /branches/4.0/tests/tset_d.c
   M /branches/4.0/tests/tset_exp.c
   M /branches/4.0/tests/tset_f.c
   M /branches/4.0/tests/tset_float128.c
   M /branches/4.0/tests/tset_ld.c
   M /branches/4.0/tests/tset_q.c
   M /branches/4.0/tests/tset_si.c
   M /branches/4.0/tests/tset_sj.c
   M /branches/4.0/tests/tset_str.c
   M /branches/4.0/tests/tset_z.c
   M /branches/4.0/tests/tset_z_exp.c
   M /branches/4.0/tests/tsgn.c
   M /branches/4.0/tests/tsi_op.c
   M /branches/4.0/tests/tsin.c
   M /branches/4.0/tests/tsin_cos.c
   M /branches/4.0/tests/tsinh.c
   M /branches/4.0/tests/tsinh_cosh.c
   M /branches/4.0/tests/tsprintf.c
   M /branches/4.0/tests/tsqr.c
   M /branches/4.0/tests/tsqrt.c
   M /branches/4.0/tests/tsqrt_ui.c
   M /branches/4.0/tests/tstckintc.c
   M /branches/4.0/tests/tstdint.c
   M /branches/4.0/tests/tstrtofr.c
   M /branches/4.0/tests/tsub.c
   M /branches/4.0/tests/tsub1sp.c
   M /branches/4.0/tests/tsub_d.c
   M /branches/4.0/tests/tsub_ui.c
   M /branches/4.0/tests/tsubnormal.c
   M /branches/4.0/tests/tsum.c
   M /branches/4.0/tests/tswap.c
   M /branches/4.0/tests/ttan.c
   M /branches/4.0/tests/ttanh.c
   M /branches/4.0/tests/ttrunc.c
   M /branches/4.0/tests/tui_div.c
   M /branches/4.0/tests/tui_pow.c
   M /branches/4.0/tests/tui_sub.c
   M /branches/4.0/tests/turandom.c
   M /branches/4.0/tests/tvalist.c
   M /branches/4.0/tests/tversion.c
   M /branches/4.0/tests/ty0.c
   M /branches/4.0/tests/ty1.c
   M /branches/4.0/tests/tyn.c
   M /branches/4.0/tests/tzeta.c
   M /branches/4.0/tests/tzeta_ui.c
   M /branches/4.0/tools/bench/Makefile.am
   M /branches/4.0/tools/bench/benchtime.h
   M /branches/4.0/tools/bench/mpfrbench.c
   M /branches/4.0/tools/ck-clz_tab
   M /branches/4.0/tools/ck-copyright-notice
   M /branches/4.0/tools/ck-news
   M /branches/4.0/tools/ck-version-info
   M /branches/4.0/tools/get_patches.sh
   M /branches/4.0/tune/Makefile.am
   M /branches/4.0/tune/bidimensional_sample.c
   M /branches/4.0/tune/speed.c
   M /branches/4.0/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.
------------------------------------------------------------------------
r13357 | vlefevre | 2018-12-31 11:11:10 +0000 (Mon, 31 Dec 2018) | 8 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/set.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tfmma.c
   M /branches/4.0/tests/tset.c

[src/set.c] Fixed double-rounding bug in the internal function
  mpfr_set_1_2 (and simplified the generic algorithm, avoiding
  the non-portable inex | inex2).
[tests/tset.c] Added corresponding tests.
[tests/tfmma.c] Added tests as this bug was affecting mpfr_fmma
  (note: mpfr_set_1_2 is also called in mpfr_fma, but the buggy
  code could not be executed in this case).
(merged changesets r13346-13347,13353-13356 from the trunk)
------------------------------------------------------------------------
r13330 | vlefevre | 2018-12-10 09:24:24 +0000 (Mon, 10 Dec 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tdiv.c

[tests/tdiv.c] fixed test_20151023 (random number must not be 0).
(merged changeset r13329 from the trunk)
------------------------------------------------------------------------
r13310 | vlefevre | 2018-11-29 07:48:54 +0000 (Thu, 29 Nov 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/Makefile.am
   M /branches/4.0/tests/tversion.c

[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).
[tests/tversion.c] Updated a comment about this issue.
(merged changesets r13305,13307-13309 from the trunk)
------------------------------------------------------------------------
r13301 | vlefevre | 2018-11-27 13:17:11 +0000 (Tue, 27 Nov 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tdiv.c

[tests/tdiv.c] Fixed test_20151023().
(merged changesets r13149,13151,13298 from the trunk)
------------------------------------------------------------------------
r13297 | vlefevre | 2018-11-26 13:24:37 +0000 (Mon, 26 Nov 2018) | 2 lines
Changed paths:
   M /branches/4.0/tests
   M /branches/4.0/tests/tset_str.c

[tests/tset_str.c] Added bug20180908() test.
(merged changesets r13164,13296 from the trunk, for the tests directory)
------------------------------------------------------------------------
r13294 | vlefevre | 2018-11-23 10:34:21 +0000 (Fri, 23 Nov 2018) | 1 line
Changed paths:
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Updated the month.
------------------------------------------------------------------------
r13284 | vlefevre | 2018-11-22 15:36:13 +0000 (Thu, 22 Nov 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/NEWS
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/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.)
(merged changeset r13283 from the trunk, with a correction in NEWS)
------------------------------------------------------------------------
r13277 | vlefevre | 2018-11-20 08:17:39 +0000 (Tue, 20 Nov 2018) | 1 line
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/amd/amdfam10/mparam.h
   M /branches/4.0/src/amd/k8/mparam.h
   M /branches/4.0/src/arm/mparam.h
   M /branches/4.0/src/generic/coverage/mparam.h
   M /branches/4.0/src/hppa/mparam.h
   M /branches/4.0/src/ia64/mparam.h
   M /branches/4.0/src/mips/mparam.h
   M /branches/4.0/src/powerpc64/mparam.h
   M /branches/4.0/src/sparc64/mparam.h
   M /branches/4.0/src/x86/core2/mparam.h
   M /branches/4.0/src/x86/mparam.h
   M /branches/4.0/src/x86_64/core2/mparam.h
   M /branches/4.0/src/x86_64/corei5/mparam.h

Removed trailing whitespace.
------------------------------------------------------------------------
r13252 | vlefevre | 2018-10-18 17:57:10 +0000 (Thu, 18 Oct 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/mpfr-longlong.h

[src/mpfr-longlong.h] Fix obsolete ARC asm constraints; see patch posted
on <https://sympa.inria.fr/sympa/arc/mpfr/2018-10/msg00010.html>.
(merged changeset r13251 from the trunk)
------------------------------------------------------------------------
r13245 | vlefevre | 2018-10-08 12:50:55 +0000 (Mon, 08 Oct 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/codespell.ignore

[codespell.ignore] Also ignore "ue" (codespell 1.14).
(merged changeset r13244 from the trunk)
------------------------------------------------------------------------
r13187 | vlefevre | 2018-09-13 13:06:47 +0000 (Thu, 13 Sep 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tdiv_ui.c

[tests/tdiv_ui.c] fixed corner_cases() test
(merged changeset r13162 from the trunk)
------------------------------------------------------------------------
r13010 | vlefevre | 2018-08-22 13:52:40 +0000 (Wed, 22 Aug 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tversion.c

[tests/tversion.c] Portability corrections related to the use of the
preprocessor / code robustness.
(merged changeset r13003 from the trunk)
------------------------------------------------------------------------
r12999 | vlefevre | 2018-08-21 13:18:23 +0000 (Tue, 21 Aug 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tsub1sp.c

[tests/tsub1sp.c] Added a test by merging r12997 from the trunk, and
modified the comment to say that the bug is only in the trunk.
------------------------------------------------------------------------
r12994 | vlefevre | 2018-08-20 07:44:49 +0000 (Mon, 20 Aug 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/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.
(merged changeset r12988 from the trunk)
------------------------------------------------------------------------
r12993 | vlefevre | 2018-08-20 07:40:42 +0000 (Mon, 20 Aug 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/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
(merged changeset r12983 from the trunk)
------------------------------------------------------------------------
r12992 | vlefevre | 2018-08-20 06:47:44 +0000 (Mon, 20 Aug 2018) | 22 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/mpfr-longlong.h
   M /branches/4.0/tools/mpfrlint

[tools/mpfrlint] Check that __GMP_DECLSPEC is not used by MPFR.
[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

(merged changesets r12975-12977 from the trunk)
------------------------------------------------------------------------
r12969 | vlefevre | 2018-07-31 09:01:08 +0000 (Tue, 31 Jul 2018) | 3 lines
Changed paths:
   M /branches/4.0/tests/tversion.c

[tests/tversion.c] Updated comment about missing output from the
first printf with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO
and run under Wine (issue not reproducible).
------------------------------------------------------------------------
r12968 | vlefevre | 2018-07-30 16:31:52 +0000 (Mon, 30 Jul 2018) | 2 lines
Changed paths:
   M /branches/4.0/tests/tversion.c

[tests/tversion.c] Try to detect missing output from the first printf
with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO and run under Wine.
------------------------------------------------------------------------
r12967 | vlefevre | 2018-07-30 13:43:03 +0000 (Mon, 30 Jul 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/acinclude.m4
   M /branches/4.0/configure.ac
   M /branches/4.0/src/vasprintf.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tsprintf.c

[acinclude.m4,configure.ac] Check the support of the group flag for
  native integers, which is a Single UNIX Specification extension.
[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t).
[tests/tsprintf.c] Added testcases.
(merged changesets r12958-12959,12961-12964 from the trunk)
------------------------------------------------------------------------
r12966 | vlefevre | 2018-07-30 13:34:14 +0000 (Mon, 30 Jul 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/vasprintf.c

[src/vasprintf.c] Bug fix: in case of some errors (via "goto error;"),
va_end wasn't called, yielding undefined behavior.
(reverse-merged r12965; merged changesets r12955,12957 from the trunk)
------------------------------------------------------------------------
r12965 | vlefevre | 2018-07-30 09:32:15 +0000 (Mon, 30 Jul 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/vasprintf.c

[src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer
in case of error.
(merged part of changeset r12957 from the trunk)
------------------------------------------------------------------------
r12950 | vlefevre | 2018-07-23 08:17:05 +0000 (Mon, 23 Jul 2018) | 8 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/erf.c
   M /branches/4.0/tests
   M /branches/4.0/tests/terf.c

[src/erf.c] In the computation of an error bound, replaced some
  double's (which could overflow) by mpfr_t to fix bug reported
  by Naoki Shibata:
  https://sympa.inria.fr/sympa/arc/mpfr/2018-07/msg00028.html
[tests/terf.c] Added a testcase for this bug. Increased the number
  of generic tests in order to reproduce the bug there too with the
  default seed.
(merged changesets r12946-12949 from the trunk)
------------------------------------------------------------------------
r12938 | vlefevre | 2018-07-19 00:01:28 +0000 (Thu, 19 Jul 2018) | 11 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/acinclude.m4
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/README.dev
   M /branches/4.0/src/buildopt.c
   M /branches/4.0/src/free_cache.c
   M /branches/4.0/src/mpfr-impl.h
   M /branches/4.0/src/mpfr-thread.h
   M /branches/4.0/tests
   M /branches/4.0/tests/tconst_pi.c
   M /branches/4.0/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.
(merged changeset r12937 from the trunk)
------------------------------------------------------------------------
r12936 | vlefevre | 2018-07-18 23:17:03 +0000 (Wed, 18 Jul 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/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).
(merged changeset r12935 from the trunk)
------------------------------------------------------------------------
r12923 | vlefevre | 2018-07-13 10:31:07 +0000 (Fri, 13 Jul 2018) | 4 lines
Changed paths:
   M /branches/4.0/acinclude.m4

[acinclude.m4] Fixed the __float128 detection for NetBSD: Optimization
made the "undefined reference" error disappear, so that __float128 was
misdetected as being supported. Also updated the message.
Note: this change is similar to the r12921-12922 ones in the trunk.
------------------------------------------------------------------------
r12918 | vlefevre | 2018-07-12 15:05:07 +0000 (Thu, 12 Jul 2018) | 1 line
Changed paths:
   M /branches/4.0/NEWS

[NEWS] Update for GNU MPFR 4.0.2.
------------------------------------------------------------------------
r12917 | vlefevre | 2018-07-12 15:04:17 +0000 (Thu, 12 Jul 2018) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] In Section "Nomenclature and Types":
  * rewrote the paragraph defining "floating-point number",
    avoiding ambiguities;
  * removed all the @noindent, whose purpose is unclear;
  * defined regular numbers and exponents.
(merged changesets r12906-12908 from the trunk)
------------------------------------------------------------------------
r12916 | vlefevre | 2018-07-12 14:32:51 +0000 (Thu, 12 Jul 2018) | 7 lines
Changed paths:
   M /branches/4.0/acinclude.m4

[acinclude.m4] For the __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
Note: this change is similar to the r12915 one in the trunk, except
that we do not try to detect _Float128 in the 4.0 branch.
------------------------------------------------------------------------
r12914 | vlefevre | 2018-07-12 12:32:16 +0000 (Thu, 12 Jul 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/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).
(merged changeset r12913 from the trunk)
------------------------------------------------------------------------
r12909 | vlefevre | 2018-07-10 11:51:56 +0000 (Tue, 10 Jul 2018) | 22 lines
Changed paths:
   M /branches/4.0/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.

Note: This corresponds to r12869 from the trunk. Other changes in the
trunk (dead code removal...) have not been applied.
------------------------------------------------------------------------
r12904 | vlefevre | 2018-07-06 14:36:05 +0000 (Fri, 06 Jul 2018) | 2 lines
Changed paths:
   M /branches/4.0/tests/tprintf.c
   M /branches/4.0/tests/tsprintf.c

[tests/{tprintf.c,tsprintf.c}] Merged the latest tests from the trunk
(r12562:12903).
------------------------------------------------------------------------
r12897 | vlefevre | 2018-07-06 13:27:41 +0000 (Fri, 06 Jul 2018) | 1 line
Changed paths:
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Updated the month.
------------------------------------------------------------------------
r12890 | vlefevre | 2018-07-06 07:21:18 +0000 (Fri, 06 Jul 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/AUTHORS
   M /branches/4.0/doc/mpfr.texi

[AUTHORS,doc/mpfr.texi] Typo in Fredrik's name.
(merged changesets r12888-12889 from the trunk)
------------------------------------------------------------------------
r12872 | vlefevre | 2018-07-04 12:04:26 +0000 (Wed, 04 Jul 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/README.dev
   M /branches/4.0/tests
   M /branches/4.0/tests/tprintf.c
   M /branches/4.0/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.
(merged changeset r12870 from the trunk; merging tests/tprintf.c r12861
was needed first)
------------------------------------------------------------------------
r12793 | vlefevre | 2018-06-20 12:17:11 +0000 (Wed, 20 Jun 2018) | 2 lines
Changed paths:
   M /branches/4.0/tests/tget_set_d64.c

[tests/tget_set_d64.c] Tests on powers of 10: test negative numbers too.
(merged part of changeset r12792 from the trunk)
------------------------------------------------------------------------
r12786 | vlefevre | 2018-06-19 13:10:42 +0000 (Tue, 19 Jun 2018) | 5 lines
Changed paths:
   M /branches/4.0/src/set_d64.c
   M /branches/4.0/tests/tget_set_d64.c

[src/set_d64.c] Fixed ternary value, which was always 0. This is done by
  using mpfr_strtofr instead of mpfr_set_str (merged part of changeset
  r12783 from the trunk).
[tests/tget_set_d64.c] Added tests on powers of 10, checking the ternary
  value in particular (merged part of changeset r12782 from the trunk).
------------------------------------------------------------------------
r12785 | vlefevre | 2018-06-19 12:55:53 +0000 (Tue, 19 Jun 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/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).
(merged changeset r12698 from the trunk)
------------------------------------------------------------------------
r12760 | vlefevre | 2018-06-06 11:05:33 +0000 (Wed, 06 Jun 2018) | 6 lines
Changed paths:
   M /branches/4.0
   A /branches/4.0/codespell.exclude (from /trunk/codespell.exclude:12754)
   M /branches/4.0/codespell.ignore
   M /branches/4.0/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.
(merged changesets r12486,12497,12753-12754 from the trunk)
------------------------------------------------------------------------
r12750 | vlefevre | 2018-06-02 22:22:50 +0000 (Sat, 02 Jun 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/invert_limb.h

[src/invert_limb.h] fixed two typos reported by Marco Bodrato.
Note that with the current MPFR code, these typos did not have
any consequence.
(merged changeset r12749 from the trunk)
------------------------------------------------------------------------
r12743 | vlefevre | 2018-05-31 14:47:16 +0000 (Thu, 31 May 2018) | 1 line
Changed paths:
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Updated the month.
------------------------------------------------------------------------
r12741 | vlefevre | 2018-05-31 14:41:37 +0000 (Thu, 31 May 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/AUTHORS
   M /branches/4.0/INSTALL
   M /branches/4.0/doc/algorithms.tex
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/examples/sample.c
   M /branches/4.0/mpfr.pc.in
   M /branches/4.0/tests
   M /branches/4.0/tests/tests.c
   M /branches/4.0/tools/cfarm.sh
   M /branches/4.0/tools/update-version

Updated mpfr.org URL's to use https (except in ChangeLog and NEWS).
(marked changeset r12740 as merged from the trunk)
------------------------------------------------------------------------
r12736 | vlefevre | 2018-05-30 17:45:00 +0000 (Wed, 30 May 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tools/announce-text

[tools/announce-text] http → https (for mpfr.org).
(merged changeset r12734 from the trunk)
------------------------------------------------------------------------
r12735 | vlefevre | 2018-05-30 17:44:10 +0000 (Wed, 30 May 2018) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/FAQ.html
   M /branches/4.0/doc/faq.xsl
   M /branches/4.0/doc/update-faq

[doc] Changes due to the https support by mpfr.org.
  * faq.xsl: for the visual.css, use a local URL since libxml2 does not
    support https.
  * update-faq: download visual.css from mpfr.org first.
  * FAQ.html: update with update-faq.
(merged changesets r12731-12733 from the trunk)
------------------------------------------------------------------------
r12680 | vlefevre | 2018-04-26 15:33:52 +0000 (Thu, 26 Apr 2018) | 8 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/inp_str.c
   M /branches/4.0/src/out_str.c

[src/{inp_str.c,out_str.c}] For mpfr_inp_str and mpfr_out_str, when
the stream was a null pointer, it was replaced by stdin and stdout,
respectively. No longer do that, since:
  * This behavior was useless, not documented, and not consistent
    with other I/O functions.
  * Just in case a null pointer for the stream has a special meaning
    with some C implementation, MPFR was not behaving as documented.
(merged changesets r12520-12521 from the trunk)
------------------------------------------------------------------------
r12679 | vlefevre | 2018-04-26 15:17:30 +0000 (Thu, 26 Apr 2018) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/gmp_op.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tgmpop.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.
[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.
(merged changesets r12343,12677 from the trunk)
------------------------------------------------------------------------
r12675 | vlefevre | 2018-04-26 13:13:57 +0000 (Thu, 26 Apr 2018) | 1 line
Changed paths:
   M /branches/4.0/tests
   M /branches/4.0/tests/tcan_round.c
   M /branches/4.0/tests/tconst_pi.c
   M /branches/4.0/tests/tfpif.c
   M /branches/4.0/tests/tgrandom.c
   M /branches/4.0/tests/tpow.c
   M /branches/4.0/tests/ttan.c

Merged recent tests from the trunk (r12500-12555,12558,12561).
------------------------------------------------------------------------
r12674 | vlefevre | 2018-04-26 12:59:37 +0000 (Thu, 26 Apr 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/Makefile.am

[tests/Makefile.am] Update of the "check" rule:
  * Output svnversion info when applicable.
  * Do not echo (complex) commands.
  * Do not output a useless "PASS ..." line at the end.
(merged changesets r12535-12536 from the trunk)
------------------------------------------------------------------------
r12664 | vlefevre | 2018-04-25 15:06:34 +0000 (Wed, 25 Apr 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/gmp_op.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tgmpop.c

[src/gmp_op.c] Fixed bug in mpfr_cmp_q when the denominator of the
  mpq_t argument is 0.
[tests/tgmpop.c] Added tests.
(merged changesets r12499,12502 from the trunk)
------------------------------------------------------------------------
r12663 | vlefevre | 2018-04-25 15:00:21 +0000 (Wed, 25 Apr 2018) | 1 line
Changed paths:
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Updated the month.
------------------------------------------------------------------------
r12662 | vlefevre | 2018-04-25 14:45:45 +0000 (Wed, 25 Apr 2018) | 1 line
Changed paths:
   M /branches/4.0/tests
   M /branches/4.0/tests/tdiv_ui.c
   M /branches/4.0/tests/tfma.c
   M /branches/4.0/tests/tget_str.c

Merged recent tests from the trunk (r12435-12453).
------------------------------------------------------------------------
r12642 | vlefevre | 2018-04-19 15:51:55 +0000 (Thu, 19 Apr 2018) | 13 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/get_str.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tget_str.c

Fixed an issue with mpfr_get_str: The number 1 of significant digits
output in the string is now fully supported, i.e.
  * the value 1 can be provided for n (4th argument);
  * if n = 0, then the number of significant digits in the output string
    can now be 1, as already implied by the documentation (but the code
    was increasing it to 2).
Changes:
  * doc/mpfr.texi: updated mpfr_get_str description to accept n = 1.
  * src/get_str.c: fixed the code as explained above (for n = 0,
    removed the increase to 2, and removed an MPFR_ASSERTN).
  * tests/tget_str.c: added tests.
(merged changesets from the trunk: r12430 on tests/tget_str.c only;
r12432,12434,12440)
------------------------------------------------------------------------
r12632 | vlefevre | 2018-04-19 13:33:00 +0000 (Thu, 19 Apr 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tget_flt.c

[tests/tget_flt.c] Correction about the use of mpfr_signbit, in case
the implementation would change.
(merged changeset r12631 from the trunk)
------------------------------------------------------------------------
r12630 | vlefevre | 2018-04-19 13:28:19 +0000 (Thu, 19 Apr 2018) | 1 line
Changed paths:
   M /branches/4.0/tests
   M /branches/4.0/tests/tbuildopt.c
   M /branches/4.0/tests/tfma.c
   M /branches/4.0/tests/tget_flt.c
   M /branches/4.0/tests/tget_q.c
   M /branches/4.0/tests/tget_set_d64.c
   M /branches/4.0/tests/tset_z_exp.c

Merged recent tests from the trunk (r12393-12424).
------------------------------------------------------------------------
r12629 | vlefevre | 2018-04-19 13:17:34 +0000 (Thu, 19 Apr 2018) | 4 lines
Changed paths:
   M /branches/4.0/src/sqr.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tsqr.c

[src/sqr.c] Fixed a bug in mpfr_sqr_1n in a rare case near underflow.
[tests/tsqr.c] Added tests, including non-regression for above bug
(manually patched src/sqr.c since r12398 had other, unrelated changes;
merged changesets r12398-12399 on tests/tsqr.c from the trunk)
------------------------------------------------------------------------
r12624 | vlefevre | 2018-04-19 12:24:18 +0000 (Thu, 19 Apr 2018) | 4 lines
Changed paths:
   M /branches/4.0/src/fma.c
   M /branches/4.0/tests/tfma.c

[src/fma.c] Fixed various bugs related to internal overflows/underflows.
[tests/tfma.c] Added tests.
(merged changesets r12393-12405,12583-12623 on these files from the
trunk)
------------------------------------------------------------------------
r12581 | vlefevre | 2018-04-11 15:17:16 +0000 (Wed, 11 Apr 2018) | 8 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/terf.c
   M /branches/4.0/tests/tpow.c
   M /branches/4.0/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.
(merged changeset r12488 from the trunk)
------------------------------------------------------------------------
r12580 | vlefevre | 2018-04-11 14:03:03 +0000 (Wed, 11 Apr 2018) | 3 lines
Changed paths:
   M /branches/4.0/tests
   M /branches/4.0/tests/tmul.c

[tests] Merged the test from r12348, and replaced MUL_FFT_THRESHOLD
by its default value 8448 (since the definition of MUL_FFT_THRESHOLD
has not been moved in the 4.0 branch).
------------------------------------------------------------------------
r12579 | vlefevre | 2018-04-11 13:54:39 +0000 (Wed, 11 Apr 2018) | 1 line
Changed paths:
   M /branches/4.0/tests
   M /branches/4.0/tests/tagm.c
   M /branches/4.0/tests/tai.c
   M /branches/4.0/tests/tdiv.c
   M /branches/4.0/tests/tgmpop.c
   M /branches/4.0/tests/tmul.c
   M /branches/4.0/tests/tmul_2exp.c
   M /branches/4.0/tests/tsqrt.c
   M /branches/4.0/tests/tsub.c
   M /branches/4.0/tests/tzeta.c

Merged recent tests from the trunk (r12288-12347).
------------------------------------------------------------------------
r12578 | vlefevre | 2018-04-11 13:16:15 +0000 (Wed, 11 Apr 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/mul.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tset_ld.c
   M /branches/4.0/tests/tsub1sp.c

Fixed type errors with -D_MPFR_PREC_FORMAT=2 in CFLAGS and the
--enable-assert=full configure option (signaled by GCC's -Wformat).
(merged changesets r12301-12302 from the trunk)
------------------------------------------------------------------------
r12577 | vlefevre | 2018-04-11 13:06:53 +0000 (Wed, 11 Apr 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests
   M /branches/4.0/tests/tversion.c

[tests/tversion.c] Output the sizes of long and intmax_t, and
"Generic ABI code" info (MPFR_GENERIC_ABI).
(merged changesets r12447,12575 from the trunk)
------------------------------------------------------------------------
r12576 | vlefevre | 2018-04-11 13:02:27 +0000 (Wed, 11 Apr 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/sub1sp.c

[src/sub1sp.c] fixed bug in mpfr_sub1sp1n (corner case when a=c).
This fixes the failures from r12288.
(merged changeset r12285 from the trunk; note that the merge for
the tests directory had already been done via r12288)
------------------------------------------------------------------------
r12480 | vlefevre | 2018-03-14 10:33:01 +0000 (Wed, 14 Mar 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/mpfr-impl.h

[src/mpfr-impl.h] Typo in a comment.
(merged changeset r12421 from the trunk)
------------------------------------------------------------------------
r12475 | vlefevre | 2018-03-09 23:12:04 +0000 (Fri, 09 Mar 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/TODO
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/atan.c
   M /branches/4.0/src/cache.c
   M /branches/4.0/src/fpif.c
   M /branches/4.0/src/get_flt.c
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/sum.c
   M /branches/4.0/tests
   M /branches/4.0/tests/terandom_chisq.c
   M /branches/4.0/tests/tnrandom_chisq.c

Fixed spelling mistakes found by codespell 1.12.0.
(merged changeset r12474 from the trunk)
------------------------------------------------------------------------
r12470 | vlefevre | 2018-03-08 02:42:59 +0000 (Thu, 08 Mar 2018) | 6 lines
Changed paths:
   M /branches/4.0
   A /branches/4.0/codespell.ignore (from /trunk/codespell.ignore:12469)
   M /branches/4.0/doc/README.dev
   M /branches/4.0/src/li2.c
   M /branches/4.0/src/mpfr-gmp.h
   M /branches/4.0/src/mpfr-thread.h
   M /branches/4.0/src/vasprintf.c
   M /branches/4.0/tests
   M /branches/4.0/tests/tgmpop.c
   M /branches/4.0/tests/tset_ld.c
   M /branches/4.0/tools/mpfrlint

Added codespell.ignore file with simple words to ignore with codespell
("cas"; "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.
Fixed spelling mistakes found by codespell 1.11.0.
(merged changesets r12467-12469 from the trunk)
------------------------------------------------------------------------
r12465 | vlefevre | 2018-03-05 14:43:39 +0000 (Mon, 05 Mar 2018) | 1 line
Changed paths:
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Updated the month.
------------------------------------------------------------------------
r12463 | vlefevre | 2018-03-05 10:46:53 +0000 (Mon, 05 Mar 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Typographic corrections for mpfr_subnormalize.
(merged changeset r12462 from the trunk)
------------------------------------------------------------------------
r12431 | vlefevre | 2018-02-23 17:00:13 +0000 (Fri, 23 Feb 2018) | 2 lines
Changed paths:
   M /branches/4.0/src/get_sj.c

[src/get_sj.c] And now that the incorrect assertions have been removed,
the condition sh >= 0 needs to be fixed to sh > 0...
------------------------------------------------------------------------
r12428 | vlefevre | 2018-02-23 16:24:21 +0000 (Fri, 23 Feb 2018) | 2 lines
Changed paths:
   M /branches/4.0/src/get_sj.c

[src/get_sj.c] Removed unnecessary condition sh < GMP_NUMB_BITS, which
is incorrect with some C implementations. It came from r7047.
------------------------------------------------------------------------
r12288 | vlefevre | 2018-02-17 10:50:29 +0000 (Sat, 17 Feb 2018) | 3 lines
Changed paths:
   M /branches/4.0/tests
   M /branches/4.0/tests/tadd1sp.c
   M /branches/4.0/tests/tfmma.c
   M /branches/4.0/tests/tmul_2exp.c
   M /branches/4.0/tests/tsub.c
   M /branches/4.0/tests/tsub1sp.c

Merged the latest tests from the trunk (r12258-12287).
tsub and tsub1sp fail (bug fixed in the trunk) with both 32-bit and
64-bit ABI's, except when MPFR is built with "-DMPFR_GENERIC_ABI".
------------------------------------------------------------------------
r12258 | vlefevre | 2018-02-16 02:29:27 +0000 (Fri, 16 Feb 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tsub.c

[tests/tsub.c] Added bug20180216 test currently failing in the trunk
in r12257.
(merged changesets r12256-12257 from the trunk)
------------------------------------------------------------------------
r12247 | vlefevre | 2018-02-15 14:31:18 +0000 (Thu, 15 Feb 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tsub.c

[tests/tsub.c] Added bug20180215 test currently failing in the trunk
in r12243.
(merged changeset r12246 from the trunk)
------------------------------------------------------------------------
r12224 | vlefevre | 2018-02-13 12:17:25 +0000 (Tue, 13 Feb 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tadd.c

[tests/tadd.c] Added 2 tests that were failing in the trunk in r12220.
(merged changeset r12221 from the trunk)
------------------------------------------------------------------------
r12216 | vlefevre | 2018-02-08 02:11:23 +0000 (Thu, 08 Feb 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tfits.c
   M /branches/4.0/tests/tfprintf.c
   M /branches/4.0/tests/tget_set_d64.c
   M /branches/4.0/tests/tget_sj.c
   M /branches/4.0/tests/tprintf.c
   M /branches/4.0/tests/tset_float128.c
   M /branches/4.0/tests/tset_ld.c
   M /branches/4.0/tests/tset_sj.c
   M /branches/4.0/tests/tsprintf.c
   M /branches/4.0/tests/tversion.c

[tests]
  * tset_float128.c, tset_ld.c: removed obsolete WITH_FPU_CONTROL
    related code.
  * Added/updated comments about the config.h inclusion.
(merged changesets r12214-12215 from the trunk)
------------------------------------------------------------------------
r12213 | vlefevre | 2018-02-07 23:39:15 +0000 (Wed, 07 Feb 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/INSTALL

[INSTALL] Updated GMP URL.
(merged changeset r12212 from the trunk)
------------------------------------------------------------------------
r12211 | vlefevre | 2018-02-07 23:34:18 +0000 (Wed, 07 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/NEWS

[NEWS] Update for GNU MPFR 4.0.2.
------------------------------------------------------------------------
r12209 | vlefevre | 2018-02-07 23:31:36 +0000 (Wed, 07 Feb 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/tools/mpfrlint

[doc/mpfr.texi] Corrected minimal GMP version.
[tools/mpfrlint] Updated test to detect minimal GMP version mismatch.
(merged changeset r12208 from the trunk)
------------------------------------------------------------------------
r12207 | vlefevre | 2018-02-07 23:22:44 +0000 (Wed, 07 Feb 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/INSTALL
   M /branches/4.0/tools/mpfrlint

[INSTALL] Corrected minimal GMP version (thanks to David Edelsohn).
[tools/mpfrlint] Added a test to detect minimal GMP version mismatch.
(merged changeset r12206 from the trunk)
------------------------------------------------------------------------
r12203 | vlefevre | 2018-02-07 16:18:16 +0000 (Wed, 07 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/INSTALL
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.2-dev.
------------------------------------------------------------------------
r12201 | vlefevre | 2018-02-07 12:52:40 +0000 (Wed, 07 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "TZ=UTC svn log -rHEAD:0 -v" (in UTF-8 locales).
------------------------------------------------------------------------
r12200 | vlefevre | 2018-02-07 12:50:31 +0000 (Wed, 07 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.1.
------------------------------------------------------------------------
r12199 | vlefevre | 2018-02-07 12:02:41 +0000 (Wed, 07 Feb 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/README.dev
   M /branches/4.0/tools/announce-text

[doc/README.dev] "To make a release": moved a sentence.
[tools/announce-text] For releases, check the VERSION file of the tag.
(merged changesets r12197-12198 from the trunk)
------------------------------------------------------------------------
r12195 | vlefevre | 2018-02-02 13:17:33 +0000 (Fri, 02 Feb 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/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).
Corrected comments.
(merged changesets r12193-12194 from the trunk)
------------------------------------------------------------------------
r12192 | vlefevre | 2018-02-02 12:34:56 +0000 (Fri, 02 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "TZ=UTC svn log -rHEAD:0 -v" (in UTF-8 locales).
------------------------------------------------------------------------
r12191 | vlefevre | 2018-02-02 12:32:02 +0000 (Fri, 02 Feb 2018) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/terandom.c
   M /branches/4.0/tests/terandom_chisq.c
   M /branches/4.0/tests/tgrandom.c
   M /branches/4.0/tests/tnrandom.c
   M /branches/4.0/tests/tnrandom_chisq.c
   M /branches/4.0/tests/trandom.c
   M /branches/4.0/tests/trandom_deviate.c
   M /branches/4.0/tests/tset_ld.c
   M /branches/4.0/tests/tsub_d.c
   M /branches/4.0/tests/turandom.c

[tests]
  * Replaced calloc + free by tests_allocate + tests_free as usual.
  * Replaced some fprintf with stderr by printf.
  * Do bitwise operations in unsigned arithmetic.
  * Formatting.
(merged changesets r12188-12190 from the trunk)
------------------------------------------------------------------------
r12187 | vlefevre | 2018-02-02 10:57:17 +0000 (Fri, 02 Feb 2018) | 16 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tests.c
   M /branches/4.0/tests/tremquo.c
   M /branches/4.0/tests/tset_float128.c
   M /branches/4.0/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).

[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.

(merged changesets r12185-12186 from the trunk)
------------------------------------------------------------------------
r12184 | vlefevre | 2018-02-02 10:14:04 +0000 (Fri, 02 Feb 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tabort_defalloc1.c
   M /branches/4.0/tests/tabort_defalloc2.c
   M /branches/4.0/tests/tabort_prec_max.c

Reverse-merged r12182 since tests_start_mpfr disables stdout buffering,
so that the fflush() are unnecessary.
(merged changeset r12183 from the trunk)
------------------------------------------------------------------------
r12182 | vlefevre | 2018-02-02 09:55:12 +0000 (Fri, 02 Feb 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tabort_defalloc1.c
   M /branches/4.0/tests/tabort_defalloc2.c
   M /branches/4.0/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.
(merged changeset r12181 from the trunk)
------------------------------------------------------------------------
r12180 | vlefevre | 2018-02-01 14:31:06 +0000 (Thu, 01 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "TZ=UTC svn log -rHEAD:0 -v" (in UTF-8 locales).
------------------------------------------------------------------------
r12179 | vlefevre | 2018-02-01 14:28:02 +0000 (Thu, 01 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/NEWS

[NEWS] Mention "make check-exported-symbols" (experimental).
------------------------------------------------------------------------
r12177 | vlefevre | 2018-02-01 14:22:32 +0000 (Thu, 01 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.1-rc2.
------------------------------------------------------------------------
r12176 | vlefevre | 2018-02-01 14:21:13 +0000 (Thu, 01 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Updated the month.
------------------------------------------------------------------------
r12175 | vlefevre | 2018-02-01 13:47:27 +0000 (Thu, 01 Feb 2018) | 1 line
Changed paths:
   M /branches/4.0/NEWS

[NEWS] Mention the mpfr_div_ui bug.
------------------------------------------------------------------------
r12170 | vlefevre | 2018-01-31 16:21:15 +0000 (Wed, 31 Jan 2018) | 3 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/div_ui.c
   M /branches/4.0/src/mpfr-impl.h
   M /branches/4.0/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) and other tests.
(merged changesets r12164-12169 from the trunk)
------------------------------------------------------------------------
r12164 | vlefevre | 2018-01-31 09:57:51 +0000 (Wed, 31 Jan 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/div_ui.c
   M /branches/4.0/tests/tdiv.c
   M /branches/4.0/tests/tdiv_ui.c
   M /branches/4.0/tools/mpfrlint

[src/div_ui.c] Major rewrite to fix a mpfr_div_ui bug.
[tests/tdiv.c] Updated comment for bug20180126.
[tests/tdiv_ui.c] Added tests triggering the bug just fixed.
[tools/mpfrlint] Improved a regexp (avoiding false positives).
(merged the remaining changesets starting at r12123 from the trunk)
------------------------------------------------------------------------
r12138 | vlefevre | 2018-01-27 03:52:35 +0000 (Sat, 27 Jan 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tdiv.c

[tests/tdiv.c] mpfr_div bug bug20180126: also test negative values.
(merged changeset r12137 from the trunk)
------------------------------------------------------------------------
r12135 | vlefevre | 2018-01-27 03:21:15 +0000 (Sat, 27 Jan 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tdiv.c

[tests/tdiv.c] mpfr_div bug bug20180126 was introduced by r9086.
(merged changeset r12134 from the trunk)
------------------------------------------------------------------------
r12133 | vlefevre | 2018-01-26 17:04:38 +0000 (Fri, 26 Jan 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tdiv.c

[tests/tdiv.c] Completed r12128 test with new comments and an assert.
(merged changeset r12132 from the trunk)
------------------------------------------------------------------------
r12130 | vlefevre | 2018-01-26 15:29:25 +0000 (Fri, 26 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.1-dev.
------------------------------------------------------------------------
r12129 | vlefevre | 2018-01-26 15:28:39 +0000 (Fri, 26 Jan 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tdiv.c

[tests/tdiv.c] Added test case for a mpfr_div bug of MPFR 4.
(merged changeset r12128 from the trunk)
------------------------------------------------------------------------
r12127 | vlefevre | 2018-01-25 15:19:15 +0000 (Thu, 25 Jan 2018) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/README.dev

[doc/README.dev] Added information about symbol checking.
(merged changeset r12126 from the trunk)
------------------------------------------------------------------------
r12125 | vlefevre | 2018-01-25 14:46:21 +0000 (Thu, 25 Jan 2018) | 8 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/Makefile.am
   M /branches/4.0/doc/README.dev
   M /branches/4.0/src/Makefile.am

* Added check-exported-symbols make rule to check that MPFR does not
  define symbols with a GMP reserved prefix.
* For the check-gmp-symbols and check-exported-symbols make rules, if
  the library is not $(top_builddir)/src/.libs/libmpfr.so, these rules
  do nothing instead of potentially failing.
* doc/README.dev, "To make a release": mention "make check-gmp-symbols"
  and "make check-exported-symbols".
(merged changesets r12111-12114 from the trunk)
------------------------------------------------------------------------
r12123 | vlefevre | 2018-01-23 09:41:27 +0000 (Tue, 23 Jan 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/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.
(merged changeset r12122 from the trunk)
------------------------------------------------------------------------
r12121 | vlefevre | 2018-01-22 13:58:27 +0000 (Mon, 22 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "TZ=UTC svn log -rHEAD:0 -v" (in UTF-8 locales).
------------------------------------------------------------------------
r12120 | vlefevre | 2018-01-22 13:56:18 +0000 (Mon, 22 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0/src/Makefile.am

[src/Makefile.am] Updated libmpfr_la_LDFLAGS for MPFR 4.0.1.
------------------------------------------------------------------------
r12119 | vlefevre | 2018-01-22 13:53:01 +0000 (Mon, 22 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.1-rc1.
------------------------------------------------------------------------
r12118 | vlefevre | 2018-01-22 12:21:10 +0000 (Mon, 22 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0/NEWS

[NEWS] + Improved __GMP_CC and __GMP_CFLAGS retrieval.
------------------------------------------------------------------------
r12116 | vlefevre | 2018-01-22 01:51:10 +0000 (Mon, 22 Jan 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/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).
(merged changeset r12115 from the trunk)
------------------------------------------------------------------------
r12110 | vlefevre | 2018-01-19 11:36:10 +0000 (Fri, 19 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0/NEWS

[NEWS] Mention the bug fix r12109.
------------------------------------------------------------------------
r12109 | vlefevre | 2018-01-19 00:27:24 +0000 (Fri, 19 Jan 2018) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/mp_clz_tab.c
   M /branches/4.0/src/mpfr-gmp.h

Correct fix for the use of __clz_tab when the GMP build is used.
  * src/mpfr-gmp.h: reverse-merged r11969, which is incorrect and
    yields a build failure under some conditions.
  * src/mp_clz_tab.c: fixed the condition that tests whether the
    GMP build is used.
(merged changesets r12107-12108 from the trunk)
------------------------------------------------------------------------
r12106 | vlefevre | 2018-01-18 10:52:25 +0000 (Thu, 18 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0/NEWS

[NEWS] Update for GNU MPFR 4.0.1.
------------------------------------------------------------------------
r12096 | vlefevre | 2018-01-10 17:03:36 +0000 (Wed, 10 Jan 2018) | 1 line
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/check.c

Typo in a comment (cherry-picked everything from r12073 of the trunk).
------------------------------------------------------------------------
r12095 | vlefevre | 2018-01-10 16:58:10 +0000 (Wed, 10 Jan 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/lngamma.c
   M /branches/4.0/tests/tlgamma.c

[src/lngamma.c] Fixed handling of reduced exponent range in mpfr_lgamma
  (also removed a useless cast).
[tests/tlgamma.c] Added a corresponding test case.
(merged changesets r12089-12092 from the trunk)
------------------------------------------------------------------------
r12094 | vlefevre | 2018-01-10 16:48:57 +0000 (Wed, 10 Jan 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/ai.c
   M /branches/4.0/tests/tai.c

[src/ai.c] Fixed handling of reduced exponent range.
[tests/tai.c] Added corresponding test cases (in addition to what
  has been done in tgeneric.c).
(merged changesets r12070-12072,12074-12075 from the trunk)
------------------------------------------------------------------------
r12093 | vlefevre | 2018-01-10 16:38:44 +0000 (Wed, 10 Jan 2018) | 8 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tgeneric.c

[tests/tgeneric.c] Tests in a reduced exponent range:
  * Do several overflow/underflow tests instead of 1, and this for each
    precision. This allows one to detect 2 bugs (fixed in the trunk)
    that did not handle reduced exponent ranges correctly:
    - in mpfr_ai, making tai fail;
    - in mpfr_lgamma, making tlgamma hang with a 32-bit ABI.
  * Added some comments.
(merged changesets r12087-12088 from the trunk)
------------------------------------------------------------------------
r12086 | vlefevre | 2018-01-10 10:15:30 +0000 (Wed, 10 Jan 2018) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/tests/tsprintf.c

[tests/tsprintf.c] Fixed/simplified code with incorrect strncpy
usage (bug detected by gcc-snapshot 20180107-1 under Debian with
-Werror=stringop-truncation).
(merged changesets r12084-12085 from the trunk)
------------------------------------------------------------------------
r12083 | vlefevre | 2018-01-09 15:17:48 +0000 (Tue, 09 Jan 2018) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/mpfr.texi

[doc/mpfr.texi] Misc improvements and corrections affecting the
description of the following functions:
  * mpfr_ai: fixed font encoding issue for PDF/DVI/PS (—x— → |x|).
  * mpfr_custom_init_set: fixed typography; improved text.
  * mpfr_custom_get_exp: improved text.
(merged changesets r12077-12082 from the trunk)
------------------------------------------------------------------------
r12078 | vlefevre | 2018-01-09 12:34:03 +0000 (Tue, 09 Jan 2018) | 5 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/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.
(merged changeset r12076 from the trunk)
------------------------------------------------------------------------
r12077 | vlefevre | 2018-01-09 12:30:58 +0000 (Tue, 09 Jan 2018) | 6 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/BUGS
   M /branches/4.0/INSTALL
   M /branches/4.0/Makefile.am
   M /branches/4.0/NEWS
   M /branches/4.0/README
   M /branches/4.0/TODO
   M /branches/4.0/acinclude.m4
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/FAQ.html
   M /branches/4.0/doc/Makefile.am
   M /branches/4.0/doc/README.dev
   M /branches/4.0/doc/check-typography
   M /branches/4.0/doc/faq.xsl
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/examples/can_round.c
   M /branches/4.0/examples/divworst.c
   M /branches/4.0/examples/rndo-add.c
   M /branches/4.0/examples/sample.c
   M /branches/4.0/examples/version.c
   M /branches/4.0/src/Makefile.am
   M /branches/4.0/src/abort_prec_max.c
   M /branches/4.0/src/acos.c
   M /branches/4.0/src/acosh.c
   M /branches/4.0/src/add.c
   M /branches/4.0/src/add1.c
   M /branches/4.0/src/add1sp.c
   M /branches/4.0/src/add_d.c
   M /branches/4.0/src/add_ui.c
   M /branches/4.0/src/agm.c
   M /branches/4.0/src/ai.c
   M /branches/4.0/src/amd/amdfam10/mparam.h
   M /branches/4.0/src/amd/athlon/mparam.h
   M /branches/4.0/src/amd/k8/mparam.h
   M /branches/4.0/src/arm/mparam.h
   M /branches/4.0/src/asin.c
   M /branches/4.0/src/asinh.c
   M /branches/4.0/src/atan.c
   M /branches/4.0/src/atan2.c
   M /branches/4.0/src/atanh.c
   M /branches/4.0/src/bernoulli.c
   M /branches/4.0/src/beta.c
   M /branches/4.0/src/buildopt.c
   M /branches/4.0/src/cache.c
   M /branches/4.0/src/cbrt.c
   M /branches/4.0/src/check.c
   M /branches/4.0/src/clear.c
   M /branches/4.0/src/clears.c
   M /branches/4.0/src/cmp.c
   M /branches/4.0/src/cmp2.c
   M /branches/4.0/src/cmp_abs.c
   M /branches/4.0/src/cmp_d.c
   M /branches/4.0/src/cmp_ld.c
   M /branches/4.0/src/cmp_si.c
   M /branches/4.0/src/cmp_ui.c
   M /branches/4.0/src/comparisons.c
   M /branches/4.0/src/const_catalan.c
   M /branches/4.0/src/const_euler.c
   M /branches/4.0/src/const_log2.c
   M /branches/4.0/src/const_pi.c
   M /branches/4.0/src/constant.c
   M /branches/4.0/src/copysign.c
   M /branches/4.0/src/cos.c
   M /branches/4.0/src/cosh.c
   M /branches/4.0/src/cot.c
   M /branches/4.0/src/coth.c
   M /branches/4.0/src/csc.c
   M /branches/4.0/src/csch.c
   M /branches/4.0/src/d_div.c
   M /branches/4.0/src/d_sub.c
   M /branches/4.0/src/digamma.c
   M /branches/4.0/src/dim.c
   M /branches/4.0/src/div.c
   M /branches/4.0/src/div_2exp.c
   M /branches/4.0/src/div_2si.c
   M /branches/4.0/src/div_2ui.c
   M /branches/4.0/src/div_d.c
   M /branches/4.0/src/div_ui.c
   M /branches/4.0/src/dump.c
   M /branches/4.0/src/eint.c
   M /branches/4.0/src/eq.c
   M /branches/4.0/src/erandom.c
   M /branches/4.0/src/erf.c
   M /branches/4.0/src/erfc.c
   M /branches/4.0/src/exceptions.c
   M /branches/4.0/src/exp.c
   M /branches/4.0/src/exp10.c
   M /branches/4.0/src/exp2.c
   M /branches/4.0/src/exp3.c
   M /branches/4.0/src/exp_2.c
   M /branches/4.0/src/expm1.c
   M /branches/4.0/src/extract.c
   M /branches/4.0/src/factorial.c
   M /branches/4.0/src/fits_intmax.c
   M /branches/4.0/src/fits_s.h
   M /branches/4.0/src/fits_sint.c
   M /branches/4.0/src/fits_slong.c
   M /branches/4.0/src/fits_sshort.c
   M /branches/4.0/src/fits_u.h
   M /branches/4.0/src/fits_uint.c
   M /branches/4.0/src/fits_uintmax.c
   M /branches/4.0/src/fits_ulong.c
   M /branches/4.0/src/fits_ushort.c
   M /branches/4.0/src/fma.c
   M /branches/4.0/src/fmma.c
   M /branches/4.0/src/fms.c
   M /branches/4.0/src/fpif.c
   M /branches/4.0/src/frac.c
   M /branches/4.0/src/free_cache.c
   M /branches/4.0/src/frexp.c
   M /branches/4.0/src/gamma.c
   M /branches/4.0/src/gamma_inc.c
   M /branches/4.0/src/gammaonethird.c
   M /branches/4.0/src/gen_inverse.h
   M /branches/4.0/src/generic/coverage/mparam.h
   M /branches/4.0/src/generic/mparam.h
   M /branches/4.0/src/get_d.c
   M /branches/4.0/src/get_d64.c
   M /branches/4.0/src/get_exp.c
   M /branches/4.0/src/get_f.c
   M /branches/4.0/src/get_float128.c
   M /branches/4.0/src/get_flt.c
   M /branches/4.0/src/get_ld.c
   M /branches/4.0/src/get_q.c
   M /branches/4.0/src/get_si.c
   M /branches/4.0/src/get_sj.c
   M /branches/4.0/src/get_str.c
   M /branches/4.0/src/get_ui.c
   M /branches/4.0/src/get_uj.c
   M /branches/4.0/src/get_z.c
   M /branches/4.0/src/get_z_exp.c
   M /branches/4.0/src/gmp_op.c
   M /branches/4.0/src/grandom.c
   M /branches/4.0/src/hppa/mparam.h
   M /branches/4.0/src/hypot.c
   M /branches/4.0/src/ia64/mparam.h
   M /branches/4.0/src/ieee_floats.h
   M /branches/4.0/src/init.c
   M /branches/4.0/src/init2.c
   M /branches/4.0/src/inits.c
   M /branches/4.0/src/inits2.c
   M /branches/4.0/src/inp_str.c
   M /branches/4.0/src/int_ceil_log2.c
   M /branches/4.0/src/invert_limb.h
   M /branches/4.0/src/invsqrt_limb.h
   M /branches/4.0/src/isinf.c
   M /branches/4.0/src/isinteger.c
   M /branches/4.0/src/isnan.c
   M /branches/4.0/src/isnum.c
   M /branches/4.0/src/isqrt.c
   M /branches/4.0/src/isregular.c
   M /branches/4.0/src/iszero.c
   M /branches/4.0/src/jn.c
   M /branches/4.0/src/jyn_asympt.c
   M /branches/4.0/src/li2.c
   M /branches/4.0/src/lngamma.c
   M /branches/4.0/src/log.c
   M /branches/4.0/src/log10.c
   M /branches/4.0/src/log1p.c
   M /branches/4.0/src/log2.c
   M /branches/4.0/src/log_ui.c
   M /branches/4.0/src/logging.c
   M /branches/4.0/src/min_prec.c
   M /branches/4.0/src/minmax.c
   M /branches/4.0/src/mips/mparam.h
   M /branches/4.0/src/modf.c
   M /branches/4.0/src/mp_clz_tab.c
   M /branches/4.0/src/mparam_h.in
   M /branches/4.0/src/mpf2mpfr.h
   M /branches/4.0/src/mpfr-cvers.h
   M /branches/4.0/src/mpfr-gmp.c
   M /branches/4.0/src/mpfr-gmp.h
   M /branches/4.0/src/mpfr-impl.h
   M /branches/4.0/src/mpfr-intmax.h
   M /branches/4.0/src/mpfr-longlong.h
   M /branches/4.0/src/mpfr-mini-gmp.c
   M /branches/4.0/src/mpfr-mini-gmp.h
   M /branches/4.0/src/mpfr-sassert.h
   M /branches/4.0/src/mpfr-thread.h
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/mpn_exp.c
   M /branches/4.0/src/mul.c
   M /branches/4.0/src/mul_2exp.c
   M /branches/4.0/src/mul_2si.c
   M /branches/4.0/src/mul_2ui.c
   M /branches/4.0/src/mul_d.c
   M /branches/4.0/src/mul_ui.c
   M /branches/4.0/src/mulders.c
   M /branches/4.0/src/neg.c
   M /branches/4.0/src/next.c
   M /branches/4.0/src/nrandom.c
   M /branches/4.0/src/odd_p.c
   M /branches/4.0/src/out_str.c
   M /branches/4.0/src/pool.c
   M /branches/4.0/src/pow.c
   M /branches/4.0/src/pow_si.c
   M /branches/4.0/src/pow_ui.c
   M /branches/4.0/src/pow_z.c
   M /branches/4.0/src/powerof2.c
   M /branches/4.0/src/powerpc32/mparam.h
   M /branches/4.0/src/powerpc64/mparam.h
   M /branches/4.0/src/print_raw.c
   M /branches/4.0/src/print_rnd_mode.c
   M /branches/4.0/src/printf.c
   M /branches/4.0/src/random_deviate.c
   M /branches/4.0/src/random_deviate.h
   M /branches/4.0/src/rec_sqrt.c
   M /branches/4.0/src/reldiff.c
   M /branches/4.0/src/rem1.c
   M /branches/4.0/src/rint.c
   M /branches/4.0/src/rndna.c
   M /branches/4.0/src/root.c
   M /branches/4.0/src/round_near_x.c
   M /branches/4.0/src/round_p.c
   M /branches/4.0/src/round_prec.c
   M /branches/4.0/src/round_raw_generic.c
   M /branches/4.0/src/scale2.c
   M /branches/4.0/src/sec.c
   M /branches/4.0/src/sech.c
   M /branches/4.0/src/set.c
   M /branches/4.0/src/set_d.c
   M /branches/4.0/src/set_d64.c
   M /branches/4.0/src/set_dfl_prec.c
   M /branches/4.0/src/set_exp.c
   M /branches/4.0/src/set_f.c
   M /branches/4.0/src/set_float128.c
   M /branches/4.0/src/set_flt.c
   M /branches/4.0/src/set_inf.c
   M /branches/4.0/src/set_ld.c
   M /branches/4.0/src/set_nan.c
   M /branches/4.0/src/set_prc_raw.c
   M /branches/4.0/src/set_prec.c
   M /branches/4.0/src/set_q.c
   M /branches/4.0/src/set_rnd.c
   M /branches/4.0/src/set_si.c
   M /branches/4.0/src/set_si_2exp.c
   M /branches/4.0/src/set_sj.c
   M /branches/4.0/src/set_str.c
   M /branches/4.0/src/set_str_raw.c
   M /branches/4.0/src/set_ui.c
   M /branches/4.0/src/set_ui_2exp.c
   M /branches/4.0/src/set_uj.c
   M /branches/4.0/src/set_z.c
   M /branches/4.0/src/set_z_exp.c
   M /branches/4.0/src/set_zero.c
   M /branches/4.0/src/setmax.c
   M /branches/4.0/src/setmin.c
   M /branches/4.0/src/setsign.c
   M /branches/4.0/src/sgn.c
   M /branches/4.0/src/si_op.c
   M /branches/4.0/src/signbit.c
   M /branches/4.0/src/sin.c
   M /branches/4.0/src/sin_cos.c
   M /branches/4.0/src/sinh.c
   M /branches/4.0/src/sinh_cosh.c
   M /branches/4.0/src/sparc64/mparam.h
   M /branches/4.0/src/sqr.c
   M /branches/4.0/src/sqrt.c
   M /branches/4.0/src/sqrt_ui.c
   M /branches/4.0/src/stack_interface.c
   M /branches/4.0/src/strtofr.c
   M /branches/4.0/src/sub.c
   M /branches/4.0/src/sub1.c
   M /branches/4.0/src/sub1sp.c
   M /branches/4.0/src/sub_d.c
   M /branches/4.0/src/sub_ui.c
   M /branches/4.0/src/subnormal.c
   M /branches/4.0/src/sum.c
   M /branches/4.0/src/swap.c
   M /branches/4.0/src/tan.c
   M /branches/4.0/src/tanh.c
   M /branches/4.0/src/ubf.c
   M /branches/4.0/src/uceil_exp2.c
   M /branches/4.0/src/uceil_log2.c
   M /branches/4.0/src/ufloor_log2.c
   M /branches/4.0/src/ui_div.c
   M /branches/4.0/src/ui_pow.c
   M /branches/4.0/src/ui_pow_ui.c
   M /branches/4.0/src/ui_sub.c
   M /branches/4.0/src/urandom.c
   M /branches/4.0/src/urandomb.c
   M /branches/4.0/src/vasprintf.c
   M /branches/4.0/src/version.c
   M /branches/4.0/src/volatile.c
   M /branches/4.0/src/x86/core2/mparam.h
   M /branches/4.0/src/x86/mparam.h
   M /branches/4.0/src/x86_64/core2/mparam.h
   M /branches/4.0/src/x86_64/corei5/mparam.h
   M /branches/4.0/src/x86_64/pentium4/mparam.h
   M /branches/4.0/src/yn.c
   M /branches/4.0/src/zeta.c
   M /branches/4.0/src/zeta_ui.c
   M /branches/4.0/tests/Makefile.am
   M /branches/4.0/tests/cmp_str.c
   M /branches/4.0/tests/data/digamma
   M /branches/4.0/tests/data/li2
   M /branches/4.0/tests/memory.c
   M /branches/4.0/tests/mpf_compat.c
   M /branches/4.0/tests/mpf_compat.h
   M /branches/4.0/tests/mpfr-test.h
   M /branches/4.0/tests/mpfr_compat.c
   M /branches/4.0/tests/random2.c
   M /branches/4.0/tests/reuse.c
   M /branches/4.0/tests/rnd_mode.c
   M /branches/4.0/tests/tabort_defalloc1.c
   M /branches/4.0/tests/tabort_defalloc2.c
   M /branches/4.0/tests/tabort_prec_max.c
   M /branches/4.0/tests/tabs.c
   M /branches/4.0/tests/tacos.c
   M /branches/4.0/tests/tacosh.c
   M /branches/4.0/tests/tadd.c
   M /branches/4.0/tests/tadd1sp.c
   M /branches/4.0/tests/tadd_d.c
   M /branches/4.0/tests/tadd_ui.c
   M /branches/4.0/tests/tagm.c
   M /branches/4.0/tests/tai.c
   M /branches/4.0/tests/talloc-cache.c
   M /branches/4.0/tests/talloc.c
   M /branches/4.0/tests/tasin.c
   M /branches/4.0/tests/tasinh.c
   M /branches/4.0/tests/tassert.c
   M /branches/4.0/tests/tatan.c
   M /branches/4.0/tests/tatanh.c
   M /branches/4.0/tests/taway.c
   M /branches/4.0/tests/tbeta.c
   M /branches/4.0/tests/tbuildopt.c
   M /branches/4.0/tests/tcan_round.c
   M /branches/4.0/tests/tcbrt.c
   M /branches/4.0/tests/tcheck.c
   M /branches/4.0/tests/tcmp.c
   M /branches/4.0/tests/tcmp2.c
   M /branches/4.0/tests/tcmp_d.c
   M /branches/4.0/tests/tcmp_ld.c
   M /branches/4.0/tests/tcmp_ui.c
   M /branches/4.0/tests/tcmpabs.c
   M /branches/4.0/tests/tcomparisons.c
   M /branches/4.0/tests/tconst_catalan.c
   M /branches/4.0/tests/tconst_euler.c
   M /branches/4.0/tests/tconst_log2.c
   M /branches/4.0/tests/tconst_pi.c
   M /branches/4.0/tests/tcopysign.c
   M /branches/4.0/tests/tcos.c
   M /branches/4.0/tests/tcosh.c
   M /branches/4.0/tests/tcot.c
   M /branches/4.0/tests/tcoth.c
   M /branches/4.0/tests/tcsc.c
   M /branches/4.0/tests/tcsch.c
   M /branches/4.0/tests/td_div.c
   M /branches/4.0/tests/td_sub.c
   M /branches/4.0/tests/tdigamma.c
   M /branches/4.0/tests/tdim.c
   M /branches/4.0/tests/tdiv.c
   M /branches/4.0/tests/tdiv_d.c
   M /branches/4.0/tests/tdiv_ui.c
   M /branches/4.0/tests/teint.c
   M /branches/4.0/tests/teq.c
   M /branches/4.0/tests/terandom.c
   M /branches/4.0/tests/terandom_chisq.c
   M /branches/4.0/tests/terf.c
   M /branches/4.0/tests/tests.c
   M /branches/4.0/tests/texceptions.c
   M /branches/4.0/tests/texp.c
   M /branches/4.0/tests/texp10.c
   M /branches/4.0/tests/texp2.c
   M /branches/4.0/tests/texpm1.c
   M /branches/4.0/tests/tfactorial.c
   M /branches/4.0/tests/tfits.c
   M /branches/4.0/tests/tfma.c
   M /branches/4.0/tests/tfmma.c
   M /branches/4.0/tests/tfmod.c
   M /branches/4.0/tests/tfms.c
   M /branches/4.0/tests/tfpif.c
   M /branches/4.0/tests/tfprintf.c
   M /branches/4.0/tests/tfrac.c
   M /branches/4.0/tests/tfrexp.c
   M /branches/4.0/tests/tgamma.c
   M /branches/4.0/tests/tgamma_inc.c
   M /branches/4.0/tests/tgeneric.c
   M /branches/4.0/tests/tgeneric_ui.c
   M /branches/4.0/tests/tget_d.c
   M /branches/4.0/tests/tget_d_2exp.c
   M /branches/4.0/tests/tget_f.c
   M /branches/4.0/tests/tget_flt.c
   M /branches/4.0/tests/tget_ld_2exp.c
   M /branches/4.0/tests/tget_q.c
   M /branches/4.0/tests/tget_set_d64.c
   M /branches/4.0/tests/tget_sj.c
   M /branches/4.0/tests/tget_str.c
   M /branches/4.0/tests/tget_z.c
   M /branches/4.0/tests/tgmpop.c
   M /branches/4.0/tests/tgrandom.c
   M /branches/4.0/tests/thyperbolic.c
   M /branches/4.0/tests/thypot.c
   M /branches/4.0/tests/tinits.c
   M /branches/4.0/tests/tinp_str.c
   M /branches/4.0/tests/tinternals.c
   M /branches/4.0/tests/tisnan.c
   M /branches/4.0/tests/tisqrt.c
   M /branches/4.0/tests/tj0.c
   M /branches/4.0/tests/tj1.c
   M /branches/4.0/tests/tjn.c
   M /branches/4.0/tests/tl2b.c
   M /branches/4.0/tests/tlgamma.c
   M /branches/4.0/tests/tli2.c
   M /branches/4.0/tests/tlngamma.c
   M /branches/4.0/tests/tlog.c
   M /branches/4.0/tests/tlog10.c
   M /branches/4.0/tests/tlog1p.c
   M /branches/4.0/tests/tlog2.c
   M /branches/4.0/tests/tlog_ui.c
   M /branches/4.0/tests/tmin_prec.c
   M /branches/4.0/tests/tminmax.c
   M /branches/4.0/tests/tmodf.c
   M /branches/4.0/tests/tmul.c
   M /branches/4.0/tests/tmul_2exp.c
   M /branches/4.0/tests/tmul_d.c
   M /branches/4.0/tests/tmul_ui.c
   M /branches/4.0/tests/tnext.c
   M /branches/4.0/tests/tnrandom.c
   M /branches/4.0/tests/tnrandom_chisq.c
   M /branches/4.0/tests/tout_str.c
   M /branches/4.0/tests/toutimpl.c
   M /branches/4.0/tests/tpow.c
   M /branches/4.0/tests/tpow3.c
   M /branches/4.0/tests/tpow_all.c
   M /branches/4.0/tests/tpow_z.c
   M /branches/4.0/tests/tprintf.c
   M /branches/4.0/tests/trandom.c
   M /branches/4.0/tests/trandom_deviate.c
   M /branches/4.0/tests/trec_sqrt.c
   M /branches/4.0/tests/tremquo.c
   M /branches/4.0/tests/trint.c
   M /branches/4.0/tests/trndna.c
   M /branches/4.0/tests/troot.c
   M /branches/4.0/tests/trootn_ui.c
   M /branches/4.0/tests/tround_prec.c
   M /branches/4.0/tests/tsec.c
   M /branches/4.0/tests/tsech.c
   M /branches/4.0/tests/tset.c
   M /branches/4.0/tests/tset_d.c
   M /branches/4.0/tests/tset_exp.c
   M /branches/4.0/tests/tset_f.c
   M /branches/4.0/tests/tset_float128.c
   M /branches/4.0/tests/tset_ld.c
   M /branches/4.0/tests/tset_q.c
   M /branches/4.0/tests/tset_si.c
   M /branches/4.0/tests/tset_sj.c
   M /branches/4.0/tests/tset_str.c
   M /branches/4.0/tests/tset_z.c
   M /branches/4.0/tests/tset_z_exp.c
   M /branches/4.0/tests/tsgn.c
   M /branches/4.0/tests/tsi_op.c
   M /branches/4.0/tests/tsin.c
   M /branches/4.0/tests/tsin_cos.c
   M /branches/4.0/tests/tsinh.c
   M /branches/4.0/tests/tsinh_cosh.c
   M /branches/4.0/tests/tsprintf.c
   M /branches/4.0/tests/tsqr.c
   M /branches/4.0/tests/tsqrt.c
   M /branches/4.0/tests/tsqrt_ui.c
   M /branches/4.0/tests/tstckintc.c
   M /branches/4.0/tests/tstdint.c
   M /branches/4.0/tests/tstrtofr.c
   M /branches/4.0/tests/tsub.c
   M /branches/4.0/tests/tsub1sp.c
   M /branches/4.0/tests/tsub_d.c
   M /branches/4.0/tests/tsub_ui.c
   M /branches/4.0/tests/tsubnormal.c
   M /branches/4.0/tests/tsum.c
   M /branches/4.0/tests/tswap.c
   M /branches/4.0/tests/ttan.c
   M /branches/4.0/tests/ttanh.c
   M /branches/4.0/tests/ttrunc.c
   M /branches/4.0/tests/tui_div.c
   M /branches/4.0/tests/tui_pow.c
   M /branches/4.0/tests/tui_sub.c
   M /branches/4.0/tests/turandom.c
   M /branches/4.0/tests/tvalist.c
   M /branches/4.0/tests/tversion.c
   M /branches/4.0/tests/ty0.c
   M /branches/4.0/tests/ty1.c
   M /branches/4.0/tests/tyn.c
   M /branches/4.0/tests/tzeta.c
   M /branches/4.0/tests/tzeta_ui.c
   M /branches/4.0/tools/bench/Makefile.am
   M /branches/4.0/tools/bench/benchtime.h
   M /branches/4.0/tools/bench/mpfrbench.c
   M /branches/4.0/tools/ck-clz_tab
   M /branches/4.0/tools/ck-copyright-notice
   M /branches/4.0/tools/ck-mparam
   M /branches/4.0/tools/ck-news
   M /branches/4.0/tools/ck-version-info
   M /branches/4.0/tools/get_patches.sh
   M /branches/4.0/tune/Makefile.am
   M /branches/4.0/tune/bidimensional_sample.c
   M /branches/4.0/tune/speed.c
   M /branches/4.0/tune/tuneup.c

Minor date-related changes as in the trunk:
* Copyright notice update in most files: added 2018.
* 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).
* doc/mpfr.texi: updated the month.
(merged changesets r12067-12069 from the trunk)
------------------------------------------------------------------------
r12060 | vlefevre | 2017-12-25 15:04:55 +0000 (Mon, 25 Dec 2017) | 1 line
Changed paths:
   M /branches/4.0/INSTALL
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.1-dev.
------------------------------------------------------------------------
r12057 | vlefevre | 2017-12-25 11:17:31 +0000 (Mon, 25 Dec 2017) | 2 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/NEWS

[NEWS] Minor corrections for GNU MPFR 4.0.0.
(merged changeset r12056 from the trunk)
------------------------------------------------------------------------
r12051 | vlefevre | 2017-12-23 10:19:32 +0000 (Sat, 23 Dec 2017) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
------------------------------------------------------------------------
r12050 | vlefevre | 2017-12-23 10:17:50 +0000 (Sat, 23 Dec 2017) | 1 line
Changed paths:
   M /branches/4.0/VERSION
   M /branches/4.0/configure.ac
   M /branches/4.0/doc/mpfr.texi
   M /branches/4.0/src/mpfr.h
   M /branches/4.0/src/version.c

Updated version to 4.0.0.
------------------------------------------------------------------------
r12049 | vlefevre | 2017-12-23 10:15:10 +0000 (Sat, 23 Dec 2017) | 1 line
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/exp_2.c
   M /branches/4.0/src/subnormal.c
   M /branches/4.0/tests/texp.c

Merged changesets r12046-12048 from the trunk (bug fix and test).
------------------------------------------------------------------------
r12046 | vlefevre | 2017-12-23 01:39:00 +0000 (Sat, 23 Dec 2017) | 1 line
Changed paths:
   M /branches/4.0
   M /branches/4.0/src/hypot.c
   M /branches/4.0/src/lngamma.c
   M /branches/4.0/src/sin.c
   M /branches/4.0/src/subnormal.c
   M /branches/4.0/tests/thypot.c
   M /branches/4.0/tests/tj1.c
   M /branches/4.0/tests/tlngamma.c

Merged changesets r12026-12045 from the trunk (bug fixes and tests).
------------------------------------------------------------------------
r12027 | vlefevre | 2017-12-20 01:59:31 +0000 (Wed, 20 Dec 2017) | 1 line
Changed paths:
   M /branches/4.0/ChangeLog

ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
------------------------------------------------------------------------
r12026 | vlefevre | 2017-12-20 01:57:34 +0000 (Wed, 20 Dec 2017) | 4 lines
Changed paths:
   M /branches/4.0
   M /branches/4.0/NEWS
   M /branches/4.0/doc/FAQ.html

Re-added changes specific to the old 4.0 branch:
  * doc/FAQ.html: assume MPFR 4.0.0 has been released (since this is
    a file for the MPFR 4.0.0 release).
  * NEWS: added test coverage for MPFR 4.0.0.
------------------------------------------------------------------------
r12024 | vlefevre | 2017-12-20 01:53:52 +0000 (Wed, 20 Dec 2017) | 4 lines
Changed paths:
   R /branches/4.0 (from /trunk:12023)

Replaced the 4.0 branch by a copy of the trunk (in order to keep the
history of the latest changes of the trunk); this replacement is due
to a limitation of Subversion where a merge is regarded as a single
commit, and is OK here since the 4.0 branch is new.
------------------------------------------------------------------------
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                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           